Live on Arc Testnet · Circle's stablecoin-native L1

Service guarantees,
enforced on-chain.

ArcSLA is a marketplace where providers put USDC on the line for every request. Miss the deadline — lose the stake. No court, no dispute process, no waiting. No arbiter. No middleman.

EIP-712 receipts ERC-8004 identity x402 & CCTP 66/66 tests passing
USDC
Native gas & settlement currency on Arc
<1s
Transaction finality on Arc Testnet
0%
Arbiters, intermediaries or trusted third parties
100%
On-chain — escrow, receipts & slashing
The problem

Paying for a service is easy. Trusting it to deliver is not.

When a developer — or an autonomous AI agent — pays an API provider, there is no guarantee the provider will respond, respond on time, or respond at all.

The usual answer is a contract, a support ticket, a dispute process — slow, human, and unenforceable across borders or between machines.

Machine-to-machine commerce needs a guarantee that is economic and automatic — one that settles in seconds, with no one to call.

Without ArcSLA

Payment is sent up-front and trust is assumed — the provider holds all the leverage.

A missed deadline means a support ticket, a chargeback, or simply a loss.

Reputation lives in private dashboards no other system can verify.

An AI agent has no way to assess or enforce a provider's reliability on its own.

How it works

One agreement. Five steps. Zero arbiters.

Every call follows the same on-chain lifecycle. The smart contract holds the money and enforces the terms — from the moment a call opens to the moment it settles.

STEP 01

Provider registers

A provider stakes USDC as collateral and publicly commits to SLA terms — price, response window, and slash percentage.

STEP 02

Caller opens a call

A caller pays the per-call price. The USDC is escrowed inside the contract — not sent to the provider — and the SLA countdown begins.

STEP 03

Provider responds

The provider delivers off-chain, then submits an EIP-712 signed receipt on-chain — readable, structured, verifiable.

STEP 04

Contract settles

On time, the escrow releases to the provider. Late, anyone can trigger a timeout — and the slash fires automatically.

STEP 05

Reputation updates

Every honored call and every slash is counted on-chain, feeding a public reputation score any system can read.

✓ Happy path · SLA honored

The provider delivers on time

The common case. The provider responds within the committed window and gets paid instantly.

1Provider submits a valid EIP-712 receipt before the deadline.
2The contract verifies the signature and releases the escrowed USDC.
3Provider is paid in full. Reputation score increases.
✕ Timeout · SLA missed

The provider misses the deadline

No response, no excuse. The caller gets their money back plus a cut of the provider's stake. The contract handles it.

1The SLA window expires with no receipt submitted.
2Anyone calls claimTimeout() — no privileged role needed.
3Caller is refunded in full and receives a share of the provider's stake. Reputation drops.
The enforcement mechanism

Slashing turns a promise into an economic position.

An SLA is only as strong as its consequence. On ArcSLA, a provider's commitment is backed by real collateral — and breaking it has an immediate, on-chain cost.

When a provider stakes USDC, they expose a defined percentage of it. Miss the deadline, and that slice is transferred to the caller as compensation. The contract computes and executes it — there is no appeal, and no one to appeal to.

// slash amount
slash = stake × slashBps / 10000

The result: spam and negligence become unprofitable, while reliable providers keep their full stake working for them.

Worked example — a missed SLA TIMEOUT
Provider stake10.00 USDC
Slash rate20% · 2000 bps
SLA window120 seconds
Call price paid by caller1.00 USDC
Provider responsenone — deadline passed
Slash applied (10 × 0.20)−2.00 USDC
Caller refund+1.00 USDC
Caller compensation+2.00 USDC
Outcome
Caller walks away with 3.00 USDC — full refund plus a 2 USDC bonus. The provider's stake drops to 8.00 USDC and their reputation falls.
Reputation score · 0–100
After one slash, no prior history50
Fresh provider — neutral starting point66
After one honored call75
After ten honored calls92
Reputation, on-chain

A track record that any contract can read.

Every provider carries a reputation score derived entirely from their on-chain history of honored calls and slashes. It is not a private rating — it is public state, computed by the contract.

The score uses a Bayesian formula, so a provider with little history sits near a neutral midpoint rather than a misleading 0% or 100%:

score = (good + 2) / (total + 3) × 100

