# Probarion docs

> Guides, references and verify-it-yourself recipes for Probarion, a mandate layer that lets AI agents pay on NEAR only inside limits an owner signed.

You sign the limits in a NEAR contract, the agent pays inside them, and every payment is on chain for anyone to check.

Reviewed: 2026-11-09 · Built from: 4ab41ca1436589c22073fa842ee46f970415e3d5

Canonical page: https://probarion.xyz/docs

**Popular searches**

- [mandate fields](https://probarion.xyz/docs/concepts/mandates.md)
- [PROBARION:NoMandate](https://probarion.xyz/docs/build/errors.md#NoMandate)
- [verify --offline](https://probarion.xyz/docs/trust/verify-a-vault.md)
- [unconfirmed](https://probarion.xyz/docs/build/spend-outcomes.md)

**[What Probarion is, in one payment](https://probarion.xyz/docs/start/how-one-payment-works.md)** (New here · 5 min)

Follow one payment from the owner's mandate to the contract's decision and a record its owner can publish for anyone to check. No wallet needed.

[What is Probarion](https://probarion.xyz/docs/start/what-is-probarion.md)

**[Set up a vault and your first mandate](https://probarion.xyz/docs/start/owner-quickstart.md)** (Owner · 10 min)

Sign in with a NEAR wallet, create a testnet vault, fund it with test USDC, add an agent key and sign the limits.

**[Let your agent request its first spend](https://probarion.xyz/docs/start/developer-quickstart.md)** (Developer · 15 min)

Build the SDK from source, run one payment on testnet and branch on the seven statuses `process()` returns.

**[Check it without a wallet](https://probarion.xyz/docs/start/evaluate-in-5-minutes.md)** (Evaluator · Don't trust us)

Ask the contract in your browser, then run the verifier on a signed test ledger and read the testnet vault on chain.

[Verify a vault yourself](https://probarion.xyz/docs/trust/verify-a-vault.md)

## What happens to one invoice

The model may advise. Code decides. The contract has the last word.

1. **Owner** Signs a mandate: who gets paid, how much per payment and in total, how many times, until when, which agent key may use it, and above what amount a person must approve.
2. **Code** Decides to allow the payment, hold it or refuse it, with built-in rules that cannot be removed. A model may advise, but it cannot widen the mandate. The SDK signs the decision into the ledger before anything is sent, refusals included. If code refuses, nothing is sent.
3. **Agent** Asks to spend. Its `spend` request carries a mandate id, an amount, a ref and two hashes, one of them the signed decision's. It has no field for a payee.
4. **Contract** Runs 14 checks in a fixed order. It pays the mandate's payee, holds the spend for an approver, or refuses with a code such as `NoMandate`. The SDK signs that outcome into the ledger.
5. **Anyone** Checks a published record. Each ledger entry is chained by hash to the one before, and the SDK anchors the root on the vault with the ledger key. The verifier runs checks a to i with no account and ends with PASS, FAIL or UNPROVEN.

Follow the whole path in [How one payment works](https://probarion.xyz/docs/start/how-one-payment-works.md), or see each check in [How a payment is checked](https://probarion.xyz/docs/concepts/payment-checks.md).

## Popular guides

The ideas behind every payment, one page each. New words are in the [glossary](https://probarion.xyz/docs/resources/glossary.md).

**[Write a mandate](https://probarion.xyz/docs/concepts/mandates.md)**

Every field, what the contract checks when the owner signs one, and why a mandate is never edited.

**[Approve a held payment](https://probarion.xyz/docs/concepts/holds-and-approvals.md)**

What puts a payment on hold, who may approve or reject it, and what happens when the hold expires.

**[Give each agent its own key](https://probarion.xyz/docs/concepts/vaults-roles-and-keys.md)**

Who may call what: the owner, the approvers, the spend-only agent key and the anchor-only ledger key.

**[Why the agent cannot name a payee](https://probarion.xyz/docs/concepts/why-spend-has-no-payee.md)**

A spend request has no address field. The vault pays the payee the owner set in the mandate.

**[Read the signed ledger](https://probarion.xyz/docs/concepts/ledger-and-anchors.md)**

How each decision is signed into a hash-chained ledger before money moves, and how anchors pin it on the vault.

**[Read the security model](https://probarion.xyz/docs/trust/security-model.md)**

Who holds which key, what the vault enforces whatever the off-chain code does, and the known gaps.

## Build on it

The SDK, the core library, the CLI and the MCP server are on npm, at 0.1.1. A clone of the repository builds them from source too.

**[Install the packages](https://probarion.xyz/docs/build/install.md)**

Install the SDK, the core library and the CLI from npm, or build them from a clone.

`@probarion/sdk`

**[Let an agent pay](https://probarion.xyz/docs/build/let-an-agent-pay.md)**

One payment cycle with the SDK: decide, sign the decision, check, spend, record the outcome.

`process()`

**[Spend outcomes](https://probarion.xyz/docs/build/spend-outcomes.md)**

The seven statuses `process()` returns, what each one means, and what to do next.

`SpendOutcome`

**[Errors](https://probarion.xyz/docs/build/errors.md)**

Each `PROBARION:` code: what it means, which call raises it and what to do next. The SDK and HTTP errors are there too.

`PROBARION:OverPerPayment`

## Docs your agent can read

**For AI agents and their builders**

Every page is also plain Markdown. Point a coding agent at the index, or paste a page into a chat.

- [/llms.txt](https://probarion.xyz/llms.txt): the index
- [/llms-full.txt](https://probarion.xyz/llms-full.txt): every page in one file
- [/docs/concepts/payment-checks.md](https://probarion.xyz/docs/concepts/payment-checks.md): one page

[For AI agents](https://probarion.xyz/docs/resources/for-ai-agents.md)

## What works today, and what does not

Live works in this deployment. Preview is built but not yet run end to end, or not open yet. Planned is not built.

| Feature | Status | Detail |
| - | - | - |
| Vault contract | Live | On testnet |
| Offline verifier, checks a to i | Live | Shipped, on npm |
| Reproducible builds | Live | Shipped |
| Vault factory | Live | On testnet |
| Web console: vault, keys, faucet, NEAR USDC top-up, mandate, Payables, Agent (MCP) tab, Freeze, approvals, Reject, revoke, withdraw, key removal, proof page | Live | Tried on testnet |
| Web console: email alerts, Base top-up | Preview | Built, not tried yet |
| Public proof page | Live | Live for the testnet demo vault |
| TypeScript SDK and CLI | Live | 0.1.1 on npm |
| Payables agent | Live | Live on testnet |
| Live attested model run | Preview | Checked online on testnet, image not pinned |
| Canary public challenge | Live | Live on testnet |
| MCP server | Live | 0.1.1 on npm, run by a real MCP client on testnet |
| Mainnet vault | Live | On mainnet: 1 payment, 1 refusal, no Base payout yet |

NEAR testnet is live, with one small vault on mainnet, and no third party has audited this code. [What works today](https://probarion.xyz/docs/start/what-works-today.md) adds the parts this list leaves out, and [Testnet and mainnet](https://probarion.xyz/docs/start/testnet-and-mainnet.md) says what differs between the two networks.
