Spark scores 3 points above Euler V2, led by oracle liquidation price and rate authorship. Spark ranks #2 and Euler V2 #4 of 8 published lending & borrowing. Every term of the gap is on the ledger below; the inputs are on the audit receipt.
Spark80
vs
Euler V277
Scores are out of 100; published scores fall within 41–99 · ranks #2 and #4 of 8
Spark scores 3 points above Euler V2, led by oracle liquidation price and rate authorship.
Spark #2 of 880
Euler V2 #4 of 877
Scores are out of 100; published scores fall within 41–99; a bar is empty at 41 and full at 99.
Why, term by termSpark leads on 2 of 4 published criteria; Euler V2 on 2. The terms sum to the gap.
TermSparkEuler V2WeightPoints
Oracle liquidation price8/107/107.7+2.0for Spark+1.0 of 32
Rate authorship10/108/105.8+3.0for Spark+1.5 of 32
Blast radius8/109/105.8−1.5for Euler V2−0.8 of 32
Shortfall record7/108/104.8−1.2for Euler V2−0.6 of 32
Net of the terms+2.2
Criteria roundingThe criteria block is rounded to whole points before it is spread+0.1
Reproduced gap+2.3
Published gapAfter score rounding and bounds — see the note below8077+3.0
Weight is in points of the 86-point weighted total. Points are score points of the gap between the two.
SparkScore 80SparkLend is an Ethereum-only Aave v3 fork run as Sky's in-house money market: prices come from a three-oracle median of RedStone, Chainlink and Chronicle with a Uniswap TWAP as last resort, your deposit is never re-routed by a curator, and the borrow rate is an immutable per-reserve IRM — SSR-anchored on the stablecoin reserves — that Sky governance can only change by redeploying the contract.Strength: Rate authorship — 10/10Watch-out: Read the oracle-type field on your collateral in the app before you post it, and read the liquidity line before you supply. SparkLend does not price every asset at market: 'stablecoins such as USDS and DAI use a fixed price of 1.00 USD, which does not deviate even if the asset's market price moves away from this value' (https://docs.spark.fi/products/sparklend/guides/oracles). If you post USDS or DAI as collateral, a real-world depeg will not move your health factor at all — and the peg-ratio killswitch that exists for exactly this failure covers only 'wstETH, rETH, weETH, cbBTC, WBTC, LBTC', not the fixed-price stablecoins (https://docs.spark.fi/products/sparklend). USDS is issued by Sky, whose governance both sets that $1.00 constant and authors your borrow rate, so the protection and the exposure share a controller. Second, the USDC supply rate you are being shown was deliberately engineered by thinning the withdrawal buffer, and Spark's own risk body said so before the vote: 'At 98% utilization, only about 2% of supplied USDC is immediately available before new deposits, repayments, liquidations, or other liquidity sources are needed. Withdrawals become more fragile', and 'The proposal improves the displayed supply rate by accepting a thinner liquidity buffer' (Spark Risk Council, 2026-06-22, https://forum.skyeco.com/t/july-2-2026-proposed-changes-to-spark-for-upcoming-spell/27982).Euler V2Score 77Modular onchain lending where every market is its own vault: a third party picks your collateral, LTVs, oracle route and interest-rate model, and Euler publishes the resulting parameters — including a continuously recalculated, per-vault bad-debt figure — through its own data API rather than on the security page a buyer would actually read.Strength: Blast radius — 9/10Watch-out: Read the vault page before the protocol page. On Euler the protocol does not set your terms — one vault does, and Euler says so: 'Pause, guardian, curator, allocator, fee-recipient, cap, oracle, and other powers may belong to different addresses' (https://docs.euler.finance/learn/risk-curators). Before depositing, pull the specific vault's bad-debt row from Euler's own API — the borrowVault filter is a documented parameter and works: https://v3.euler.finance/v3/evk/vaults/bad-debt?chainId=1&borrowVault=YOUR_VAULT — because the security page will not tell you. On 2026-08-17 that endpoint carried $166,460,285.30 of standing bad debt across eleven chains, $134,245,336.28 of it priced within the minute. The single largest row, on one Plasma vault (0x57c582346B7d49A46Af3745A8278917D1c1311b8, 19 accounts), was $86,609,850.77 then ($90.76M debt against $4.15M collateral) and ~$90,813,221.34 on 2026-09-28, with collateral now $0 — the Plasma wipeout Euler describes in prose without ever attaching a number to it. On mainnet eUSDC-64, then the fifth-largest market by borrows, carried $13,604,080.55 of bad debt against $14,383,648.32 of borrows, and on 2026-09-28 it was still mainnet's largest bad-debt row at ~$13,609,495.61; socializeDebt is true on it, so that write-down falls on that vault's depositors alone, and there is nothing left to exit with — the vault reports utilization 1.0 and totalCash of 1 base unit (0.000001 USDC) against $14.38M supplied, with withdraw and redeem both flagged as hooked operations. Nothing on https://docs.euler.finance/security mentions any of it.
Quick facts
At a glance
3 of 4 rows read the same for both.
FactSparkEuler V2
PricingSnapshotSparkLend's stablecoin reserves price off the Sky Savings Rate (SSR) plus a fixed spread up to the kink, and suppliers receive the borrow interest less a 10% reserve factor; there is no deposit or curator fee. The 10 September 2026 spell proposal (https://forum.skyeco.com/t/september-10-2026-proposed-changes-to-spark-for-upcoming-spell/28208, posted 31 August 2026, fetched 28 September 2026) reads the rate on-chain at Ethereum block 25,861,675 (29 August 2026): "getVariableRateSlope1() returns 3.9594644783474038423088%, which equals the SSR of 3.4594644783474038423088% plus the 0.50% spread exactly." For USDT, the largest reserve, it cuts that spread "from 0.005e27 (+0.50%) to 0.001e27 (+0.10%)" and states the effect: "The borrow rate at the kink falls from 3.9595% to 3.5595%" and "At 95% utilisation and a 10% reserve factor that is a supply rate of about 3.04%"; at the time of posting "The live borrow rate is 3.4824% and the live supply rate 2.6186%." The same post gives the other stablecoin curves: "USDC runs a 98% kink with a +1.00% spread". These are SSR-linked and move with every SSR change and with utilisation; they are not a fixed price. The 2 July 2026 SSR figure this note previously carried is superseded.Euler charges no protocol fee today; a supplier's cost is the vault-level interest fee a curator or governor sets. The Interest Rates page (https://docs.euler.finance/learn/interest-rates, fetched 28 September 2026) states: "Euler does not currently charge protocol fees. In April 2026, Fee Flow was turned off and Euler protocol fees were set to 0% across live and future deployments. The DAO can reintroduce protocol fees through future governance." and "Curators and vault governors can still configure vault-level fees where supported by the vault. For EVK vaults, the interestFee parameter can allocate a portion of borrower interest to the configured fee receiver." It adds that "EVK interest fees are denominated in vault shares." Per-vault interestFee values are Data API fields, not page text, and vary by vault; supply and borrow rates float with each vault's own IRM, so no fixed APY is quoted.
Asset coverageEditorial——
Region fitSnapshotglobalglobal
Custody modelEditorialNon-custodial: no company holds the coinsNon-custodial: no company holds the coins
From the published criteria
Which should you pick?
Spark
80#2 of 8
Leads
Pick it when
Pick Spark if oracle liquidation price matters most — it scores 8/10 to Euler V2's 7/10 there (weight 32).
Strength
Rate authorship — 10/10
Tradeoff
Read the oracle-type field on your collateral in the app before you post it, and read the liquidity line before you supply. SparkLend does not price every asset at market: 'stablecoins such as USDS and DAI use a fixed price of 1.00 USD, which does not deviate even if the asset's market price moves away from this value' (https://docs.spark.fi/products/sparklend/guides/oracles). If you post USDS or DAI as collateral, a real-world depeg will not move your health factor at all — and the peg-ratio killswitch that exists for exactly this failure covers only 'wstETH, rETH, weETH, cbBTC, WBTC, LBTC', not the fixed-price stablecoins (https://docs.spark.fi/products/sparklend). USDS is issued by Sky, whose governance both sets that $1.00 constant and authors your borrow rate, so the protection and the exposure share a controller. Second, the USDC supply rate you are being shown was deliberately engineered by thinning the withdrawal buffer, and Spark's own risk body said so before the vote: 'At 98% utilization, only about 2% of supplied USDC is immediately available before new deposits, repayments, liquidations, or other liquidity sources are needed. Withdrawals become more fragile', and 'The proposal improves the displayed supply rate by accepting a thinner liquidity buffer' (Spark Risk Council, 2026-06-22, https://forum.skyeco.com/t/july-2-2026-proposed-changes-to-spark-for-upcoming-spell/27982).
Euler V2
77#4 of 8
Pick it when
Pick Euler V2 if blast radius matters most — it scores 9/10 to Spark's 8/10 there (weight 24).
Strength
Blast radius — 9/10
Tradeoff
Read the vault page before the protocol page. On Euler the protocol does not set your terms — one vault does, and Euler says so: 'Pause, guardian, curator, allocator, fee-recipient, cap, oracle, and other powers may belong to different addresses' (https://docs.euler.finance/learn/risk-curators). Before depositing, pull the specific vault's bad-debt row from Euler's own API — the borrowVault filter is a documented parameter and works: https://v3.euler.finance/v3/evk/vaults/bad-debt?chainId=1&borrowVault=YOUR_VAULT — because the security page will not tell you. On 2026-08-17 that endpoint carried $166,460,285.30 of standing bad debt across eleven chains, $134,245,336.28 of it priced within the minute. The single largest row, on one Plasma vault (0x57c582346B7d49A46Af3745A8278917D1c1311b8, 19 accounts), was $86,609,850.77 then ($90.76M debt against $4.15M collateral) and ~$90,813,221.34 on 2026-09-28, with collateral now $0 — the Plasma wipeout Euler describes in prose without ever attaching a number to it. On mainnet eUSDC-64, then the fifth-largest market by borrows, carried $13,604,080.55 of bad debt against $14,383,648.32 of borrows, and on 2026-09-28 it was still mainnet's largest bad-debt row at ~$13,609,495.61; socializeDebt is true on it, so that write-down falls on that vault's depositors alone, and there is nothing left to exit with — the vault reports utilization 1.0 and totalCash of 1 base unit (0.000001 USDC) against $14.38M supplied, with withdraw and redeem both flagged as hooked operations. Nothing on https://docs.euler.finance/security mentions any of it.
Self-identify in 10 seconds
Which one is actually for you?
SparkLeads
Choose Spark if oracle liquidation price matters most
Oracle liquidation price: 8/10 against 7/10 for Euler V2 (weight 32)
Rate authorship: 10/10 against 8/10 for Euler V2 (weight 24)
SparkScore 80SparkLend is an Ethereum-only Aave v3 fork run as Sky's in-house money market: prices come from a three-oracle median of RedStone, Chainlink and Chronicle with a Uniswap TWAP as last resort, your deposit is never re-routed by a curator, and the borrow rate is an immutable per-reserve IRM — SSR-anchored on the stablecoin reserves — that Sky governance can only change by redeploying the contract.Strength: Rate authorship — 10/10Watch-out: Read the oracle-type field on your collateral in the app before you post it, and read the liquidity line before you supply. SparkLend does not price every asset at market: 'stablecoins such as USDS and DAI use a fixed price of 1.00 USD, which does not deviate even if the asset's market price moves away from this value' (https://docs.spark.fi/products/sparklend/guides/oracles). If you post USDS or DAI as collateral, a real-world depeg will not move your health factor at all — and the peg-ratio killswitch that exists for exactly this failure covers only 'wstETH, rETH, weETH, cbBTC, WBTC, LBTC', not the fixed-price stablecoins (https://docs.spark.fi/products/sparklend). USDS is issued by Sky, whose governance both sets that $1.00 constant and authors your borrow rate, so the protection and the exposure share a controller. Second, the USDC supply rate you are being shown was deliberately engineered by thinning the withdrawal buffer, and Spark's own risk body said so before the vote: 'At 98% utilization, only about 2% of supplied USDC is immediately available before new deposits, repayments, liquidations, or other liquidity sources are needed. Withdrawals become more fragile', and 'The proposal improves the displayed supply rate by accepting a thinner liquidity buffer' (Spark Risk Council, 2026-06-22, https://forum.skyeco.com/t/july-2-2026-proposed-changes-to-spark-for-upcoming-spell/27982).
Euler V2
Choose Euler V2 if blast radius matters most
Blast radius: 9/10 against 8/10 for Spark (weight 24)
Shortfall record: 8/10 against 7/10 for Spark (weight 20)
Euler V2Score 77Modular onchain lending where every market is its own vault: a third party picks your collateral, LTVs, oracle route and interest-rate model, and Euler publishes the resulting parameters — including a continuously recalculated, per-vault bad-debt figure — through its own data API rather than on the security page a buyer would actually read.Strength: Blast radius — 9/10Watch-out: Read the vault page before the protocol page. On Euler the protocol does not set your terms — one vault does, and Euler says so: 'Pause, guardian, curator, allocator, fee-recipient, cap, oracle, and other powers may belong to different addresses' (https://docs.euler.finance/learn/risk-curators). Before depositing, pull the specific vault's bad-debt row from Euler's own API — the borrowVault filter is a documented parameter and works: https://v3.euler.finance/v3/evk/vaults/bad-debt?chainId=1&borrowVault=YOUR_VAULT — because the security page will not tell you. On 2026-08-17 that endpoint carried $166,460,285.30 of standing bad debt across eleven chains, $134,245,336.28 of it priced within the minute. The single largest row, on one Plasma vault (0x57c582346B7d49A46Af3745A8278917D1c1311b8, 19 accounts), was $86,609,850.77 then ($90.76M debt against $4.15M collateral) and ~$90,813,221.34 on 2026-09-28, with collateral now $0 — the Plasma wipeout Euler describes in prose without ever attaching a number to it. On mainnet eUSDC-64, then the fifth-largest market by borrows, carried $13,604,080.55 of bad debt against $14,383,648.32 of borrows, and on 2026-09-28 it was still mainnet's largest bad-debt row at ~$13,609,495.61; socializeDebt is true on it, so that write-down falls on that vault's depositors alone, and there is nothing left to exit with — the vault reports utilization 1.0 and totalCash of 1 base unit (0.000001 USDC) against $14.38M supplied, with withdraw and redeem both flagged as hooked operations. Nothing on https://docs.euler.finance/security mentions any of it.
Criterion by criterion
Scorecard
Published criteria · weight in points of 868 of 8 cells scored. Strength is read from the evidence file; the weight is the published one. Methodology
Oracle liquidation price
by 1 of 10weight 7.7 of 86Spark leads
Spark8/10 out of 10
Euler V27/10 out of 10
Rate authorship
by 2 of 10weight 5.8 of 86Spark leads
Spark10/10 out of 10
Euler V28/10 out of 10
Blast radius
by 1 of 10weight 5.8 of 86Euler V2 leads
Spark8/10 out of 10
Euler V29/10 out of 10
Shortfall record
by 1 of 10weight 4.8 of 86Euler V2 leads
Spark7/10 out of 10
Euler V28/10 out of 10
Score dimensions
weights sum to 86
The published score is five dimensions, each weighted for the category. "Published criteria" is the criteria block above; the other four are the engine's own terms — availability, friction, trust record, measured data. Each bar is one side's points out of that dimension's maximum; the weight beside the name is its points of the 86-point weighted total. The published criteria above can fill 24 of the block’s 30. A weight marked “constant here” belongs to a dimension every ranked product in the category holds at the same value: it still counts in the total, and it orders nothing here.
Availabilityweight 20 of 86 · constant here
Spark14/20Euler V214/20
Tie
Published criteriaweight 30 of 86
Spark19.9/30Euler V219/30
Spark leads
Frictionweight 10 of 86 · constant here
Spark2.7/10Euler V22.7/10
Tie
Trust recordweight 8 of 86 · constant here
Spark3.2/8Euler V23.2/8
Tie
Measured dataweight 18 of 86 · constant here
Spark8.3/18Euler V28.3/18
Tie
Decision rulePublished order
Choose Spark unless the term Euler V2 leads on is the one you are buying.
Pick Euler V2 if blast radius matters most — it scores 9/10 to Spark's 8/10 there (weight 24).
The published order weighs every criterion the same way for everyone. To weigh them your way, run .
From the published order
Next best action
If this isn't your case
Other matchups worth comparing
How you can lose money here, and what the ranking scores
Control failure: a key or vote changes the rules, freezes or mints.
Scored by Who sets your rate — a utilisation curve or a curator? · 24% (Spark 10/10, Euler V2 8/10)
Oracle failure: a wrong price or outcome liquidates or settles a position.
Scored by What price gets you liquidated, and how far can it drift? · 32% (Spark 8/10, Euler V2 7/10)
Insolvency failure: the firm or issuer that owes you cannot pay.
Scored by If one market goes bad, how much of yours goes with it? · 24% (Spark 8/10, Euler V2 9/10)
Scored by Has it lost lender money before, and did it publish it? · 20% (Spark 7/10, Euler V2 8/10)
Not assessed by this ranking: Contract failure, Regulatory failure, Execution failure, Exit failure. A high place says nothing about these; the Methodology tab says what each means.
Questions
Frequently asked questions
Spark scores 3 points above Euler V2, led by oracle liquidation price and rate authorship. Published scores, out of 100: Spark 80 (rank 2 of 8 lending & borrowing), Euler V2 77 (rank 4 of 8).
Reviewed means both products compared here was read against its sources on or after that date; every ranked category is re-read at least every 45 days. Models research, extract and parse. A deterministic engine ranks. Every quote passes an adversarial refute pass.
Answer a few quick questions and get one clear recommendation based on how you actually plan to use crypto — with rationale, tradeoffs, and a path to monitor the decision.
No signup·Free first pass · Private·No spam · No account
Not financial advice · Independent · Always do your own research
Not financial advice · For informational purposes only · Always do your own research