Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Stakely Aztec Staking Payout

Public audit record for Stakely's Aztec sequencer reward distributions to its delegators.

What this repo is

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.

Why a payout tool exists

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.

What's in runs/

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.

How to verify a distribution (without trusting us)

Everything needed to re-derive a payout is in the audit JSON:

  1. Open epoch-<from>-<to>-<runId>.json. The rewardConfig snapshot and checkpointsProposed give the total reward (checkpointsProposed × sequencerRewardPerCheckpoint); transfers[] is the per-delegator breakdown.
  2. Pick any row in attributedCheckpoints[] and look up its txHash on a block explorer. The propose() calldata's signature recovers to that row's attester, confirming Stakely actually proposed that checkpoint. Only checkpoints whose header.coinbase equals the distribution wallet are counted (counted: true), which is what ties the reward to Stakely.
  3. Sum the proposals per delegator, apply the published commission, and compare to transfers[]. The numbers must match exactly.
  4. 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.

Superseded records

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 details

Operator Stakely
Provider id 47
Distribution wallet PENDING

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors