Midgard
Contracts
All protocol smart contracts deployed on Cardano pre-production. Verify addresses, inspect UTxOs, and trace the full deployment history.
01Contract Topology
Thirteen validators. One protocol.
All thirteen Aiken validators shown here for architectural completeness. Hub Oracle is the single source of truth referenced by every script. The Operator Directory (Active, Registered, and Retired) tracks the live operator set and is referenced by Scheduler, State Queue, and Settlement. The fraud proof system (amber) lets any observer challenge a committed block via a verifiable computation thread. Script addresses and state anchors for the seven core validators are detailed in the sections below.
02Script Addresses
Seven contracts. One protocol.
Hub Oracle
Central protocol registry. Tracks active operators, genesis parameters, and the current protocol version.
addr_test1wp7q…4qpcnu const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wp7quas603…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); State Queue
Singly-linked queue of committed L2 blocks. New blocks append to the tail; the oldest block folds into confirmed state first.
addr_test1wqkh…gse5ey const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wqkh8medga…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); Scheduler
Manages operator shift assignments and advances the active slot window to coordinate block production.
addr_test1wr7r…lpwnsg const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wr7r59z05h…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); Deposit
Handles L1 → L2 deposits. Funds remain locked on L1 until the deposit is confirmed in the state queue.
addr_test1wpuz…8mw2hg const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wpuzy7pa0a…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); Withdrawal
Processes L2 → L1 exits after the associated block passes the fraud-proof window.
addr_test1wrfv…24ey8j const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wrfvqj3tn2…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); Tx Order
Enforces deterministic transaction ordering within each committed block before it is merged.
addr_test1wryh…xrwz0g const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wryh5c33n2…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); Settlement
Finalises L1 fund distribution when a merged block carries non-empty transaction, deposit, or withdrawal roots.
addr_test1wquq…2rdhyg const res = await fetch(
'https://cardano-preprod.blockfrost.io
/api/v0/addresses/addr_test1wquqs7cl5z…/utxos',
{ headers: { 'project_id': API_KEY } }
);
const utxos = await res.json(); 03State Anchors
Root NFT UTxOs.
Each NFT UTxO anchors live protocol state on-chain and is never destroyed only consumed and re-created by validators during normal operation.
6 anchors
04Reference Scripts
Validator deployment transactions.
Each transaction deployed one validator as an on-chain reference script UTxO making the script reusable without re-submitting it in every transaction.
These transactions also appear in the deployment history below.
6 scripts
05Protocol Initialization Sequence
Genesis deployment timeline.
The exact sequence of on-chain events that bootstrapped the Midgard protocol on Preprod from the initial deployment of root state anchors to the first L2 state commitments.
25 April 2026
9 events · T+17m
-
Protocol init / root deployment Genesis
17:27Z -
Operator registration
17:30Z -
Operator activation
17:32Z -
-
Scheduler advancement
17:37Z -
State commitment 1st block
17:38Z -
State commitment 2nd block
17:40Z -
State commitment merge
17:43Z -
State commitment merge T+17m from genesis
17:44Z
Ready to build on Midgard?
SDK · Docs · Community