Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ResonArc

Non-custodial, verifiable USDC yield-routing agent for Arc.

Problem

USDC yield venues on Arc are launching fast and fragmenting: XyloNet's vaults, USYC's tokenized T-bill fund, Aave v4 (pending), Maple, Morpho, and more will each carry different rates, risk profiles, and terms. No treasury manager or individual USDC holder can watch all of them manually, and the "auto-yield" agents that already exist on Arc (e.g. YieldClaw) are black boxes: they move your funds and tell you the new number, not why that venue was chosen over the others. On a chain explicitly designed for institutional and regulated money, an unauditable agent making custody-adjacent decisions is a liability, not a feature — it's the first thing a compliance team or a judge will object to.

The real problem isn't "find better yield." It's: as stablecoin-native venues multiply on Arc, how do you let an agent move USDC on your behalf without giving up either control or auditability?

What we're building

ResonArc is an agent that:

  1. Monitors a defined set of USDC yield venues on Arc (vaults/markets, mock and real).
  2. Decides where funds should sit, using Claude to reason over on-chain rate data plus simple risk bounds.
  3. Executes through a scoped, non-custodial permission — a session key or Safe module limited to a whitelisted rebalance() call with amount/venue bounds. The agent never holds general signing power over the user's funds.
  4. Proves its reasoning: every rebalance writes a hash of the decision trace to Arc via the Memo precompile, so the explanation is anchored on-chain and checkable against the data that was actually read — not just a chat message that could say anything.

Given that real yield venues on Arc testnet are still thin (XyloNet's vault is at 0.0% APY today, Aave v4 isn't deployed), the testnet demo runs against a small set of self-deployed ERC-4626 vaults with distinct, clearly-labeled simulated APRs, plus USYC as a real leg if allowlisting clears in time. The architecture is what's being proven — the same router plugs into real markets as they go live, with no redesign needed.

Differentiator: not "AI finds yield" (that's already been built on Arc). It's "every move this agent makes is independently verifiable, and it never leaves user custody" — which is the actual bar for money that behaves like money.

Repo layout

resonarc/
  contracts/     Foundry project — MockVault.sol (simulated-APR ERC-4626-style vaults),
                  Deploy.s.sol (deploys 3 vault instances to Arc Testnet), tests.
  agent/         Vendored circlefin/agent-stack-starter-kits monorepo, scoped to the
                  claude-agent-sdk kit + its shared packages (agent-cli, circle-tools).
  docs/
    PROJECT_PLAN.md   Full milestone plan and timeline.

Arc Testnet reference

Chain ID 5042002
Native gas token USDC (18 decimals for native balance; always use the ERC-20 interface for balance math, which is 6 decimals)
USDC ERC-20 address 0x3600000000000000000000000000000000000000
Memo precompile (reasoning-trace anchoring) 0x5294E9927c3306DcBaDb03fe70b92e01cCede505
RPC / connection details https://docs.arc.io/arc/references/connect-to-arc
Faucet https://faucet.circle.com
Docs index https://docs.arc.io/llms.txt

Getting started

Contracts (contracts/)

cd contracts
forge build
forge test

cp .env.example .env   # fill in PRIVATE_KEY and RPC URL
forge script script/Deploy.s.sol:Deploy \
  --rpc-url $ARC_TESTNET_RPC_URL --broadcast --private-key $PRIVATE_KEY

Deploys three MockVault instances (4%, 7%, 11% simulated fixed APR) wrapping Arc Testnet USDC.

Agent (agent/)

Vendored from circlefin/agent-stack-starter-kits, kits/claude-agent-sdk. See agent/kits/claude-agent-sdk/README.md for full details. Quick path:

cd agent
bun install
cp kits/claude-agent-sdk/.env.example kits/claude-agent-sdk/.env   # fill in ANTHROPIC_API_KEY

# One-time host setup — accept Circle's Terms of Use yourself (an agent must not do this
# on your behalf) and log in with your own email + OTP:
circle wallet status
circle skill install --tool claude-code

bun run --cwd kits/claude-agent-sdk demo

The first demo run logs you in with email + OTP and provisions an agent wallet; fund it via https://faucet.circle.com before running the payment flow.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages