05 · Deployments & on-chain artifacts

Every value here is real, on Sui testnet, and sourced from DEPLOYMENTS.md and the package source. Explorer links use https://suiscan.xyz/testnet/. Built with Sui 1.73.1.

Package lineage (v1 → v2 → v3)

Ballast was upgraded in place twice. The type origin never changes, so all AgentIdentity and BallastCap objects survive every upgrade. Only the call target advances.

Version Role Package ID Publish/upgrade digest
v1 Type origin (objects keyed here) 0xe12fe8ef…d3eadf uGrs6CXm…
v2 DeepBook relink 0x2359bc78…04be85 FwqPZ4oS…
v3 Current call target, adds real Nautilus attestation 0xb8843ab9…35511 HdogX6hx…

v3 adds trading::execute_trade_attested and attestation::verify_nautilus, and keeps the mock verify and execute_trade byte for byte, so the mock demo path cannot regress.

DeepBook (testnet)

Item Value
Type origin 0xfb28c4cb…bec6982
Call target (pool-accepted, linked by v2/v3) 0x22be4cad…09371a3c
v1-linked target, rejected by live pools (abort 11) 0x74cd5657…
SUI / DBUSDC pool (demo market) 0x1c19362c…ea7163a5

Coin types: SUI = 0x2::sui::SUI · DBUSDC = 0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDC::DBUSDC · DEEP = 0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP (unused, since trading runs pay_with_deep = false).

Shared demo objects

Object ID
AgentIdentity 0x28eb8752…d93dd197
BalanceManager (owned by deployer) 0x589a3060…7224d9d7
Honest capability (reused across runs) 0x1f80803d…42e54ab2

Nautilus attestation artifacts

Item Value
EnclaveConfig (shared, trusted PCRs) 0xd41be8d6…45ef781
Cap<BallastEnclave> (deployer-owned, for update_pcrs) 0x5ac2d8c9…e94f187dd
Enclave<BallastEnclave> (registered TEE key) 0xc2a17908…51ba1
Attested enclave public key 389fb0ebd4db1e2eb3e5fbdac9903ff852feb1f09fd445186a980b45bfd659f4
PCR0 = PCR1 d2f558244d778dc8c8553f3a5a10adf3e2fd146bd02e4f7b928af6906bd303dff0d6899f5b4b571f9fdaa75c5b101582
PCR2 21b9efbc184807662e966d34f390821309eeac6802309798826296bf3e8bec7c10edb30948c90ba67310f7b964fc500a
EIF image 105 MB, sha256 815308eb5314b640cd9539951e96d6f2fbfd706a57095edc1e43b17094b28e21
Enclave host (now torn down) http://52.3.234.171:3000

Transaction receipts

Real Nautilus attestation (v3)

Step Digest Result
init_attestation (registers expected PCRs) AbSfMc54… created EnclaveConfig + Cap
register_enclave (AWS cert chain + PCR check on-chain) 3LRQyhW3… created Enclave<BallastEnclave>; pk stored == live pk
execute_trade_attested<SUI,DBUSDC>, enclave-signed SELL of 1 SUI 2aPiwNyN… success, filled; reputation 5→6; TradeExecuted
Forged signature, bogus 64-byte sig vs the same Enclave DMUp8tHg… abort code 1 EAttestationFailed, rejected before enforce/DeepBook

Mock-path non-regression on v3

Action Digest Code
Rogue: over-spend 3qoLuTxQ… 5 ESpendExceeded
Rogue: over-leverage 3MaWcQF3… 4 ELeverageExceeded
Rogue: disallowed market 8nASLDer… 3 EMarketNotAllowed
Rogue: after revocation 8kJJbnAJ… 1 ERevoked
Honest: gated SELL fill BnfiqJcp… success, rep 4→5

Earlier real runs (same package family)

Action Digest Note
v2 SDK honest fill FMLhBke5… rep 3→4
v2 BalanceManager deposit (2 SUI) 6zGc4W1G… funds the fill

The dashboard generates fresh real digests on every honest or rogue run. The tables above are the canonical recorded receipts. DEPLOYMENTS.md additionally records the original v1 CLI-driven aborts and the first SDK-era v2 rogue set.

Honesty notes