Choosing
Pick the target in the dashboard under Settings → Record anchoring. The Starknet option is enabled only when the deployment has the Starknet registry, relayer and record key configured. The setting applies to runs started after the change. Receipts already issued keep the chain they were anchored on. The API response does not name the chain. To see where a record went, check the host ofexplorerTx, or anchorChain in the transcript JSON.
Fallback
If Starknet is selected but not available on the deployment, runs anchor on Base, and Settings shows a warning while that is the case. A run also anchors on Base if the enclave build that signed it produced the Base digest instead of the Starknet one. Settings does not flag that second case, so checkanchorChain when it matters.
Encryption
The encrypted record holdsrunId, transcriptRoot, outputHash, hostdata, the transcript URL and the judge address. It is encrypted with AES-256-GCM under a per-record key, derived with HKDF-SHA256 from a master key Chance holds, using the runId as salt.
This is custodial: Chance can decrypt a record for its owner. Chain observers see only ciphertext. The judge signs the commitment, not the ciphertext, so decryption checks that the recovered fields hash to the stored commitment.
Verification
Checking a Starknet receipt works the same way as a Base one (see Receipts), with two differences. The signature covers(Starknet chain id, registry, commitment), and the onchain check asks the Cairo registry for the commitment. The transcript JSON carries starknetChainId, starknetRegistry and commitment for this.