⛽ — gwei
Recurring payments, native to the chain

Subscriptions that collect themselves.

A $5 monthly plan cannot survive where collecting it costs more than it earns. Here a charge costs the rounding error below — so a subscription can pull its own money, every period, with nobody clicking anything.

One charge · a year of monthly billing · gas paid in USDC

Send money with something to say

A payment carries a note on-chain, so the receipt explains itself later. Or turn it into a pay-link: the other side opens it, sees exactly what is being asked for, and pays in one tap.

Send a payment

A pay-link prefills this form for whoever opens it — share it anywhere, they pay in one tap.

One transaction, up to twenty wallets

Equal shares, a single confirmation, and a separate on-chain receipt for every recipient. Rounding dust comes back to you rather than being stranded in the contract.

Split a payment

One transaction, equal shares, rounding dust returns to you. Each recipient gets their own on-chain receipt event.

Payments you can take back

Inspired by Miden's P2IDR notes. The recipient can claim at any moment; if they never do, the money returns to you once the window closes. The cure for sending to the wrong address.

Send a recallable payment

Your recallable payments

Connect & load — outgoing payments show a recall countdown, incoming ones a claim button.

One transaction, two chains

A message leaves Arc through the Chainlink CCIP router, crosses a live lane, and runs code in a contract on the far side — where it is stored and emits an event you can read back below. The fee is paid in USDC, like everything else here.

Send a message across chains

Powered by Chainlink CCIP. Your message leaves Arc Testnet and is delivered to Ethereum Sepolia — one of the few live cross-chain lanes on Arc. The fee is paid in USDC, like everything else here.

· via Chainlink CCIP
Fee:
Delivery to Sepolia takes a few minutes while Chainlink's network finalizes it. Your message lands in the receiver contract, gets stored, and emits an event.

Messages on

Read straight from your receiver contract — every message that crossed from Arc and actually landed here.

Send a cross-chain message, wait a few minutes, then load — this proves it arrived and ran code on the other chain.

How this works

→ Your transaction calls the CCIP Router on Arc Testnet
→ Chainlink routes the message over the live Arc → Sepolia lane
→ It lands on Ethereum Sepolia and runs your receiver contract
→ The contract stores the message and emits an event
→ One transaction, two chains, real app-to-app messaging
Arc Router · receiver · fee paid in USDC.

A worker that bills for you

A tiny on-chain agent with its own wallet, living in this page. While it is online it watches the subscription contract and charges every due subscription by itself — no MetaMask prompt, no click, no human. It pays only transaction fees; the subscription money always moves subscriber → merchant directly and never touches the agent.

EVERY 15sReads the subscription table, picking up anything created since the last pass.
WHEN DUEBatches the due ones into a single charge, and retries individually if one reverts.
ON EMPTYSays so once and idles, instead of burning gas on a failing call every tick.
Agent address
Gas balance
agent offline
[boot] Agent terminal ready. Fund gas, press Start, and leave this tab open.
The burner key lives in this browser's local storage and nowhere else — that is why this feature is testnet-only and switches itself off on any other network.

Every payment, straight from the chain

Read out of the contract's own events and filtered to your address — nothing here comes from a server that could be wrong.

Your receipts

Connect your wallet and load — every Pay on Arc payment you sent or received, straight from the chain.

Recurring payments, settled on-chain

No money leaves your wallet up front. You approve USDC once, and each period is pulled only when it comes due — by the merchant, by you, or by the billing agent. Cancel in one transaction, any time, from either side.

Start a subscription

Funds never leave your wallet upfront. You approve USDC once; each period is pulled only when due. Cancel anytime — one click, on-chain.

Paying out — subscriptions you fund

Nothing yetConnect your wallet and refresh to see what you are paying for.

Getting paid — people subscribed to you

No subscribers yetShare your address with a plan label and they will show up here.

A due charge can be triggered by anyone — that is what makes it automatable. Leave the auto-collector on and this tab bills for you; hand the job to the billing agent and you can close the tab entirely.

A treasury that rebalances itself

It holds USDC and EURC and tries to keep a fixed split of value between them. Every EUR/USD tick moves that split, so the agent reads the Pyth feed and — once drift breaks the band — pays any keeper a bonus to settle it back on-chain.

Treasury agent — reads Pyth, holds the mix

The treasury holds two stablecoins — USDC and EURC — and tries to keep a fixed value split between them. Every EUR/USD tick shifts that split, so the agent reads the Pyth EUR/USD feed and, when the mix drifts out of band, lets any keeper settle it back on-chain. Live oracle · Arc Testnet.
Pyth oracle Treasury agent USDC ⇄ EURC
EUR / USD · tap refresh
Feed 0xa995…c30b · read from the Pyth contract on Arc, with the signed off-chain update pulled through this site's own endpoint.

Treasury health

USDC balance
EURC balance
— / —
Target mix
Current drift
connect & check

Fund & rebalance

A ratio needs both sides, so seed the treasury with USDC and EURC. Then anyone can be the keeper: supply the short side, receive the other plus a small bonus — that incentive is what makes the agent run without a babysitter.
Rebalance pulls a fresh Pyth update on-chain (tiny USDC gas fee), refuses if confidence is too wide, and only moves funds when drift breaks the band. Agent · Pyth .