A
ArcSLA
on-chain SLA marketplace · arc testnet
Disconnected

Pay-per-call, enforced on-chain.

Service providers stake USDC and commit to an SLA. Callers — including AI agents — pay per request and receive a cryptographically signed receipt. If the provider misses the deadline, the stake is slashed automatically. No arbiter, no middleman.

Registered providers
Calls on chain
Slashes enforced

How it works

Three scenarios that cover the full lifecycle. Read them before you touch a button — the rest of the app will make instant sense.

✓ Happy path

Provider honors the SLA

The common case. Provider responds in time, gets paid, reputation goes up.

1. Caller opens a call and escrows 1 USDC in the contract.
2. Provider delivers the response off-chain within the SLA window.
3. Provider signs a receipt and calls submitReceipt().
Escrow released to provider. +1 USDC earned. Reputation +1.
✕ Timeout

Provider misses the deadline

What keeps the marketplace honest. No response in time? The caller gets paid back, and the provider loses stake.

1. Caller opens a call, escrows 1 USDC, waits.
2. Provider does not deliver within the SLA window the provider committed to.
3. Anyone calls claimTimeout() after the deadline.
Caller gets 1 USDC refund + 20% of provider's stake. Provider loses slash + reputation.
★ Reputation

Track record, on-chain

Every honored call and every slash is counted in the contract. Anyone — including other contracts — can read a provider's score.

· Fresh provider: 66 (neither trusted nor distrusted)
· After 1 honored call: 75
· After 10 honored calls: 92
· One slash from zero history: 50
Formula: (good + 2) / (total + 3) × 100 — Bayesian, readable on-chain.
⚡ v3

Composable payment rails

v3 adds three ways to pay and a verifiable provider identity — all settling into the same SLA enforcement.

· x402 — agents pay via the HTTP 402 protocol; callService() fires on payment.
· CCTP — pay from Ethereum, Base or Polygon; Circle bridges USDC, Arc enforces the SLA.
· ERC-8004 NFT — providers bind an on-chain AgentIdentity NFT to their registration.
Every path ends the same way: staked USDC, signed receipt, automatic slash on timeout.
What is ArcSLA?

ArcSLA is an on-chain marketplace where service providers stake USDC to commit to SLAs, and callers pay per request. If a provider fails to respond in time, their stake is automatically slashed — no arbitrator or intermediary required.

1
Get testnet USDCfaucet.circle.com → select Arc Testnet → paste your wallet address. On Arc, USDC is both the gas token and currency — one token is all you need.
2
Connect your walletClick the "Connect wallet" button. MetaMask will add Arc Testnet automatically. You can also pay from Ethereum, Base, or Polygon via CCTP — see the chain selector when calling a service.
3
Choose your roleFollow the Caller or Provider flow step by step using the tabs above.
💡 Tip: You can use the same wallet as both caller and provider. For separate testing, two different MetaMask accounts are recommended.
Caller Flow

You pay USDC to call a service. If the provider responds in time, the call completes. If not, your payment is refunded and the provider is penalized.

1
Select a providerOpen the Call a service section in the left panel. Enter a Provider ID (e.g. 1). Price and SLA duration are shown automatically.
2
Send a requestType any text in the request payload field (e.g. ping). Click Approve & call — MetaMask will ask you to sign two transactions: USDC approval + call opening.
3
Track the countdownThe call appears in your Your Calls panel and a countdown begins. If the provider responds, it becomes "completed".
4
Timeout → Claim slashOnce the SLA period expires, the claim slash button appears. Click it → MetaMask opens → confirm. Your payment is refunded plus a bonus from the provider's stake.
⏱ Note: Alerts fire automatically when the countdown turns yellow (30s left) and red (10s left). If you are a provider, submit your receipt immediately!
Provider Flow

You become a service provider by staking collateral. Each successful response increases your reputation. Miss the SLA window and a portion of your stake is slashed.

1
Register & stakeOpen the Register as provider section. Set a minimum 10 USDC stake, price, response time, and slash %. Leave the signer address blank to use your own wallet.
2
Respond when calledWhen a CallStarted event arrives, the SLA clock starts. Open the Submit receipt section — the Call ID is pre-filled, just enter your response payload.
3
Sign & submit the receiptClick Sign & submit. MetaMask will first ask for an EIP-712 typed-data signature (readable Receipt fields), then an on-chain transaction.
4
Collect payment & earn reputationOnce the receipt is accepted, the escrowed USDC is transferred to you. Each successful response increases your on-chain reputation score.
🚨 Critical: You must be connected with the signer address to submit a receipt. If your provider panel shows "✓ matches your wallet", you are ready.
Minimum stake10 USDC
Minimum response time10 seconds
Slash range0% – 100%
Reputation formula(successful + 2) / (total + 3) × 100
Slash System

The slash system is the economic enforcement mechanism that holds providers accountable to their SLA commitments. No arbitrator or trusted party required.

