Developers
Verify it, call it, read the data
Everything a reviewer or an integrator needs, kept apart from the holder dashboard. Nothing on this page moves funds.
Verification tools
- Evidence pack and call verifierRe-check KEYHOLE on mainnet with no wallet: public RPC and attestation reads, a 37-check call verifier, tamper tests, and the lien lookup.
- Verification pathSeven checks from the contract to the enclave, each with the command or the page that runs it.
- Attack boardAttempts to move a key's value without the holder, with the refusal the enclave returned for each.
- Source archiveOne tarball cut from one commit, with its sha256, so the code you read is the code that was published.
- AtlasEvery chain with a record, with the transaction, dry run or settled order behind it.
- Holder checkProve you hold a key with a read-only signature. No money moves.
- Ask privatelyAsk a question about KEYHOLE and get an answer from an attested model.
- Demo vaultA read-only replay of a real mainnet session.
Your own calls (balance reads, swaps, withdrawals) are verified from My proof in the dashboard.
Enclave and attestation
Reading the passive health check…
- Hardware
- Intel TDX, attested through OutLayer
- Live worker build (OutLayer registry)
- Reading the registry…
- Publish transaction (repository pin)
- GXZtL6hgscWU…alt ↗
- Keys contract
- keyhole-devmo.nearalt ↗
Each call carries a TDX quote that names the worker build it ran. The hash above is read from the OutLayer registry when the page loads, so a newer publish shows up without a site update. Re-check any call with the verifier above or with ./verify.sh <call_id>.
Agent API demo, quotas and holder caps
Agent API · holder caps as policy
Demo · one shared NEAR Intents agent, $0 balance. Dry quotes only: it shows the policy the enclave would install for a holder, nothing is moved.
KEYHOLE tier caps are written into a NEAR Intents Agent API policy, so the agent's own wallet refuses what the key would refuse. Demo partner deployment on mainnet; quotes are dry and the agent holds no funds.
APIs and MCP
| Method | Path | What it does |
|---|---|---|
| GET | /api/health | Enclave availability, read passively. It does not spend compute. |
| GET | /api/prices | Public price book used for the USD lines. |
| GET | /api/tokens | The token list NEAR Intents can swap. |
| POST | /api/oneclick | A dry 1Click quote. Nothing is signed and nothing moves. |
| GET | /api/agent?r=network|quotas|policy | Agent API reads, through the server key. Swaps there are dry quotes only. |
| POST | /api/worker | The signed worker call {op, auth}. Every op is authorised by the holder's own signature or session. |
The CLI and the MCP server use the same signed worker calls. Your key stays on your machine; only signatures are sent.
cd cli && npm ci npx tsx src/cli.ts help # the command list npm run mcp # the MCP server (stdio)
Full reference: cli/README.md.
Commands
Check a call against the published build, from a clone of the repository:
./verify.sh <call_id> # attestation, wasm hash and FastFS bytes ./verify.sh <call_id> --rebuild # also against your own rebuild
The claims checker compares every claim in the README with a live read. Its commands, including the offline mode, are in VERIFY.md.