Most DeFi protocols put user funds in shared contracts. Blend deploys a real Gnosis Safe for every user and orchestrates yield through modular controllers.Documentation Index
Fetch the complete documentation index at: https://docs.blend.money/llms.txt
Use this file to discover all available pages before exploring further.
System components
Five services work together to run the protocol.| Component | Role |
|---|---|
| Protocol | On-chain contracts: Safes, controllers, guards, adapters |
| API | Manages sessions, quotes, Safe deployment, and account data |
| Worker | Executes background rebalances and health checks |
| Indexer | Monitors on-chain events for state sync |
| SDK | TypeScript libraries for frontend and server integration |
Safe accounts
Shared pools vs Blend
| Shared pools | Blend SMA | |
|---|---|---|
| Fund storage | Everyone’s money in one contract | Your own Gnosis Safe |
| Hack impact | Entire pool drained | Only the affected Safe |
| Custody | Protocol holds funds | You are the sole owner |
| Withdrawal | Depends on pool liquidity | Direct Safe access anytime |
| Automation | Arbitrary contract logic | Whitelisted module calls only |
| Cross-user risk | One user’s loss affects all | Zero cross-user exposure |
Safe deployment
Blend usesBlendSafeFactory to deploy Safes with CREATE2 determinism. Your Safe address is derived from your wallet address and a salt nonce. The same inputs produce the same address on every chain.
The factory reads the module and guard addresses from its own storage at deployment time rather than encoding them in the initializer bytecode. This means module and guard addresses can differ per chain while your Safe address stays the same everywhere.
Module architecture
Every Safe ships with three components installed during setup.- RolesReceiver acts as the authorized module. It extends
StrategyManagerand processes vault operations on your Safe. - RolesGuard validates every transaction. It enforces pause states and blocks unauthorized module calls.
- Safe4337Module enables ERC-4337 account abstraction for gas-sponsored transactions via paymaster.
Automation model
TheStrategyManager (inside RolesReceiver) orchestrates all vault operations. It does not contain strategy logic itself. Instead, it delegates calls to specialized VaultController contracts.
The execution chain works like this:
- An off-chain worker calls
StrategyManager.executeRebalance(safe, vault, rebalanceData) - The StrategyManager validates the vault config and checks the rate limit
- It calls
safe.execTransactionFromModule()targeting the VaultController - The VaultController runs inside the Safe’s context via delegatecall
Direct exit
You hold the owner keys to your Safe on every chain. If Blend’s interface went offline, your funds would still be in your Safes.- Go to safe.global or any block explorer
- Interact with your Safe contracts directly
- Withdraw your funds on each chain
Cross-chain coordination
Same address everywhere
Your Safe has the same address on every chain where it is deployed. CREATE2 determinism plus runtime module resolution make this possible. You deploy on Base first, and later deploy on Arbitrum with the same address.Bridge adapters
Blend uses two bridge adapters for cross-chain transfers.| Adapter | Protocol | Tokens | Limits |
|---|---|---|---|
| AcrossXChainAdapter | Across V3 | Any supported token | No per-message limits |
| CCTPXChainAdapter | Circle CCTP V2 | USDC only | Auto-splits if amount exceeds burnLimitsPerMessage |
Role updates across chains
Configuration changes propagate cross-chain through LayerZero messaging.RolesBroadcasteron the source chain sends a role update message- LayerZero delivers the message to the destination chain
RolesReceiveron the destination chain validates the source (trusted broadcaster address + trusted chain ID)- The receiver processes the update (vault config change or executor change)
RolesBroadcaster calls RolesReceiver.processSameChainCall() directly instead of routing through LayerZero.
Deposit routing
When you deposit from a chain without Blend infrastructure, the API routes your funds through a bridge to the destination chain. The destination is the first configured chain with vault infrastructure. Bridge fees appear in the quote before you confirm.Withdrawal coordination
Withdrawals can pull from multiple source chains. The API scans your balance across all chains, allocates the withdrawal amount (largest balances first), and builds one action plan per source chain. Each plan includes liquidity reset, vault withdrawal, and bridge steps as needed.Contracts
Explore the 9 contract systems powering the protocol.
Security deep dive
See how every transaction passes through 4 security layers.
Supported chains
See where Blend is deployed and which tokens are supported.
Deployments
Find deployed contract addresses on each chain.