Skip to content

Docs

How to run Accord, what it claims, and the limit beside each claim.

cheapest first

Three ways to check it

make verify DEAL=<agreement>   # read-only, no account, no key
make sandbox                    # full flow on a local node; jobs mocked and labelled
make demo                       # full live loop on testnet, under two minutes

What the agent's key can and cannot do

  • It can call one method, act, on one account: the agreement it works for.
  • It cannot attach NEAR, transfer NEAR, add or delete keys, deploy code or call any other contract.
  • It spends gas from a fixed allowance set when the buyer installs it.
  • One buyer transaction, revoke_agent, ends it; a canary request or five refusals in an hour do the same.
  • It cannot change the terms, the recipient, the amounts or the evidence.

Claims and their limits

We claimBecauseLimit, stated next to it
Each company's mandate is readable only inside attested enclavesThe browser encrypts the mandate to a key derived from a seed generated inside the Sealed Table's enclave, bound to its release build and readable only by runs an agreement requests or that publish the key's public half; the chain holds the ciphertext and a commitment hash; the two negotiators run on NEAR AI Cloud models in TEEs, and the gateway's and the model's attestations are verified with a fresh nonceUnder the hardware's trust assumptions (Intel TDX, NVIDIA confidential computing) and OutLayer's keystore governance. The deployer owns the seed and the factory account, and could rebind the seed to another build or request extra runs. Prompts reach the model through NEAR AI's attested gateway over TLS (TLS binding is not checked from inside the job), unless end-to-end encryption to the model shipped (2.3b). The browser trusts the code the app serves; the CLI is the alternative. The ciphertext stays on chain. The final terms reveal that each side accepted them, as any signed deal does. A negotiator can concede in words; code checks the numbers
The approved terms are the agent's only authorityThe agent's only key is a function-call key on the agreement's own account that can call `act` and nothing else; `act` refuses any payment whose item, evidence, amount or recipient differs from the terms both companies approvedThe agent's judgement is bounded, not protected: it can still be fooled into asking. Attestation proves which code produced the terms, not that the deal was good; people decide that when they approve
Payments go only to the authorised recipientThe recipient is a NEAR account listed in a file on the vendor's domain, fetched inside an enclave; the vendor's settlement authority approves it on chain and the buyer accepts it; a change needs all three again and a 24-hour delayAuthorisation proves control of the domain and the authority's approval, not that the company legally exists. A legal KYB check is a later integration
Revoking ends the agent's authority in one transaction`revoke_agent` marks the agent's key revoked, so the contract refuses it from that receipt on, and deletes it from the agreement account in the same transaction; the account has no other key, so after the deletion lands (about one block) anything the agent signs is rejected by the network before it reaches the contractA payment already made stays made, and it went to the authorised recipient at the approved amount. A call that reached the chain before the revoke still runs, with every check. Revoking never cancels what the vendor has earned: an eligible payment stays claimable by the vendor
Negotiation is private; settlement is publicMandates and the transcript stay inside enclaves; only the terms, commitment hashes, a transcript hash and attestation references leave; the commercial terms document is encrypted to the two partiesThe enforced schedule (amounts, dates, recipient) and every payment are public on NEAR, as with any stablecoin payment
A market-making agreement's payment becomes eligible only when the agreed observations pass, unless the buyer approves an exceptionEach slot's time is drawn inside the observer's enclave from a seed generated there; the observation is taken at the first NEAR mainnet block after that time, signed by the observer's key, and checked by the contract against the agreed spread, depth and two-sided quoting; anyone can recompute it from an archival nodeA market-making agreement's observer measures the venue's liquidity, not the market maker's own orders. The deployer owns the observer's seed and could rebind it to a build that reveals slot times in advance. A slot nobody polls in time counts as unobserved, and a period that unobserved slots leave undecided, or that has conflicting observations, goes to the buyer, not to payment