Every agent
gets a Pact.
Spending guardrails for autonomous AI agents. Set the budget, the limits, and the destinations. Every payment, swap, or transfer is checked against the Pact before it happens.
How it works
Is this agent allowed to do this,
for this amount, right now?
An agent never holds unlimited authority. Its owner writes a Pact: what it may do, how much, where, and when a human has to say yes. AgentPact answers allow, deny, or ask before money moves, and logs every decision.
01 / Define the Pact
Describe what your agent may do.
Budgets, action permissions, assets, trusted destinations, and approval rules. Start from a template, adjust with plain controls, and every edit becomes a new immutable version, so you can always see which rules were in force for any decision.
Research Agent
pact v1- Daily budget
- 25 USDG
- Per transaction
- 1 USDG
- Payments
- Allow
- Swaps
- Deny
- Transfers
- Deny
- Contract calls
- Ask
- Allowed assets
- USDG
- Unknown destination
- Ask
- Velocity
- 120 actions / hour
02 / Enforce every action
Checked before execution. Live.
This is the production API with a throwaway sandbox agent. Propose an action and watch each rule pass, fail, or escalate. Budget checks are committed atomically, so two concurrent requests can never both spend the same last dollar.
Agent proposes
sandbox agentResearch Pact: payments allowed, swaps and transfers denied, 1 USDG per transaction, 25 USDG per day, USDG only, first payment to a new destination asks the owner. Throwaway agent, one-hour key, cannot move funds.
AgentPact decides
03 / Stay in control
The agent works. You keep the keys.
An agent cannot raise its own budget, edit its own Pact, approve itself, or extend its own session. The owner wallet is always the root authority.
Approve the exceptions
Anything above the autonomous limit, any action marked ask, and any first payment to a new destination waits for you. Approvals expire on their own, and approving never lets the day's budget be exceeded.
Freeze instantly
One call revokes every session key and denies every new action. Unfreezing does not resurrect old keys; you issue a fresh one, scoped and time-boxed.
Audit everything
Every decision is stored with the Pact version it was judged against, the rule checks, the reasons, and the session key that asked. Nothing is overwritten.
04 / Integrate
MCP for agents. SDK and REST for everything else.
Claude, Codex, and any MCP client connect to the hosted server with the agent's session key. Custom agents use the TypeScript SDK or call the REST API directly. The policy lives server-side either way.
MCP (Claude Code, Claude Desktop, Codex)
{
"mcpServers": {
"agentpact": {
"type": "http",
"url": "https://mcp.agentpact.dev/mcp",
"headers": { "Authorization": "Bearer pact_sk_..." }
}
}
}TypeScript
import { AgentPact } from "@agentpact-dev/sdk";
const pact = new AgentPact({ sessionKey: process.env.AGENT_SESSION_KEY });
const result = await pact.pay({
amount: "2",
asset: "USDG",
destination: "0x…",
});
if (result.decision === "allow") {
// proceed: the amount is committed against today's budget
}Today AgentPact enforces at the authorization layer: it decides, commits budgets, and records. On-chain execution through a Pact Account on Robinhood Chain is the next phase. See what is live.
05 / $PACT
The native token of AgentPact.
$PACT lives on Robinhood Chain, the same chain where agents spend through their Pacts. It is how the protocol and the community around it grow together. Verify the contract address here before interacting; the pill below is the only official source.
$PACT
- Token
- $PACT
- Network
- Robinhood Chain
- Type
- ERC-20
Anything claiming to be $PACT that does not match the address above is not ours. Launch details will be announced on @agent_pact. More about $PACT →