Skip to migration content
Demo environment. Balances, checkpoints and certifications are simulated.
All migrations

Northstar Migration

Certified · DemoSecurity recovery

A project-declared recovery point, a transparent policy, and independently reproducible source state.

SourceEthereum
DestinationIceRoot
Source holders
31,28130,981 included in the list
Source supply
500,000,000NST
Migration supply
465,500,000NST
Certifications
39 / 5336 required · Demo

Source checkpoint

The historical point declared by the source project.

Declared recovery point
Block 24,581,251
Checkpoint time
Source network
Ethereum · Chain ID 1
Snapshot status
Reconciled · Demo
Mode · label
Snapshot · distribution (source chain still live)
Exact block hash and source contract
Block hash · Demo fixture
0x8f23a164fe3852bc17d7ce0c5907b81ddf2e608c5ff21864e450be6d51e32b09
Source asset · Demo contract
0x1111222233334444555566667777888899990000
Token standard
ERC-20 · 18 decimals
Deployment block
18,220,410
The migration will be bound to this exact block hash, not only the block number. The project declares the recovery point and policy. IceRoot does not decide which historical state to recover.

Project-declared migration policy

A versioned policy from the fixed menu: a declared recovery point, excluded addresses, and the treatment of escrow and contract holdings.

Policy from the fixed menu

Declared Exclusion Policy v1

Exclude the project-declared exploit address

Explicitly declared for this demo policy.

Inspect policy identifier and exclusions
Policy hash · Fixture
0x93ad4f7cbb198f2a67e0d956bf803aacd20ed3fbc8a217950e25d6a73bcf1402
Excluded source address
0x5555666677778888999900001111222233334444
Contract and escrow holdings stay unissued unless their controller binds them before certification; the declared policy covers the rest. IceRoot does not adjudicate economic ownership.

Supply reconciliation

Reconciled

Every difference is accounted for, separately from the reconstructed source state.

Included in the listUnissued or excluded
Source reported supply
500,000,000 NST
Reconstructed balances
500,000,000 NST
Unexplained difference
0 NST
Contract holdings · unissued unless bound
− 31,000,000 NST
Excluded by policy
− 3,500,000 NST
Migration supply
465,500,000 NST
3,500,000 NST excluded by the project-declared address exclusion. 31,000,000 NST in 299 contract and system accounts stays unissued unless bound before certification. No unexplained difference. 31,281 source holders; 30,981 included; 1 excluded by policy.

Special addresses

Proposed handling is a review aid. The contract-holding rule and the declared policy determine inclusion.

Source addressTypeBalance% supplyPolicy result
0x00000…deadBurn address4,200,000 NST0.84%Unissued unless bound before certification
0x22223…1111Uniswap V2 pool8,450,221 NST1.69%Unissued unless bound before certification
0x33334…2222Staking contract12,100,000 NST2.42%Unissued unless bound before certification
0x44445…3333Bridge escrow5,000,000 NST1.00%Unissued unless bound before certification
Inspect address evidence and full identifiers

Burn address

0x000000000000000000000000000000000000dead

Demo evidence: the address matches the declared burn-address entry in the fixture. This label is not a decision about ownership.

Unissued unless its controller binds it before certification, under every policy. This is the protocol's contract-holding rule, not a policy choice.

Liquidity pool

0x2222333344445555666677778888999900001111

Demo evidence: the fixture classifies this address as a pool contract. No liquidity-provider ownership has been reconstructed or assigned.

Unissued unless its controller binds it before certification, under every policy. No liquidity-provider ownership is reconstructed or assigned.

Staking contract

0x3333444455556666777788889999000011112222

Demo evidence: the fixture classifies this address as a staking contract. No depositor balances, claims or destination owners are inferred.

Unissued unless its controller binds it before certification, under every policy. Depositor balances are not looked through.

Bridge escrow

0x4444555566667777888899990000111122223333

Demo evidence: the fixture marks this address as a bridge escrow. Cross-network claims, liabilities and controllers have not been determined.

Unissued unless its controller binds it before certification, under every policy. The interface does not redistribute escrowed balances.

Migration manifest

Certified · Demo

A visible commitment to the declared source, checkpoint, policy and resulting state.

