A guide to depositing assets into a portfolio
const depositResponse = await fetch(`https://api.glider.fi/v1/portfolio/${portfolioId}/deposit`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-KEY': 'your_api_key_here', }, body: JSON.stringify({ token: { chainId: 8453, // Base chain address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', // ETH on Base amount: '0.1' // 0.1 ETH } }), }); const depositData = await depositResponse.json();
body: JSON.stringify({ token: { chainId: 8453, // Base chain address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base amount: '10000000' // 10 USDC (6 decimals) } })
// Example response { "success": true, "data": { "to": "0xPortfolioVaultAddress", "value": "100000000000000000", // 0.1 ETH in wei "data": "0x...", // Transaction calldata "chainId": 8453 } }
// Using ethers.js const tx = await signer.sendTransaction({ to: depositData.data.to, value: depositData.data.value, data: depositData.data.data, chainId: depositData.data.chainId }); // Wait for confirmation const receipt = await tx.wait(); console.log("Deposit confirmed:", receipt.transactionHash);
const portfolioResponse = await fetch(`https://api.glider.fi/v1/portfolio/${portfolioId}`, { method: 'GET', headers: { 'X-API-KEY': 'your_api_key_here', }, }); const portfolio = await portfolioResponse.json(); console.log("Portfolio assets:", portfolio.data.vaults[0].assets);
// Check if we need to approve first if (depositData.data.requiresApproval) { const approveTx = await signer.sendTransaction({ to: depositData.data.approvalData.to, data: depositData.data.approvalData.data, chainId: depositData.data.chainId }); await approveTx.wait(); // Now call deposit endpoint again const depositResponse2 = await fetch(`https://api.glider.fi/v1/portfolio/${portfolioId}/deposit`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-KEY': 'your_api_key_here', }, body: JSON.stringify({ token: { chainId: 8453, address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC amount: '10000000' // 10 USDC } }), }); const depositData2 = await depositResponse2.json(); // Proceed with deposit transaction }
simulate: true