Deposit Guide
Learn how to deposit USDC into your Sprout B2B wallet and start earning yield.
Prerequisites
Before making a deposit, ensure you have:
- Your Sprout wallet address (provided during onboarding)
- USDC on Base chain
- Enough ETH on Base for gas fees
Deposit Process
Step 1: Get Your Wallet Address
You can retrieve your deposit address via the API:
curl -X GET "https://api.sproutfi.xyz/api/1/b2b/wallet" \
-H "Authorization: Bearer YOUR_API_KEY"Or use the wallet address provided during onboarding.
Step 2: Transfer USDC
Transfer USDC to your wallet address on Base chain:
| Network | Base (Chain ID: 8453) |
| Token | USDC |
| Contract | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| To Address | Your Sprout wallet address |
Step 3: Wait for Confirmation
Your deposit will be automatically detected and recorded once the transaction is confirmed on Base (typically 1-2 minutes).
Step 4: Verify Your Deposit
Check your balance to confirm the deposit:
curl -X GET "https://api.sproutfi.xyz/api/1/b2b/balance" \
-H "Authorization: Bearer YOUR_API_KEY"Important Notes
Network Warning
Always use Base chain (Chain ID: 8453). Do NOT send funds on Ethereum mainnet, Arbitrum, Optimism, or any other network. Funds sent to the wrong network may be lost.
Token Warning
Only send USDC. Do not send USDT, DAI, ETH or any other token. Only USDC deposits are tracked.
Minimum Deposit
There is no minimum deposit amount, but consider gas costs when making small deposits.
Processing Time
- Detection: ~1-2 minutes after chain confirmation
- Investment: Funds are invested into vaults during the next rebalancing cycle
Programmatic Deposits
If you're integrating deposits programmatically, here's an example using ethers.js:
const { ethers } = require('ethers');
// Base RPC
const provider = new ethers.JsonRpcProvider('https://mainnet.base.org');
// Your wallet with USDC
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);
// USDC contract on Base
const USDC_ADDRESS = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
const USDC_ABI = [
'function transfer(address to, uint256 amount) returns (bool)',
'function decimals() view returns (uint8)'
];
const usdc = new ethers.Contract(USDC_ADDRESS, USDC_ABI, wallet);
// Your Sprout wallet address
const SPROUT_WALLET = '0x...your_sprout_wallet_address';
// Transfer 1000 USDC (USDC has 6 decimals)
const amount = ethers.parseUnits('1000', 6);
const tx = await usdc.transfer(SPROUT_WALLET, amount);
await tx.wait();
console.log('Deposit successful:', tx.hash);Troubleshooting
Deposit not showing up?
- Verify the transaction is confirmed on Base
- Check you sent to the correct wallet address
- Ensure you sent USDC (not another token)
- Wait a few minutes for processing
- Contact support if still not showing after 10 minutes