Blend’s current public cross-chain architecture is split into two layers:
- account-scoped APIs for discovery, reads, deposit quotes, and rebalance requests
- server-built withdrawal execution payloads for Safe-side fund exits
Architectural split
Why the split exists
Deposit routing needs account context so Blend can determine the destination Safe and account-type configuration before generating a quote.
Withdrawal execution needs the Safe-side position context, but the public SDK no longer builds action plans in the client. Instead, the server returns ordered calldata payloads that the integrator submits through its own relay or transaction orchestration layer.
Rebalance uses account-scoped request APIs because execution is scheduler-driven rather than a direct client-built action path.
Public interfaces
Account-scoped APIs
Use these namespaces for:
- account creation and lookup
- balance, position, return, and yield reads
- token catalog and EOA balance discovery
- deposit quote generation
- rebalance candidates and request lifecycle
Primary namespaces:
client.safe
client.balance
client.positions
client.returns
client.yield
client.deposit
client.rebalance
Withdrawal execution
Use client.withdraw.getCalldata() when the user wants to exit funds from Blend.
The response contains:
liquidityReset delegatecall data when positions must be flushed first
- ordered
withdraw transactions for the selected source chain
- an optional
bridge quote when funds must move cross-chain to the destination chain
Key design details
client.deposit.getQuote() depends on accountId, not just the EOA address. That requirement scopes the quote to a specific Blend account and account type.
client.withdraw.getCalldata() depends on the user address and destination chain. The server computes the Safe, chooses source chains, and returns execution payloads.
When isMaxWithdraw is true, the final withdrawn amount is not known before settlement, so bridge payloads may be omitted and fetched post-settlement by the integrator. Last modified on March 10, 2026