Skip to main content

Agent Sandbox Quickstart

This quickstart is for autonomous agents, coding agents, and agent runtimes that need to evaluate Conto before a human creates a production account. The sandbox signup endpoint creates a test-mode organization, one agent, one Tempo Testnet wallet, an agent SDK key, and a sandbox organization API key. No email verification or human approval is required for sandbox creation.
The anonymous sandbox is for testing only. Returned credentials are shown once, expire after 7 days, and should not be used for real funds or production automation.

Discovery

Start from the agent manifest:
Read these fields: If your runtime skips manifests, use the endpoint directly:
The descriptor includes environment, simulated-settlement semantics, wallet limits, and a machine-readable workflow with setup, request, execute, status, and human-claim actions. Use those links instead of constructing route names from memory.

Create A Sandbox

One command does the whole thing, including writing an owner-only .env.local, updating .gitignore, and adding conto.config.json plus a runnable example.mjs to the current directory:
The JSON result identifies the files and environment-variable names but does not print either secret. Read the generated .env.local only inside the runtime that needs those credentials. Or call the endpoint directly:
When calling the endpoint directly, the response includes: Example extraction:

Inspect The Setup

Use the SDK key returned by sandbox signup:
This returns the authenticated agent, available wallets, spend limits, and granted scopes. Use it as the runtime probe before attempting payment operations. Payment approval accepts chainId as either the numeric chain ID or the string value returned by setup. The sandbox response reports wallet.custodyMode: "EXTERNAL". Use the approval and confirmation flow when you attach a signer; the basic sandbox execution path remains available for testing policy decisions without an onchain transfer.

Run A Policy-Checked Payment

Sandbox test payments exercise policy evaluation, spend tracking, receipts, and audit logs without an onchain transfer. You do not need a signer or a funded wallet to reach a completed payment. Request a small test payment. The policy engine evaluates it and returns APPROVED, DENIED, or REQUIRES_APPROVAL:
If the status is APPROVED, execute it:
The success state for this quickstart is an execute response with "status": "completed". In sandbox test mode, the response omits onchain hash and explorer fields. A GET request to /api/sdk/transactions includes the transaction, which counts against the sandbox spend limits. A request for more than the $5 per-transaction limit returns DENIED with a customer-facing reason, which is the policy engine working as intended.

Bring Your Own Signer (Optional)

If your agent controls a real wallet key, pass its address as publicKey when creating the sandbox and use the external-wallet flow instead: POST /api/sdk/payments/approve returns an approvalToken, your signer performs the testnet transfer, and POST /api/sdk/payments/{requestId}/confirm records the real txHash:
Production integrations with managed wallets use the same request -> execute flow with real onchain execution, or autoExecute for single-call payments.

Claim The Sandbox

When a human is ready to keep the sandbox, they sign in to Conto and call the claim endpoint with the sandbox organization API key. The sandbox key can be sent in the JSON body:
The claim request must include a signed-in Conto browser or app session. Claiming transfers the sandbox organization and agent ownership to that verified human account.

Existing Organizations

If a human organization owner has already invited an agent, use organization-token registration instead of anonymous sandbox signup:
With a registration token, the agent can join the existing organization and receive a scoped SDK key:
externalId is optional but recommended: it makes retries idempotent and gives your system a durable reconciliation key. The response confirms the agent status, granted scopes, credential expiration, and the SDK endpoints that credential can call. The SDK key itself is shown only on the first successful registration. If the same externalId is registered again, Conto returns the existing agent and credential reference without revealing the key again.

Agent Checklist

  1. Fetch /.well-known/agent.json.
  2. Read machineReadable.agentSandboxQuickstart and machineReadable.agentSandboxSignup.
  3. POST /api/agents/sandbox.
  4. Store returned keys securely; they are shown once.
  5. Call GET /api/sdk/setup with credentials.sdkKey.
  6. POST /api/sdk/payments/request, then POST /api/sdk/payments/{requestId}/execute.
  7. Verify the execute response shows status: completed without onchain hash or explorer fields.
  8. Ask a human to claim the sandbox before the credentials expire.

Next Steps

Connecting Agents

Wire Conto into OpenAI, Claude, LangChain, Python, and custom runtimes

Payments API

Request, approve, execute, confirm, and inspect payment state

Custody Modes

Choose managed execution or external-wallet approval flows

OpenAPI

Generate clients and inspect request and response schemas