Skip to content
Thenar
Arc

The Arc stack

Thenar pays people per robot run and sells what they record to AI agents. On Arc that is one token and one transaction: USDC is the escrow, the payout and the gas, a run is final when its block lands, and an agent pays for data in the HTTP request that fetches it. The core loop needs only the first two rows; the rest extend it across chains and identities, and none of them can stop a run from being paid. Configuration and current reads are shown below. Earlier network proofs, local fork checks and untested integrations are kept distinct; a deployed contract alone is not evidence of a completed flow.

USDC gas, sub-second finality

Earlier live proof

Bounties, payouts, licences and gas are one token. A run is paid in the transaction that records it, and Arc's deterministic finality makes that payout final when the block lands — the station shows the measured time.

gas and payouts in USDC · final on inclusion

USDC (ERC-20 view, 6 dec) (not deployed)ThenarProtocol (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

x402 in USDC

Earlier live proof

An AI agent asks for a task's corpus, is answered 402, signs an EIP-3009 transferWithAuthorization ("USDC"/"2") and gets the file in the same request. Thenar settles it with an in-process facilitator; every sale goes to SalesLog with the sha256 served.

reading…

GET /api/agent/corpus →SalesLog (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

ERC-8004

Fork

Built so the verifier is an agent in Arc's Identity Registry and every verdict that moved money is written to the Reputation Registry (runVerdict, feedbackHash = run id) by ThenarVerdicts; buyer agents can rate it (corpusQuality) and are logged by agent id. The current registration and reputation counts are read below.

reading…

ThenarVerdicts (not deployed)Reputation Registry (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

Arc Memo

Fork

A run is submitted through Arc's Memo predeploy with memoId = the run id, so the payout carries what it paid for; the protocol still sees the operator as msg.sender (CallFrom). Where a node doesn't execute CallFrom, the run goes out plain.

reading…

Memo (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

CCTP V2

Fork

Operators withdraw earnings to Base, Ethereum or Arbitrum from /portfolio: a depositForBurn on Arc, Circle's Iris attests, receiveMessage mints native USDC there.

reading…

TokenMessengerV2 (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

Chainlink CCIP (+ CCTP)

Fork

A buyer agent on Base or Ethereum licenses a corpus on Arc in one transaction: CCTP moves the USDC to ThenarCcipReceiver, CCIP carries the order, the receiver pays licensePolicyFor and every operator. Allowlisted senders, failed messages kept for retry.

reading…

ThenarCcipReceiver (not deployed)CCIP Router (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

Circle Gateway

Not run

Opt-in (NEXT_PUBLIC_FEATURE_GATEWAY=1): a sponsor's unified USDC balance on another chain funds a bounty — a signed burn intent, Circle attests, gatewayMint on Arc — then the task is posted gaslessly with EIP-3009.

reading…

GatewayMinter (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

P-256 passkeys

Fork

An operator registers a passkey on chain (PasskeyRegistry). The verifier signs only for admitted addresses, and a passkey-authorised run (submitTrajectoryWithPasskey) is checked by Arc's P-256 precompile at 0x0100.

precompile reading on /network

PasskeyRegistry (not deployed)

Verified: Current mainnet state is shown above. Earlier transaction-flow verification is documented in the repository.

Arc, live

Arc · paused

waiting for a block

A block every
…
Finalized tag behind head
…
Final on inclusion
…
Gas paid in
USDC
Details

Read live from Arc’s public RPC. The interval is measured from the chain’s own timestamps over the last few dozen blocks; each read also asks for the finalized block and compares it with the head. Arc’s finality is deterministic: a block is final when it is made, so a run is paid and settled in the block that records it, with nothing to wait for after.