Live on Solana devnet · evaluated inside an Arcium MXE
Spending limits for AI agents that nobody can read and anybody can check.
GENKAI keeps an agent's policy encrypted inside an Arcium multi-party computation. The cluster decides allow, deny or escalate without decrypting a single limit and records its verdict on chain. Every decision leaves a signed receipt, and this page checks receipts in your browser with the same code as the genkai command line.
Nothing you paste is uploaded. The page's only network requests are account reads to the Solana RPC endpoint you choose.
The deployment
These are the public values a verifier pins. They are read live from devnet and compared with the published manifest.
Reading devnet…
Verify receipts
Load a sample or paste your own. A sealed receipt is checked against a trust anchor and the DecisionRecord the cluster wrote on chain. A plaintext receipt is replayed against its policy.
How a decision is made, and proven
-
The agent asks
An agent requests a transfer from the GENKAI gateway with its API key. It never supplies its own spending state, the vault or the clock. The gateway's ledger does.
-
The cluster decides on ciphertext
The request and the encrypted policy go to an Arcium MXE. The nodes evaluate the policy circuit without any of them seeing a limit, and the Arcium program checks their answer before GENKAI's callback writes it to a DecisionRecord.
-
The operator signs a receipt
It binds the policy commitment, the request, the ledger state, the verdict, the DecisionRecord, the previous receipt's hash and, for an allow, the exact transaction that was signed.
-
Anyone verifies
Pin the program, the PolicyRecord and the commitment. The signature, the chain and the bound transaction are checked offline, the verdict against the record on chain. The policy itself is never revealed.
Hosted verification API
The same verifier runs behind this site as a public endpoint: no key, no state, on-chain attestations read from devnet. Responses share one envelope, { success, data, error }.
ORIGIN=https://this-site
curl -s $ORIGIN/examples/devnet/gateway/receipts.json -o receipts.json
curl -s $ORIGIN/examples/devnet/trust.json -o trust.json
jq -n --slurpfile r receipts.json --slurpfile t trust.json '{receipts: $r[0], trust: $t[0]}' \
| curl -s $ORIGIN/v1/chains/verify -H 'content-type: application/json' -d @-
POST /v1/receipts/verify- One receipt with
policyortrust, and optionallyexpectedPreviousHash. POST /v1/chains/verify- An ordered run of one agent's receipts: up to 100 when checked on chain.
GET /healthz- Liveness, and whether on-chain checks are enabled.