Passive Savings Crypto
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.
What You Can Ask
- - "How much have I earned so far?"
- "Put 200 USDC to work earning yield."
- "Send 50 USDC to [address]."
- "What's my balance?"
- "Check my savings."
- "Start earning yield on this wallet's USDC."
Script Reference
| Action | Command |
|---|
| Check balance + earnings | INLINECODE0 |
| 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> |
Examples
Depositing
- - "Save 100 USDC" → INLINECODE4
- "Put my idle USDC to work" → ask the user how much, then INLINECODE5
- "Deposit 50 USDC" → INLINECODE6
Checking earnings
- - "What's my sUSDC balance?" → INLINECODE7
- "How much yield have I earned?" → INLINECODE8
- "Check the savings balance for 0xABC..." → INLINECODE9
Sending payments
- - "Pay 20 USDC to 0x7c33..." → INLINECODE10
- "Send 75 USDC to my friend at 0xDEF..." → INLINECODE11
- "Transfer 10 USDC to [address]" → INLINECODE12
Setup
- 1. Set
AGENT_PRIVATE_KEY to your wallet's private key (never share this) - Set
RPC_URL to a Linea RPC endpoint (e.g. from Infura or Alchemy) - Run
npm install to install dependencies
This skill operates on Linea mainnet. Ensure your wallet has USDC on Linea before depositing.
How It Works
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.
Security & Privacy
- - No data leaves the device except signed transactions broadcast to the Linea RPC endpoint.
- Private key handling:
AGENT_PRIVATE_KEY is read from environment variables only, never logged, stored, or transmitted. - On-chain only: All state changes are EVM transactions. No backend, no database, no telemetry.
| Endpoint | Purpose |
|---|
| INLINECODE17 (Linea RPC) | Broadcast transactions, read contract state |
| INLINECODE18 |
Default fallback RPC if
RPC_URL is not set |
Agent Guardrails
- - Always use
transferSYT.js for payments. Never transfer raw USDC directly. This ensures the recipient gets spendable USDC, not a yield token. - Report both figures when showing balance. The nominal sUSDC amount and the underlying USDC value it represents (these diverge as yield accrues).
- Confirm before depositing or transferring. These are on-chain transactions and cannot be reversed.
- Network is Linea mainnet. Transactions on other chains will not work with this skill.
Integration
Claude Code
Run once after cloning to register this skill in your Claude Code session:
CODEBLOCK0
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.
OpenAI / Custom Agents
Load tools.json from this repo as your tool definitions. Each tool maps to a CLI command the agent runs via shell:
| Tool | Command |
|---|
| INLINECODE24 | INLINECODE25 |
| INLINECODE26 |
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.
被动储蓄加密
您的钱包(或您代理的钱包)会自动为闲置的USDC赚取利息。存入后即可忘记,您的余额会在后台持续增长。当您准备转移资金时,只需进行普通的ERC20转账即可。无需与协议交互,也无需为您的代理执行特殊步骤。
非常适合代理和机器人: 为您的代理提供一个已充值的钱包,即使项目进入休眠状态,它也能为任何闲置的USDC赚取收益。当您回来时,余额会更大,且像普通USDC一样可转移。无需额外指令。
您可以询问的内容
- - 到目前为止我赚了多少?
- 将200 USDC用于赚取收益。
- 向[地址]发送50 USDC。
- 我的余额是多少?
- 查看我的储蓄。
- 开始让这个钱包的USDC赚取收益。
脚本参考
| 操作 | 命令 |
|---|
| 查看余额和收益 | node scripts/getSYTBalance.js |
| 查看特定地址的余额 |
node scripts/getSYTBalance.js <地址> |
| 存入USDC以赚取收益 | node scripts/mintSYT.js <金额> |
| 向某人发送USDC | node scripts/transferSYT.js <地址> <金额> |
示例
存入
- - 储蓄100 USDC → node scripts/mintSYT.js 100
- 让我的闲置USDC开始工作 → 询问用户金额,然后 node scripts/mintSYT.js <金额>
- 存入50 USDC → node scripts/mintSYT.js 50
查看收益
- - 我的sUSDC余额是多少? → node scripts/getSYTBalance.js
- 我赚了多少收益? → node scripts/getSYTBalance.js
- 查看0xABC...的储蓄余额 → node scripts/getSYTBalance.js 0xABC...
发送付款
- - 向0x7c33...支付20 USDC → node scripts/transferSYT.js 0x7c33... 20
- 向我的朋友0xDEF...发送75 USDC → node scripts/transferSYT.js 0xDEF... 75
- 向[地址]转账10 USDC → node scripts/transferSYT.js <地址> 10
设置
- 1. 将AGENTPRIVATEKEY设置为您的钱包私钥(切勿分享)
- 将RPC_URL设置为Linea RPC端点(例如来自Infura或Alchemy)
- 运行npm install安装依赖项
此技能在Linea主网上运行。请确保您的钱包在存入前在Linea上有USDC。
工作原理
当您存入USDC时,它会通过路由器进入Aave,并以sUSDC的形式返回,这是一种随着时间推移因利息累积而增值的代币。当您发送付款时,接收方会收到普通的USDC。转换会自动进行。
对于代理和机器人开发者: sUSDC是一种标准的ERC20代币。您的代理无需任何特殊逻辑即可转移它。只需一次普通转账即可。为您的代理钱包充值,让它赚取收益,并在您准备好时随时取回资金。无需协议交互,无需额外指令。闲置的代理资金不再沉睡。
安全与隐私
- - 没有数据离开设备,除了广播到Linea RPC端点的已签名交易。
- 私钥处理: AGENTPRIVATEKEY仅从环境变量读取,绝不记录、存储或传输。
- 仅链上操作: 所有状态变更均为EVM交易。无后端、无数据库、无遥测。
| 端点 | 用途 |
|---|
| RPCURL (Linea RPC) | 广播交易、读取合约状态 |
| https://linea.drpc.org |
如果未设置RPCURL时的默认备用RPC |
代理防护措施
- - 始终使用transferSYT.js进行付款。 切勿直接转移原始USDC。这确保接收方获得可消费的USDC,而非收益代币。
- 显示余额时报告两个数值。 名义sUSDC金额及其代表的底层USDC价值(随着收益累积,两者会逐渐偏离)。
- 存入或转账前确认。 这些是链上交易,不可逆转。
- 网络为Linea主网。 其他链上的交易无法与此技能配合使用。
集成
Claude Code
克隆后运行一次,以在您的Claude Code会话中注册此技能:
bash
npm run install-skill
这会将SKILL.md复制到~/.claude/skills/passive-savings-crypto/SKILL.md。之后,当您询问余额、存入或转账时,Claude Code可以自动调用它。
OpenAI / 自定义代理
从此仓库加载tools.json作为您的工具定义。每个工具映射到代理通过shell运行的CLI命令:
| 工具 | 命令 |
|---|
| getsytbalance | node scripts/getSYTBalance.js [地址] |
| mint_syt |
node scripts/mintSYT.js <金额> |
| transfer_syt | node scripts/transferSYT.js <接收方> <金额> |
在调用任何工具之前,请在代理的环境中设置AGENTPRIVATEKEY和RPC_URL。