Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- Config, docs, scripts, and backup manifests - Submodule refs unchanged (m = modified content in submodules) Made-with: Cursor
106 lines
7.8 KiB
Markdown
106 lines
7.8 KiB
Markdown
# Pool Access — Standard DODO Dashboard, API, and MCP
|
||
|
||
**Last Updated:** 2026-02-28
|
||
**Purpose:** Whether all designed pools (61 across 6 networks) can be accessed via the **standard DODO dashboard**, **API**, and **MCP**, and what is required.
|
||
|
||
---
|
||
|
||
## Short answer
|
||
|
||
| Access method | Chain 138 pools | cW* edge pools (5 public chains) | Requirement |
|
||
|---------------|------------------|-----------------------------------|-------------|
|
||
| **Standard DODO dashboard** | ❌ No | ⚠️ Only if real DODO + chain supported | 138 uses Mock DVM; dashboard does not support custom chain 138. |
|
||
| **API (token-aggregation)** | ✅ Yes | ✅ Yes (when env set) | Chain 138: set `CHAIN_138_DODO_PMM_INTEGRATION`. cW* chains 1, 10, 56, 100, 137: added to dex-factories and chains.ts; set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` and run indexer for those chains. |
|
||
| **MCP (ai-mcp-pmm-controller)** | ✅ Yes (after allowlist) | ⚠️ Per-chain + allowlist | Chain 138: MockDVMPool now has getOraclePrice, _K_, _LP_FEE_RATE_ so dodo_pmm_v2_like profile works; add each pool to allowlist and set RPC to 138. Other chains: one MCP instance per chain + allowlist. |
|
||
|
||
**Not all pools can be accessed by all three today.** Below is what works, what’s missing, and what to change.
|
||
|
||
---
|
||
|
||
## 1. Standard DODO dashboard
|
||
|
||
**What it is:** The official DODO app (e.g. app.dodoex.io) and its subgraph/indexer for supported chains.
|
||
|
||
| Pool scope | Accessible? | Reason |
|
||
|------------|-------------|--------|
|
||
| **Chain 138** (10 pools) | ❌ **No** | Chain 138 is a **custom/private** chain. The standard DODO dashboard only supports chains DODO officially supports (e.g. Ethereum, BSC, Polygon, Arbitrum). It does not connect to Chain 138 or index Mock DVM pools. |
|
||
| **cW* edge pools** (51 on chains 1, 10, 56, 100, 137) | ⚠️ **Only if** | (1) Pools are **real DODO protocol** pools on that chain, and (2) DODO’s dashboard **supports that chain**. If you deploy via your own factory or a fork, they will not appear unless DODO adds your contracts/chain. |
|
||
| **Private / bridge / other** | ❌ No | Private and bridge LPs are not part of the public DODO frontend. |
|
||
|
||
**Conclusion:** **No** for Chain 138. **Maybe** for cW* only when they are official DODO pools on a DODO-supported chain. For full visibility you need your own **custom dashboard** or **API + UI** that talks to your RPC and indexer.
|
||
|
||
---
|
||
|
||
## 2. API (token-aggregation)
|
||
|
||
**What it is:** The token-aggregation service indexes pools and exposes REST endpoints (tokens, pools, quote, report).
|
||
|
||
| Pool scope | Accessible? | Requirement |
|
||
|------------|-------------|-------------|
|
||
| **Chain 138** | ✅ **Yes** | Set `CHAIN_138_DODO_PMM_INTEGRATION=0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D` (and RPC) in the service env. The pool indexer uses `getAllPools()`, then `getPoolConfig`, `getPoolReserves`, `getPoolPriceOrOracle` per pool. Once pools exist and the indexer runs, they appear in `/api/v1/tokens`, `/api/v1/pools`, `/api/v1/quote`, and report endpoints. |
|
||
| **ALL Mainnet (651940)** | ⚠️ **If configured** | Set `CHAIN_651940_DODO_POOL_MANAGER` (and optional `dodoPmmIntegration`) in dex-factories / env. Today no DODO pool list is documented for 651940. |
|
||
| **cW* edge (chains 1, 10, 56, 100, 137)** | ✅ **Yes** (when env set) | `dex-factories.ts` and `chains.ts` now include chainIds 1, 10, 56, 100, 137. Set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` (and `CHAIN_*_RPC_URL`) so the indexer can index DODO/pools on those chains. |
|
||
|
||
**Conclusion:** **Yes** for Chain 138 once integration address is set and pools are created. **Yes** for cW* on chains 1, 10, 56, 100, 137 once the corresponding `CHAIN_*_DODO_*` and RPC env vars are set and the indexer runs for those chains.
|
||
|
||
---
|
||
|
||
## 3. MCP (ai-mcp-pmm-controller)
|
||
|
||
**What it is:** MCP hub with read-only tools `dodo.get_pool_state`, `dodo.identify_pool_interface`, and optional risk/simulation. Pools must be in **allowlist**; state is read via a **pool profile** (expected view methods).
|
||
|
||
| Pool scope | Accessible? | Requirement |
|
||
|------------|-------------|-------------|
|
||
| **Chain 138** | ✅ **Yes** (after allowlist) | (1) **Allowlist:** Add each pool address and base/quote token to `config/allowlist.json` with profile `dodo_pmm_v2_like`. (2) **MockDVMPool** was updated to expose `getOraclePrice()`, `_K_`, `_LP_FEE_RATE_` so the existing MCP profile works. Pools created from a **new** MockDVMFactory (deployed after this change) are MCP-ready; pools from an existing factory may need a new factory deploy to get the updated pool bytecode. (3) Run MCP with `CHAIN=138` and `RPC_URL` pointing to Chain 138. |
|
||
| **cW* edge (each chain)** | ⚠️ **Per chain** | One MCP instance is single-chain (`CHAIN`, `RPC_URL`). For each of the 5 chains: run an MCP instance (or add multi-chain support), add that chain’s pool addresses to the allowlist, and use a profile that matches the pool interface (DODO v2–like or custom). |
|
||
|
||
**Conclusion:** **Yes** for any pool **after** (1) allowlisting, (2) profile/interface alignment (Chain 138 needs mock profile or MockDVMPool stubs), (3) correct RPC per chain.
|
||
|
||
---
|
||
|
||
## 4. What to do so “all pools” are accessible
|
||
|
||
### Standard DODO dashboard
|
||
|
||
- **Chain 138:** Use a **custom dashboard** that uses your RPC + token-aggregation API (or direct contract reads). The standard DODO app will not show 138.
|
||
- **cW*:** If you want them on the official DODO UI, deploy **official DODO** pools on supported chains; otherwise use your own UI fed by API/MCP.
|
||
|
||
### API
|
||
|
||
- **Chain 138:** Set `CHAIN_138_DODO_PMM_INTEGRATION` and run the indexer; no code change needed.
|
||
- **cW*:** Chain configs and DODO env-driven entries for 1, 10, 56, 100, 137 are in `dex-factories.ts` and `chains.ts`. Set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` and `CHAIN_*_RPC_URL` per chain and run the indexer for those chains.
|
||
|
||
### MCP
|
||
|
||
- **Chain 138:**
|
||
- `MockDVMPool.sol` now includes `getOraclePrice()`, `_K_`, and `_LP_FEE_RATE_` so the default `dodo_pmm_v2_like` profile works.
|
||
- Add each pool to `allowlist.json` with base/quote tokens and profile `dodo_pmm_v2_like`.
|
||
- Run MCP with `CHAIN=138` and Chain 138 `RPC_URL`.
|
||
- **cW* (each chain):**
|
||
- Run an MCP instance per chain (or implement multi-chain in the server).
|
||
- Allowlist all pool addresses for that chain.
|
||
- Use a profile that matches the pool contract (e.g. `dodo_pmm_v2_like` for real DODO pools).
|
||
|
||
---
|
||
|
||
## 5. Summary table (all 61 pools)
|
||
|
||
| Access | Chain 138 (10) | cW* (51 on 5 chains) |
|
||
|--------|-----------------|----------------------|
|
||
| **Standard DODO dashboard** | ❌ No (custom chain + Mock DVM) | ⚠️ Only if real DODO on supported chain |
|
||
| **API** | ✅ Yes (set integration env, run indexer) | ✅ Yes when CHAIN_*_DODO_* and RPC env set for each chain |
|
||
| **MCP** | ✅ Yes after allowlist + RPC (MockDVMPool has profile-compatible view methods) | ⚠️ Yes per chain after allowlist + profile + RPC |
|
||
|
||
So: **all pools can be accessed via API and MCP** once the above config and code changes are in place; **they cannot all be accessed by the standard DODO dashboard** (138 never; cW* only in the special case above).
|
||
|
||
---
|
||
|
||
## References
|
||
|
||
- [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md) — Pool map 138 & 651940
|
||
- [POOLS_AND_NETWORKS_FULL_DESIGN.md](POOLS_AND_NETWORKS_FULL_DESIGN.md) — All 61 pools, 6 networks
|
||
- [AI_AGENTS_57XX_MCP_CONTRACTS_AND_CHAINS.md](../02-architecture/AI_AGENTS_57XX_MCP_CONTRACTS_AND_CHAINS.md) — MCP allowlist and chains
|
||
- [DODO_PMM_INTEGRATION.md](../../smom-dbis-138/docs/integration/DODO_PMM_INTEGRATION.md) — Pool creation and integration
|
||
- Token-aggregation: `smom-dbis-138/services/token-aggregation`, `src/config/dex-factories.ts`, `src/indexer/pool-indexer.ts`
|
||
- MCP: `ai-mcp-pmm-controller/config/allowlist.json`, `config/pool_profiles.json`, `config/server.py`
|