Quickstart
End-to-end setup on Tempo Testnet. By the end you’ll have a Conto organization, an AI agent, a funded testnet wallet, two test policies, and a verified onchain payment. Total time: about 10 minutes. No real funds required.What you’ll build
A Conto organization with your account
An AI agent connected in Conto
A Tempo Testnet wallet funded with pathUSD
Spending policies that approve, require approval, or deny payments
A verified test payment on Tempo Testnet
Why Tempo Testnet?
Tempo Testnet pays transaction fees inpathUSD itself, so you don’t need a separate gas token. Combined with free faucet funds, it’s the fastest way to test the full flow.
Alternate path: CLI-first setup
Prefer the command line? The CLI can create the agent, wallet, starter policy, SDK key, and local example for you:Choose Your Key Up Front
Most developers need both of these at different points in the integration:If your app provisions agents for end users, create the agent with an org API key first, then hand
the agent its own SDK key for runtime payment calls.
Step 1. Create your account
- Visit conto.finance and sign up with your name, email, password, and an organization name. The organization is the top-level container for agents, wallets, and policies.
- Verify your email using the link we send you, then sign in. Sign-in is blocked until the email is verified.
Step 2. Create and fund a wallet
1
Create the wallet
Sidebar > Wallets > Create Wallet.
Conto assigns the onchain address as soon as the wallet is created; the dialog shows it
immediately.
After creation, the dialog offers an inline Assign to Agent step. You can skip it for
now. Step 4 links the wallet from the agent’s side.
2
Fund with the faucet
On the wallet card, open the menu and click Fund Wallet, then Request Testnet Tokens.
Free testnet
pathUSD arrives in seconds.Step 3. Connect an agent
1
Open Agents
Sidebar > Agents > Connect Agent.
2
Fill in details
Owner, Environment, and Risk Tier are pre-filled with sensible defaults.
3
Connect
Click Connect Agent. The agent starts in
ACTIVE status.Connect Agent is a short wizard: after the details step it offers to link a funding wallet
and assign policies inline. Completing those there is equivalent to Steps 4 and 6 below.
ownerMembershipId and
Conto assigns the organization’s highest-priority member (owner first). To pick a specific owner,
first fetch one stable membership id for your org:
members[].id for the org member or service account that should own the agent, then create
the agent:
agentType values: OPENAI_ASSISTANT, ANTHROPIC_CLAUDE, LANGCHAIN, AUTOGPT, CUSTOM. Agent statuses: ACTIVE, PAUSED, SUSPENDED, REVOKED.
Step 4. Link the wallet to the agent
1
Link the wallet
Open the agent detail page. In the Wallets tab, click Link Wallet and pick the Tempo Testnet wallet.
2
Set spending limits
Recommended for the quickstart:
Step 5. Generate an SDK key
1
Open SDK Integration
On the agent detail page, click the SDK Integration tab.
2
Generate the key
Click Generate SDK Key. Name it (e.g.
Testnet Key). Keep the default expiration (1 year)
and the default Standard key type. Standard keys cover everything in this guide: they
include payments:request for policy evaluation and payments:execute for Step 8’s
POST /api/sdk/payments/{requestId}/execute call. Reserve Admin keys for agents that
also manage agents, wallets, or policies.3
Store the key immediately
The full key is shown once. Save it to your environment:
standard vs admin), see Authentication.
Verify the setup:
agent.statusis"ACTIVE"walletscontains your Tempo Testnet wallet with a balancescopesincludespayments:requestandpayments:execute(both are part of the standard preset)
Step 6. Create two test policies
These two policies together produce three different payment outcomes:Policy A: spend limit
1
Create the policy
Sidebar > Policies > Create Policy.
2
Set the limit
Set Max Transaction ($) to
15. Leave the daily, weekly, and monthly fields empty.The Rules to be created preview shows the generated rule: MAX_AMOUNT / LTE / 15 /
ALLOW. Amounts at or under $15 pass; anything above is denied.Policy B: approval threshold
1
Create the policy
Sidebar > Policies > Create Policy.
2
Set the threshold
Set Require Approval Above ($) to
10.The generated rule is REQUIRE_APPROVAL_ABOVE / GREATER_THAN / 10 / REQUIRE_APPROVAL:
anything over $10 pauses for human approval.Assign both to the agent
Open the agent detail page > Permissions tab > Assign Policy > assign Test Spend Limit and Test Approval Threshold. Policies combine with AND logic. The most restrictive outcome wins. Higher priority numbers evaluate first (default priority is50).
Step 7. Run three test transactions
With both policies active you should see three different outcomes:Test 1. $5 should be APPROVED
"status": "APPROVED", "currency": "pathUSD".
Test 2. $12 should REQUIRE_APPROVAL
"status": "REQUIRES_APPROVAL" with a violation referencing the approval threshold.
Test 3. $20 should be DENIED
"status": "DENIED" with a violation referencing the spend limit.
Step 8. Execute the approved payment
This step uses thepayments:execute scope, which your standard SDK key already includes.
Capture the requestId from the approved request instead of copy-pasting it. Approved requests
expire after 5 minutes, so re-requesting like this always gives you a fresh id. This re-runs
Test 1 and saves the id with jq:
txHash. Onchain transaction hash on Tempo Testnet.explorerUrl. Link to view onexplore.testnet.tempo.xyz.
Step 9. Same flow via the SDK
request + execute, set autoExecute: true on the request. The response comes back with status EXECUTED and an execution object carrying txHash and explorerUrl. It works with any key that has payments:execute, which the standard preset includes.
Verify in the dashboard
After Step 8:- Dashboard > Transactions. The transaction shows
Confirmed; open it to see the network (Tempo Testnet) and the explorer link. - Click the explorer link to verify onchain.
- Analytics > Audit Trail tab. See the full policy evaluation trail.
You’ve verified policy enforcement and made a real onchain payment on Tempo Testnet.
Troubleshooting
Expected a block after setting per-transaction limit to 0
Expected a block after setting per-transaction limit to 0
Wallet-level per-transaction limit
0 means unlimited. Edit the wallet limits on the agent
detail page and set a positive cap, or suspend the agent if all payments should stop.Payment denied but expected REQUIRES_APPROVAL
Payment denied but expected REQUIRES_APPROVAL
Policies combine with AND logic. If one policy denies while another requires approval, the
denial wins. Check the Permissions tab for every assigned policy.
INSUFFICIENT_BALANCE
INSUFFICIENT_BALANCE
The testnet wallet needs funding. On the wallet card, click Fund Wallet > Request Testnet
Tokens.
AUTH_FAILED
AUTH_FAILED
Invalid or expired SDK key. Generate a new one from the agent detail page.
Moving to production
Once the testnet flow works:- Create a production wallet on Tempo Mainnet (
USDC.e), Base (USDC), or Solana (USDC). - Fund it with real stablecoins.
- Link the production wallet to your agent with production-sized limits.
- Update or create production policies. The test policies can remain for reference.
Next steps
Agent sandbox quickstart
Let an autonomous agent create a test-mode sandbox without human signup
Connect your framework
OpenAI, Claude, LangChain, Python integration snippets
SDK payments reference
Full method signatures, options, error model
Policy overview
Every policy type and rule type
Defaults
Every default value in one place