Your users want an outcome — earn on idle funds, move to the right chain, hedge a position. Smeltor turns that goal into a composed, ready-to-sign plan, right inside your product. Their wallet signs. You never build a DeFi integration again.
const plan = await smeltor.resolve({ wallet, goal: "earn yield on my USDC", }) // → ranked options + a sequenced, // ready-to-sign plan. The wallet signs.
Today your users leave to do the hard part. Every hop is a chance to lose them to another app.
A goal becomes ranked options and a sequenced, ready-to-sign plan — composed across protocols and chains, inside your app.
Your funds are USDC.e on Arbitrum; the highest-ranked market is Aave V3 on Base. A swap and a bridge are required to get there — so we inserted them.
Options are ranked by APY, the criterion you asked for. Aave leads on yield with the deepest TVL and longest track record. Smeltor presents the options; the user's wallet executes the one they pick.
Calldata shown is illustrative of the response shape.
A goal that needs four protocols becomes one sequenced plan with the bridge inserted automatically. We present the options; your agent chooses; the user's wallet executes.
Yield options ranked across Aave, Moonwell, Morpho, Fluid.
Long or short with leverage on Hyperliquid.
Best rate across 6 aggregators. Automatic failover.
Cross-chain in under 2 minutes via Across and Stargate.
Collateralised lending with health-factor projection.
Protocol upgrades, fee changes, deprecated markets, new chains — an integration you build yourself is a maintenance treadmill. We run it so you don't.
Early, and honest about it. Smeltor is in developer preview. The architecture is non-custodial and deploys zero smart contracts — funds never touch us, so the blast radius of any issue is limited to plan generation, not custody. A formal third-party review of the calldata-generation layer is planned before production partner onboarding. Build with it, test thoroughly, start small. We'd rather tell you that than pretend otherwise.
const plan = await smeltor.resolve({ wallet, goal: "earn yield on my USDC", })