Identity model
This is a placeholder for a longer identity-model primer. The summary below is the short version. The full page (signing flows, rotation paths, slashing scope per key, where each address shows up in keystore JSON) is being written.
A single sequencer is identified by several different addresses, each with a different job. Confusing them is the most common cause of "I'm not getting rewards" or "I can't withdraw my stake" complaints.
The five-second mental model
- The attester is the validator's identity. It signs, it gets slashed.
- The publisher pays L1 gas to do the attester's work.
- The coinbase receives the block rewards.
- The withdrawer is the only one who can move your stake.
- The fee recipient is reserved for future fee revenue (not active yet).
Providers add two more (provider admin, provider rewards recipient) for managing the splits contract; see below.
Address roles in detail
| Role | Type | Purpose | Slashable? | Rotatable? |
|---|---|---|---|---|
| Attester | BLS public key | Signs attestations and proposals. Identifies the validator on-chain. | Yes (offenses listed in Slashing) | No (fixed for the life of the validator) |
| Publisher | L1 EOA | Pays L1 gas to submit checkpoints, proposals, and attestations. Holds ETH only. | No directly, but a publisher that runs out of ETH causes missed proposals which slash the attester. | Yes (edit publisher config and restart) |
| Coinbase | L1 EOA | Receives sequencer block rewards. Configured per attester in the node's keystore. | No | Yes (edit keystore and restart) |
| Fee recipient | L1 EOA | Currently unused by the protocol. Reserved for future transaction-fee revenue. | No | Yes |
| Withdrawer | L1 EOA | The only address authorized to initiate stake withdrawal. At withdrawal time the withdrawer can send unstaked AZTEC to any destination (it does not have to be the withdrawer itself). | No | No (set at registration) |
| Provider admin | L1 EOA | Provider-only. Manages provider configuration on the Rollup contract. | No | Yes |
| Provider rewards recipient | L1 EOA | Provider-only. Receives the operator's commission share when delegators claim. | No | Yes |
Which address gets which kind of reward
This is the part that trips people up.
- Block rewards (per checkpoint you propose) go to your coinbase.
- Stake stays at the attester address; only the withdrawer can move it.
- Future transaction fees will route to the fee recipient (currently unused).
- Provider commission routes through the splits contract to the provider rewards recipient.
Each of these is configured in a different place (keystore for coinbase, Rollup contract for withdrawer, splits contract for provider). Misconfiguration of the coinbase is the most common cause of "I'm not getting rewards" complaints; see Claiming rewards.
Where to look up each address
If you have your attester address and need to find the others:
- Coinbase:
cast call $ROLLUP "getSequencerCoinbase(address)(address)" $ATTESTER - Withdrawer: visible in the GSE
Depositevent log for your attester. Easiest path: look up your attester on the staking dashboard. - Publisher: not on-chain; it is configured in your node's keystore JSON.
For provider-specific addresses, see the StakingRegistry contract at 0x042df8f42790d6943f41c25c2132400fd727f452.
Common confusions
- "I sent rewards to my coinbase but the staking dashboard still shows them pending." Rewards accrue on the Rollup contract; the dashboard shows accrued, not delivered. Claiming moves them to the coinbase wallet. See Claiming rewards.
- "I lost access to my coinbase, can I change it?" Yes. Edit the keystore on your node and restart. Future rewards route to the new coinbase. Rewards already accrued on the old coinbase are claimed by whoever still controls that address.
- "Can someone else claim my rewards?" Anyone can pay the gas to call
claimSequencerRewards(coinbase), but the AZTEC goes to the coinbase. Spending gas on someone else's claim is a community courtesy, not a security risk. - "My withdrawer was set to my exchange deposit address by mistake." The withdrawer is set at registration and is not rotatable. If the destination is wrong, your only option is to top up, withdraw later, and re-stake with the right configuration. Plan registration carefully.
See also
- Keystore management: how the keys are generated and stored locally
- Claiming rewards: claiming block rewards from the Rollup contract
- Slashing: which conditions slash the attester