ΑʹThe deployment record
The ceremony ran once, at block 2,518,440 (2026-07-07). It issued 100,000,000 OBOL into the pot and one identity-token unit into the issuer, both without a reissuance token, and seeded the stability reserve. None of it can be repeated or revoked; a new deployment would be a different set of asset ids.
| Field | Value |
|---|---|
| Chain | liquidtestnet |
| Genesis | a771da8e52ee6ad581ed1e9a99825e5b3b7992225534eaa2ae23244fe26ab1c1 |
| OBOL | 814cc30aca6b188ac22accffc503e7bc4c052a8b6916e59f869f1247f87d31b6 |
| Identity token | feb3d9c9f2a9aaab816c2e93cfd4479f841b8e05596b8418ed0fd56e0b8d2e6d |
| Collateral (tL-BTC) | 144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49 |
| Issuer anchor | 2518440 |
| Quote relay | wss://relay.testnet.styx.network |
The issuer anchor is also the scan floor: a wallet indexes the chain from that height, so your
node has to be synced past it before any command works. The collateral asset is the testnet peg
asset, which your node reports as pegged_asset.
ΒʹThe oracle set
Five keys, fixed at compile time inside the vault covenant: changing the set would change the vault CMR and therefore every address in the deployment. Three of the five sign a price tick; the protocol key verifies the quote inside the covenant, the nostr key identifies the publisher on the relay.
| Slot | Protocol key | Nostr key |
|---|---|---|
| 0 | cb58a1a707702cbbe9ba172ab9bc3b83e2d91bc61b39d496b9663c37bb1b0bfa | 55408697ab1d13b9330b00c908e5d87b59482b1bcf98bbce4b56e76c5c9bb90b |
| 1 | fff79bda2df574c7c08b981ec2302b1114bf140b72a0177158af7140a99b37a6 | 3b21bac52d8920fbe5a80dc8b5b1af8e9581a8181ec77643508a519646f0402a |
| 2 | c71d4ebfa0e7b88bc188cd3227e290e5daa8dc109594830b68aabbb1d0d72261 | 66b8446d6dd79a749628f54695056028bcf7bd65a3de0fb2d8ed2caf7a8e3daf |
| 3 | 61fe5be2db7c5b6168de3f343bca8af5e3e8c82e7c6232e03bc28671335af382 | 55fe45679e0d89e262b7134d974cba09e18158b32793d91344ba20590339f541 |
| 4 | ac8e7446463ae1b5e87b0c4528a047478113decc1c8f3a0b74de67b4428e0337 | 8803ba11104216f5a07b10f0824956a00dcbcf9c877df50ffdb8df253415222d |
Per-slot freshness is visible in the explorer. The oracles have no public HTTP: they publish over the relay, and their admin ports stay on loopback.
ΓʹThe config file
Those values ship as one file, liquid-testnet.toml, which every role reads - the
wallet, the app, the keeper, the explorer. Two places serve the same bytes:
- explorer.testnet.styx.network/config
- what
deploy/join-testnet.shdownloads. - deploy/liquid-testnet.toml in the repository - the same file under a commit signed by the maintainer key.
Compare them if you like; they are byte-identical, and the record above is the same data in prose. Tampering is not much of a threat anyway: your wallet cross-checks the config's genesis against your own node and refuses to sign against a chain that disagrees, and every address in the deployment is derived from the asset ids and the oracle keys, so a wrong file produces addresses where nothing lives.
ΔʹJoining
One idempotent script writes ~/.styx: a node dir with generated RPC credentials,
your keys, the config above, and one app.toml that both the app and the CLI read.
git clone https://github.com/standardsats/styx-cdp && cd styx-cdp
nix develop
deploy/join-testnet.sh
It ends by printing what it cannot do for you, in order: start the node, wait for the sync to pass block 2,518,440, point a Liquid-testnet faucet at your funding address, run the app. First sync takes a few hours. The long way, section by section, is in TESTNET.md.
The covenants are frozen and hold the money; nobody can move it outside the rules, including whoever runs this deployment. The oracles and the relay are operated, so a stalled feed stops new operations - it cannot take collateral. Testnet coins are worthless and the deployment may be re-run without warning.