Overview
TNT is distributed via a one-time migration from the legacy (Substrate) chain to Tangle’s EVM deployment.
The canonical distribution inputs are produced from an audited snapshot and published alongside the deployment (Merkle root, totals, and carveouts).
Snapshot (legacy chain): block 8116528 at 2025-12-10T19:12:10Z (hash 0xcdbe79d8cdedd544dbbe38bcc754c1d5f406dd834884268c7264fd06d6d7be37).
To verify:
- Snapshot metadata is checked into
dapp/scripts/migration/tangle_migration_snapshot_8116528.json. - You can independently query the legacy chain RPC for the block hash at
8116528(e.g.chain_getBlockHash(8116528)).
What’s Included
TNT distribution is built from three artifact types:
- Substrate claims (SS58): a Merkle tree of
(pubkey, amount)entries, claimed on EVM viaTangleMigrationusing an SP1/ZK proof of key ownership. - EVM claims (0x…): an explicit recipient list used for a batch airdrop distribution.
- Carveouts: allocations intentionally removed from the claim set and transferred at deploy time.
Claimable Substrate Allocations
For Substrate snapshot holders, TNT is claimed on EVM through the on-chain migration contract:
- The claim is validated by (1) a Merkle proof and (2) a ZK proof that the claimant controls the Substrate public key.
- By default, claims are split into 10% unlocked (transferred immediately) and 90% locked in a per-recipient cliff lock until the configured unlock timestamp (commonly
deployTime + 180 days).
Carveouts (Non-Claimable → Fully Liquid at Deploy)
Some allocations cannot (or should not) be claimed via the Merkle/ZK flow, so they are removed from the Merkle tree and transferred during deployment:
- Treasury carveout: legacy Substrate module accounts (pubkeys starting with
modl…) do not have private keys, so they are non-claimable and are transferred to the EVM treasury recipient at deploy. - Foundation carveout: the foundation allocation (
tangle-foundation, ≈15.04M TNT) is transferred to a designated EVM recipient at deploy and is fully liquid at launch.
Configuration Notes
The lock configuration (unlock timestamp and unlocked/locked split) can be configured before the first claim. After claims begin, parameters are fixed to prevent changing terms mid-stream.
Some legacy pages and charts referenced Substrate-era “genesis allocations” and A/B vesting schedules. Those were specific to the legacy chain and are no longer the source of truth for the EVM migration distribution.
Distribution Table
| Bucket | Amount (TNT) | % of Total | Mechanism | Claimable | Launch Liquidity |
|---|---|---|---|---|---|
| Substrate migration claims (SS58) | 51,244,581.812207 | 46.90% | Merkle + ZK claim (TangleMigration) | Yes | Default: 10% unlocked / 90% cliff-locked |
| EVM claims (0x...) | 1,125,776.519168 | 1.03% | Batch distribution | No (sent to recipients) | As configured for the distribution |
| Treasury carveout (legacy module accounts) | 41,844,468.761091 | 38.30% | Deploy-time transfer to treasury recipient | No | Fully liquid at launch |
| Foundation carveout (tangle-foundation) | 15,040,809.826744 | 13.77% | Deploy-time transfer to foundation recipient | No | Fully liquid at launch |
| Total | 109,255,636.919212 | 100.00% | Snapshot-distributed TNT (migration + carveouts) | ||