본문으로 건너뛰기
mip.watch
⌘K

MIP-11

Automatic Priority Fee Distribution

초안 표준 트랙 코어 GitHub ↗ 포럼 ↗
아이디어 초안 검토 중 최종 검토 확정 유지 중

Automatically distribute priority fees to delegators.

작성자
Category Labs (@category-labs)
생성일
2026-04-01
수정일
2026. 10. 22.

이해관계자 영향

이 MIP이 각 대상에게 무엇을 바꾸는지 보여줍니다. 심각도와 조치 플래그는 모델이 도출하며, MIP 유형/카테고리별로 결정론적 최소값이 적용됩니다.

AI 요약을 사용할 수 없음 — 구조적 기본값으로 대체

핵심 요약

이 MIP의 AI 인사이트를 사용할 수 없습니다 — 아래에 구조적 기본값을 표시합니다.

무엇이 바뀌나

  • 이 MIP의 AI 인사이트를 사용할 수 없습니다 — 아래에 구조적 기본값을 표시합니다.
⌘

개발자

스마트 컨트랙트 및 dapp 개발자, RPC 사용자, 도구 제작자

낮음
◉

사용자

지갑 사용자, EOA 보유자, dapp 방문자

낮음
◆

검증자

노드 운영자, RPC 운영자, 위임자

중간
✦

재단

Monad 재단 및 Category Labs 코어 개발자

낮음

명세

인용

## Abstract

This MIP automatically distributes priority fees to delegators rather than crediting them solely to the validator's beneficiary address.

## Motivation

Currently, priority fees are credited directly to a validator's beneficiary address. In principle, a validator could forward these fees to its delegators by calling `externalReward` on the staking contract, but doing so is operationally cumbersome — it requires each validator to run additional infrastructure to sweep the beneficiary balance, manage gas for the forwarding transaction, and handle the `dust_threshold` minimum. In practice, most validators do not do this today, so priority fees accrue to the beneficiary rather than flowing through to delegators.

To ensure consistent compensation for all stakers without relying on per-validator tooling, this proposal introduces a mechanism that automatically distributes priority fees to delegators at the protocol level.

## Specification

### Overview

Automated priority fee distribution has two components:

1. A new account that captures priority fees, referred to as the `distribution account`. The address for the distribution account will be `0xfee5fee5fee5fee5fee5fee5fee5fee5fee5fee5`. 
2. End-of-block execution logic that calls `external_rewards` on the corresponding validator pool with the priority fees accumulated in the `distribution account`.

The `beneficiary` remains settable by the block proposer, and within the execution context, `block.coinbase` continues to refer to the beneficiary address.

### Execution Flow

The following changes are applied during block execution:

1. The beneficiary is still set by the block proposer and is still represented by `block.coinbase` in the execution context.
2. For each transaction, the priority fee is credited to the distribution account rather than to the beneficiary balance.
3. At the end of block execution, the system calls `syscall_distribute` on the distribution account. This function forwards the full accumulated balance to the staking contract via `external_rewards`.

The distribution account has the following logic:

```python
class distribution_account:

    # This function is only callable via execution; no transaction can call it.
    def syscall_distribute(address block_leader):
        priority_fees = get_balance(address(this))

        # Same value as the val_id used by syscall_reward for block_leader.
        val_id = staking_contract.val_id(block_leader)

        # Sub-threshold fees are filtered by external_rewards (see dust_threshold).
        staking_contract.external_rewards(val_id){msg.value = priority_fees}
```

## Rationale

Priority fees are a component of validator revenue, and delegators should receive a share of this allocation in return for helping secure the network.

This design ensures:

1. Native inclusion of priority fees within staking rewards.
2. Elimination of any reliance on off-chain or external distribution logic.

## Backwards Compatibility

This change modifies the flow of priority fees: they will no longer appear in the balance of `block.coinbase` as a direct credit.

Because priority fees are now distributed to all delegators within a validator's pool, third-party delegation contracts may be affected. Such contracts will experience a dilution in their share of priority fees if users bypass the external contract and stake directly with the validator pool.

To be amenable to this update `external_rewards` will be modified so that it removes the commission fee when called. 

## Security Considerations

The primary consideration is the precision of the reward accumulator.

`external_rewards` requires a minimum input amount, defined as the `dust_threshold`, in order to guarantee a certain decimal accuracy within the accumulator. The minimum threshold for non-zero priority fees must align with this `external_rewards` minimum-balance requirement, and any fees below this threshold will not be distributed.

Edge cases to consider:

1. Blocks with zero priority fees result in a no-op distribution.
2. Small fee amounts must be validated against `dust_threshold`; sub-threshold fees are burned.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).

포럼 토론

게시물 3개 · 좋아요 6개 · 6개월 전
포럼에서 더 읽기 ↗
  1. @John Bergschneider #1 2026. 4. 13. 오후 8:12

    MIP 11 - Automatic Priority Fee Distribution This proposal introduces a protocol-level mechanism to automatically distribute priority fees to delegators. Currently, priority fees are credited directly to a validator’s beneficiary address; this proposal redirects those fees into the validator’s staking pool at the end of every block. We are seeking input on the following: - Third-Party Impact: How this change affects custom “Liquid Staking” or delegation wrappers that may currently rely on manual fee-sharing or direct block.coinbase monitoring. - Proposer Incentives: Does moving priority fees entirely to the pool affect proposer behavior or MEV strategies in a way that requires additional mitigation?

  2. @Vladimir Understanding #2 2026. 5. 2. 오후 8:53

    jhb10c: This proposal introduces a protocol-level mechanism to automatically distribute priority fees to delegators. Currently, priority fees are credited directly to a validator’s beneficiary address; this proposal redirects those fees into the validator’s staking pool at the end of every block. We are seeking input on the following: - Third-Party Impact: How this change affects custom “Liquid Staking” or delegation wrappers that may currently rely on manual fee-sharing or direct block.coinbase monitoring. - Proposer Incentives: Does moving priority fees entirely to the pool affect proposer behavior or MEV strategies in a way that requires additional mitigation? Regarding the redirection of priority fees: These fees have traditionally served as a primary buffer for validators to offset the high operational and hardware costs required to maintain 10k TPS. If these fees are moved...

  3. @John Bergschneider #3 2026. 5. 4. 오후 7:03

    To note, I am not sure of the actual cost to run a validator versus the inflation rate. So I will leave this particular question to another more knowledgeable. But to your point, a rational validators would re-adjust the commission with respect to the operational costs. However under the current regime, validators rarely claim priority fees. As such these rewards are idle. By observation, it seems that inflationary rewards are sufficient.