Skip to content

Add Uniswap v3 and v4 on Monad#2812

Merged
0xkr3p merged 3 commits into
DefiLlama:masterfrom
iamvukasin:uniswap-v3-v4-monad
Jul 13, 2026
Merged

Add Uniswap v3 and v4 on Monad#2812
0xkr3p merged 3 commits into
DefiLlama:masterfrom
iamvukasin:uniswap-v3-v4-monad

Conversation

@iamvukasin

@iamvukasin iamvukasin commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Added Uniswap v3 pool support for the Monad network.
    • Added Uniswap v4 day-data reporting for Monad, including 7-day volume and APY.
  • Bug Fixes / Improvements

    • Improved pool analytics accuracy with chunked price fetching, better token/pool normalization, and deduped pool discovery.
    • Enhanced fee/APY calculations by filtering out negligible-value pools and scanning swap events with concurrency.
    • Fixed an output data mapping issue to ensure the correct on-chain pool results are used.

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e75fcf25-9587-4597-950e-5b24845393d5

📥 Commits

Reviewing files that changed from the base of the PR and between 6dd91c1 and 6c54e5c.

📒 Files selected for processing (1)
  • src/adaptors/uniswap-v3/onchain.js

📝 Walkthrough

Walkthrough

Uniswap V3 adds Monad support, chunked token pricing, TVL filtering, and concurrent swap scanning. Uniswap V4 adds day-data processing, shared pool formatting, historical volume aggregation, and parallel standard/day-data processing.

Changes

Uniswap V3 onchain scanning

Layer / File(s) Summary
Chunked pricing and concurrent pool scans
src/adaptors/uniswap-v3/onchain.js
Adds Monad configuration, chunked price retrieval, normalized addresses, TVL filtering, concurrent swap-log scans, USD fee and volume aggregation, and APY calculation.
Onchain result aggregation
src/adaptors/uniswap-v3/index.js
Renames the onchain pool result and adds it to the final data collection.

Uniswap V4 day-data processing

Layer / File(s) Summary
Shared pool fields and formatting
src/adaptors/uniswap-v4/index.js
Centralizes GraphQL pool fields and normalizes pool metadata, tokens, URLs, TVL, volume, and fee labels.
Day-data queries and aggregation
src/adaptors/uniswap-v4/index.js
Adds day-data processing for current pool metadata, seven-day volume aggregation, metadata backfilling, sanity filters, and fee-based APY calculation.
Day-data output and orchestration
src/adaptors/uniswap-v4/index.js
Runs standard and day-data chain processing in parallel and concatenates their results.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

Uniswap V3 pool scan

sequenceDiagram
  participant getPools
  participant getPricesChunked
  participant scanPool
  getPools->>getPricesChunked: Fetch token prices in chunks
  getPools->>scanPool: Scan priced pools concurrently
  scanPool-->>getPools: Return USD fees, volume, and APY
Loading

Uniswap V4 day-data flow

sequenceDiagram
  participant main
  participant topLvlDayData
  participant Subgraph
  participant formatPool
  main->>topLvlDayData: Process day-data chains
  topLvlDayData->>Subgraph: Fetch pools and poolDayDatas
  Subgraph-->>topLvlDayData: Return TVL, metadata, and seven-day volumes
  topLvlDayData->>formatPool: Build normalized APY and volume outputs
  formatPool-->>main: Return formatted pools
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Uniswap v3 and v4 support for Monad.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

The uniswap-v3 adapter exports pools:

Test Suites: 1 passed, 1 total
Tests: 185 passed, 185 total
Snapshots: 0 total
Time: 0.246 s
Ran all test suites.

Nb of pools: 30
 

