RoundWatch

Quickstart / MainNet

Integrate in 5 minutes.
Create the watch. Let RoundWatch own the wait.

RoundWatch watches one exact future Algorand USDC payment. Your caller can create the obligation, complete the x402 service payment, save the returned watch ID, and exit. RoundWatch persists the state and returns the matching transaction later.

Algorand MainNetUSDC ASA 315667040.10 USDC service fee30 minute eligibility deadline
01

Define the exact payment

Send the expected sender, receiver, atomic amount, and optional invoice note. The watched asset is server-selected MainNet USDC, not a caller-controlled field. The addresses below are checksum-valid public examples. expectedReceiver is the receiver of the future payment being watched; it is separate from the RoundWatch service receiver advertised by the x402 challenge.

{
  "idempotencyKey": "invoice-2026-09-17-001",
  "expectedSender": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAKQ4C4",
  "expectedReceiver": "AEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEA5RCDXMI",
  "atomicAmount": "1",
  "invoiceNote": "roundwatch:invoice-2026-09-17-001"
}
02

Inspect the 402 before paying

A semantically valid unpaid request returns 402 Payment Required. This is a free preflight. Malformed watch input returns 400 before x402 handling, so a 402 means RoundWatch accepted the watch specification and is now asking only for the service payment.

curl -i -X POST https://roundwatch-api.onrender.com/v1/watch \
  -H "content-type: application/json" \
  --data '{"idempotencyKey":"invoice-2026-09-17-001","expectedSender":"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAKQ4C4","expectedReceiver":"AEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEAQCAIBAEA5RCDXMI","atomicAmount":"1","invoiceNote":"roundwatch:invoice-2026-09-17-001"}'

The first request is unpaid. For the current production contract, the approved payment requirement is:

x402Version: 2
scheme: exact
network: algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
asset: 31566704
amount: 100000
payTo: EQPLN32HPLPGBCNPOZUL6BL34CTNQGT3VAAMNAJWSIZGQ5CUNXOHB634XY

Before a paid MainNet retry, verify the advertised network, asset, amount, receiver, and resource URL. The current service payment is exactly 0.10 USDC. The guarded reference client in this repository performs these checks before it can spend.

03

Settle with an x402-capable client

Wallet signing stays in the client process. RoundWatch does not need your mnemonic or private key. The repository includes a guarded MainNet reference flow using @x402/fetch and@x402/avm.

The hosted RoundWatch API is MainNet only and spends real USDC. For TestNet integration, run RoundWatch locally with ROUNDWATCH_NETWORK=testnet or use your own TestNet deployment.

04

Save the watch ID and leave

A successful paid request returns a durable watchId. RoundWatch confirms the exact service-payment transaction, uses its confirmed round as the activation baseline, persists the scan cursor, and owns the waiting obligation after your process exits.

{
  "watchId": "YOUR_WATCH_ID",
  "message": "The watch is returned only if x402 settlement and durable activation succeed"
}

The watch ID is created by a successful paid request. Documentation uses a placeholder instead of a supposedly live example record.

05

Read the result later

Poll the public status endpoint whenever your workflow returns. A matched watch exposes the exact Algorand transaction ID and confirmed round that satisfied the watch. Passing the 30-minute deadline does not itself produce expired; terminal expiry requires complete indexed coverage through a fixed closing checkpoint. If the durable 500-turn work budget is exhausted before a match or complete expiry proof, the terminal state is indeterminate, notexpired.

curl -sS https://roundwatch-api.onrender.com/v1/watch/YOUR_WATCH_ID
settlement_pendingactivematchedsettlement_unknownexpiredindeterminate

Current operating limits

Bounded by design.

API
https://roundwatch-api.onrender.com
Network
Algorand MainNet
Service fee
0.10 USDC
Eligibility deadline
30 minutes from durable watch preparation; settlement time consumes part of the window; expiry is proof-based
Work budget
500 durable background turns; exhaustion → indeterminate
Open capacity
50 global / 5 per verified service payer
Status privacy
Anyone who knows a watch ID can query its public record

Go deeper

Implementation, proof, and trust boundaries.

Ready to inspect the product?

See the lifecycle before you integrate it.