Migrate funds from any EVM chain to Tempo so your agent can start transacting.
Tempo is a chain purpose-built for autonomous agents. To get started, your agent needs funds on Tempo. Bungee handles the migration — any token from any supported EVM chain arrives as USDC.E on Tempo.
The fund-tempo skill gives your agent everything it needs to migrate funds to a Tempo wallet: balance checks, deposit quotes, transaction execution, and status tracking.
---name: fund-tempodescription: "Use when the user wants to fund a Tempo wallet, bridge tokens to Tempo, top up Tempo, move assets to Tempo, or exit to Tempo from any EVM chain. Also matches: migrate to Tempo, transfer to Tempo, deposit to Tempo."---# fund-tempoBridge tokens from any EVM chain to a Tempo wallet. All tokens arrive as USDC.E on Tempo. Powered by Bungee.Tempo chain ID is `4217`. USDC.E on Tempo is `0x20c000000000000000000000b9537d11c60e8b50`.## Step 1: Check what the user hasAsk the user for their wallet address, then check their balances:```GET https://public-backend.bungee.exchange/api/v1/tokens/list?userAddress=0xUSER_ADDRESS```This returns all tokens with balances across all chains. Use this to confirm what the user has and on which chain.## Step 2: Get a deposit quote```GET https://public-backend.bungee.exchange/api/v1/bungee/quote?originChainId=ORIGIN_CHAIN&destinationChainId=4217&inputAmount=AMOUNT&inputToken=INPUT_TOKEN&outputToken=0x20c000000000000000000000b9537d11c60e8b50&receiverAddress=TEMPO_ADDRESS&refundAddress=USER_ADDRESS&enableDepositAddress=true```- `originChainId`: the chain the user's tokens are on- `inputToken`: the token address on that chain- `outputToken`: always `0x20c000000000000000000000b9537d11c60e8b50` (USDC.E on Tempo)- `inputAmount`: amount in the token's smallest unit (e.g. 6 decimals for USDC, so `100000000` = 100 USDC)- `receiverAddress`: the user's Tempo wallet address- `refundAddress`: the user's address on the origin chain- `enableDepositAddress`: always `true`**Common USDC examples:**- 100 USDC from Base: `originChainId=8453&inputToken=0x833589fcd6edb6e08f4c7c32d4f71b54bda02913&inputAmount=100000000`- 100 USDC from Arbitrum: `originChainId=42161&inputToken=0xaf88d065e77c8cc2239327c5edb3a432268e5831&inputAmount=100000000`- 100 USDC from Ethereum: `originChainId=1&inputToken=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48&inputAmount=100000000`- 100 USDC from Optimism: `originChainId=10&inputToken=0x0b2c639c533813f4aa9d7837caf62653d097ff85&inputAmount=100000000`- 100 USDC from Polygon: `originChainId=137&inputToken=0x3c499c542cef5e3811e1192ce70d8cc03d5c3359&inputAmount=100000000`## Step 3: Present deposit instructionsFrom the response, present clearly to the user:- **Amount**: convert `deposit.depositData.amount` to human-readable using `result.input.token.decimals`- **Token**: `result.input.token.symbol`- **Send to**: `deposit.depositData.address`- **On chain**: `deposit.depositData.chainId`- **You will receive**: `deposit.output.effectiveAmount` converted with `deposit.output.token.decimals` USDC.E on Tempo- **Estimated time**: `deposit.estimatedTime` seconds- **Track**: `https://socketscan.io/tx/{deposit.requestHash}`If the agent has wallet access, submit `deposit.txData` as a transaction instead.## Step 4: Track status```GET https://public-backend.bungee.exchange/api/v1/bungee/status?requestHash=REQUEST_HASH```Status `3` or `4` = completed. Status `5`, `6`, or `7` = failed. Poll every 10 seconds.## Notes- Always use `enableDepositAddress=true`.- `refundAddress` is required. Use the user's address on the origin chain.- Amounts are in smallest units (6 decimals for USDC: 1 USDC = 1000000).- Tempo has no native gas token. Gas fees are paid in the user's chosen fee token.