Built for agent teams · Arc testnet

One budget For every agent

Let your agents delegate the work, not the spending limit. One on-chain mandate keeps the whole team inside your budget.

Get Started

You cannot stop one payment.
You can stop the ten-thousandth.

Each payment is signed off chain, so no contract can stand in the way of a single one. What Pactra bounds is how much the tree can spend in total.

The same tree, twice

A refusal is invisible.

So run both. Two identical trees on the same task, one pactraed and one not.

Unpactraednothing adds up the tree
Each child obeys its own limit. Nobody adds them up.
Pactraedthe root refuses
Every draw is charged to every parent above it.
  • 01No single draw goes past the tranche cap.
  • 02A trailing window, the same length at every depth.
  • 03No one seller takes more than its share of a window.
  • 04Every parent up to the root is debited on every draw.

The first three exist elsewhere. The fourth is why this is not simply a smaller wallet.


The 2am question

There is a way out. It is human, and it is logged.

A CFO wants an override, and “we can never undo this” reads as a defect. Release is there: a named person signs it from their own key. What cannot be reversed is the bound, not the decision.


Case studies · Arc testnet

Two outcomes. Evidence for both.

A payment that completed and a spending attempt that met a bound. These are separate recorded testnet runs, with their original transaction links.

01 · Completed purchase · 11 Sep 2026

A one-cent API purchase, end to end.

0.01 USDC paid

The request
An agent requests a paid API through Pactra.
The mechanism
The vault authorizes a draw, Gateway releases the tranche, and the seller collects the signed payment.
The outcome
The recorded run includes a draw, a Gateway release, and a seller collection on Arc testnet.
Explore the paid walkthrough →

02 · Hostile spending drill · 10 Sep 2026

Told to spend everything. Stopped at a bound.

35% of the signed ceiling reached

The request
The agent was instructed to spend as much as it could, with 0.02 USDC authorized.
The mechanism
Nine requests exercised the vault's bounds. The recorded refusals include the seller-concentration check.
The outcome
The run spent 0.007 USDC. This is one recorded drill with one node, not a guarantee about every agent or workload.
Explore the refused walkthrough →

Recorded testnet evidence, not customer testimonials or live performance metrics. Source: the project's settlement and hostile-drill fixtures.

One purchase

An agent buys something. This is the path.

The agent never holds money. It asks for a URL, and everything between that request and a seller being paid passes a contract that can say no.

  1. Agentholds no key
  2. Pactraholds the key
  3. ArcTreeVault
  4. Sellerx402 API
01 / 07

The agent asks for a URL.

Its only tool takes a URL. There is no field for who gets paid, and no key behind it to pay with.

pactra_fetch(url)

Why Arc

Small tranche, tight leash.

How small a tranche can be depends on what it costs to settle one and how long it takes. Arc makes both close to zero. On Ethereum this design would not work.

One catalogue, one seller, endpoints that look alike

Arkham alone runs from $1 to $200. Spending 200 times too much on one plausible call is not a story we made up. It is in the live catalogue.

Services agents can buy today

Median price $0.01. Most offers cost a cent or less, which is exactly why no single one is worth stopping.

Of those, listed on Arc

None yet. The seat is open on the chain Circle is building.

Said before you find it

Arc mainnet has not launched yet. Everything Pactra does today happens on the testnet, and every transaction on this site opens in a public explorer.

The record

Reputation is an opinion somebody types.

There is already a shared registry for agent reputation, and anyone can read it. The trouble is that anyone can also write to it. On Base, 90.6% of the reviewers are flagged as fake.

Reviewers on Base who have ever paid for anything

%

That small group wrote 94.9% of all the feedback there is. What sits in the registry is not a crowd's judgement. It is a handful of addresses.

Feedback with no payment behind it

–100%

Pactra writes the opposite kind of thing: every entry names the transaction it came from.

Cost to flip an agent's standing on Base

$

A third of a cent. Anything that cheap to fake is worth nothing to read.

  • Nothing to deploy

    The registry is already live on Arc. Pactra writes into what is there instead of standing up one nobody would read.

  • Open to read, one seat to write

    Only the thing that does the refusing can report a refusal. That asymmetry is the part a competitor cannot copy in a fortnight.

Start

One env var, not a rewrite.

Point Claude Desktop at the daemon, give it a dollar, and the fence is in the path of everything it buys.

claude_desktop_config.json

{
  "mcpServers": {
    "pactra": {
      "command": "npx",
      "args": [
        "-y",
        "pactra-mcp"
      ],
      "env": {
        "PACTRA_ENV_FILE": "/Users/<you>/.pactra/pactra.env",
        "PACTRA_MCP_NODE": "0x… — the node this server speaks for"
      }
    }
  }
}

Set PACTRA_ENV_FILE to the absolute path of the environment file created by init, and PACTRA_MCP_NODE to your agent's node. The signing key stays in that environment file. Follow the setup guide for installation and the HTTP and proxy integrations.

Sixty seconds,
on your own machine.

Watch the refusal land on Arc, in a block you can open yourself.