Spark Savings for Integrators
Spark Savings Vaults are ERC-4626 yield-bearing vaults that let anyone deposit a
stablecoin and earn a continuously compounding savings rate, backed by the Sky
ecosystem and the Spark Liquidity Layer. Deposits mint a savings token (e.g.
spUSDC, spUSDT) whose value grows every second at the vault savings rate — no
staking, no lockups, withdraw any time.
This section is for teams who want to bring that yield into their own product: a wallet, an exchange, a treasury tool, or any app where users hold stablecoins. A full integration combines both of the pieces below.
The two building blocks
Savings data, ready to present
The Savings Data API gives you live and historical data about each vault — savings rates, balances, the assets backing the vault, the liquidity behind it, and more — so you can present Spark Savings to your users however you like. The views below are just a few examples of what that data can power.




See the Savings Data API Reference for the full set of data and endpoints.
Deposits and withdrawals, on-chain
Because the vaults are ERC-4626, moving funds in and out takes only a handful of standard calls — read a balance, deposit, withdraw, redeem. The Spark Vaults Smart Contracts integration guide covers every flow, with full examples in viem, ethers, and Solidity.
Large withdrawals via Savings Liquidity Intents
Each Spark Savings vault keeps an idle liquidity buffer for instant withdrawals.
For redemptions that exceed that buffer, integrators submit a Savings Liquidity
Intent — an on-chain request that the Spark Liquidity Layer
picks up off-chain, prepares liquidity for, and fulfills atomically by calling
redeem on the user's behalf. The user keeps custody of their vault shares until
fulfillment, and every step in the lifecycle emits an on-chain event, so the full
state of any request is easy to follow from a node or indexer.
This is how the Spark Liquidity Layer keeps deposits productively deployed across the Spark balance sheet while still providing liquidity on demand. The mechanism is in production and has already served billions of dollars in large withdrawals.
- Savings Liquidity Intents guide — user-facing flow and what to expect in the app.
- Savings Vault Intents contract reference — full contract behavior, request lifecycle, and configuration.
- Savings Vault Intents in the integration guide — code-level usage alongside the standard ERC-4626 flows.
Where to go next
- Savings Data API Reference — interactive reference for the read-only data endpoints.
- Spark Vaults Smart Contracts Integration Guide — read balances, deposit, withdraw, and request large withdrawals.
- Examples — full snippets in viem, ethers, and Solidity.
- Savings Liquidity Intents — request-based flow for redemptions larger than the idle buffer.
Why a data API and a smart contracts guide, not an SDK
We deliberately ship a read-only data API and a smart contracts integration guide instead of an SDK. The reasoning:
- Spark Vaults are standard ERC-4626. Once you know
deposit,withdraw,redeem,balanceOf, andassetsOf, there is nothing else to learn — the contract is the surface area. An SDK would mostly re-wrap an interface every EVM tool already supports out of the box. - You keep your stack. Call the vaults directly with whatever you already trust — viem, ethers, wagmi, raw JSON-RPC, or a non-JS language. The data API is plain HTTP, so it works the same way from anywhere.
- Easier to migrate. EVM tooling moves fast. ERC-4626 callsites are trivial to port between libraries; an SDK pins you to one stack and tends to fragment across them (a viem build, an ethers build, a React wrapper, and so on).
- One less dependency. No SDK means one fewer package to version, audit, and update alongside your own release cycle.