Files
proxmox/docs/11-references/POOL_ACCESS_DASHBOARD_API_MCP.md
defiQUG cc6d0705da
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: references, network, besu, CCIP, troubleshooting, archive, quick ref
Made-with: Cursor
2026-03-27 18:50:28 -07:00

8.1 KiB
Raw Blame History

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=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d. 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, whats 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) DODOs 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=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d (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 chains pool addresses to the allowlist, and use a profile that matches the pool interface (DODO v2like 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