Sample pools:
┌─────────┬──────────────────────────────────────────────┬─────────┬──────────────┬──────────┬────────────────────┬────────────────────┬───────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┐
│ (index) │ pool                                         │ chain   │ project      │ poolMeta │ symbol             │ tvlUsd             │ apyBase               │ underlyingTokens                                                                               │ url                                                                                                                                    │ volumeUsd1d        │
├─────────┼──────────────────────────────────────────────┼─────────┼──────────────┼──────────┼────────────────────┼────────────────────┼───────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ 0       │ '0x659bd0bc4167ba25c62e05656f78043e7ed4a9da' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'WMON-USDC'        │ 1182457.612837005  │ 57.64468956288984     │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x754704bc059f8c67012fed69bc8a327a5aafb603/3000?chain=monad' │ 491834.908432661   │
│ 1       │ '0xe153201e40f50ebc9da7be3aa9c419f185c97f44' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'EURW-USDC'        │ 1176409.6970420715 │ 11.56997862161868     │ [ '0x1111b3ded9f1fe1801ad4ebef8e2788183a24111', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x1111b3ded9f1fe1801ad4ebef8e2788183a24111/0x754704bc059f8c67012fed69bc8a327a5aafb603/100?chain=monad'  │ 3529174.547694055  │
│ 2       │ '0xb80d7a8f5331a907e34cd73f575c784b43e5acb5' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'WMON-gMON'        │ 150470.59404194815 │ 0.004286142701181994  │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x8498312a6b3cbd158bf0c93abdcf29e6e4f55081' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x8498312a6b3cbd158bf0c93abdcf29e6e4f55081/100?chain=monad'  │ 176.69168633981795 │
│ 3       │ '0x1f86a9f2441cac9b942cfb5445530cdbb28717ed' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'shMON-WMON'       │ 145426.53795210063 │ 0.0059245834092447325 │ [ '0x1b68626dca36c7fe922fd2d55e4f631d962de19c', '0x3bd359c1119da7da1d913d1c4d2b7c461115433a' ] │ 'https://app.uniswap.org/#/add/0x1b68626dca36c7fe922fd2d55e4f631d962de19c/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/100?chain=monad'  │ 236.04553490558672 │
│ 4       │ '0xb0a9f9e596bc3f18ab4fdd00d6766a6288b0aa14' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'WBTC-SolvBTC'     │ 88203.2276246918   │ 0                     │ [ '0x0555e30da8f98308edb960aa94c0db47230d2b9c', '0x541fd749419ca806a8bc7da8ac23d346f2df8b77' ] │ 'https://oku.trade/app/bob/liquidity/0xb0a9f9e596bc3f18ab4fdd00d6766a6288b0aa14'                                                       │ 0                  │
│ 5       │ '0x1ed2f2057901bbef02efbc9928b113a15844a19a' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'ALLOCA-WMON'      │ 28594.618890171998 │ 0.017607292384669293  │ [ '0x1ad7052bb331a0529c1981c3ec2bc4663498a110', '0x3bd359c1119da7da1d913d1c4d2b7c461115433a' ] │ 'https://app.uniswap.org/#/add/0x1ad7052bb331a0529c1981c3ec2bc4663498a110/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/3000?chain=monad' │ 4.597530758733435  │
│ 6       │ '0x25ef1a210ff55bcee9f8fee979aaff6bd1be5bf1' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'USDC-WETH'        │ 23917.67409955639  │ 29.731151387664355    │ [ '0x754704bc059f8c67012fed69bc8a327a5aafb603', '0xee8c0e9f1bffb4eb878d8f15f368a02a35481242' ] │ 'https://app.uniswap.org/#/add/0x754704bc059f8c67012fed69bc8a327a5aafb603/0xee8c0e9f1bffb4eb878d8f15f368a02a35481242/3000?chain=monad' │ 5687.5474460504465 │
│ 7       │ '0x27561b3f07f63ff2a3c79a109c3e9d77e25020ea' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'WBTC-LBTC'        │ 22414.87158140495  │ 0                     │ [ '0x0555e30da8f98308edb960aa94c0db47230d2b9c', '0xa45d4121b3d47719ff57a947a9d961539ba33204' ] │ 'https://oku.trade/app/bob/liquidity/0x27561b3f07f63ff2a3c79a109c3e9d77e25020ea'                                                       │ 0                  │
│ 8       │ '0xb091ed2491a179a9f14a34f88587cd08195e592c' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'SolvBTC-xSolvBTC' │ 18720.8446706402   │ 0.030202100839638035  │ [ '0x541fd749419ca806a8bc7da8ac23d346f2df8b77', '0xcc0966d8418d412c599a6421b760a847eb169a8c' ] │ 'https://oku.trade/app/bob/liquidity/0xb091ed2491a179a9f14a34f88587cd08195e592c'                                                       │ 30.976641477678893 │
│ 9       │ '0xe112389471d577f7bc45c03c7c37f70abca1cc93' │ 'bob'   │ 'uniswap-v3' │ '0.3%'   │ 'WBTC-WETH'        │ 11433.150582638184 │ 2.1479535549822737    │ [ '0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3', '0x4200000000000000000000000000000000000006' ] │ 'https://oku.trade/app/bob/liquidity/0xe112389471d577f7bc45c03c7c37f70abca1cc93'                                                       │ 222.3471754070216  │
└─────────┴──────────────────────────────────────────────┴─────────┴──────────────┴──────────┴────────────────────┴────────────────────┴───────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (3)
src/adaptors/uniswap-v3/onchain.js (3)

60-71: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Chunks are fetched sequentially; consider parallelizing.

getPricesChunked awaits each 100-token chunk in a for loop. For chains with many tokens (Monad's high pool-creation throughput makes this likely), fetching chunks with Promise.all would meaningfully cut latency without changing the merge logic.

♻️ Proposed refactor
 const getPricesChunked = async (tokens, chain) => {
-  const pricesByAddress = {};
-  const pricesBySymbol = {};
-
-  for (let start = 0; start < tokens.length; start += 100) {
-    const prices = await utils.getPrices(tokens.slice(start, start + 100), chain);
-    Object.assign(pricesByAddress, prices.pricesByAddress);
-    Object.assign(pricesBySymbol, prices.pricesBySymbol);
-  }
-
-  return { pricesByAddress, pricesBySymbol };
+  const chunks = [];
+  for (let start = 0; start < tokens.length; start += 100) {
+    chunks.push(tokens.slice(start, start + 100));
+  }
+  const results = await Promise.all(
+    chunks.map((chunk) => utils.getPrices(chunk, chain))
+  );
+  return results.reduce(
+    (acc, prices) => ({
+      pricesByAddress: { ...acc.pricesByAddress, ...prices.pricesByAddress },
+      pricesBySymbol: { ...acc.pricesBySymbol, ...prices.pricesBySymbol },
+    }),
+    { pricesByAddress: {}, pricesBySymbol: {} }
+  );
 };
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/adaptors/uniswap-v3/onchain.js` around lines 60 - 71, Update
getPricesChunked to initiate all 100-token utils.getPrices requests in parallel
and await them with Promise.all, then merge each returned pricesByAddress and
pricesBySymbol into the existing accumulators. Preserve the current chunking and
returned object shape.

212-217: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Minor: scanQueue.shift() is O(n) per call.

For very large pool counts this becomes O(n²) across all workers. An index-based cursor would avoid the repeated array re-indexing, though at typical pool counts this is unlikely to matter in practice.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/adaptors/uniswap-v3/onchain.js` around lines 212 - 217, Update the
scanQueue consumption in runScanWorker to use a shared index-based cursor
instead of scanQueue.shift(), incrementing the cursor as each worker claims a
pool and preserving the existing scanPool and dataPools behavior.

28-58: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

toUsd conversion logic is duplicated with the tvl0/tvl1 calc below (lines ~160-167).

Both places compute amount * 10**(18-decimals) * price / 1e18. Extracting a single shared helper (e.g. toUsd(amount, token, tokenDecimals, prices)) would remove this duplication and reduce the risk of the two copies drifting.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/adaptors/uniswap-v3/onchain.js` around lines 28 - 58, The toUsd
conversion logic is duplicated between sumSwapUsd and the tvl0/tvl1 calculation.
Extract one shared helper using the existing amount, token, tokenDecimals, and
prices inputs, then update both sumSwapUsd and the TVL calculation to reuse it
while preserving the current conversion behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/adaptors/uniswap-v4/index.js`:
- Around line 204-214: Remove the hard-coded skip limit from both fetchers,
fetchLatestPools and the sibling day-volume helper. Continue requesting pages by
PAGE_SIZE until the returned batch is shorter than PAGE_SIZE or absent, so
complete pool and volume results are collected without truncation.

---

Nitpick comments:
In `@src/adaptors/uniswap-v3/onchain.js`:
- Around line 60-71: Update getPricesChunked to initiate all 100-token
utils.getPrices requests in parallel and await them with Promise.all, then merge
each returned pricesByAddress and pricesBySymbol into the existing accumulators.
Preserve the current chunking and returned object shape.
- Around line 212-217: Update the scanQueue consumption in runScanWorker to use
a shared index-based cursor instead of scanQueue.shift(), incrementing the
cursor as each worker claims a pool and preserving the existing scanPool and
dataPools behavior.
- Around line 28-58: The toUsd conversion logic is duplicated between sumSwapUsd
and the tvl0/tvl1 calculation. Extract one shared helper using the existing
amount, token, tokenDecimals, and prices inputs, then update both sumSwapUsd and
the TVL calculation to reuse it while preserving the current conversion
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 749b584c-b052-481b-8a08-8a288bd3987f

📥 Commits

Reviewing files that changed from the base of the PR and between 675004f and 331abaf.

📒 Files selected for processing (3)
  • src/adaptors/uniswap-v3/index.js
  • src/adaptors/uniswap-v3/onchain.js
  • src/adaptors/uniswap-v4/index.js

Comment thread src/adaptors/uniswap-v4/index.js

@0xkr3p 0xkr3p left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the PR @iamvukasin one minor comment to resolve pls

@github-actions

Copy link
Copy Markdown

The uniswap-v3 adapter exports pools:

Test Suites: 1 passed, 1 total
Tests: 179 passed, 179 total
Snapshots: 0 total
Time: 0.305 s
Ran all test suites.

Nb of pools: 29
 

Sample pools:
┌─────────┬──────────────────────────────────────────────┬─────────┬──────────────┬──────────┬────────────────────┬────────────────────┬───────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┐
│ (index) │ pool                                         │ chain   │ project      │ poolMeta │ symbol             │ tvlUsd             │ apyBase               │ underlyingTokens                                                                               │ url                                                                                                                                     │ volumeUsd1d        │
├─────────┼──────────────────────────────────────────────┼─────────┼──────────────┼──────────┼────────────────────┼────────────────────┼───────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ 0       │ '0xe153201e40f50ebc9da7be3aa9c419f185c97f44' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'EURW-USDC'        │ 1176116.5526331672 │ 13.497048675321       │ [ '0x1111b3ded9f1fe1801ad4ebef8e2788183a24111', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x1111b3ded9f1fe1801ad4ebef8e2788183a24111/0x754704bc059f8c67012fed69bc8a327a5aafb603/100?chain=monad'   │ 4080276.313648058  │
│ 1       │ '0x659bd0bc4167ba25c62e05656f78043e7ed4a9da' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'WMON-USDC'        │ 1172953.1543198426 │ 52.17709596845565     │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x754704bc059f8c67012fed69bc8a327a5aafb603/3000?chain=monad'  │ 450024.5467693323  │
│ 2       │ '0xb80d7a8f5331a907e34cd73f575c784b43e5acb5' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'WMON-gMON'        │ 148618.94024971873 │ 0.00418086201492418   │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x8498312a6b3cbd158bf0c93abdcf29e6e4f55081' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x8498312a6b3cbd158bf0c93abdcf29e6e4f55081/100?chain=monad'   │ 170.23077501231293 │
│ 3       │ '0x1f86a9f2441cac9b942cfb5445530cdbb28717ed' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'shMON-WMON'       │ 143904.85949185904 │ 0.0073189639762105685 │ [ '0x1b68626dca36c7fe922fd2d55e4f631d962de19c', '0x3bd359c1119da7da1d913d1c4d2b7c461115433a' ] │ 'https://app.uniswap.org/#/add/0x1b68626dca36c7fe922fd2d55e4f631d962de19c/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/100?chain=monad'   │ 288.5468623896859  │
│ 4       │ '0xb0a9f9e596bc3f18ab4fdd00d6766a6288b0aa14' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'WBTC-SolvBTC'     │ 88030.47280372669  │ 0                     │ [ '0x0555e30da8f98308edb960aa94c0db47230d2b9c', '0x541fd749419ca806a8bc7da8ac23d346f2df8b77' ] │ 'https://oku.trade/app/bob/liquidity/0xb0a9f9e596bc3f18ab4fdd00d6766a6288b0aa14'                                                        │ 0                  │
│ 5       │ '0x25ef1a210ff55bcee9f8fee979aaff6bd1be5bf1' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'USDC-WETH'        │ 23877.203746347488 │ 30.762212889954156    │ [ '0x754704bc059f8c67012fed69bc8a327a5aafb603', '0xee8c0e9f1bffb4eb878d8f15f368a02a35481242' ] │ 'https://app.uniswap.org/#/add/0x754704bc059f8c67012fed69bc8a327a5aafb603/0xee8c0e9f1bffb4eb878d8f15f368a02a35481242/3000?chain=monad'  │ 5850.668094531081  │
│ 6       │ '0x27561b3f07f63ff2a3c79a109c3e9d77e25020ea' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'WBTC-LBTC'        │ 22307.645467710405 │ 0                     │ [ '0x0555e30da8f98308edb960aa94c0db47230d2b9c', '0xa45d4121b3d47719ff57a947a9d961539ba33204' ] │ 'https://oku.trade/app/bob/liquidity/0x27561b3f07f63ff2a3c79a109c3e9d77e25020ea'                                                        │ 0                  │
│ 7       │ '0xb091ed2491a179a9f14a34f88587cd08195e592c' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'SolvBTC-xSolvBTC' │ 18699.48181054612  │ 0.024916949516295972  │ [ '0x541fd749419ca806a8bc7da8ac23d346f2df8b77', '0xcc0966d8418d412c599a6421b760a847eb169a8c' ] │ 'https://oku.trade/app/bob/liquidity/0xb091ed2491a179a9f14a34f88587cd08195e592c'                                                        │ 25.527461070830164 │
│ 8       │ '0xe112389471d577f7bc45c03c7c37f70abca1cc93' │ 'bob'   │ 'uniswap-v3' │ '0.3%'   │ 'WBTC-WETH'        │ 11431.441243696265 │ 2.0631843089486734    │ [ '0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3', '0x4200000000000000000000000000000000000006' ] │ 'https://oku.trade/app/bob/liquidity/0xe112389471d577f7bc45c03c7c37f70abca1cc93'                                                        │ 213.50595105801256 │
│ 9       │ '0xf98d134ef12e3d5dbcf986504b799999b7ded631' │ 'monad' │ 'uniswap-v3' │ '1%'     │ 'USDC-DUST'        │ 8124.564840538822  │ 0                     │ [ '0x754704bc059f8c67012fed69bc8a327a5aafb603', '0xad96c3dffcd6374294e2573a7fbba96097cc8d7c' ] │ 'https://app.uniswap.org/#/add/0x754704bc059f8c67012fed69bc8a327a5aafb603/0xad96c3dffcd6374294e2573a7fbba96097cc8d7c/10000?chain=monad' │ 0                  │
└─────────┴──────────────────────────────────────────────┴─────────┴──────────────┴──────────┴────────────────────┴────────────────────┴───────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama

@0xkr3p 0xkr3p left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved!

@github-actions

Copy link
Copy Markdown

The uniswap-v3 adapter exports pools:

Test Suites: 1 passed, 1 total
Tests: 179 passed, 179 total
Snapshots: 0 total
Time: 0.334 s
Ran all test suites.

Nb of pools: 29
 

Sample pools:
┌─────────┬──────────────────────────────────────────────┬─────────┬──────────────┬──────────┬────────────────────┬────────────────────┬──────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────┐
│ (index) │ pool                                         │ chain   │ project      │ poolMeta │ symbol             │ tvlUsd             │ apyBase              │ underlyingTokens                                                                               │ url                                                                                                                                     │ volumeUsd1d        │
├─────────┼──────────────────────────────────────────────┼─────────┼──────────────┼──────────┼────────────────────┼────────────────────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────┤
│ 0       │ '0xe153201e40f50ebc9da7be3aa9c419f185c97f44' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'EURW-USDC'        │ 1177173.5164751401 │ 14.972919143057295   │ [ '0x1111b3ded9f1fe1801ad4ebef8e2788183a24111', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x1111b3ded9f1fe1801ad4ebef8e2788183a24111/0x754704bc059f8c67012fed69bc8a327a5aafb603/100?chain=monad'   │ 4500775.439105822  │
│ 1       │ '0x659bd0bc4167ba25c62e05656f78043e7ed4a9da' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'WMON-USDC'        │ 1170055.1238210523 │ 56.86723514644933    │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x754704bc059f8c67012fed69bc8a327a5aafb603/3000?chain=monad'  │ 481386.8424050278  │
│ 2       │ '0xb80d7a8f5331a907e34cd73f575c784b43e5acb5' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'WMON-gMON'        │ 150242.19292769502 │ 0.004202707307832121 │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x8498312a6b3cbd158bf0c93abdcf29e6e4f55081' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x8498312a6b3cbd158bf0c93abdcf29e6e4f55081/100?chain=monad'   │ 172.98924119717088 │
│ 3       │ '0x1f86a9f2441cac9b942cfb5445530cdbb28717ed' │ 'monad' │ 'uniswap-v3' │ '0.01%'  │ 'shMON-WMON'       │ 145187.4789485708  │ 0.006840440958955085 │ [ '0x1b68626dca36c7fe922fd2d55e4f631d962de19c', '0x3bd359c1119da7da1d913d1c4d2b7c461115433a' ] │ 'https://app.uniswap.org/#/add/0x1b68626dca36c7fe922fd2d55e4f631d962de19c/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/100?chain=monad'   │ 272.08561766138166 │
│ 4       │ '0xb0a9f9e596bc3f18ab4fdd00d6766a6288b0aa14' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'WBTC-SolvBTC'     │ 86815.91302369926  │ 0                    │ [ '0x0555e30da8f98308edb960aa94c0db47230d2b9c', '0x541fd749419ca806a8bc7da8ac23d346f2df8b77' ] │ 'https://oku.trade/app/bob/liquidity/0xb0a9f9e596bc3f18ab4fdd00d6766a6288b0aa14'                                                        │ 0                  │
│ 5       │ '0x25ef1a210ff55bcee9f8fee979aaff6bd1be5bf1' │ 'monad' │ 'uniswap-v3' │ '0.3%'   │ 'USDC-WETH'        │ 23753.612112964638 │ 36.470398241867926   │ [ '0x754704bc059f8c67012fed69bc8a327a5aafb603', '0xee8c0e9f1bffb4eb878d8f15f368a02a35481242' ] │ 'https://app.uniswap.org/#/add/0x754704bc059f8c67012fed69bc8a327a5aafb603/0xee8c0e9f1bffb4eb878d8f15f368a02a35481242/3000?chain=monad'  │ 6747.99404908138   │
│ 6       │ '0x27561b3f07f63ff2a3c79a109c3e9d77e25020ea' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'WBTC-LBTC'        │ 22089.671264872577 │ 0                    │ [ '0x0555e30da8f98308edb960aa94c0db47230d2b9c', '0xa45d4121b3d47719ff57a947a9d961539ba33204' ] │ 'https://oku.trade/app/bob/liquidity/0x27561b3f07f63ff2a3c79a109c3e9d77e25020ea'                                                        │ 0                  │
│ 7       │ '0xb091ed2491a179a9f14a34f88587cd08195e592c' │ 'bob'   │ 'uniswap-v3' │ '0.05%'  │ 'SolvBTC-xSolvBTC' │ 18933.03797498395  │ 0                    │ [ '0x541fd749419ca806a8bc7da8ac23d346f2df8b77', '0xcc0966d8418d412c599a6421b760a847eb169a8c' ] │ 'https://oku.trade/app/bob/liquidity/0xb091ed2491a179a9f14a34f88587cd08195e592c'                                                        │ 0                  │
│ 8       │ '0xe112389471d577f7bc45c03c7c37f70abca1cc93' │ 'bob'   │ 'uniswap-v3' │ '0.3%'   │ 'WBTC-WETH'        │ 11428.55523651668  │ 1.7889457808433207   │ [ '0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3', '0x4200000000000000000000000000000000000006' ] │ 'https://oku.trade/app/bob/liquidity/0xe112389471d577f7bc45c03c7c37f70abca1cc93'                                                        │ 185.06698173037472 │
│ 9       │ '0xc33e9e441e6f4e74cdb34f878be51189c9cb00d8' │ 'monad' │ 'uniswap-v3' │ '1%'     │ 'WMON-USDC'        │ 8050.947126715465  │ 42.17712899458754    │ [ '0x3bd359c1119da7da1d913d1c4d2b7c461115433a', '0x754704bc059f8c67012fed69bc8a327a5aafb603' ] │ 'https://app.uniswap.org/#/add/0x3bd359c1119da7da1d913d1c4d2b7c461115433a/0x754704bc059f8c67012fed69bc8a327a5aafb603/10000?chain=monad' │ 776.5825591830466  │
└─────────┴──────────────────────────────────────────────┴─────────┴──────────────┴──────────┴────────────────────┴────────────────────┴──────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────┘
This adapter contains some pools with <10k TVL, these pools won't be shown in DefiLlama

@0xkr3p
0xkr3p merged commit 24d5cb7 into DefiLlama:master Jul 13, 2026
1 of 2 checks passed
@iamvukasin
iamvukasin deleted the uniswap-v3-v4-monad branch July 13, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants