Skip to main content

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.

Blend is built for neobanks, wallets, and fintech products that want user-isolated Safe accounts with DeFi yield. You create the product and user experience. Blend handles account resolution, Safe infrastructure, quote generation, withdrawal orchestration, and settlement validation.

Integration shape

The current SDK flow is:
frontend app -> @blend-money/sdk -> Blend /sdk backend
Your app initializes the SDK with a client-safe publishableKey. The user connects a wallet and signs in with SIWE. After that, the SDK calls the Blend /sdk backend with the publishable key plus the user’s bearer session. Your own backend may still exist for product logic, user records, analytics, support tooling, compliance workflows, or reconciliation. It is not required as a proxy for every Blend SDK request.

Your setup workflow

1

Submit assets

Add the DeFi positions you want in your strategy. Each asset goes through Blend’s review pipeline. See Assets.
2

Create a Basket

Build a strategy template from your approved assets. Set target allocation percentages. See Baskets.
3

Create an Account Type

Create a product offering such as “Savings” or “Growth” and link it to your Basket. Blend issues a publishable key for the account type. See Account Types.
4

Embed the SDK

Initialize BlendSdk in your frontend with the account type’s publishableKey, then sign the user in with SIWE.
5

Quote and execute intents

Use quoteDeposit(), quoteWithdraw(), and execute() for the common flow, or sdk.sessions.* when your app needs custom transaction orchestration.
6

Manage flow plans

When positions drift from target allocations, approve or cancel flow plans to rebalance. See Flow Plans.
You can also use a Basket from an external Risk Architect instead of building your own.

Operating model

EntityWhat it representsManaged by
AssetA DeFi position such as a Morpho vault, Euler market, or Pendle PTYou submit, Blend reviews
BasketStrategy template with target allocationsYou or a Risk Architect
Account TypeProduct configuration for end users, including the SDK publishable keyYou
AccountOne end-user account under one Account TypeCreated during SIWE sign-in
SafeDeterministic Gnosis Safe tied to that accountBlend plus on-chain deployment
Transaction IntentDeposit or withdrawal session with quote, lock, submission, and settlement stateCreated by the SDK and Blend backend

No omnibus structures

This section is for informational purposes only and does not constitute legal or financial advice. Consult qualified legal counsel for guidance on regulatory compliance.
Blend’s SMA model means you do not pool user funds into a shared contract. Each user gets their own Safe. You pick a Basket, and Blend maps it to every user’s individual Safe. No co-mingling, no omnibus. See Regulatory Alignment for how this maps to US, EU, and global regulations.

What your application owns

Your application is responsible for:
  • creating and managing the user experience
  • connecting the user’s wallet and providing signMessage
  • initializing the SDK with the account type publishableKey
  • handling SIWE session lifecycle in the browser
  • executing returned action plans through the user’s wallet path
  • persisting any product-specific mappings between your internal user IDs and Blend accountIds
  • reconciling deposits and withdrawals against your own product records
Blend is responsible for:
  • tenant resolution from X-Publishable-Key
  • SIWE challenge, verification, session issuance, and session revocation
  • account creation and account-scoped API reads
  • deterministic Safe addressing and deployment requests
  • deposit and withdrawal quote generation
  • withdrawal source-chain selection and Safe action-plan generation
  • transaction hash verification and settlement tracking
  • flow plan generation when positions drift
import { BlendSdk, getPimlicoPaymasterUrl, parseAmount } from "@blend-money/sdk";

const sdk = new BlendSdk({
  publishableKey: "pk_live_...",
  signMessage: (message) => walletClient.signMessage({ message }),
  paymasterUrl: getPimlicoPaymasterUrl("PIMLICO_API_KEY"),
});

const session = await sdk.signIn({
  address: walletClient.account.address,
  chainId: 8453,
});

const balance = await sdk.account.balance();
const tokens = await sdk.discover.depositTokens(8453);
const usdc = tokens.find((token) => token.symbol === "USDC")!;

const quote = await sdk.quoteDeposit({
  chainId: 8453,
  tokenAddress: usdc.address,
  amount: parseAmount("100", usdc.decimals),
  externalRef: `blend:${session.accountId}:deposit:123`,
});

await sdk.execute(quote, { signer: walletClient, publicClient });

Session and execution split

The SDK and backend divide responsibilities this way:
LayerResponsibility
Frontend appWallet connection, SIWE signature prompt, confirmation UI, transaction submission, status UX.
Blend SDKHeaders, session state, quote methods, action-plan conversion, high-level execution helpers.
Blend /sdk backendPublishable-key tenant lookup, SIWE verification, quote orchestration, withdrawal payload generation, receipt verification, settlement state.
Your backendOptional product records, analytics, compliance checks, webhooks, reconciliation, internal support tooling.

Integration risks to design around

  • publishableKey is public; SIWE bearer sessions are not.
  • Clear the SDK session when the wallet disconnects or changes address.
  • Use forceReset: true when starting a new deposit while another active session is not reusable for that flow.
  • Withdrawals may involve multiple source-chain action plans; use sdk.sessions.execute() when you need explicit chain switching.
  • A 409 with FLOWPLAN_CONFLICT means a rebalance is in progress. Surface it as a user-facing transient state rather than silently retrying.
  • Persist externalRef values in your own backend when you need deterministic reconciliation.

Next steps

Blend SDK

Learn the current SDK surface.

Deposit & Withdraw

See the end-to-end user flow.

Cross-chain Integration

Implement multi-chain discovery and execution.

API Reference

Review the /sdk HTTP surface.
Last modified on May 4, 2026