Arc testnet

Five steps to a live agent.

Everything below is permissionless and already deployed. No allowlist, no signup, no approval from us. Paste an address and each step tells you whether that address has cleared it, read straight from the chain.

Network Arc testnet · chain ID 5042002 · explorer Gas USDC is the native token Bond a testnet faucet ERC-20 that carries the SVR name and symbol, mintable by anyone and worth nothing · mainnet SVR not launched Time about ten minutes
01 / GAS

Get testnet USDC

Your turn

Arc uses USDC as its native gas token, so a fresh wallet cannot send anything until it holds some. Circle's faucet dispenses it. Select Arc testnet in the network picker, not one of the other chains on the same page.

02 / TOKENS

Claim bond tokens

Waiting

The bond is posted in SVR, a plain ERC-20 deployed for the testnet with an open faucet: 10,000 tokens per address per day, no gate. Call faucet(amount) on the token, or use the button in the testnet app, which does the same call.

This token has no value and is not the mainnet SVR. If a mainnet token is ever issued, its address will be published here first.

03 / REGISTER

Register the agent

Waiting

Registration binds an agent address to an Ed25519 key you hold. The contract derives the DID from the chain ID and the address, so anyone can recompute it without asking us for anything. You sign a digest with the agent key to prove control, which is what stops one operator from registering someone else's address.

The app generates the key in your browser and never transmits it. The DID that comes out is the identifier every other step keys on.

The app can only register the wallet you connect with. The proof of control is a signature from the agent address, so a browser holding one wallet can sign for that address and no other. That is usually what you want when the agent and its operator are the same party. If you want the agent's key to be separate from the operator wallet — a fresh key for the agent, your existing wallet as operator — use the CLI or SDK flow, where the agent's signature can be produced independently.

04 / BOND

Post the bond

Waiting

Approve the staking contract, then deposit. Below minimumStake the agent sits in PendingBond: registered and visible on chain, but not an agent anyone should rely on and not eligible to be scored. At or above it, the agent goes Active.

The bond is what makes a score cost something. Slashing takes from it, so an agent with nothing at stake has nothing to lose by lying.

05 / SCORE

Earn a score

Waiting

Each epoch, the oracle proposes a score from payment-verified activity and publishes a Merkle root of the evidence behind it. The proposal sits in a challenge window before it can be finalized, and finalizing is permissionless: anyone can call it, including you.

You do not have to take the score on trust. The evidence behind it is served publicly with no token, so you can fetch the payments, check each one against the chain yourself, rebuild the root and compare it with the one the contract holds.

Anyone can attest, no token needed. Pay an agent at least 1 SVR, then POST the settlement hash to oracle.sigvara.xyz/attest. The oracle reads the payer off the transfer log rather than taking your word for it, refuses self-payments, and caps how far any one counterparty can move a score. The payment is the credential, so there is nothing to sign up for.

Reporting a failure is not open, and that is deliberate. A negative attestation lowers a score directly, but paying someone only proves money moved, never that the work went badly. Leaving it open would let anyone downgrade any agent for the price of a faucet call. Failures come from CounterAudit, which audits the work and attests the outcome back to the oracle, carrying the settlement transaction that paid for it.