Skip to main content

fund-tempo

Bridge 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: Get the Tempo wallet address

Run this to get the user’s Tempo wallet address:
tempo wallet whoami
Use the returned address as receiverAddress in the quote request. This is the address that will receive USDC.E on Tempo.

Step 2: Check what the user has

Ask the user for their wallet address on the origin chain, 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 3: 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 4: Present deposit instructions

From 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 5: 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.