Ship a yield product in weeks, not quarters.
Enso Earn is the Yield-as-a-Service layer for wallets, fintechs, custodians, and apps. Production-grade integrations to the venues your risk team already trusts — Aave, Morpho, Maple, Pendle, Ondo, EtherFi — reachable from any chain your users already hold capital on. One integration. No five-vendor stitch-up. Who it’s for: wallets turning idle balances into positions, fintechs and neobanks launching stablecoin yield, custodians serving institutional clients, and asset managers distributing strategies — teams that want to own the customer relationship while outsourcing the protocol integration burden.Curated coverage
Yield from the protocols you’d actually approve — lending, vaults, RWAs, structured yield, and liquid staking that already pass institutional risk and policy review. Not a long tail of unaudited markets.
Cross-chain by default
Reach yield wherever the user already holds capital. A user holding USDC on Base can enter a vault on Ethereum in a single signature — the chain becomes an implementation detail, not a dead end.
Partner-controlled monetization
Earn opens a partner-owned revenue line. Layer your fee model on top of execution so your economics sit alongside the deposit, in the same flow your team controls.
Why Now
Regulation forces yield out of the core product. The GENIUS Act and MiCA prevent fintechs and neobanks from paying yield natively on stablecoins. Yield has to ship as a distinct, DeFi-routed product surface — and the teams winning the next cycle are buying the rails, not building them. Custody, execution, security, sourcing, audits, and reporting make up a stack that is too deep to assemble vendor-by-vendor before competitors ship. Enso Earn is execution infrastructure, not a parallel compliance stack. KYC, eligibility, region rules, signing policy, and approval workflow stay inside the systems your risk team already operates — Enso plugs into them rather than asking you to migrate.Enso Earn is the pattern for adding yield inside your application. A first Earn product does not need the full Enso API surface. It needs a curated list of yield destinations, the user’s current balances, a route into the selected position, your fee on top of the deposit, and a refreshed balance view after the transaction lands. Execution safety is built in — every route is simulated and protected by Enso before it is returned. Use this guide when you want to build an Earn tab, yield marketplace, wallet yield flow, or simple position migrator.
Core Endpoints
The Earn path is built from these endpoints:| Step | Endpoint | Use it for |
|---|---|---|
| 1 | GET /v1/tokens | Build the approved yield catalog. This is where APY, TVL, protocol, underlying assets, decimals, symbols, names, and logos come from. |
| 2 | GET /v1/wallet/balances | Show the user’s current assets and current DeFi positions before and after execution. |
| 3 | POST /v1/shortcuts/route | Quote and build the signer-ready transaction from the user’s input asset or current position into the selected Earn destination. Pass fee + feeReceiver here to monetize the deposit. |
| 4 | GET /v1/wallet/approve | Required only when the user is spending an ERC-20 through routingStrategy: "router" and allowance is not already high enough. |
APY is not a separate endpoint. Read it from
GET /v1/tokens.
New balances are not returned by the route endpoint. After the transaction confirms,
call GET /v1/wallet/balances again.Build Flow
End-To-End Example
This is the full Earn loop in one place: build the catalog, read the user’s balances, route into the selected destination with your fee applied, approve if needed, submit the returned transaction, and refresh balances. The route is simulated and protected by Enso before it is returned — no extra safety call is required.UI Fields
| UI moment | Show this | Source |
|---|---|---|
| Catalog | APY, base APY, reward APY, TVL, protocol, chain, underlying assets, token symbol, decimals, logo | GET /v1/tokens |
| User starting point | Spendable source assets and existing DeFi positions | GET /v1/wallet/balances |
| Route review | Expected output, minimum output, estimated gas, price impact, selected route, your fee amount, approval requirement | POST /v1/shortcuts/route and conditional GET /v1/wallet/approve |
| Signing | The returned approval tx if needed, then the returned route tx (already simulated by Enso) | Approval and route responses |
| Completed state | New Earn position, remaining source balance, APY, TVL, protocol, underlying assets, logo | Refreshed GET /v1/wallet/balances plus GET /v1/tokens |
1. Build The Yield Catalog
UseGET /v1/tokens to fetch the positions your product is allowed to show.
For a normal Earn shelf, filter by chain, token type, APY, TVL, approved protocol, and underlying asset:
protocolSlug, apyFrom, and tvlFrom is how you curate: ship only the destinations your risk and policy review already approved, rather than the full long tail. APY is point-in-time as of the response — surface it as a current rate, not a guarantee, and refetch on display.
For a yield migrator, start from the source position’s exact underlying assets and show comparable destinations:
name,symbol,logosUri,decimalsproject,protocolSlug,chainIdunderlyingTokensapy,apyBase,apyRewardtvladdress
2. Show User Balances And Current Positions
UseGET /v1/wallet/balances for the user’s starting point.
GET /v1/tokens and type=defi:
3. Quote The Earn Route
UsePOST /v1/shortcuts/route when the user chooses a source asset and one final Earn destination. Route handles swaps, wraps, deposits, redeems, and position migrations underneath.
amountOut: expected destination position amount.minAmountOut: the slippage-protected minimum output.gas: estimated gas.priceImpact: estimated price impact.feeAmount: your partner fee charged on this deposit (whenfeeis set — see below).route: the path Enso selected.tx: the transaction the user signs.
tx as-is, including the returned tx.to.
4. Monetize The Deposit
Earn opens a partner-owned revenue line. Set your fee directly on the route call — it is collected as part of the same transaction, so your economics sit alongside the deposit rather than in a separate wrapper.| Parameter | Type | Description |
|---|---|---|
fee | string[] | Fee in basis points (1 bp = 0.01%, 100 bps = 1%), one value per amountIn. |
feeReceiver | string | Address that receives the collected fee. Required when fee is set. |
referralCode | string | Tags the transaction for on-chain attribution tracking (emits a ShortcutExecuted event). |
feeAmount (your fee) and ensoFeeAmount (Enso’s platform fee) so you can show the user an itemized breakdown. For multi-step destination-chain logic, you can instead apply a fee action inside a Bundle. See Request Tracking for how to read referralCode attribution from on-chain events.
Execution Safety Is Built In
You do not need to add a separate safety step. Every route Enso returns is simulated and protected before it reaches you: outputs are quoted with deterministic slippage bounds (minAmountOut), bundles settle atomically, and revert protection stops a partially executed workflow from stranding funds. Submit the returned route.tx as-is — the amountOut, minAmountOut, and priceImpact on the response are what you surface to the user on the review screen.
Enso Quoter is the same simulation-and-validation engine exposed as a standalone API for transactions generated outside Enso — for example, validating a payload from another aggregator before signing. For an Enso-routed Earn deposit it already runs in the background, so there is nothing extra to call. See Enso Quoter if you also need to verify third-party transactions.
5. Approve If Needed
If the source token is an ERC-20 and the route usesroutingStrategy: "router", the user must approve the Enso spender before signing the route transaction.
You can use the approval endpoint:
6. Show The New Balances
After the route transaction confirms, call balances again:updatedBalances with the balance snapshot from before execution:
- source asset decreased
- destination position increased
- any small dust or gas changes are visible
GET /v1/tokens to show the new position’s APY, TVL, protocol, underlying assets, and logo.
What You Can Build
Earn-shaped journeys from the full Use Cases library:Embedded Yield
The productized Earn surface for wallets, fintechs, and allocation products.
Cross-Chain Zap To Yield
Take a source-chain asset into a destination-chain position in one signature.
Yield Migrator
Compare destinations and move users from one position into a better one.
Deposit & Withdraw
Accept any token in and route the full exit path back out.
Stablecoin Issuers
Route minting, distribution, and yield for stablecoin and RWA issuers.
Wallet Zap & Earn
Turn idle wallet balances into approved yield positions in-app.
API & Safety Reference
Route API
Quote and execute direct entry into Earn destinations.
Balances
Show user assets and current DeFi positions before and after routing.
Protocol Data
Use token data for APY, TVL, metadata, and underlying assets.
Monetization & Attribution
Apply partner fees and read referral attribution from on-chain events.
Enso Quoter
Built into every Enso route — and available standalone to validate transactions generated outside Enso.
Updated
