Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Spark Liquidity Layer

The Spark Liquidity Layer (SLL) operates as a non-custodial capital allocator for Spark across DeFi/CeFi and TradFi opportunities. It has been operating without fault since November 2024. At its core, the SLL is designed to ensure that capital movement is constrained, predictable, and bounded under all conditions, including periods of market stress.

The key security feature of the SLL is that Spark governance must set approved venues in advance, subject to strict rate limits. The automation wallets can only move funds between these pre-approved venues at the defined rate limits.

These constraints ensure that capital cannot be rapidly drained from any single venue, and that allocation changes occur gradually rather than reflexively under stress conditions. This directly addresses a core failure mode observed in recent market events: unconstrained capital movement leading to rapid liquidity depletion and cascading stress across markets.

The threat model assumes a RELAYER can be fully compromised. Smart-contract constraints are designed to prevent value from moving outside the ALM system, while rate limits, slippage constraints, and emergency freezing bound the damage such a relayer can cause.

Even under this assumption, capital remains restricted to predefined venues and rate limits, ensuring no single component can introduce unbounded risk to the system.

Roles

The SLL uses a small set of governance-controlled operational roles:

  • RELAYER — can call controller functions to move capital between approved venues. These calls remain constrained by approved integrations, balances, slippage checks where applicable, and rate limits.
  • FREEZER — can freeze controller actions in an emergency to stop a compromised RELAYER; governance can then reassign or revoke the relayer.

Monitoring

The SLL is actively monitored across several independent layers:

  • Price movements and collateral valuations across all venues where SLL capital is deployed.
  • Oracle deviation and liveness tracking, including heartbeat checks and price-deviation thresholds, to detect stale or manipulated feeds.
  • Utilization rate alerts on sudden spikes that may signal abnormal borrowing activity or liquidity stress at integrated venues.
  • LTV distribution tracking across active borrower positions in markets where the SLL is allocated, to identify concentration near liquidation thresholds.
  • Real-time threat detection through third-party security monitoring, with automated alerts routed to on-call team members for immediate response.
  • Sky ecosystem-level oversight on top of Spark-internal monitoring.

Public dashboards: data.spark.fi, info.skyeco.com.

Liquidity Backstop

The SLL can inject capital into a SparkLend reserve, a Morpho vault curated by Spark, or a Spark Savings vault to support depositor withdrawals while liquidations or redemptions settle through normal channels. This backstop is bounded by approved venues, rate limits, and risk parameters set by governance.

Where to Verify

Allocator Contracts (global)

ContractAddress
Allocator Buffer0xc395D150e71378B47A1b8E9de0c1a83b75a08324
Allocator Oracle0xc7B91C401C02B73CBdF424dFaaa60950d5040dB7
Allocator Registry0xCdCFA95343DA7821fdD01dc4d0AeDA958051bB3B
Allocator Roles0x9A865A710399cea85dbD9144b7a09C889e94E803
Allocator Vault (Spark-A)0x691a6c29e9e96dd897718305427Ad5D534db16BA

ALM Contracts (per chain)

ChainALM ControllerALM ProxyALM Rate Limits
Ethereum Mainnet0x5c46Fc65855c0C7465a1EA85EEA0B24B601502D30x1601843c5E9bC251A3272907010AFa41Fa18347E0x7A5FD5cf045e010e62147F065cEAe59e5344b188
Base0x86036CE5d2f792367C0AA43164e688d13c5A60A80x2917956eFF0B5eaF030abDB4EF4296DF775009cA0x983eC82E45C61a42FDDA7B3c43B8C767004c8A74
Arbitrum0xC40611AC4Fff8572Dc5F02A238176edCF15Ea7ba0x92afd6F2385a90e44da3a8B60fe36f6cBe1D87090x19D08879851FB54C2dCc4bb32b5a1EA5E9Ad6838
Unichain0xF16DE710899C7bdd6D46873265392CCA68e5D5bA0x345E368fcCd62266B3f5F37C9a131FD1c39f58690x5A1a44D2192Dd1e21efB9caA50E32D0716b35535
Optimism0x689502bc817E6374286af8f171Ed4715721406f70x876664f0c9Ff24D1aa355Ce9f1680AE1A5bf36fB0x6B34A6B84444dC3Fc692821D5d077a1e4927342d
Avalanche0x4eE67c8Db1BAa6ddE99d936C7D313B5d31e8fa380xecE6B0E8a54c2f44e066fBb9234e7157B15b7FeC0xb79972e8B21f0dE911E65AC342ac85ad38C9A77a

Source: Spark Address Registry. See also Sky Atlas — Spark Liquidity Layer Addresses (A.6.1.1.1.2.6.1.2.1.1.1).

References

ItemSource
Developer referenceSpark ALM Controller
Audit reportsSpark Liquidity Layer Audits
All deployments (canonical)Spark Address Registry
Current configurationSky Forum — Spark Prime

Atlas Sources

The following Sky Atlas sections govern the controls described above:

FAQ

What integrations are supported by SLL?

The ALM Controller currently supports the following integration types:

  • Aave-compatible lending markets, including SparkLend and Aave
  • ERC4626 vaults, including Spark-curated Morpho vaults
  • PSM3 contracts on supported L2s
  • Mainnet PSM swaps between USDS and USDC
  • USDS minting and burning
  • USDC transfers through CCTP
  • Ethena USDe minting and burning
  • Ethena sUSDe cooldown and unstaking

Additional integrations can be onboarded over time through governance-controlled configuration and controller upgrades.

What networks are supported by SLL?

The following networks are currently supported by the SLL:

  • Ethereum
  • Base
  • Arbitrum
  • Optimism
  • Unichain
  • Avalanche

Additional networks will be integrated on a continuous basis.

What are the liquidity constraints for cross-chain liquidity?

The SLL ensures there is always ample liquidity for users to enter or exit Spark Savings vaults on supported networks. Sky aims to keep a substantial portion of USDS collateral backing in cash reserves, providing a healthy buffer for redemptions even at large volumes.

Why is there a 1-of-2 SAFE authorized on the ALM Controller contract?

This SAFE is used as a smart wallet for the SLL automation to enable batching of transactions and rotating of hot wallet keys (the second signer). Funds are not custodied by this wallet, and it is only capable of allocating to governance-approved venues. This is similar to the ALLOCATOR role in the Morpho curation model.

Where are whitelists enforced in the ALM Controller contract?

Every allocation function in ALM Controller has an associated call to the RateLimits contract. This request for a rate limit is keyed on the asset argument which provides a whitelist on that parameter. If the asset is not whitelisted then the rate limit will return 0 (not set) and the call will revert.

Has the Spark Liquidity Layer been audited?

Yes, you can find the audit reports here: Spark Liquidity Layer Audit Reports

Who controls the Spark Liquidity Layer?

Sky Governance determines the use cases supported by the SLL, such as networks and protocols, as well as the accepted risk parameters for each use case, including rate limits, maximum fund amounts or maximum volumes.