Public audit record for Stakely's Aztec sequencer reward distributions to its delegators.
- Provider page: https://stake.aztec.network/providers/47
- Tool source: https://github.com/AztecProtocol/aztec-staking-payout
Stakely operates Aztec sequencers and shares the rewards they collect with delegators,
at a chosen commission rate. The per-delegator amounts are computed off-chain with the
aztec-staking-payout tool and paid
out once a week as a single batched transaction.
This repository is the public audit trail for those payouts. After each weekly settlement,
the tool's output is committed under runs/ so delegators — and any third party — can
verify every distribution without trusting Stakely's word for it.
Note
The tool holds no funds, deploys no contracts, and sends nothing by itself. It produces calldata that Stakely executes through its distribution wallet. The numbers here are derived entirely from on-chain data and are reproducible by anyone.
Provider commission rates in the Aztec staking protocol are baked into each delegation's
coinbase split contract and cannot be changed after the fact. To keep commission adjustable
without redeploying contracts, sequencers are configured to send their L2 coinbase rewards to
a distribution wallet Stakely controls. Each week the tool figures out which attesters earned
what over a given epoch range, computes per-delegator amounts at the current commission, and
emits a ready-to-sign batch that pays everyone in one transaction.
Each weekly settlement adds two files for the settled epoch window:
| File | What it is |
|---|---|
epoch-<from>-<to>-<runId>.json |
The audit record. Epoch + checkpoint + L1 block range, the finalized block, the rollup's getRewardConfig snapshot, per-attester checkpoint counts, the full list of attributed checkpoints with their L1 tx hashes, the commission, the per-delegator transfer breakdown, and the encoded calldata. Self-contained. |
epoch-<from>-<to>-<runId>.safe.json |
The same transactions in Safe Transaction Builder import format. |
Everything needed to re-derive a payout is in the audit JSON:
- Open
epoch-<from>-<to>-<runId>.json. TherewardConfigsnapshot andcheckpointsProposedgive the total reward (checkpointsProposed × sequencerRewardPerCheckpoint);transfers[]is the per-delegator breakdown. - Pick any row in
attributedCheckpoints[]and look up itstxHashon a block explorer. Thepropose()calldata's signature recovers to that row'sattester, confirming Stakely actually proposed that checkpoint. Only checkpoints whoseheader.coinbaseequals the distribution wallet are counted (counted: true), which is what ties the reward to Stakely. - Sum the proposals per delegator, apply the published commission, and compare to
transfers[]. The numbers must match exactly. - Re-run the tool with the published config and the same pinned
--from-epoch/--to-epoch. For a fixed epoch window the result is deterministic — you should get byte-identical numbers.
The accuracy guarantees (epoch-aligned windows, L1-finalization gate, protocol-derived reward, coinbase-gated attribution, all-or-nothing proposer recovery, full determinism) are documented in the tool repository.
This repository is append-only: audit records are never rewritten or deleted. Occasionally a settlement is computed and its audit record committed here, but the payout is never proposed or executed — so no on-chain payment corresponds to it. This happens when a run fails after writing the audit record but before the Safe transaction is created; the epochs it covers are then paid by a later run instead.
Executed payouts are distinguishable from superseded records on-chain: an executed payout has a matching Safe transaction from the distribution wallet, a superseded record has none.
| Superseded record | Superseded by | Reason |
|---|---|---|
runs/epoch-2327-2588-mtr0i9ea-a8ea72.json |
runs/epoch-2327-2591-mtr4dib6-e1dc56.json — Safe transaction nonce 12 |
The run of 2026-09-07 failed at the publish step (the push to this repo was rejected after a manual edit had diverged main), which happens before any Safe transaction is created. No payment was ever made for this record. Epochs 2327–2588 are fully contained in, and paid by, the superseding 2327–2591 payout. |
| Operator | Stakely |
| Provider id | 47 |
| Distribution wallet | PENDING |