| metadata | {"openclaw":{"triggers":["deposit usdc","withdraw usdc+","check yield","compound","usdc+","reflect","balance"],"requires":{"env":["SOLANA_RPC_URL","REFLECT_USDC_PLUS_MINT"]},"install":[{"id":"npm","kind":"npm","package":"@solana/web3.js"},{"id":"npm","kind":"npm","package":"@solana/spl-token"},{"id":"npm","kind":"npm","package":"bn.js"}]}} |
| functions | {"reflect-deposit":{"description":"Deposit USDC into Reflect to mint USDC+ (auto-yield at ~5% APY)","parameters":[{"name":"amount","type":"number","required":true,"description":"Amount of USDC to deposit"},{"name":"wallet_b58","type":"string","required":true,"description":"Base58-encoded wallet private key"}],"returns":{"type":"object","properties":{"success":{"type":"boolean"},"signature":{"type":"string"},"usdcPlusMinted":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}}},"execute":"const { Connection, Keypair, PublicKey } = require(\"@solana/web3.js\");\nconst { depositToUsdcPlus } = require(\"./scripts/deposit.js\");\n\nconst connection = new Connection(process.env.SOLANA_RPC_URL || \"https://api.mainnet-beta.solana.com\");\nconst wallet = Keypair.fromSecretKey(Buffer.from(Buffer.from(wallet_b58, \"base58\")));\nconst result = await depositToUsdcPlus(connection, wallet, amount);\nreturn result;\n"},"reflect-withdraw":{"description":"Withdraw USDC+ back to USDC","parameters":[{"name":"amount","type":"number","required":true,"description":"Amount of USDC+ to redeem"},{"name":"wallet_b58","type":"string","required":true,"description":"Base58-encoded wallet private key"}],"returns":{"type":"object","properties":{"success":{"type":"boolean"},"signature":{"type":"string"},"message":{"type":"string"}}},"execute":"const { Connection, Keypair } = require(\"@solana/web3.js\");\nconst { withdrawFromUsdcPlus } = require(\"./scripts/deposit.js\");\n\nconst connection = new Connection(process.env.SOLANA_RPC_URL || \"https://api.mainnet-beta.solana.com\");\nconst wallet = Keypair.fromSecretKey(Buffer.from(Buffer.from(wallet_b58, \"base58\")));\nconst result = await withdrawFromUsdcPlus(connection, wallet, amount);\nreturn result;\n"},"reflect-balance":{"description":"Check Reflect USDC+ balance, yield stats, and APY","parameters":[{"name":"wallet_pubkey","type":"string","required":true,"description":"Public key of the wallet to check"}],"returns":{"type":"object","properties":{"usdc":{"type":"number"},"usdcPlus":{"type":"number"},"totalValue":{"type":"number"},"dailyYield":{"type":"number"},"annualizedYield":{"type":"number"},"apy":{"type":"number"},"message":{"type":"string"}}},"execute":"const { Connection, PublicKey } = require(\"@solana/web3.js\");\nconst { getReflectBalances } = require(\"./scripts/balance.js\");\n\nconst connection = new Connection(process.env.SOLANA_RPC_URL || \"https://api.mainnet-beta.solana.com\");\nconst wallet = new PublicKey(wallet_pubkey);\nconst balances = await getReflectBalances(connection, wallet);\nbalances.message = `USDC: $${balances.usdc.toFixed(2)} | USDC+: $${balances.usdcPlus.toFixed(2)} | Total: $${balances.totalValue.toFixed(2)} | APY: ${balances.apy.toFixed(2)}%`;\nreturn balances;\n"},"reflect-compound":{"description":"Compound accumulated yield (auto-compounds — USDC+ accrues automatically)","parameters":[{"name":"wallet_b58","type":"string","required":true,"description":"Base58-encoded wallet private key"},{"name":"min_balance","type":"number","required":false,"default":1,"description":"Minimum USDC+ balance before compounding"}],"returns":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"newYield":{"type":"number"}}},"execute":"const { Connection, Keypair } = require(\"@solana/web3.js\");\nconst { compoundYield } = require(\"./scripts/compound.js\");\n\nconst connection = new Connection(process.env.SOLANA_RPC_URL || \"https://api.mainnet-beta.solana.com\");\nconst wallet = Keypair.fromSecretKey(Buffer.from(Buffer.from(wallet_b58, \"base58\")));\nconst result = await compoundYield(connection, wallet, min_balance || 1);\nreturn result;\n"},"reflect-status":{"description":"Full Reflect yield status — balances, APY, daily yield","parameters":[{"name":"wallet_pubkey","type":"string","required":true,"description":"Public key of the wallet"}],"returns":{"type":"object","properties":{"message":{"type":"string"},"usdc":{"type":"number"},"usdcPlus":{"type":"number"},"totalValue":{"type":"number"},"dailyYield":{"type":"number"},"apy":{"type":"number"}}},"execute":"const { Connection, PublicKey } = require(\"@solana/web3.js\");\nconst { getReflectBalances } = require(\"./scripts/balance.js\");\n\nconst connection = new Connection(process.env.SOLANA_RPC_URL || \"https://api.mainnet-beta.solana.com\");\nconst wallet = new PublicKey(wallet_pubkey);\nconst balances = await getReflectBalances(connection, wallet);\nreturn {\n message: `Portfolio: $${balances.totalValue.toFixed(2)} | APY: ${balances.apy.toFixed(2)}% | Daily: $${balances.dailyYield.toFixed(4)}`,\n ...balances,\n};\n"}} |