This repository contains the scripts and data used to compute the initial GNOT token allocation for the Gno.land genesis block. The goal is to distribute GNOT in a fair and transparent way, proportional to ATOM, ATONE and PHOTON holdings and weighted by participation in Cosmos Hub governance.
All source data, intermediate outputs, and processing scripts are included so anyone can independently verify the resulting balances.
The total supply is approximately 1,002,461,998 GNOT, split across the following buckets:
| Bucket | Amount (GNOT) | Description |
|---|---|---|
| ATOM airdrop | 350,000,000 | Cosmos Hub ATOM holders (snapshot block 10562840, 2022-05-20) |
| AtomOne airdrop | 231,000,000 | AtomOne ATONE holders (snapshot block 6439117) |
| Contributions | 119,000,000 | GovDAO multisig, for community contributions |
| NT allocation | 300,000,000 | Newtendermint LLC + investors multisig |
| GovDAO founders | 7,000 | 1,000 GNOT per founder (7 founders) |
Each ATOM-holding address is assigned a weight based on its liquid ATOM (uatom) balance and its delegated ATOM (duatom) balance at the snapshot, modified by its vote on Cosmos Hub Proposal 69:
| Vote | Weight formula |
|---|---|
| YES | uatom only (staked ATOM excluded) |
| NO | uatom + duatom × 1.5 |
| NO WITH VETO | uatom + duatom × 2 |
| ABSTAIN / did not vote | uatom + duatom |
Each address's GNOT is then allocated proportionally to its weight relative to the total weight of all qualifying addresses.
snapshot_consolidated_10562840.json.gz— consolidated snapshot at block 10562840 (2022-05-20 08:00 PDT). Contains each address's liquid and delegated ATOM balances plus its last vote on prop 69.last_vote_pro69.json.gz— all votes submitted while prop 69 was active, sourced from a Cosmos Hub archive node (quicksync.io cosmos-hub-4).validators.json— validator token-to-share ratios at snapshot height, used to convert delegation shares back to ATOM (accounting for slashing).
The consolidated snapshot was produced using gnobounty7. See consolidate/README.md for the exact commands.
snapshot_consolidated_atone_6439117.json.gz— consolidated snapshot of AtomOne at block 6439117. Produced usinggovbox. Seeconsolidate/README.mdfor the exact commands.
- CEX, custodial, mining pool, and other non-individual addresses listed in
special-accounts.csv, are included, unless specifically stated in excluded.txt.
balances.txt.gz— the final genesis balance file, containing 3,262,505 lines totalling 1,002,461,998,378,908 ugnot. This is the direct input to the genesis block.
- Go 1.21+
jq
cd consolidate
go run .
# Produces genbalance.txt.gzCompare the output against the committed genbalance.txt.gz and the mkgenesis/balances.txt.gz.
cd consolidate
go test ./...Follow the instructions in snapshot/cosmoshub_snapshot.md to sync a full Cosmos Hub node and export state at block 10562840. Then follow consolidate/README.md to rebuild snapshot_consolidated_10562840.json.gz using gnobounty7.
Follow the instructions in consolidate/README.md under the snapshot_consolidated_atone.json section, using the govbox tool against an AtomOne genesis export at block 6439117.
consolidate/ Scripts and data for computing per-address GNOT weights
mkgenesis/ Final genesis balance file
prop69/ Raw prop 69 vote data (votes.csv, votes-unique.csv)
snapshot/ Instructions for taking a Cosmos Hub full-node snapshot
special-accounts.csv Non-individual addresses potentially excluded from the airdrop (CEX, custodial, etc.)