Because it lives on-chain, an auto-router or an AI agent can read it directly and pick a reliable provider with no off-chain lookup — trust becomes programmable.

Platform · v3

Everything settles into the same SLA core.

Multiple ways to pay, a verifiable identity layer, and machine-readable trust — all enforced by the same contracts.

On-chain escrow

Caller payments are held by the contract until the SLA resolves — never by a middleman.

Automatic slashing

Missed deadlines trigger an immediate, contract-computed penalty. No arbiter, no delay.

EIP-712 typed receipts

Providers sign structured, human-readable receipts — verifiable on-chain, no opaque hex.

Bayesian reputation

A public 0–100 score, computed on-chain, that any contract or agent can read directly.

ERC-8004 NFT identity

Providers bind a verifiable AgentIdentity NFT to their registration for portable identity.

x402 payment protocol

Agents pay through a live x402 facilitator — EIP-3009 settlement on Arc, no gas for the payer.

CCTP multi-chain

Pay from Ethereum, Base or Polygon — Circle bridges the USDC and Arc enforces the SLA.

Built for AI agents

Predictable fees and sub-second finality make autonomous, per-call commerce practical.

66 / 66 tests passing

A full Foundry test suite covers registration, calls, receipts, timeouts and slashing.

For developers

Integrate in a few lines of code.

ArcSLA is plain EVM. If you know ethers.js, you already know how to call it. Approve USDC, open a call, and you are on-chain — the contract handles escrow, receipts and enforcement.

The full Solidity source, the Foundry test suite and deployment scripts are open on GitHub.

open-call.js
// ethers v6 — open a paid call on ArcSLA import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider(RPC_URL); const wallet = new ethers.Wallet(PRIVATE_KEY, provider); const usdc = new ethers.Contract(USDC, USDC_ABI, wallet); const arc = new ethers.Contract(PAY_PER_CALL, ARC_ABI, wallet); // 1 — approve USDC for the marketplace await usdc.approve(arc.target, ethers.parseUnits("1", 6)); // 2 — open a call to provider #1 const hash = ethers.keccak256(ethers.toUtf8Bytes("request")); const tx = await arc.callService(1, hash); console.log("call opened →", tx.hash);
Why Arc

Per-call payments only work if settlement is instant.

ArcSLA is built on Arc Testnet — Circle's stablecoin-native L1. Three properties make it the natural home for machine-to-machine payments.

USDC

One token for everything

USDC is the native gas token and the settlement currency. No second asset to hold, bridge or manage — for users or for agents.

~1¢

Predictable fees

Transaction costs are stable and roughly a cent — not tied to a volatile coin. Essential when an agent makes thousands of micro-payments.

<1s

Sub-second finality

Calls confirm in under a second, so an SLA countdown — and its enforcement — operate on a timescale agents can actually rely on.

FAQ

Questions, answered.

Receipts use EIP-712 typed-data signing. When a provider signs, their wallet displays the structured receipt fields — callId and responseHash — in a readable format rather than an opaque hex blob. The contract verifies that signature on-chain before releasing escrow.
No. Once the SLA window has passed, the contract rejects submitReceipt(). At that point the call can only be resolved through a timeout, which refunds the caller and slashes the provider.
Anyone. claimTimeout() is permissionless once the deadline has passed — there is no privileged role. In practice the caller triggers it, since they receive the refund and the slash compensation.
With a Bayesian formula: (good + 2) / (total + 3) × 100. A new provider starts near 66 — neither trusted nor distrusted. Each honored call raises the score; each slash lowers it. The value is stored on-chain and readable by any contract.
A provider can unstake once they have no pending calls. A cooldown applies, so stake cannot be pulled instantly to dodge an in-flight obligation.
x402 is an HTTP-native payment standard — an agent pays in response to an HTTP 402 challenge, and the call fires once payment clears. CCTP is Circle's Cross-Chain Transfer Protocol: it lets a caller pay from Ethereum, Base or Polygon while Arc still enforces the SLA. Both settle into the same contracts.
ArcSLA runs on Arc Testnet, which is itself in a pre-mainnet phase. It is a working demonstration — all contracts are deployed and verifiable on ArcScan, and the full lifecycle can be exercised end-to-end with test USDC.

See the full lifecycle run on-chain.

Register a provider, open a paid call, watch a slash fire — all with test USDC, live on Arc Testnet.

Launch the app