Skip to main content

Deployments

:::info Preprod only, mainnet next The escrow, the reputation badges and the job escrow are deployed on Cardano's preprod test network (October 2026). They are not deployed on mainnet yet: until they are, campaigns on mainnet use manual distribution only, badge claims stay closed there, and jobs on mainnet are paid directly by projects. :::

ContractNetworkStatusRecord
Escrow 0.1.0Preproddeployed, verified against the chaindeployments/preprod.json
Reputation badges 0.1.0Preproddeployeddeployments/preprod.reputation.json
Job escrow 0.1.0Preproddeployeddeployments/preprod.jobs.json
EscrowMainnetnot deployed yetdeployments/mainnet.json once deployed
Reputation badgesMainnetnot deployed yetdeployments/mainnet.reputation.json once deployed
Job escrowMainnetnot deployed yetdeployments/mainnet.jobs.json once deployed

Each record is written by the repository's deployment script after every confirmed step, committed, and read back from the chain before Dyma UTXO uses it. The values below are those of the records in Dyma-IO/dyma-contracts-cardano.

Preprod escrow​

ItemValue
Built fromcommit 6f56695f0e981756bd1358d19a5624a00da037a5, Aiken v1.1.24+bacbeb3
Seed (parameterises the registry)3d8344eff37c297060d634b47132fb94588976dd7c05077b7db6b78c975a21a7#0
Registry policy id097c165513145549ec3d36549c6b2c0f46ecf19d4c726d10eefa0a97
Registry addressaddr_test1wqyhc9j4zv292j0v85m9f8rt9s85dm83n4x8ymgsamaq49cmyrhrh
Registry UTxO at deploymentb81cfc28…#0
Escrow version for new campaignspolicy 27d9f6b54b546f3d3445675e5c8f2fd1a89f7c07d7608f658a635c26, state 2cca21c453a87cb4bfa256ee47f254c23118d021dfede459470aa06f, shard 05d153f53b3bfb2db4c0874c66b73ca3c9f9d07ebdc74d427bcf8e1b
Reward accounts of campaign_payout and campaign_adminregistered in cbd1f141…

Scripts​

Each script is stored once as a reference script, in an output at the registry address.

ScriptHashSize (bytes)Reference script UTxOAddress or reward account
registry097c165513145549ec3d36549c6b2c0f46ecf19d4c726d10eefa0a975,99146837145…#0addr_test1wqyhc9j4zv292j0v85m9f8rt9s85dm83n4x8ymgsamaq49cmyrhrh
campaign_policy27d9f6b54b546f3d3445675e5c8f2fd1a89f7c07d7608f658a635c265,5861793c60e…#0—
campaign_state2cca21c453a87cb4bfa256ee47f254c23118d021dfede459470aa06f14,734873b101b…#0addr_test1wqkv5gwy2w58ed9l5ftwu3lj2nprzxxsy807mezegu92qmc07805u
campaign_payout6a2f5f0916151863e645c77115a3f25559de6ba4e0ac7fef450667be13,2282eca0f99…#0stake_test17p4z7hcfzc23sclxghrhz9dr7f24nhnt5ns2cll0g5rx00spdxj02
campaign_admin6adb880c11fce51c0820465b4abf275aa9bab35943ef1b72c951457710,74364c334b8…#0stake_test17p4dhzqvz87w28qgypr9kj4lyad2nw4nt9p77xmje9g52acxy3l9l
campaign_shard05d153f53b3bfb2db4c0874c66b73ca3c9f9d07ebdc74d427bcf8e1b9,327a4c7a4d1…#0addr_test1wqzaz5l48valktd5czr5ce4h8j3un7ws067uwn2z008cuxc4f3tvf

Configuration​

The registry datum as deployed. Preprod roles are software wallets made for testing; on mainnet, governance and guardian keys are hardware wallets, and the registry stores their payment key hashes.

FieldValue
Governance2-of-3: 1862b21748edc9ee1bc77c2ab00924199095d50ac178f5bf36ee5557, 8e478fa7613e25c3237ffd35a0d0ce43b8fcdd2ee5af0c43e07359d4, dbd619a6726df238a7d6ae4e2f47d357f26bbf60d8dc172a0fa3eac5
Guardian2-of-3: fc7744c31d70da3ec5f2cecff20de0ff0452b45e22d2f103dd6bf185, 37f5c2c2ce314ecfd04a602b0ff7b13dc8735d66c4cf9a371b647e1a, cc7d1edcbf1ba28ab58d80205d81404fae1d2f5ea840fac6261ddb45
Operator (payment key hash)b2cf19b3109268fc3bd44f5250b2cd7da5a93d9a9e9c7b8ce0b239f5
Pauser (payment key hash)553ab0107a4ff8a1a16981e57af9bd5112738ef4e1130135f581fc6d
Ticket key (Ed25519 public key)31c9a648d3d4eb27ca1943dda7e972c735736d7b3e5111a4e472fe9b5c6ed6bf
Treasuryaddr_test1qzf0yt2drnjdhyfe7ahfjak8amvfq7ttrepjtcavvpykxr472f7pfm6wywlcql8df38aamygw6yuy0rhz58rcljelyzsapvz6g
Fee ceilingmax_fee_bps 1000 (10%)

