{"generatedAt":"2026-06-13T04:23:42.097Z","source":"config/chain138-official-protocol-contracts.json","schemaVersion":"1.0.0","updated":"2026-05-23","chainId":138,"chainName":"DeFi Oracle Meta Mainnet","policyDoc":"docs/03-deployment/CHAIN138_OFFICIAL_PROTOCOL_CONTRACTS_POLICY.md","guardrails":["Third-party protocol core contracts on Chain 138 MUST be deployed from the protocol-maintained upstream repository or official pre-signed/canonical deployment artifact — never from reimplemented or pilot stubs.","DBIS integration contracts (DODOPMMIntegration, EnhancedSwapRouter, ReserveSystem) MAY be repo-native but MUST wire only to official third-party venues listed here.","Do not use MockDVMPool, Chain138Pilot* routers, Stack B DODOPMMIntegration (0x5BDc62f1…), or DODO_VENDING_MACHINE (0xB16c3…) as production DODO swap entrypoints.","Before any new protocol deploy on 138: add or update this registry, run pnpm chain138:validate-official-protocols, then preflight-chain138-deploy.sh.","Aggregators (1inch) do not get custom router bytecode on 138 — use official API quote/swap tx data only."],"forbiddenProductionPatterns":[{"id":"mock_dvm_pool","description":"Temporary MockDVMPool or non-DODO pool stand-ins for production liquidity"},{"id":"pilot_dex_router","description":"Chain138PilotUniswapV3Router / Chain138PilotDexVenues stubs in production routing"},{"id":"dodo_stack_b","description":"Stack B DODOPMMIntegration 0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d for dApps, routers, or DefiLlama adapters"},{"id":"dodo_vending_machine_proxy","description":"DODO_VENDING_MACHINE 0xB16c3D48A111714B1795E58341FeFDd643Ab01ab substituted for DODOV2Proxy02"},{"id":"fabricated_factory_address","description":"Factory/router addresses not traceable to official upstream deploy or this registry"}],"count":13,"protocols":[{"id":"balancer_v2","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/balancer/balancer-deployments","deployMethod":"official_balancer_deployments_artifact","contracts":[{"name":"Vault","address":"0x96423d7C1727698D8a25EbFB88131e9422d1a3C3","inventoryKey":"BALANCER_VAULT","minCodeSize":20000}]},{"id":"chainlink_ccip","classification":"third_party_official","requiredForProduction":true,"upstreamRepo":"https://github.com/smartcontractkit/ccip","deployMethod":"smom_dbis138_official_ccip_deploy_scripts","contracts":[{"name":"CCIPRouter","address":"0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817","minCodeSize":4000},{"name":"CCIPWETH9Bridge","address":"0xcacfd227A040002e49e2e01626363071324f820a","inventoryKey":"CCIPWETH9Bridge","minCodeSize":4000}]},{"id":"curve_stable","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/curvefi/curve-contract","deployMethod":"official_curve_deploy_or_dodo_bundle","contracts":[{"name":"ThreePool","address":"0xE440Ec15805BE4C7BabCD17A63B8C8A08a492e0f","inventoryKey":"CURVE_3POOL","minCodeSize":4000}]},{"id":"dodo_v2","classification":"third_party_official","requiredForProduction":true,"upstreamRepo":"https://github.com/DODOEX/dodo-contractV2","upstreamSubmodule":"smom-dbis-138/lib/dodo-contractV2","deployScripts":["scripts/deployment/deploy-dodo-full-stack-chain138.sh"],"verifyScripts":["scripts/verify/verify-dodo-full-stack-chain138.sh"],"deployMethod":"truffle_migrate_chain138_config","contracts":[{"name":"DVMFactory","address":"0xc93870594C7f83A0aE076c2e30b494Efc526b68E","inventoryKey":"DODO_DVM_FACTORY","minCodeSize":400},{"name":"CloneFactory","address":"0xB7255935aa1771096F200e845f0806A3cC5Ba59B","inventoryKey":"DODO_CLONE_FACTORY","minCodeSize":200},{"name":"DODOApprove","address":"0xEA5Be91d0A1EdA6a2efc80f7211c30584508D56D","inventoryKey":"DODO_APPROVE","minCodeSize":400},{"name":"DODOApproveProxy","address":"0xa861198650005969990bF6223bACb2085C180313","inventoryKey":"DODO_APPROVE_PROXY","minCodeSize":400},{"name":"DODOV2Proxy02","address":"0xEF6E6F41A522896a9EE1C580C87C05E409193F8d","inventoryKey":"DODO_V2_PROXY","minCodeSize":400},{"name":"DODOV2RouteHelper","address":"0x6A0009C5a331a40f8F1B12e8bA800D32066df8b5","inventoryKey":"DODO_V2_ROUTE_HELPER","minCodeSize":400},{"name":"DODOV2Adapter","address":"0xf8043e9e524C24c27f534E49E6A8Bdd951fdecd2","inventoryKey":"DODO_V2_ADAPTER","minCodeSize":400}]},{"id":"gnosis_safe","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/safe-global/safe-smart-account","deployScripts":["scripts/compliance/deploy-omnl-gnosis-safe-chain138.sh"],"deployMethod":"safe_global_deploy_all_custom","contracts":[]},{"id":"gru_vault_protocol","classification":"repo_native_gru_infrastructure","requiredForProduction":true,"deployScripts":["scripts/deployment/deploy-gru-vault-protocol.sh","smom-dbis-138/script/deploy/vault/DeployVaultSystem.s.sol","smom-dbis-138/script/deploy/vault/DeployGRUVaultProtocol.s.sol","smom-dbis-138/script/deploy/vault/DeployAcVdcSdcVaults.s.sol"],"contracts":[{"name":"VaultFactory","address":"0x691E5ECa95FCe6F21Ff373698297B672540e0236","inventoryKey":"VaultFactory","minCodeSize":10000},{"name":"Ledger","address":"0xa61AEb9396a5eedC4914e998b438dc645a01d147","inventoryKey":"Ledger","minCodeSize":5000},{"name":"RegulatedEntityRegistry","address":"0x53704238b2D641635cF9289BB67865B251D7110e","inventoryKey":"RegulatedEntityRegistry","minCodeSize":1000},{"name":"GRUEntityIbanRegistry","address":"0x5f46E549B9FFB9797e9DEa6D83EDCc6e890137cb"},{"name":"GRUVaultIndex","address":"0x14305B163A7f6b0A760f58ea75C729275985f481"}]},{"id":"multicall3","classification":"third_party_official_canonical_address","requiredForProduction":false,"upstreamRepo":"https://github.com/mds1/multicall3","deployScripts":["scripts/deployment/deploy-multicall3-chain138.sh"],"deployMethod":"official_presigned_transaction","contracts":[{"name":"Multicall3","address":"0xcA11bde05977b3631167028862bE2a173976CA11","minCodeSize":4000}]},{"id":"oneinch_aggregator","classification":"third_party_official_api_only","requiredForProduction":false,"deployMethod":"no_on_chain_router_deploy_use_official_api","contracts":[]},{"id":"rwa_token_factory","classification":"repo_native_gru_infrastructure","requiredForProduction":false,"deployScripts":["smom-dbis-138/script/deploy/rwa/DeployRWATokenFactory138.s.sol"],"contracts":[{"name":"RWATokenRegistry","address":"0x9c83430A1b3A9ac8e807acCF6cCbC6CaBd0afFa7","inventoryKey":"RWA_TOKEN_REGISTRY"},{"name":"RWATokenFactory","address":"0xb2Da9c8f3F9f794bD243e30Aa9Df94a8414EC80B","inventoryKey":"RWA_TOKEN_FACTORY"}]},{"id":"sushiswap_v2","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/sushiswap/v2-core","deployMethod":"hardhat_official_vendor_bytecode","contracts":[{"name":"UniswapV2Factory","address":"0x2871207ff0d56089D70c0134d33f1291B6Fce0BE","minCodeSize":2000},{"name":"UniswapV2Router02","address":"0xB37b93D38559f53b62ab020A14919f2630a1aE34","minCodeSize":2000}]},{"id":"uniswap_v2","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/Uniswap/v2-core","deployScripts":["smom-dbis-138/scripts/chain138/deploy-uniswap-v2-native.js"],"deployMethod":"hardhat_official_vendor_bytecode","contracts":[{"name":"UniswapV2Factory","address":"0x0C30F6e67Ab3667fCc2f5CEA8e274ef1FB920279","minCodeSize":2000},{"name":"UniswapV2Router02","address":"0x3019A7fDc76ba7F64F18d78e66842760037ee638","minCodeSize":2000}]},{"id":"uniswap_v3","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/Uniswap/v3-core","deployMethod":"dodo_smart_route_bundle_or_official_univ3_deploy","contracts":[{"name":"UniswapV3Factory","address":"0x2f7219276e3ce367dB9ec74C1196a8ecEe67841C","inventoryKey":"CHAIN138_UNISWAP_V3_NATIVE_FACTORY","minCodeSize":10000},{"name":"SwapRouter02","address":"0xde9cD8ee2811E6E64a41D5F68Be315d33995975E","inventoryKey":"CHAIN138_UNISWAP_V3_NATIVE_SWAP_ROUTER","minCodeSize":4000},{"name":"NonfungiblePositionManager","address":"0x31b68BE5af4Df565Ce261dfe53D529005D947B48","inventoryKey":"CHAIN138_UNISWAP_V3_NATIVE_POSITION_MANAGER","minCodeSize":10000},{"name":"QuoterV2","address":"0x6abbB1CEb2468e748a03A00CD6aA9BFE893AFa1f","inventoryKey":"CHAIN138_UNISWAP_V3_NATIVE_QUOTER_V2","minCodeSize":4000}]},{"id":"wormhole","classification":"third_party_official","requiredForProduction":false,"upstreamRepo":"https://github.com/wormhole-foundation/wormhole","deployScripts":["scripts/deployment/deploy-wormhole-chain138.sh"],"verifyScripts":["scripts/verify/preflight-wormhole-chain138.sh"],"deployMethod":"forge_script_official_ethereum_sh","contracts":[{"name":"WormholeCore","address":"","inventoryKey":"WORMHOLE_CORE"},{"name":"TokenBridge","address":"","inventoryKey":"WORMHOLE_TOKEN_BRIDGE"}]}]}