Skip to explanation

Money

Where PCASH comes from

See how Ethereum time and base-fee burn produce PCASH credit, with one exact allocation example.

7 minute read
On this page
The answer

PCASH follows Ethereum base-fee burn. For each Ethereum block, every node computes the same time-based reward and credits it to top-level transaction senders in proportion to the base fee they burned.

For youRead this for issuance and public credit accrual. The next article explains how an owner privately spends that credit.

Before you startIt helps to know that Ethereum destroys a base fee when a transaction uses gas.

One Ethereum block becomes address credit
  1. Ethereum blockMeasure elapsed timeThe header gap selects this block's reward.
  2. TransactionsCount base-fee burnGas used × base fee, grouped by top-level sender.
  3. AllocationSplit the exact rewardEach sender receives the same fraction as its fraction of burn.
  4. PCASH stateIncrease address creditOne public lifetime total per credited address. No note is created yet.
Time determines how much PCASH exists. Base-fee burn determines who receives it. The result is public credit, not private notes.

No miner, PCASH operator, contract, or claimant chooses the recipients. The inputs are already in Ethereum history: the block timestamps, each transaction's gas used, its base fee, and its recovered top-level sender. A node can derive an address's credit even if that address has never run PCASH software.

The rate follows Ethereum's clock

Initial reward
12 PCASH
Reference interval
12 seconds
Halving period
10,500,000 seconds
Supply ceiling
21,000,000 PCASH
The rate halves; elapsed Ethereum time still controls each block
Reward per reference interval of L1 timeEach epoch halves the integer rate
  1. Epoch 0initial
  2. Epoch 1½
  3. Epoch 2¼
  4. Epoch 3

Eventually the integer shift reaches zero. Zero-burn intervals are not recovered later, so actual issuance remains below the geometric ceiling.

A normal block covers one reference interval. A block following one missed slot covers two intervals and assigns both to that block's burners.

The schedule reads elapsed L1 header time, not a PCASH block count. In epoch 0, one normal 12 seconds interval schedules 12 PCASH. A two-slot gap schedules 24 PCASH; a zero-second gap schedules zero. The rate for the epoch containing the new block's timestamp applies to the entire gap.

Each epoch lasts 10,500,000 seconds and halves the rate with an integer shift. Eventually the shifted rate reaches zero. The geometric schedule has a 21,000,000 PCASH ceiling, but actual issuance is lower whenever a block has no eligible base-fee burn, covers no time, or loses a tiny amount to eventual integer truncation. There is no catch-up distribution.

View the source behind this explanationnode/crates/issuance/src/lib.rs:289

Burn chooses the recipients

For each transaction, the protocol computes gas used × base fee per gas, then groups those values by the recovered top-level sender. Reverted transactions count because they still used gas and burned base fee. Priority fees, blob fees, block proposers, internal callers, and transaction beneficiaries do not count.

A real first-block allocation
Sepolia block 11,264,181One ordinary interval: 12 seconds
0.029373296845939200 ETHbase fee burned
145 addressestop-level senders
12 PCASHcredited exactly

5 reverted transactions still counted. Priority fees and blob fees did not.

The first block after the Sepolia anchor covered one reference interval. Its exact generated reward was divided among every address that burned base fee.

The largest sender in this block burned 9.7151% of the eligible base fee and received 1.165811238024197692 PCASH. A sender whose transaction reverted still received the same share it would have received on success. The protocol measures destroyed ETH, not whether the transaction achieved its purpose.

Integer shares still add to the exact reward

Each address first receives the floor of its exact proportional share. That leaves a few indivisible PCASH-wei. The protocol gives those one at a time to the addresses with the largest discarded remainders; an equal remainder is resolved by ascending Ethereum address.

For the example block, the 145 floor shares left 72 PCASH-wei undistributed. The largest remainders each received one more. The final credits add to exactly 12 PCASH.

View the source behind this explanationnode/crates/issuance/src/lib.rs:380

Issuance and fees feed one public total

Two sources, one credit leaf
Source oneBase-fee burn rewardCredited to Ethereum transaction senders.
Source twoFees of successful PCASH transactionsCredited to the declared address or the batch submitter.
One mutable leafcreditAccruedLifetime gross credit. It only increases.
At the end of each L1 block, issuance deltas and the fee payouts of successful PCASH transactions are merged by address before the credit tree is updated.

A successful PCASH transaction can also declare a public fee; a failed transaction credits nothing. A nonzero fee recipient names the address to credit; zero means the Ethereum address that submitted the including batch. These fee payouts and the block's issuance shares are combined before state changes, so an address that earned both receives one increment.

The credit tree stores creditAccrued: the address's lifetime gross issuance and fee income. An address receives one permanent leaf index when it is first credited, and its leaf is updated in place thereafter. Spending never subtracts from this public number.

That last point is the boundary between this article and the next one: credit is public accrual, not a public balance. Available credit becomes private only because cumulative spending is kept in a separate private checkpoint chain.