Merging updates from defillama#3
Open
iagoLD wants to merge 6522 commits into
Open
Conversation
* add monolith-market saving vaults & cdp markets * monolith-market: use sdk for logs * monolith-market: remove unused variable * monolith-market: sdk.getEventLogs usage * monolith-market: add borrowToken field * monolith-market: clean
add availableBorrowUsd to aave-v3 forks
Add available borrow usd
* Add Flying Tulip ftUSD APY adapter sftUSD is the staked form of ftUSD, Flying Tulip's yield-bearing stablecoin. APY is funded entirely by FT rewards: protocol fees from ftUSD MintAndRedeem are used to buy FT on the open market and FT is distributed to stakers per epoch through the EpochRewardsVault. FT total supply is fixed so nothing is minted. The adapter reads sftUSD.totalSupply() for tvlUsd (1:1 with USD because ftUSD is dollar pegged and the vault is a 1:1 ERC4626) and sums the rewardAmount field of EpochSettled events from the trailing 30 days, priced via coins.llama.fi. APY is annualised over the 30 day window. Reads on chain only, no centralised API dependency. Verified locally: Ethereum: tvlUsd=$496,429.90, apyReward=2.19% Sonic: tvlUsd=$340,619.84, apyReward=2.44% TVL matches api.flyingtulip.com/ftusd/staking exactly. * Address codex review on flying-tulip-ftusd - Sum rewards in the BigInt domain and only convert to Number after scaling down by 10^12 wei. The previous direct Number(totalRewardWei) cast lost precision once a single epoch's rewardAmount went past 2^53 (around 0.009 FT). - Treat a missing or zero FT price from coins.llama.fi as soft fail (apyReward = 0) instead of throwing. A transient pricing miss shouldn't drop both pools. * set apyreward as null if price missing * refactor use timestamp lookback period --------- Co-authored-by: kr3p <123127490+0xkr3p@users.noreply.github.com>
mint deterministic config ids (uuidv5 of pool key) for new pools
Add Aave on Monad
* Add Monetrix yield adapter (sUSDM) * fix(monetrix): address review feedback on sUSDM yield adapter - pin totalAssets to latest block so TVL matches the share-price samples - correct sUSDM share decimals to 12 (was 18), fixing pricePerShare scale - add pricePerShare and isIntrinsicSource: true (yield-bearing stablecoin) - add apyBaseInception (since-launch annualized return) - lowercase pool id - price via USDM with USDC fallback, ready for when USDM pricing lands - update pool url to /app/earn * fix(monetrix): export protocolId for yield-server test suite The test suite now requires each adapter to export a protocolId matching its DefiLlama protocol slug (monetrix = 8019). Local branch shipped without it because its test harness predated that check.
* Add Valdora Finance yield adapter * valdora-finance: address review feedback - Switch to Promise.allSettled for validator commission fetching so that a single unresponsive validator does not abort the entire APY pipeline; failed results are filtered out and the average is computed over the remaining ones (returns 0 if all fail) - Deduct the 10% performance fee and the 2% community tax from the APR formula; the displayed APY now reflects net yield for the staker - Add pricePerShare field by querying the exchange_rate from the staker contract, covering the stZIG→ZIG conversion ratio for liquid assets - Validator addresses remain hardcoded for now: the chain does not expose a public endpoint to enumerate Valdora's curated validator set * fix: replace non-existent exchange_rate query with total_supply The contract does not expose an exchange_rate query endpoint, causing HTTP 500 errors. Compute pricePerShare from funds_raised / total_supply instead. * valdora-finance: validate contract balances
* add styfi + stfyix * onchain calls > api
Co-authored-by: Greg T. <greg@permianlabs.xyz>
Update project-0 adapter to new API endpoint
…idity) and migrate to on-chain RPC (#2762)
The tracked skUSD vault was redeployed on 2026-07-03 to 0x96F5102C15b839757f811A98CEc3725Ac21DfA14. The prior vault (0xdEd74F7E) had a share price distorted by early test deposits; the redeploy resets price-per-share to par. Same ERC-4626 skUSD-over-kUSD design, same asset() (kUSD), same realised on-chain APY logic; only the address changes. Verified on-chain: asset()=kUSD, convertToAssets(1e24)=1e18, totalAssets ~1013 kUSD. Co-authored-by: enerzy17 <enerzy17@users.noreply.github.com>
* show merkl rewards too * add dummy reward token if none present Co-authored-by: Copilot <copilot@github.com> * add direct merkl incentives * wip * add forwarded token opportunities * remove reference file * enable all chains and remove filter * add min 10k tvl filter for api query * fix casing * filter blacklisted pools --------- Co-authored-by: Copilot <copilot@github.com>
* Monetrix: support timetravel for historical backfill; symbol USDM -> sUSDM - apy(timestamp) now anchors every read (block lookup, totalAssets, share prices, window math) at the requested historical timestamp, so the adapter can be backfilled from when yield started (2026-06-10 13:00 UTC). Live runs still anchor at the chain head. Returns [] for timestamps before yield began. - flip timetravel to true - symbol USDM -> sUSDM: the pool is the sUSDM staking vault (deposit USDM, receive sUSDM). Stablecoin classification is unaffected (substring match on usdm). * Monetrix: price backfilled rows at the anchor timestamp utils.getPrices only hits /prices/current, so historical rows were valued with today's USDM/USDC price. Timetravel runs now fetch /prices/historical/<anchor>/... via utils.getPriceApiData; live runs keep using /prices/current. Fallback order (USDM feed -> USDC -> 1) unchanged.
The previous single USDC vault (sSnowbl, 0xd61b…06e8) was retired after a contract migration. Return one pool per new Base ERC-4626 vault, each with its own underlying decimals and USD price: - sUSD -> USDC (6 decimals) - sETH -> WETH (18 decimals) - sBTC -> cbBTC (8 decimals)
* sky-lending: add USDS staking farm pools (SKY, GROVE) Adds the two Sky USDS StakingRewards farms missing from the yields page: - USDS->SKY farm 0x0650CAF159C5A49f711e8169D4336ECB9b950275 (reward period currently ended, apyReward 0) - USDS->GROVE farm 0x4E41488C19cD35EB4de3083Fc3e204854c75c86a (~$88M TVL) APY calc mirrors the existing spkFarm() in the sparklend adapter (same contract shape). Per-pool urls deep-link to the corresponding farm on app.sky.money. * sky-lending: guard USDS price lookup in farmsAPY Short-circuit farmsAPY with an empty array when the USDS price is missing from the price API, matching the defensive pattern in susdsAPY(), so a missing price cannot reject the whole apy() chain. * sky-lending: drop SKY farm pool (pool id owned by sparklend), keep GROVE CI's pool-id uniqueness check flags 0x0650CAF159C5A49f711e8169D4336ECB9b950275 as already owned by the sparklend adapter (it listed the SKY farm historically). Scope this PR to the new GROVE farm only; full jest suite now passes (218/218). * retrigger CI (transient RPC failure in globalSetup) --------- Co-authored-by: techsqrt <techsqrt@users.noreply.github.com>
* meta tags * comments
* Add Hybra V4 yield adapter Hybra V4 is a dynamic-fee concentrated-liquidity DEX with a ve(3,3) flywheel on Hyperliquid L1 (HyperEVM). LPs stake positions in gauges and earn weekly HYBR emissions; swap fees accrue to veHYBR voters (matching the hybra-v4 dimension-adapters methodology), so pools report apyReward from gauge emissions with apyBase 0. - pools + TVL + token prices from the public Hybra V4 Goldsky subgraph - gauge staked amounts and weekly HYBR emission per gauge from the gauge-rewards subgraph; apyReward = latest epoch emission annualized over the USD value staked in the gauge - skips near-empty gauges (<$100 staked) to avoid absurd APRs * fix(hybra-v4): paginate gaugeEpochRewards query The rewards query was a single request capped at first: 1000, which would silently drop entries once the gauge count grows and exclude those pools from results. Reuse paginate() like the other two queries; the newest-first ordering is preserved across pages so the latest-entry-per- gauge dedupe is unchanged.
* Add Tori Finance yields adapter (strUSD; protocolId 8063) * tori-finance fixes --------- Co-authored-by: kr3p <123127490+0xkr3p@users.noreply.github.com>
* add shapeswap v3 yields * Update index.js * Update index.js * chore: retrigger CI * address review: fix prior-volume fallback, raw symbol, add protocolId
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.