Skip to main content
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 in pathUSD 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. Prefer automated setup? Use the first-payment quickstart. This walkthrough lets you create and inspect each resource yourself.

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

  1. Visit conto.finance and sign up with your email and a strong password.
  2. Create your organization. This is the top-level container for agents, wallets, and policies.

Step 2. Create and fund a wallet

1

Create the wallet

Sidebar > Wallets > Create Wallet.
2

Confirm the address

Conto assigns an onchain address when the managed wallet is created. The wallet is assigned to your Conto organization, while Conto controls signing through secure managed wallet infrastructure. You do not receive a separate wallet-provider account or direct key access.
3

Fund with the faucet

On the wallet detail page, click Faucet. Free testnet pathUSD arrives in seconds.
For other custody modes (EXTERNAL, SMART_CONTRACT), see Custody modes.

Step 3. Connect an agent

1

Open Agents

Sidebar > Agents > Connect Agent.
2

Fill in details

3

Connect

Click Connect Agent. The agent starts in ACTIVE status.
Via API: If you create agents through the API, active agents must include an owner. First fetch one stable membership id for your org:
Pick members[].id for the org member or service account that should own the agent, then create the agent:
Valid agentType values: OPENAI_ASSISTANT, ANTHROPIC_CLAUDE, LANGCHAIN, AUTOGPT, CUSTOM. Agent statuses: ACTIVE, PAUSED, SUSPENDED, REVOKED.
1

Assign the wallet

Open the agent detail page. In the Wallets section, click Assign Wallet and pick the Tempo Testnet wallet.
2

Set spending limits

Recommended for the quickstart:
Don’t use Per Transaction 0 as a kill switch. Wallet-level spend limits treat 0 as unlimited. Use a positive limit for a cap, or suspend the agent when you need to block spend.
Default limits, time windows, and other agent-wallet link defaults are listed on the Defaults page.

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 New Key. Name it (e.g. Testnet Key). Keep the default expiresInDays. The default Standard SDK key preset covers everything in this guide: it includes payments:request for policy evaluation and payments:execute for Step 8’s POST /api/sdk/payments/{requestId}/execute call. Reserve Admin SDK 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:
For scopes and key types (standard vs admin), see Authentication. Verify the setup:
You should see:
  • the agent is available for payment calls
  • the setup summary includes your Tempo Testnet wallet and balance
  • scopes includes payments:request and payments: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 > New Policy.
2

Add the rule

Policy B: approval threshold

1

Create the policy

Sidebar > Policies > New Policy.
2

Add the rule

Assign both to the agent

Open the agent detail page > Permissions tab > 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 is 50).

Step 7. Run three test transactions

With both policies active you should see three different outcomes: Before running the examples, install curl and jq, then choose a second Tempo Testnet EVM address you control as the recipient. Do not send to the placeholder address printed in this guide. Set a run ID once and reuse it if you retry a command; it makes each authorization request idempotent.

Test 1. $5 should be APPROVED

Response: "status": "APPROVED", "currency": "pathUSD".

Test 2. $12 should REQUIRE_APPROVAL

Response: "status": "REQUIRES_APPROVAL" with a customer-facing reason explaining that approval is needed.

Test 3. $20 should be DENIED

Response: "status": "DENIED" with a customer-facing reason explaining that a spending control blocked the payment.

Step 8. Execute the approved payment

This step uses the payments:execute scope, which your standard SDK key already includes. Validate the saved response from Test 1 before extracting its ID. Never execute a request whose status is missing, unknown, DENIED, or REQUIRES_APPROVAL.
Then execute it:
If execution times out or the connection drops, do not submit a new payment request or blindly retry execution. Reconcile the saved ID first with GET /api/sdk/payments/$REQUEST_ID; its transaction field shows whether the transfer was submitted. The response includes:

Step 9. Same flow via the SDK

For one-call request + execute, set autoExecute: true on the request. It works with any key that has payments:execute, which the standard preset includes.

Verify in the dashboard

After Step 8:
  1. Dashboard > Transactions. The transaction shows Confirmed with the Tempo Testnet chain.
  2. Click the explorer link to verify onchain.
  3. Dashboard > Audit Logs. See the full policy evaluation trail.
You’ve verified policy enforcement and made a real onchain payment on Tempo Testnet.

Troubleshooting

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.
Policies combine with AND logic. If one policy denies while another requires approval, the denial wins. Check the Permissions tab for every assigned policy.
The testnet wallet needs funding. Use the Faucet button on the wallet detail page.
Invalid or expired SDK key. Generate a new one from the agent detail page.

Moving to production

Once the testnet flow works:
  1. Create a production wallet on Tempo Mainnet (USDC.e), Base (USDC), or Solana (USDC).
  2. Fund it with real stablecoins.
  3. Create separate production credentials and confirm the custody model for every funded wallet.
  4. Configure and test production policies, approval routes, webhook verification, and monitoring.
  5. Complete the Production Readiness Checklist before enabling live funds.
Your application code may stay largely the same, but live operation requires separately reviewed credentials, custody, policies, approvals, webhooks, monitoring, and incident controls.

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