Methodology
How sDAI yield on Gnosis Chain is calculated, why it can diverge from the on-chain reported APY, and how every number on this dashboard is derived.
Overview
sDAI on Gnosis Chain earns yield through two mechanisms: the Sky Savings Rate (SSR) set on Ethereum mainnet, and a bridge amplification effect that arises because the pool of DAI bridged to Gnosis is larger than the sDAI deposited there.
The sDAI vault exposes a vaultAPY() function that DeFi protocols (Spark, Aave) use to price sDAI collateral. This value only refreshes when an epoch claim fires — roughly every 72 hours — when accrued interest is bridged from Ethereum. Between claims, vaultAPY is stale. This dashboard tracks both the calculated APR (derived directly from on-chain inputs) and the reported vaultAPY, so you can see the gap between them in real time.
Before 2024-09-04, yield was driven by the DSR (Dai Savings Rate) via the Pot contract on Ethereum mainnet. From approximately November 2025, Sky began migrating DAI liquidity to USDS, gradually reducing bridged DAI and compressing the amplification ratio.
Historical data is available from 6 October 2023 — the first full day after the Gnosis bridge investment module was activated.
Data Collection
For each selected date the backend fetches values from Ethereum mainnet and Gnosis Chain via Tenderly RPC. It binary-searches for the Ethereum block closest to midnight UTC for that date, then reads the SSR contract and the bridge escrow. Three scheduler jobs run automatically:
- fetch_daily — runs at midnight UTC, captures the midnight block for historical cache consistency.
- fetch_current — runs every 15 minutes at the current block, keeping the live metrics row up-to-date.
- fetch_backfill — runs on startup, filling any daily gaps between the SSR launch date and yesterday so the historical record stays complete after downtime.
Epoch claim events are sourced separately from an Envio indexer that indexes BridgeInterestReceiver.Claimed events on Gnosis Chain (starting at block 30,195,209). The indexer stores each claim with its timestamp, amount, inter-claim interval, and delay vs the 72-hour target. These records are served via a Hasura GraphQL endpoint and exposed on the /api/vault-epochs route.
The following values are read per data point:
- DSR/SSR — the raw per-second compounding rate stored as a ray (10²⁷ fixed-point). Before 2024-09-04 from the DSR Pot contract; from 2024-09-04 onward from the Sky SSR contract.
- Bridged DAI —
investedAmount(token) + balanceOf(escrow)on Ethereum mainnet: DAI currently earning the SSR in the bridge escrow plus liquid DAI waiting in escrow. - sDAI totalAssets — total assets held by the sDAI vault on Gnosis Chain at the corresponding block.
- vault_apy — the value returned by
vaultAPY()on the sDAI vault on Gnosis Chain, expressed as an annualised rate. Only populated for dates where this data is available in the database. - pending_bridge_interest — interest accrued on Ethereum for the current epoch that has not yet been claimed and bridged to Gnosis.
- gnosis_epoch_balance — DAI landed on Gnosis in the current epoch that has not yet been fully settled into
vaultAPY. - interval_hours / delay_hours — per-claim fields sourced from the Envio indexer: actual time between consecutive claims (hours), and the signed deviation from the 72-hour target.
All fetched values are cached per-timestamp so subsequent queries reuse existing data and only fetch missing dates.
DSR/SSR to APY Conversion
The raw savings rate is a per-second compounding rate stored as a ray (10²⁷ fixed-point). It is converted to an annualised yield:
The exponent 31,557,600 is the number of seconds in a Julian year (365.25 × 24 × 3600). The computation uses 50-digit decimal precision to avoid floating-point rounding errors at the ray scale.
Amplification Ratio
More DAI is locked in the Ethereum–Gnosis bridge than is minted as sDAI on Gnosis. The entire bridged pool earns the SSR, but that yield is distributed only among sDAI holders — who represent a smaller pool. The amplification ratio captures this leverage:
A ratio above 1.0 means sDAI holders earn yield on more capital than they deposited, boosting their effective APR above the base SSR. As the amplification ratio converges toward 1.0 (from USDS migration reducing bridged DAI), the yield spread between sDAI APR and the raw SSR shrinks.
sDAI APR
The calculated sDAI APR on Gnosis is the product of the SSR APY and the amplification ratio:
This gives the annualised return that an sDAI holder on Gnosis effectively receives, accounting for both the base savings rate and the bridge amplification. This is the number this dashboard treats as ground truth — derived purely from on-chain inputs with no dependency on the vault's own reporting.
On-Chain vaultAPY & the Reporting Gap
The sDAI vault on Gnosis exposes vaultAPY(), which DeFi protocols use to price sDAI as collateral. Unlike the calculated APR above, vaultAPY only updates when an epoch claim fires — approximately every 72 hours. Between claims it is frozen at the rate from the previous epoch.
The Reporting Gap is the signed difference:
A positive gap means the vault is overstating the current yield (stale high reading); a negative gap means it is understating it. Protocols pricing collateral against a stale vaultAPY may therefore over- or under-collateralise positions relative to the true rate.
Queued Interest is the absolute DAI currently in transit between Ethereum and the Gnosis vault:
A large queued balance indicates that a claim is due soon and vaultAPY is likely to jump when it fires.
Epoch Delay measures how much each interest claim deviates from the expected 72-hour cadence:
A positive delay means the claim arrived later than expected; a negative delay means it arrived early. These values are sourced from the Envio indexer which tracks every BridgeInterestReceiver.Claimed event on Gnosis Chain. Persistent late claims signal operational lag in the bridge; early claims can temporarily compress the gap before vaultAPY catches up.
Interest Pipeline
Interest earned on bridged DAI flows through a four-step lifecycle before it is reflected in vaultAPY:
- SSR yields on ETH — DAI locked in the Ethereum bridge escrow earns the Sky SSR continuously via the bridge's investment module.
- Pending bridge interest (
pending_bridge_interest) — interest has accrued on Ethereum for the current epoch but has not yet been claimed. It is recorded on Ethereum but invisible to Gnosis contracts. - Epoch claim (~72h) — a permissionless claim transaction bridges the accrued interest from Ethereum to Gnosis. Claim frequency is driven by the bridge protocol — typically every 1–3 days depending on activity.
- Gnosis epoch balance (
gnosis_epoch_balance) — the claimed DAI has landed on Gnosis in the current epoch settlement contract but is not yet distributed intovaultAPY. - vaultAPY refreshes — once the epoch settles the interest into the vault,
vaultAPY()is recomputed and reflects the true current rate.
Data Adjustments
Certain dates have known data quality issues — bridge migrations, contract transitions, or outlier reads — that are corrected at query time using a forward-fill rule: each affected row is replaced with the last good value immediately before the affected range.
When your selected date range includes adjusted rows, a warning banner appears above the charts. Expanding it reveals which adjustments were applied and why. The chart annotations (orange shaded regions) only appear while the banner is open, so they do not clutter the view by default.
Current known adjustments:
- 2024-09-04 to 2024-09-17 — SSR launch transition window; on-chain reads were unreliable during the Pot → SSR migration.
- 2025-02-07 — vault APY outlier excluded (field: vault_apy only).
- 2025-11-07 — DAI→USDS bridge migration day; all on-chain reads unreliable.
Contract Addresses
All on-chain reads use standard eth_call — reproducible with any public RPC.
| Role | Network | Address |
|---|---|---|
| SSR contract | Ethereum mainnet | 0xa3931d71877c0e7a3148cb7eb4463524fec27fbd |
| DSR / Pot contract (pre-SSR, before 2024-09-04) | Ethereum mainnet | 0x197e90f9fad81970ba7976f33cbd77088e5d7cf7 |
| Bridge Escrow | Ethereum mainnet | 0x4aa42145Aa6Ebf72e164C9bBC74fbD3788045016 |
| DAI token | Ethereum mainnet | 0x6B175474E89094C44Da98b954EedeAC495271d0F |
| USDS token (post-migration ~Nov 2025) | Ethereum mainnet | 0xdC035D45d973E3EC169d2276DDab16f1e407384F |
| BridgeInterestReceiver (Envio indexed) | Gnosis Chain | 0x670daeaf0f1a5e336090504c68179670b5059088 |
| sDAI vault | Gnosis Chain | 0xaf204776c7245bF4147c2612BF6e5972Ee483701 |
| sDAI Chainlink oracle | Gnosis Chain | 0x620424f393dD413c2F8Dc2980905c4daa3619e61 |
| USDC/USD Chainlink oracle | Gnosis Chain | 0x26C31ac71010aF62E6B486D1132E266D6298857D |
| Aave sDAI (aToken) | Gnosis Chain | 0x7a5c3860a77a8DC1b225BD46d0fb2ac1C6D191BC |
| USDC.e variable debt token | Gnosis Chain | 0x37b9ad6b5dc8ad977ad716e92f49e9d200e58431 |
| Aave v3 Pool | Gnosis Chain | 0xb50201558B00496A145fE76f7424749556E326D8 |
Yieldoors Methodology
The Yieldoors page ranks sDAI holders on Gnosis by their effective exposure. Data is sourced from the Blockscout public API (no API key required) via paginated token holder lists.
Position size: Each holder's total sDAI exposure is sDAI balance + Aave sDAI balance. The Aave v3 Pool address is excluded from holder lists to avoid double-counting.
Position type is assigned as follows:
- Leveraged — holder has a non-zero USDC.e variable debt position (borrowed against sDAI collateral on Aave).
- Aave — holder has Aave sDAI (deposited into Aave) but no debt.
- Direct — holder holds sDAI directly in their wallet.
Leverage ratio for leveraged positions:
sDAI price is read from the Chainlink sDAI/USD oracle on Gnosis Chain, refreshed every 15 minutes by the scheduler. USDC.e debt is priced via the Chainlink USDC/USD oracle — both debts and collateral values are denominated in USD.
% of supply denominator accounts for accrued Aave interest:
This adds back any Aave sDAI exceeding the sDAI held by the Aave Pool, representing interest accrued to Aave depositors not yet minted as sDAI.
Verify Yourself
All data used by this dashboard comes from public on-chain sources. You can reproduce every figure independently:
- SSR contract on Etherscan — read
ssr()for the raw ray value - Bridge Escrow on Etherscan — read
investedAmountandbalanceOf - sDAI vault on Gnosisscan — read
totalAssets()andvaultAPY() - sDAI token holder list on Blockscout (Gnosis)
All reads are standard eth_call — reproducible with any public Gnosis or Ethereum RPC endpoint.