client.deposit.getChains()to discover supported chainsclient.deposit.getTokens(chainId, eoa?)to discover supported assets and wallet holdingsclient.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:steps array. Steps are ordered and each has a kind discriminator:
liquidityReset- flush vault positions to loan token (submit as delegatecall)approve/withdraw/approveReset- vault exit transactions (submit as regular calls)bridge- relay bridge when funds must move cross-chain (submit with ETH value)
Important constraints
accountIdis required inclient.deposit.getQuote(). SeeDepositQuoteParamsfor the full parameter shapeamountmust be a non-negative integer string in smallest unitsclient.deposit.getTokens(chainId, eoa?)returns a flatDepositToken[]array. Witheoa, tokens includebalanceandamountUsdfields- for
client.withdraw.getCalldata(), thebridgestep may be omitted on max withdrawals because the exact post-settlement amount is unknown ahead of time. SeeWithdrawChainPayloadfor the full payload shape
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.