client.deposit.getTokens()to discover supported assetsclient.deposit.getBalances()to show user balances on a source chainclient.deposit.getQuote()to request a deposit quote into the account type’s configured destination Safeclient.withdraw.getCalldata()when the user wants to exit funds back out of Blend
The current public model
Cross-chain deposits are exposed through account-scoped API methods, not public adapter classes and not a client-builtdeposit() action.
What the deposit quote does
The quote request tells Blend:- which chain the funds originate from
- which token the user is depositing
- which EOA is initiating the flow
- which Blend account should receive the deposit
- how much value is being moved
accountId and returns a provider-backed quote payload.
What withdrawal payloads do
Withdrawal payloads tell your integration how to exit funds from Blend:liquidityResetcalldata when positions must be unwound first- ordered
withdrawtransactions for the selected source chain - an optional
bridgequote when the withdrawn funds need to move cross-chain to the destination chain
Important constraints
accountIdis required inclient.deposit.getQuote()— seeDepositQuoteParamsfor the full parameter shapeamountmust be a non-negative integer string in smallest unitsclient.deposit.getTokens()returns aTokenCatalogwith{ chains, tokens }, not a flat arrayclient.deposit.getBalances()returns non-zero ERC-20 balances only- for
client.withdraw.getCalldata(),payload.bridgemay be omitted on max withdrawals because the exact post-settlement amount is unknown ahead of time — seeWithdrawCalldataPayloadfor the full payload shape
Rebalances are different
Cross-chain deposits, withdrawals, and rebalances use different surfaces.- Deposits:
client.deposit.* - Withdrawals:
client.withdraw.getCalldata(...) - Rebalances:
client.rebalance.*
/integrations/deposit-withdraw for the end-to-end flow.
Best practices
Always create or fetch the account first
Always create or fetch the account first
Call
client.safe.account(userEoa) before requesting a deposit quote so you have the correct accountId.Treat quote payloads as provider-owned
Treat quote payloads as provider-owned
The deposit quote response is intentionally opaque. Do not hard-code against undocumented provider fields unless your application owns that compatibility layer.
Handle chain eligibility errors explicitly
Handle chain eligibility errors explicitly
If the selected source chain is not enabled for the account type, quote generation will fail. Surface that as a product restriction, not a generic network error.