Preprod uses short limits, so a whole campaign can be tested quickly. The defaults of the mainnet configuration, from the runbook, are shown next to them:

LimitPreprodMainnet configuration
Challenge window5 minutes to 7 days1 hour to 7 days
Commit window10 minutes to 90 days5 to 90 days
Re-commit floor after a rejection5 minutes3 days
Claim window10 minutes to 365 days30 to 365 days
Dispute timeout15 minutes3 days
One pause1 hour at most1 day at most
Entries per commit100100

Preprod reputation badges​

ItemValue
Built fromcommit b505ecfcfb17a6f3bd8688e6912d96c9f20b5310, Aiken v1.1.24+bacbeb3
Seedf09710d4208e07c3ad559792bca2aff72e17e1773d2a3eb2581923ae4f631ab2#1
Policy id (also the script hash)f06ba45c6e2f4957b3002536ddcf66111d12191ba1962c3d2aae90fe
Address (configuration and badge references)addr_test1wrcxhfzudch5j4anqqjndhw0vcg36yserwsevtpa92hfplsx6xc3t
Script size5,606 bytes
Configuration UTxO at deployment0366ead8…#0
Reference script UTxOca454fca…#0
Governance2-of-3, the same keys as the escrow's governance
Attester (Ed25519 public key)ac8e6779880a0b01f1d57f2a210070100471b55af9bd9d6a98b5433c46490d95
Pausedno
CollectionDyma Reputation
TierNameFrom (reputation)Boost
1Explorer250x1.05
2Contributor1,000x1.10
3Builder3,000x1.20
4Trailblazer7,500x1.35
5Champion15,000x1.50
6Legend30,000x1.75
7Mythic60,000x2.00

Preprod job escrow​

The escrow of Dyma Jobs: one script, parameterised by a seed, is the job tokens' policy and the address of the configuration and of every job.

ItemValue
Built fromcommit ca03428914b20353ea3fafb91c291c82d8f56c52, Aiken v1.1.24+bacbeb3
Seed97f4f869d7a2a6a28c10250f3f73e792f6f38ace1a386d37e66c2e000e630df4#2
Policy id (also the script hash)4c97ca97dd722041c881a8ebd899789de58dba0b63fe7e4acb652860
Address (configuration and jobs)addr_test1wpxf0j5hm4ezqswgsx5whkye0zw7trd6pd3lulj2edjjscqvxdgcc
Script size8,638 bytes
Configuration UTxO at deployment6ff96d5f…#0
Reference script UTxO08fba9c9…#0
Governance2-of-3, the same keys as the escrow's governance
Attester (Ed25519 public key)ddccc6b80fe532016d076e94246ef170ef74cc3955093dbe5a14a49713c59e23, a key of its own
Treasury (receives the fee)the escrow's treasury, addr_test1qzf0yt2d…sapvz6g
Highest fee a job may set10% (1,000 basis points)
Pausedno

How a deployment is verified​

  1. Reproducible build. aiken build --trace-level silent at the recorded commit, with the recorded Aiken version, gives the committed plutus.json; the deployment refuses a blueprint that differs, and CI fails when the committed one differs from a fresh build.
  2. Read back from the chain. scripts/deploy/verify.mjs --network preprod compares the script hashes with the recorded commit's blueprint, then reads the reference scripts, the registry UTxO and its datum field by field, and the reward accounts.
  3. Registered in Admin. Dyma UTXO's Admin registers the record and checks it against the chain again: the registry NFT at the registry address and every reference script for the escrow (Escrow → Cardano), the configuration NFT and the reference script for the badges (Settings → Reputation). See Escrow operations.

What a mainnet deployment needs​

The same procedure, from deployments/mainnet.config.json: the governance and guardian keys of hardware wallets, Dyma UTXO's operator, pauser and ticket keys, the treasury and the mainnet limits. The deployment stores about 262 ADA of reference-script deposits at the registry address, under governance; about 300 ADA in all with the registry, the reward accounts and the fees. The procedure is in the repository's docs/RUNBOOK.md.