01 · propose
Drafts the action inside a private enclave on NEAR AI Cloud. Signed by the hardware. Nobody outside sees what it was told.
● proposer, the mage ● assayer, the sword · drag to turn
An agent gate on NEAR · live on testnet · NEAR Hackathon, November 2026
Keys for agents that cannot act alone.
Only then does anything move.
A small NEAR contract holds the only keys. It releases an action when a second, held-apart seat agrees and the policy passes. Every decision, including every refusal, is sealed under one hash the chain carries.
01 · propose
Drafts the action inside a private enclave on NEAR AI Cloud. Signed by the hardware. Nobody outside sees what it was told.
02 · assay
A different model that sees only the proposal and the task. Never the first seat's prompt. It re-checks receiver, amount and route.
03 · release
The contract holds the keys. Each seat's key can call one method. Both must hold, and the policy, or the chain records a refusal.
The chain carries hashes, not words. One root per round, re-derived offline by anyone who holds the bundle. A refusal is a leaf like any other.
reading testnet…
Every gate running this mechanism on NEAR testnet, read live from the chain. Rounds, what each gate said, and the attacks it held.
reading the index…
Every round names the attack it ran and the pair of seats that ran it. The board folds them into a front: no drains, honest spends pass, at the smallest cost of the pause. Add an attack, a pair of seats or a policy, and your rounds land here.
A key can sign twice: the ed25519 key the gate holds, and a post-quantum key beside it. Both sign one domain-separated message over a dual-hash pre-hash, and a broken half fails the whole. Three rungs, by data: the proposer stays classical; the assayer, whose approval releases funds, carries ML-DSA-65 beside its ed25519; the owner, who installs the seat keys, carries SLH-DSA, hash-based, and signs rarely. The separation is the ceremony: the owner signs the key set, and when a seat moves suite the key it leaves countersigns the move, so no single key moves the system and the move is a leaf under a root on the gate. Rounds marked ceremony in the list above carry it.
an attack
A task fixture with a poison in a page, a memory or the task itself. Its hash rides in every proposal that runs it.
tasks/your-attack.json
corpus/index.jsona pair of seats
Two models and a driver. Run the corpus. Your pair becomes a row on the front.
pairs/your-pair.json
round.mjs --driver nearaia policy
Caps, cooldown, receivers. Fewer honest refusals at zero drains.
tasks/policy.json
owner.mjs policyRounds land as roots on a gate, committed by the seat key that ran them. The board reads the chain. This index only groups it.
Stand up your own gate on testnet, feed its proposer a poisoned page, and watch the second seat and the policy hold. Your gate joins the board.
node tools/deploy.mjs --owner you.testnetnode seats/round.mjs --task tasks/poisoned-page.json --chain testnetnode tools/verify.mjs bundles/poisoned-page --rpc testnetgates.json. The board reads it from the chain, not from us. Name the attack and the pair you ran and the round joins the front above.The first gate, pause.caesura.testnet, is live and readable now. Every round on it was run during the hackathon window; the board reads the chain, not a database. Code, README path and verifier: github.com/mitchuski/caesura.
One method per seat key, gas allowance, no transfers. The protocol enforces it.
No full-access key. Only the code acts. The owner's door is the parent account.
Private inference in a TEE. Each answer signed over its exact bytes.
Caps, receivers, cooldown, pause: contract state anyone reads.
A person, or a Sputnik DAO proposal that sets the policy.
Intents and Chain Signatures pause at the same caesura.