Manifest root · Fixed demo identifier
0x7fa82b1d739ca680e4c590bd2a13385f91db06c47ea5a662e0e0f2ef4cb387c1
Schema
iceroot-migration-demo/v1
Reproducibility
Fixture data only
View canonical data preview
{
  "demo": true,
  "schemaStatus": "preview-not-protocol",
  "notice": "Fixture data only. No real reconstruction, cryptographic commitment, signature or destination binding.",
  "data": {
    "id": "manifest-ethereum-recovery-demo-declared-exclusion",
    "schemaVersion": "iceroot-migration-demo/v1",
    "source": "Ethereum",
    "sourceNetworkId": "ethereum",
    "chainId": 1,
    "sourceAsset": "0x1111222233334444555566667777888899990000",
    "asset": {
      "id": "northstar-ethereum-demo",
      "networkId": "ethereum",
      "name": "Northstar",
      "project": "Northstar",
      "symbol": "NST",
      "standard": "ERC-20",
      "decimals": 18,
      "totalSupply": "500000000",
      "contractAddress": "0x1111222233334444555566667777888899990000",
      "deploymentBlock": 18220410,
      "contractType": "Standard ERC-20",
      "verified": true,
      "demo": true
    },
    "checkpoint": {
      "id": "ethereum-recovery-demo",
      "networkId": "ethereum",
      "chainId": 1,
      "mode": "specific",
      "height": 24581251,
      "hash": "0x8f23a164fe3852bc17d7ce0c5907b81ddf2e608c5ff21864e450be6d51e32b09",
      "timestamp": "2026-09-12T14:31:00.000Z",
      "finalized": true,
      "demo": true
    },
    "blockHash": "0x8f23a164fe3852bc17d7ce0c5907b81ddf2e608c5ff21864e450be6d51e32b09",
    "holders": 31281,
    "sourceHolders": 31281,
    "includedHolders": 30981,
    "sourceSupply": "500000000",
    "migrationSupply": "465500000",
    "policy": {
      "id": "declared-exclusion",
      "name": "Policy from the fixed menu",
      "title": "Policy from the fixed menu",
      "description": "A versioned policy from the fixed menu: a declared recovery point, excluded addresses, and the treatment of escrow and contract holdings.",
      "version": "Declared Exclusion Policy v1",
      "hash": "0x93ad4f7cbb198f2a67e0d956bf803aacd20ed3fbc8a217950e25d6a73bcf1402",
      "recommended": false,
      "excludedAddresses": [
        "0x5555666677778888999900001111222233334444"
      ],
      "rules": [
        {
          "label": "Exclude the project-declared exploit address",
          "enabled": true,
          "available": true
        }
      ],
      "demo": true
    },
    "policyHash": "0x93ad4f7cbb198f2a67e0d956bf803aacd20ed3fbc8a217950e25d6a73bcf1402",
    "manifestRoot": "0x7fa82b1d739ca680e4c590bd2a13385f91db06c47ea5a662e0e0f2ef4cb387c1",
    "reconciliation": {
      "sourceSupply": "500000000",
      "reconstructedSupply": "500000000",
      "difference": "0",
      "contractHoldingsUnissued": "31000000",
      "policyExcludedSupply": "3500000",
      "migrationSupply": "465500000",
      "sourceHolders": 31281,
      "contractAccounts": 299,
      "includedHolders": 30981,
      "excludedHolders": 1,
      "reconciled": true,
      "status": "reconciled",
      "explanation": "3,500,000 NST excluded by the project-declared address exclusion. 31,000,000 NST in 299 contract and system accounts stays unissued unless bound before certification. No unexplained difference.",
      "demo": true
    },
    "status": "ready-for-verification",
    "disclaimer": "Demo fixture only. Hashes are fixed placeholders, not computed commitments. This is not a protocol-canonical manifest. Destination account bindings, ownership proofs and real certifications are not implemented.",
    "demo": true
  }
}
Source-state preview. Destination account bindings and controller evidence are outside this demo; no assets are issued. Hashes are fixed fixtures, not computed commitments or proofs.

Validator certifications

Each validator rebuilds the list from the same declared checkpoint and policy, with its own Connector and its own source-chain access.

39 / 53
Simulated matching reconstructions
36 required (the network’s certification quorum)
Certification threshold reached · Demo
Inspect all validator results
  • Validator 01✓ Match
  • Validator 02✓ Match
  • Validator 03✓ Match
  • Validator 04✓ Match
  • Validator 05✓ Match
  • Validator 06✓ Match
  • Validator 07✓ Match
  • Validator 08✓ Match
  • Validator 09✓ Match
  • Validator 10✓ Match
  • Validator 11✓ Match
  • Validator 12✓ Match
  • Validator 13✓ Match
  • Validator 14✓ Match
  • Validator 15✓ Match
  • Validator 16✓ Match
  • Validator 17✓ Match
  • Validator 18✓ Match
  • Validator 19✓ Match
  • Validator 20✓ Match
  • Validator 21✓ Match
  • Validator 22✓ Match
  • Validator 23✓ Match
  • Validator 24✓ Match
  • Validator 25✓ Match
  • Validator 26✓ Match
  • Validator 27✓ Match
  • Validator 28✓ Match
  • Validator 29✓ Match
  • Validator 30✓ Match
  • Validator 31✓ Match
  • Validator 32✓ Match
  • Validator 33✓ Match
  • Validator 34✓ Match
  • Validator 35✓ Match
  • Validator 36✓ Match
  • Validator 37✓ Match
  • Validator 38✓ Match
  • Validator 39✓ Match
  • Validator 40Pending
  • Validator 41Pending
  • Validator 42Pending
  • Validator 43Pending
  • Validator 44Pending
  • Validator 45Pending
  • Validator 46Pending
  • Validator 47Pending
  • Validator 48Pending
  • Validator 49Pending
  • Validator 50Pending
  • Validator 51Pending
  • Validator 52Pending
  • Validator 53Pending

Validator identities and results are fixtures. No signatures are requested, generated or verified.

Each certifying validator rebuilds the list from the declared source checkpoint and policy. They do not simply sign a file uploaded by the project.

Timeline

A visible record of the project’s declared inputs and milestones.

  1. Recovery point declared

    Project-declared block #24,581,251 and exact block hash.

  2. Snapshot reconstructed

    31,281 source holders; 500,000,000 NST reconciled.

  3. Policy published

    The declared address exclusion explains 3,500,000 NST; 31,000,000 NST in contract and escrow holdings stays unissued unless bound.

  4. Manifest certified

    39 simulated matches; the certification quorum is 36 of 53.

  5. Enter IceRoot · Upcoming

    Anyone submits the certified lines in order. Each line's IceRoot account was fixed before certification; holdings with no account stay in the unissued remainder.

    Demo milestone · No date assigned

Transparent inputs. A clear boundary.

This public preview contains fixture data. Certification demonstrates the intended verification experience; it does not approve a rollback, establish rightful ownership, or perform a migration.

IceRoot Migration · Product previewMigration design