Skip to main content
In the buyer’s workspace, create an agent, an owner-configured spending policy, an SDK key, and a funded Tempo Testnet wallet. Then send 0.01 pathUSD and check its settlement.

Choose your first test

1. Create your project

You need Node.js 20.19+, npm, an interactive terminal, and a browser. Sign in or create a Conto account when the wizard opens the browser. During account creation, accept the displayed Terms of Service and Privacy Policy. Conto records the accepted document versions and timestamps with the account.
Choose Tempo Testnet (42431) and keep the starter spending limit. The wizard creates the agent, managed wallet, policy, and SDK key, then funds the wallet with faucet pathUSD. It writes .env.local, .gitignore, conto.config.json, and example.mjs, and installs the CLI locally. Store the generated credentials securely. Use the manual setup walkthrough if you prefer to create each resource yourself. For CI without a browser, use the separate agent sandbox quickstart.

2. Verify the wallet before sending

From the same directory:
Confirm the agent is active, the wallet chain is 42431, the balance is positive, and the key has payments:request and payments:execute. Fix any failed checks before continuing. A payment uses its selected wallet’s network; omitting a chain field does not turn a mainnet wallet into a testnet wallet.

3. Request and execute one payment

The command requests a 0.01 pathUSD payment to a test recipient, stops if controls do not approve it, and executes an approved request. Save the returned requestId and receipt. Each new invocation creates a new payment intent; use the original ID to inspect an uncertain outcome. The current response contract places the transaction ID, transaction hash, and explorer URL under receipt. A submitted testnet transfer has status: "processing" and receipt.settlementMode: "live": here live means an onchain transfer, including testnet. An anonymous sandbox receipt uses settlementMode: "test" instead. JSON output exposes the API response directly, including the receipt. Do not infer settlement from a success message alone.

4. Confirm settlement

Set CONTO_API_KEY to the agent key from .env.local in your terminal, then replace REQUEST_ID with the ID returned above:
Completion means status: "completed" and transaction.status: "completed". Check transaction.chain.id is "42431", and open transaction.explorerUrl to inspect the transfer on Tempo Testnet. While it is processing, wait and check again; do not repeat execution. See track and recover a payment for bounded polling and error handling.

If the result needs attention

Next: prove the controls

Test allow, review, and deny decisions using the agent you just created. To integrate it into application code, install the SDK. Before moving real funds, complete production readiness.

Starting from a remote agent

For an anonymous simulation without an account, signer, or funds, use the agent sandbox quickstart. The agent can create a short-lived browser handoff for a verified person to claim the test workspace, then poll for completion without a localhost callback. Claiming does not activate production payments or extend sandbox credentials.

Verify the selected integration

Open Developers and choose the agent and linked wallet you intend to test. The setup checks and receipt link apply to those resources. For a sandbox or managed testnet wallet, download the payment example from Test this agent’s integration. The separate one-click sandbox creates an isolated setup and does not validate the selected agent. The example uses @conto_finance/sdk@0.4.0 and Node.js 20.19 or newer. Put the selected agent’s SDK key in a private .env.local as CONTO_API_KEY, and use the agent and wallet IDs shown in Developers. Keep .env.local and .conto-first-payment/ out of Git.
These commands request a small payment, resume that same request for execution, and separately verify a request above the wallet’s per-transaction cap. The blocked test never executes, even if its result is unexpectedly approved. It requires a finite positive wallet cap. Mainnet wallets are rejected by this example. For the approval exercise, configure an eligible reviewer and an approval threshold for the selected setup, then set CONTO_TEST_AMOUNT below its blocking wallet cap. A review-required request has not executed. Have the reviewer approve or deny it in Conto, then rerun with --execute; the example checks the original request and stops on denial or expiry. Preserve the evidence directory when retrying. After an uncertain execution, reruns check status without issuing another execute call. A completed simulated receipt means no onchain transfer occurred. Processing or unknown settlement does not count as completion. Review the saved allowed, denied, and approval results separately; a successful payment alone does not prove all controls were exercised.