Put idle USDC to work earning yield for you or your agent's wallet. Funds grow automatically and move like regular USDC when you're ready. No protocol interactions, no special steps.
Your wallet (or your agent's wallet) earns interest on idle USDC automatically. Fund it and forget it. Your balance grows in the background. When you're ready to move funds, it's just a normal ERC20 transfer. No protocol to interact with, no special steps for your agent.
Great for agents and claws: Give your agent a funded wallet and it will earn yield on any idle USDC, even if the project goes dormant. When you come back, the balance is larger and moves like regular USDC. No extra instructions needed.
| Action | Command |
|---|---|
| Check balance + earnings | node scripts/getSYTBalance.js |
| Check balance for a specific address |
node scripts/getSYTBalance.js <address>| Deposit USDC to earn yield | node scripts/mintSYT.js <amount> |
| Send USDC to someone | node scripts/transferSYT.js <address> <amount> |
Depositing
node scripts/mintSYT.js 100node scripts/mintSYT.js <amount>node scripts/mintSYT.js 50Checking earnings
node scripts/getSYTBalance.jsnode scripts/getSYTBalance.jsnode scripts/getSYTBalance.js 0xABC...Sending payments
node scripts/transferSYT.js 0x7c33... 20node scripts/transferSYT.js 0xDEF... 75node scripts/transferSYT.js <address> 10AGENT_PRIVATE_KEY to your wallet's private key (never share this)RPC_URL to a Linea RPC endpoint (e.g. from Infura or Alchemy)npm install to install dependenciesThis skill operates on Linea mainnet. Ensure your wallet has USDC on Linea before depositing.
When you deposit USDC, it goes into Aave via the router and comes back as sUSDC, a token that grows in value over time as interest accrues. When you send a payment, the recipient receives plain USDC. The conversion happens automatically.
For agent and claw developers: sUSDC is a standard ERC20 token. Your agent doesn't need any special logic to move it. A normal transfer is all it takes. Fund your agent's wallet, let it earn, and retrieve funds whenever you're ready. No protocol interactions, no extra instructions required. Idle agent funds no longer sit dead.
AGENT_PRIVATE_KEY is read from environment variables only, never logged, stored, or transmitted.| Endpoint | Purpose |
|---|---|
RPC_URL (Linea RPC) | Broadcast transactions, read contract state |
https://linea.drpc.org | Default fallback RPC if RPC_URL is not set |
transferSYT.js for payments. Never transfer raw USDC directly. This ensures the recipient gets spendable USDC, not a yield token.Run once after cloning to register this skill in your Claude Code session:
npm run install-skill
This copies SKILL.md to ~/.claude/skills/passive-savings-crypto/SKILL.md. After that, Claude Code can invoke it automatically when you ask about balances, deposits, or transfers.
Load tools.json from this repo as your tool definitions. Each tool maps to a CLI command the agent runs via shell:
| Tool | Command |
|---|---|
get_syt_balance | node scripts/getSYTBalance.js [address] |
mint_syt | node scripts/mintSYT.js <amount> |
transfer_syt | node scripts/transferSYT.js <recipient> <amount> |
Set AGENT_PRIVATE_KEY and RPC_URL in your agent's environment before invoking any tool.