When does a slash occur?If the provider does not call submitReceipt() within maxResponseTime, the deadline expires. The caller can trigger a slash via claimTimeout().
💰
Calculationslash = stake × slashBps / 10000
E.g. 10 USDC stake + 20% slash → 2 USDC is deducted and sent to the caller.
🔄
Fund flowThe escrowed call fee is refunded to the caller. The slashed stake is also sent to the caller. The remaining stake stays with the provider.
📉
Reputation impactEach slash lowers the provider's on-chain reputation counter, making them less likely to be chosen.
Example: 10 USDC stake · 20% slash · 120s SLA. Caller pays 1 USDC. Provider does not respond within 120s. Caller clicks claim slash → 1 USDC refunded + 2 USDC bonus. Provider stake drops to 8 USDC.
Frequently Asked Questions
How does receipt signing work?
Receipts use EIP-712 typed-data signing. When you sign, MetaMask shows the structured Receipt fields (callId, responseHash) in a readable format — not raw hex.
What is the Call ID and where does it come from?
It is the unique 32-byte identifier generated on-chain when callService() is invoked. It is auto-filled after you click Approve & call.
Can I submit a receipt after the SLA deadline?
No. The contract rejects submitReceipt() once the deadline has passed. Keep an eye on the countdown timer!
Can I be both a provider and a caller with the same wallet?
Technically yes, but two separate accounts are recommended for testing.
Can I withdraw my stake?
You can unstake when there are no pending calls. A cooldown period applies.
How is the reputation score calculated?
Bayesian formula: (successful + 2) / (total + 3) × 100. A new provider starts at 66. Each successful call increases the score; each slash decreases it.

Live activity

streaming from arc testnet
loading recent activity…
ServiceRegistry
PayPerCall
USDC
CrossChainReceiver 0xf345Bf875A6A4aB9dBb47b0D17bcbd67f7A26AA5
RegisterWithNFT 0x0aBC433356754Cd269bEF9A46273d7a152a0F169
LIVE --:--:-- · Arc Testnet
honor rate
Providers
registered
Calls
all-time
Receipts
SLA honored
Slashed
USDC redirected

Actions

Register as provider
The address that will sign receipts. For testing, leave blank — your own address is used.
Recommended: 60s or more. MetaMask signing takes ~10s — tight SLAs cause receipt failures.
Just testing the demo? Leave this blank or put any URL. In production, this is where callers would send API requests after paying.
📊 Live calculator
Stake locked 10.00 USDC
Loss per SLA violation 2.00 USDC (20%)
Max slashes before stake drained 5 slashes
Revenue per 10 successful calls 10.00 USDC
Break-even after N calls 10 calls
Advanced
The NFT version mints an ERC-8004 AgentIdentity and registers in one flow. The basic version skips the NFT.
Call a service
Paying from Arc Testnet directly. No bridging required.
Enter a provider id to fetch SLA terms.
Submit receipt (provider)
Response is hashed and signed with EIP-712 typed data. On-chain stores only the hash.
EIP-712 signing: when MetaMask opens the signature prompt, you'll see structured Receipt fields (callId, responseHash) — readable typed data, not raw hex.
Claim timeout (caller)
Only works after the SLA deadline has passed. Refunds your payment and slashes the provider's stake.
⚡ Auto-router — pick best provider

Automatically selects the provider with the highest reputation score that is currently active. You can set a max price filter.

🔀 Multi-provider call

Send the same request to multiple providers simultaneously. The first one to submit a valid receipt gets paid; the others are ignored (calls time out naturally).

Your provider

🏗️
You're not a provider yet.
Stake USDC to start earning from service calls.

Session Budget

spending cap

My Activity

connect wallet to see your on-chain activity

Your calls

no calls yet — make one or submit a receipt

All providers

click a row for details
loading providers…

📊 Premium Analytics API

0.001 USDC per report · real-time data
📈
What is Premium Analytics?
Get real-time cryptocurrency market data powered by CoinGecko API. Each report includes live prices, market caps, 24h volumes, and price changes.
📡 Data Sources
· Bitcoin (BTC)
· Ethereum (ETH)
· Solana (SOL)
💰 Cost
0.001 USDC per report
No monthly fees
📊 Data Included
· Live prices
· Market cap & volume
· 24h price change
Use Cases
· Portfolio tracking
· AI trading bots
· Market research
Premium reports will appear here.

💰 Nanopayment — Circle Gateway

0.001 USDC per API call · gasless
💡
What is Nanopayment?
Pay for individual API calls with micro-amounts of USDC — no subscription, no credit card, no registration required.
🎯 Perfect For
· One-time API usage
· AI agents & automation
· Testing services
💰 Cost
0.001 USDC per call
No hidden fees
⚡ Speed
2-3 seconds
Gasless for you
🔒 Security
EIP-712 signatures
On-chain settlement
Payment results will appear here.

⚙️ ERC-8183 Jobs

Arc standard — trustless job settlement

Create and manage ERC-8183 jobs on Arc. Providers stake deliverables, evaluators approve, USDC settles automatically.

Job results will appear here.

SDK — Quick Integration

5-line setup

Integrate ArcSLA into any JavaScript app or AI agent. Copy the snippet below and replace the provider ID and payload.

// npm install ethers (ethers v6) import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider("https://rpc.testnet.arc.network"); const wallet = new ethers.Wallet(PRIVATE_KEY, provider); const usdc = new ethers.Contract("0x3600000000000000000000000000000000000000", ["function approve(address,uint256) returns(bool)"], wallet); const arc = new ethers.Contract("0x486d751532e362768FE590B95874B118b2dB691b", ["function callService(uint256,bytes32) returns(bytes32)"], wallet); // 1. Approve USDC await usdc.approve(arc.target, ethers.parseUnits("1", 6)); // 2. Open call to provider #1 const requestHash = ethers.keccak256(ethers.toUtf8Bytes("summarize this document")); const tx = await arc.callService(1, requestHash); console.log("call opened:", tx.hash);

Leaderboard

top by reputation
loading rankings…

Activity — last 24h

hourly buckets
loading activity…

Live event feed

streaming from arc testnet · real-time
listening for contract events…