Home  /  Blog  /  Meet the Auto-Replenish Agent
Product Launch · Preview

Meet the Auto-Replenish Agent

Sign once. Your agent keeps a wallet topped up when it runs low, or sends USDC on a fixed schedule - across eight chains, to as many target wallets as you want. Powered by Circle Programmable Wallets, CCTP V2 for cross-chain delivery, and Paymaster-sponsored gas. Available today in preview on Arc Testnet.

May 20, 2026 6 min read

Stablecoins are great at sitting still. They are bad at moving themselves. Today that changes: the Auto-Replenish Agent is live in preview at oneliq.xyz/agent. One signature, one rule - your USDC starts moving itself, across chains, on your terms.

TL;DR
Two modes - Auto Top-Up (refill a wallet when it dips under a floor) and Scheduled Send (recurring USDC transfers, daily / weekly / monthly). Eight supported chains via Circle CCTP V2 with ~30s fast finality. Circle Paymaster sponsors gas. A daily safety cap, a 30-day rule expiry, and one-click revoke are non-negotiable defaults. Preview on Arc Testnet - Discord is the fastest way to break it.

What it does, in one sentence per mode

// Auto Top-Up
Refill on dip

When a target wallet's USDC falls below your floor, the agent tops it back up to your refill amount. Bounded by a daily safety cap you sign on-chain.

Floor · Refill · Daily Cap
// Scheduled Send
Send on a clock

Send USDC once, daily, weekly, or monthly to one or many wallets. Choose a time of day, a start date, and whether the amount goes to each or is split between them.

Once · Daily · Weekly · Monthly

Both modes share the same source-and-target shape. Sources are chains you've pre-authorised the agent to pull USDC from. Targets are destination wallets - each with its own destination chain. If source and destination differ, the agent routes the transfer through CCTP V2 burn-and-mint automatically. Same chain? Straight transfer, no bridge.

How it actually works

Three signatures, then nothing else from you until you want to change something. Here's the whole loop:

  1. You sign once (well, twice). One EIP-712 agent rule defines the policy - mode, sources, targets, floor / amount / cap, expiry. Then one EIP-2612 USDC permit per source chain authorises a Circle Programmable Wallet to pull USDC from your EOA up to a bounded headroom (10× your daily cap or send amount, capped). Both signatures live in your wallet's typed-data popup, no transaction needed.
  2. Agent watches. A Cloudflare Worker runs the cron loop every minute, scanning active rules. For top-up: it polls the target wallet's USDC balance against your floor. For schedule: it just waits for the next firing time.
  3. Funds move. When a rule fires, the agent's smart account assembles a userOp: USDC pull from your EOA via the permit → optional CCTP V2 burn-and-mint to the destination chain (~30s on fast-finality pairs) → final delivery to the target wallet. Gas is sponsored by Circle Paymaster - you pay nothing in the gas token.
  4. You stay in control. Pause, resume, run-now, or revoke any agent from the drawer. Revoke is the killswitch - it invalidates the signature server-side and stops every future execution.
Why "preview", not "v1"
This is the first time most of the integrations run together - CCTP V2 fast-finality on testnet, Programmable Wallet provisioning per source chain, Paymaster-sponsored userOps. We want real users hitting real edge cases before we call it stable. If your agent gets stuck, the drawer surfaces it with a retry CTA, and there's a "force complete" admin button on CCTP transfers that hang.

Safety rails (the non-negotiables)

The agent moves money on your behalf. That's a serious primitive, and the design assumes things will go wrong in production. Five rails:

Chain coverage

Eight testnets, every pair routable via CCTP V2. The chip selector covers:

ChainRoleNotes
Arc TestnetSource · DestinationHome chain. USDC is native gas, finality is sub-second.
Base SepoliaSource · DestinationDefault source - Coinbase-friendly faucet.
Ethereum SepoliaSource · DestinationSlowest finality (~13 min) when source.
Avalanche FujiSource · DestinationFastest finality from source - ~30s end-to-end.
Arbitrum SepoliaSource · DestinationL2 finality.
OP SepoliaSource · DestinationL2 finality.
Polygon AmoySource · DestinationPolygon's PoS testnet.
Unichain SepoliaSource · DestinationNewest in the lineup.

You can mix and match freely: pull from Base + Fuji + Arc as sources, fan out to four target wallets each on a different chain, with one agent.

What's actually in the preview

The agent has been on a rapid iteration cycle for two months. Highlights of what shipped:

Why this design

We could have built a "Oneliq-managed wallet that holds your USDC and sends it on a schedule". We didn't. Custody-style scheduled-send products already exist; they require trusting the operator. Oneliq is non-custodial by construction, and the agent had to stay that way.

The shape that emerged: your EOA stays your EOA. The agent's smart account holds no balance you didn't permit. The permit caps the blast radius. The cron Worker can be compromised tomorrow and the worst case is bounded by what you signed - not "all your USDC drained".

That trade has costs. You sign twice the first time (rule + permit). You re-sign when you change the rule. The agent can't move funds you didn't pre-authorise, ever. We think that's the right trade for a primitive this powerful.

How to try it

  1. Get testnet USDC. faucet.circle.com on Arc Testnet or any of the seven other supported chains. The same USDC works as both the agent's funding source and Arc's gas token.
  2. Open oneliq.xyz/agent. Connect a wallet. Pick a mode - Auto Top-Up or Scheduled Send. Pick at least one source chain and at least one target wallet.
  3. Set the rule. Top-Up: floor + refill amount + daily cap. Scheduled: amount + frequency + start time. The summary card on the right shows you the policy in plain English before you sign.
  4. Deploy. Two signatures (rule + permit per source chain), one server registration call, done. The agent appears in your list with a live status pill. First execution lands on the next cron tick if a rule is satisfied immediately.
  5. Watch the receipts. Every execution shows up in the agent drawer with state machine, burn-tx explorer link, and final mint hash. The History page surfaces them in your unified activity feed too.
Testnet only - no real money
Everything on the agent today runs on Arc Testnet and seven other Circle-supported testnets. USDC is testnet USDC. Never send mainnet USDC to a testnet address - it's unrecoverable.

What's next

The agent is the first Oneliq product where reliability matters more than features. The next few weeks are reliability work:

  1. Observability. Per-execution traces, public uptime dashboard for the cron worker, alerting on the failure-rate KPI.
  2. Edge cases. What happens when CCTP fast-finality is degraded? When a target wallet sits behind a smart contract that reverts? When the user's permit gets revoked outside our UI? We're surfacing all of those clearly.
  3. Mobile signing. WalletConnect / Reown AppKit so you can sign from a phone - the agent itself runs server-side, so mobile is purely a signing flow.
  4. More rule shapes. Conditional rules ("if A's balance > X, send to B"), webhooks for inbound triggers, and B2B memo references on every transfer.

Past that, mainnet - we ship on Arc Mainnet shortly after Arc Foundation launches it, with the same non-custodial, permit-bounded design.

Try it, break it, tell us

Open oneliq.xyz/agent, sign a rule, and watch USDC move itself. If it does something weird, ping us in Discord with the agent ID - we're triaging preview reports in real time.

Let your USDC do the boring work.

Auto-Replenish Agent · Preview on Arc Testnet · Eight chains · One signature.

Open Agent Read the docs

Oneliq is a non-custodial frontend currently on Arc Testnet. The Auto-Replenish Agent is in preview - expect rough edges and report them. Nothing here is real money or financial advice. We don't custody funds; you always retain control of your wallet.

© 2026 Oneliq · Built on Arc Testnet
← Back to blog  ·  X  ·  Discord