Skip to main content

Contract Addresses

Canonical deployed addresses for 4626 on Base mainnet. Shared infrastructure and new per-creator launches use the v1.23.0 stack (v1.21 factories/batcher/modules + remine Registry4626).

Live Registry4626 (app pin / ■AKITA CCA mesh): 0x7779…4626 (VITE_REGISTRY / REGISTRY_4626 / BASE_DEFAULTS.registry). The v1.21 greenfield Registry 0xB395… is deprecated for app resolution.

v1.23.0 (Phase-2 launch inventory bps on the v1.21.0/v1.22.0 shell) is the current product epoch with a fully seeded bytecode store. Prior v1.20.0 / v1.19.x addresses remain onchain for already-deployed vaults but are not supported launch or ops targets. Remine AMOE router 0x46255a… is live on LotteryManager 0x7777CEd5… (venue-notional CREATE2 cutover 2026-08-08; prior 0x77778686…).

For launch procedures, see Getting started. This page lists shared infrastructure (batcher, factories, registry). Per-creator vault, wrapper, and ShareOFT addresses are emitted at deploy.

Terms: New vault launch = fresh deploy on the current release (greenfield). Solana bridge at finalize = ~30% of bridged during activation (Pipe A). See Glossary.

Canonical source. When documentation or tooling disagrees with this file, this file wins. Addresses link to BaseScan on Base mainnet.

Base

Current infrastructure

Live shared shell (v1.23.0 product epoch on the v1.21 factories/batcher/modules) plus the remine Registry used by the app and ■AKITA CCA mesh.

ContractAddress
Registry4626 (live; VITE_REGISTRY)0x7779…4626
OVaultFactory46260x9253…d655
VaultActivationBatcher0x9575…BB4E
LotteryManager46260x7777…4626
LotteryManager4626AdminModule0xa348…aB54
VRFConsumer46260x294F…3271
UniversalBytecodeStoreV20xA02b…BA22
UniversalCreate2DeployerFromStore0x3f79…3635
CreatorOVaultCoreModule0x0Bb6…b1dd
AgentOVaultCoreModule0x0Bb6…b1dd
CreatorOVaultStrategiesModule0x6c9C…fc91
CreatorOVaultAdminModule0xcb16…F438
DeploymentBatcher0x4973…ec8F
DeploymentBatcherPhase1Module0x924a…EE92
DeploymentBatcherPhase2Module0x09E7…07EF
DeploymentBatcherPhase3Helper0x1Cf1…bbFa
DeploymentBatcherShareMeshHelper0xBe1F…4278
DeploymentBatcherUtilsHelper0x965E…e1e2
VaultAuxiliaryDeployBatcher(redeploy on v1.22.0 store/create2 — pending Phase 3)

Notes:

  • v1.23.0 is the current product epoch label. Handoff: tmp/base-v1.23.0-handoff.env. Manifest: deployments/base/v1.23.0-bytecode-manifest.json. Factories/batcher/modules remain the v1.21 shell; live Registry is remine 0x7779…4626. OVaultFactory.registry() was cut over onchain to remine (factory + batcher authorized on remine). DeploymentBatcher.registry() is immutable and still returns greenfield 0xB395… until batcher redeploy — app code rejects that pin via normalizeRegistry4626Address.
  • Phase1 immutables bind creator + agent core to the same module address 0x0Bb680F5… on this epoch.
  • Batcher helpers + Phase1 are wired; CREATE2 authorizes the batcher + helpers. Bytecode store remains seeded from the v1.21/v1.22 seals; reseal Phase2Module after inventory-bps deploy.
  • Prior v1.20.0 / v1.19.x stacks are deprecated for new vault launches; see Deprecated infrastructure below.
  • DeploymentBatcher deploys as a slim shell; helpers and DeploymentBatcherPhase1Module wire post-deploy via protocol treasury Safe (wireDeploymentHelpers + setPhase1Module).
  • New vault launches use active module immutables. Live AKITA remine-2 vault stack (below) is a parallel cutover — not an in-place upgrade of abandoned product stacks.

■AKITA remine-2 Base hub (live product)

Canonical creator stack for ■AKITA (AKITA_DEFAULTS). Registry is the remine pin above; ShareOFT registry() returns the same address onchain.

RoleAddress
Creator coin (Zora AKITA)0x5b67…fa75
Registry4626 (live)0x7779…4626
CreatorShareOFT (■AKITA)0xe7e4…4626
CreatorOVault0x4dE4…61D7
CreatorOVaultWrapper0x0D47…a200
CreatorGaugeController0x7e1B…cdbF
CreatorOracle0xC5c5…78ff
CCALaunchArm0x4f6B…A9EA
Solana ■AKITA mint (Token-2022 / LZ share mesh)A6HB5FWRjknVuMXpuwupr6QjZpsRSS98nBb1DW9dAZsH
Solana LZ OFT StoreAsa8DaR3bxQCAb3io5pLcYHZK4t2SeMn5jGnb1YBoDWz

Deprecated infrastructure

Epoch / labelRepresentative addressesNotes
v1.21/v1.23 greenfield Registry0xB395…0B22Superseded for live app / ■AKITA by remine 0x7779…4626. Rejected by normalizeRegistry4626Address.
v1.20.0 greenfieldRegistry 0xF60a1490…, batcher 0x83A9b248…, store 0x8599CA87…, CREATE2 0xdffB255…, LM 0x0fC6f30…Superseded by v1.21.0; existing vaults may still reference
v1.21.0 greenfieldSame shell addresses as current table aboveSuperseded as label by v1.23.0 Phase-2 inventory epoch; shell retained
v1.19.1 / v1.19.3 greenfieldRegistry 0x1365e9…, batcher 0xa18169…, store 0xF96226…, CREATE2 0xe2a8aA…, aux 0xaA9229…Superseded by v1.20.0; existing vaults (incl. AKITA) may still reference
v1.18.0 greenfieldRegistry 0xDb8570…, batcher 0x02D7…, store 0xfa3e…, CREATE2 0x54660E…, aux 0xde93…Superseded by v1.19.1 greenfield; existing vaults may still reference
v1.16.1-share-meshRegistry 0x1eb9A3…, batcher 0xA9024e…, store 0x7D1029…Superseded by v1.18.0; existing vaults may still reference
v1.17.0 orphanRegistry 0x5646B5…, batcher 0xa4090F…Partial broadcast — never wired for production
v1.16.0 shellBatcher 0x1716…6D33Lacks shareMeshHelper()
v1.14.1 shellBatcher 0x660B…61c1Pre–share-mesh
v1.14.0 shellBatcher 0xa990…0651Pre–v1.14.1 refresh
Legacy AMOE router0xc57a…6b0av1.11 manager fan-out
Legacy lottery manager0x04CA…7Cf8Pre–v1.16.1 registry stack
Retired Twin SolanaBridgeAdapter0x9A61…Be60Historical on-chain deployment only; removed from source and active env/defaults

Protocol Safes

RoleAddress
Protocol treasury Safe (cold custody, strategy ownership)0x7d42…f2d3
Protocol automation Safe (hot lane — Charm manager, Ajna admin)0x08f0…8eBE

Do not set PROTOCOL_AUTOMATION_SAFE to the treasury address. Phase 3 deploys wire Charm manager and Ajna admin to the automation Safe; treasury keeps adapter ownership only.

AMOE (ZK lottery entry)

Contract / roleAddressNotes
LotteryAmoeRouter (remine LM, multi-entry PLONK)0x4625…7a95Live on remine LM 0x77778686… (authorized 2026-08-05). Reuses PLONK verifier 0xcEA9e27c…. Publisher = protocol CSW 0x793c…. Flip LOTTERY_AMOE_ROUTER / VITE_LOTTERY_AMOE_ROUTER here.
AmoePlonkVerifier (paired)0xcEA9…c229Shared with prior multi-entry routers.
LotteryAmoeRouter (v3, multi-entry; legacy LM)0x44d0…e338Authorized on legacy manager 0x0fC6f30a… after 2026-08-05 execute. Not the remine path — do not point production Vercel here.
LotteryAmoeRouter (v3, PLONK + once-per-epoch)0xf07D…1DACSuperseded — has once-per-epoch usedWalletCommit.
LotteryAmoeRouter (stale greenfield env)0x3B7d…ADf2Misaligned with remine LM; retired from env.
LotteryAmoeRouter (v3, v1.19.1)0x630c…4C1eDeprecated — do not point Vercel here after v1.20.0 greenfield cutover.
LotteryAmoeRouter (v3, v1.18.0)0x18D1…c0A7Deprecated — do not point Vercel here after v1.19.1 greenfield cutover.
LotteryAmoeRouter (v3, legacy v1.16.1)0x066e…e057Deprecated — do not point Vercel here after v1.18.0 cutover.
LotteryManager4626 (venue-notional vanity, Registry 0x7779…)0x7777…4626Canonical manager after venue-notional CREATE2 cutover (2026-08-08). Buffer 0x4DeC0091… / reporter 0xda32AF68….
LotteryManager4626 (prior remine vanity)0x7777…4626Superseded 2026-08-08 by venue-notional LM.
LotteryManager4626 (v1.20.0 greenfield)0x2fC7…28CCSuperseded by remine vanity LM; prior greenfield manager on Registry4626 0xB395….
LotteryManager4626 (v1.19.1 greenfield)0xB45E…6650Superseded by v1.20.0; existing vaults may still reference.
LotteryManager4626 (v1.18.0 remediation)0xB68F…ba43Superseded 2026-07-15; isActive=false on deprecated registry.
LotteryManager4626 (v1.18.0 prior)0xbE87…F8C1Superseded 2026-07-11; isActive=false.
LotteryManager4626 (v1.16.1)0xD62a…2b0bDeprecated manager on prior registry stack.
Legacy LotteryAmoeRouter0xc57a…6b0aDeprecated. Was wired to v1.11 manager 0x04CADE…; do not point Vercel here.
Legacy manager (v1.11)0x04CA…7Cf8Pre–v1.16.1. Kill-switch relayer after cutover.
Allowlist + ledger publisher0x793c…c145Protocol CSW (PROTOCOL_CSW_ADDRESS) — must match on-chain allowlistPublisher / pointsLedgerPublisher. Operator personal CSW 0xAb6d5… is no longer the AMOE publisher.
Protocol AMOE creator coin (AKITA)0x5b67…fa75Default target for protocol-entry AMOE flows.

Remine AMOE cutover (landed 2026-08-05):

  1. Deploy remine-wired router via script/DeployAmoeRouterRemine.s.sol0x4625…7a95 (manager + publishers set in-broadcast).
  2. LotteryManager4626.setAuthorizedAmoeRelayer(router) on remine LM (bootstrap; no 2-day queue while unset).
  3. Flip LOTTERY_AMOE_ROUTER / VITE_LOTTERY_AMOE_ROUTER to 0x46255a… in local + Vercel production.
  4. Confirm publisher cron writes allowlist + ledger roots to the remine router (publisher CSW unchanged: 0x793c…). Roots are one-shot per epoch per router.
  5. Smoke: burn-credits → wait snapshot/timelock → submit-zk.

Post-cutover verification (production):

  1. Verify LOTTERY_AMOE_ROUTER resolves to 0x4625…7a95.
  2. Verify the router points to manager 0x7777…4626, that the manager authorizes the router, and that publishers resolve to protocol CSW (0x793c…).
  3. Verify allowlist and points-ledger Merkle roots are present for the active closed epoch (allowlistRootOf / pointsLedgerRootOf).
  4. Confirm AMOE APIs use Lottery Manager: 0x77778686BFE5440d45195AFc6d3130C35cE94626 (nonce API reads live LOTTERY_MANAGER env).

Environment for v1.23.0 launches

After an infra epoch deploy, update local .env, Vercel (production, preview, development), and any operator host env to these keys. Canonical values:

Server envClient (Vite) envCurrent value
REGISTRY_4626VITE_REGISTRY0x7779…4626
OVAULT_FACTORYVITE_FACTORY0x9253…d655
VAULT_ACTIVATION_BATCHERVITE_VAULT_ACTIVATION_BATCHER0x9575…BB4E
LOTTERY_MANAGERVITE_LOTTERY_MANAGER0x7777…4626
VRF_CONSUMERVITE_VRF_CONSUMER0x294F…3271
UNIVERSAL_BYTECODE_STOREVITE_UNIVERSAL_BYTECODE_STORE0xA02b…BA22
UNIVERSAL_CREATE2_FROM_STORE, UNIVERSAL_CREATE2_DEPLOYERVITE_UNIVERSAL_CREATE2_DEPLOYER0x3f79…3635
DEPLOYMENT_BATCHERVITE_DEPLOYMENT_BATCHER0x4973…ec8F
DEPLOYMENT_BATCHER_AUTO_HANDOFFVITE_DEPLOYMENT_BATCHER_AUTO_HANDOFF0x4973…ec8F
VAULT_AUXILIARY_DEPLOY_BATCHERVITE_VAULT_AUXILIARY_DEPLOY_BATCHER0x15eE…dAdD
LOTTERY_AMOE_ROUTERVITE_LOTTERY_AMOE_ROUTER0x4625…7a95
VITE_DEPLOYMENT_VERSIONv1.23.0

VITE_DEPLOYMENT_VERSION pins the CREATE2 namespace for new vault launches.

Solana lottery OApp peer (LZ entry sender): unset. Solana→Base lottery transport is fail-closed until a reviewed peer is authorized on LM authorizedRemoteOFTs(30168, peer). Do not use the retired Twin adapter. Sender mode (SOLANA_LOTTERY_OAPP_SENDER_MODE) stays unset until the peer is authorized and an http/mock sender is explicitly configured.

Solana ShareOFT identity

Solana has no EVM contract address for the Base CreatorShareOFT. Each creator has a distinct Solana SPL mint pubkey and OFT Store pubkey. LayerZero peer wiring connects that creator's Base ShareOFT to the Solana OFT Store as one omnichain supply.

■AKITA live Solana pins (remine-2):

RoleAddress
Solana mintA6HB5FWRjknVuMXpuwupr6QjZpsRSS98nBb1DW9dAZsH
OFT StoreAsa8DaR3bxQCAb3io5pLcYHZK4t2SeMn5jGnb1YBoDWz
Meteora DLMM pool976B92Sf3rUpfksxf825JD4LHSh31PeyoMNqRsGGDZPB
Hub ShareOFT (Base)0xe7e4…4626
Gauge (remine r3)0x3A51…98A0
Live lottery LM peer0x7777…4626 (OApp Ggsd… peer; venue-notional 2026-08-08)
Env keyCurrent value
SOLANA_DESTINATION0x5f38e34ec3b546c53e682f2cf84d35d2edcbd15b498367651835942416f8d4d1
OVAULT_HUB_COMPOSER0x7dF4…9CD1
OVAULT_SOLANA_EID30168

Before every creator finalize, seed the non-zero OFT Store peer explicitly:

Registry4626.setRemoteOFTPeerBytes32(creatorToken, 30168, peer)

The removed Twin adapter, its env keys, and any batcher-global peer are not active address/config surfaces.

Rewards ecosystem (ve■4626) — canary pending

ve■4626 / gauge voting / bribes / streams / surface registry are not on the shared-infra table until the first Base broadcast of DeployRewardsEcosystem.

Client envStatus
VITE_VE4626null until canary
VITE_VE4626_GAUGE_VOTINGnull until canary
VITE_VE4626_BOOST_MANAGERnull until canary
VITE_VE4626_VOTER_REWARDS_DISTRIBUTORnull until canary
VITE_BRIBES_FACTORY_4626null until canary
VITE_REWARD_STREAM_FACTORY_4626null until canary
VITE_GAUGE_SURFACE_REGISTRY_4626null until canary

Runbook: rewards-ecosystem-canary-2026-07.md.
Lottery posture: leave LM boostManager / vaultGaugeVoting at 0x0 until lottery Phase 3 (lottery-canary-checklist).

Redeploy the Vercel app after env changes; run bash test/current-release-target-guard.sh and verify-bytecode-store-seeded.ts against deployments/base/v1.22.0-bytecode-manifest.json before traffic cutover.

Per-Creator Deployments

Vault, wrapper, share OFT, gauge, and oracle addresses are creator-specific and are emitted during each launch flow. Use the deploy release packet and onchain events for creator-level address lookups.

LayerZero Endpoints

ChainEndpoint IDEndpoint Address
Base301840x1a44…728c
Ethereum301010x1a44…728c
Arbitrum301100x1a44…728c
Unichain303200x6F47…DD5B (non-canonical EndpointV2)
Robinhood304160x6F47…DD5B (same CREATE2; different eid)
BSC301020x1a44…728c
Avalanche301060x1a44…728c

■AKITA CCA multi-chain

Remine parity (Base / Arbitrum / Robinhood): Registry 0x7779…4626, ShareOFT 0xcCC1…4626, CreatorOracle 0xC5c51eBB…78ff, CCALaunchArm remine-2 0x4f6BcDAD…A9EA (remine-1 0xFF2B7235…c7d6 abandoned). Live arms + env pins: deployments/base/akita-v1.22.0-cca-multichain-live.json. Unichain / Robinhood remine arms live at CREATE2 parity; Ethereum remine oracle + arm CREATE2 parity landed 2026-07-31 (collector 0x805CfD…).

Canonical launch parameters live in frontend/src/config/ccaLaunchChains.ts. Do not invent ShareOFT / arm / oracle addresses — pin via VITE_AKITA_*_<CHAIN> after each chain's deploy lands. Preflight: pnpm -C frontend ops:verify-cca-multichain.

Spokes = remote ShareOFT + thin CreatorOracle + CCA arm (vault/wrapper/gauge/Zora token stay on Base). Pins after deploy: VITE_AKITA_SHARE_OFT_<CHAIN> + VITE_AKITA_CCA_STRATEGY_<CHAIN> (oracle is onchain-wired; no env pin). Chainlink ETH/USD + sequencer feeds: frontend/src/config/ccaLaunchChains.ts.

ChainchainIdLZ EIDCCA factory (target)PoolManager v4■AKITA on this chain
Base845330184v1.1.0 live arm 0xCCcc…0bD5; new arms → v2.1.0 0x0000…63F80x4985…2b2bFull hub (AKITA_DEFAULTS)
Ethereum130101v2.1.0 0x0000…63F80x0000…8A90ShareOFT + oracle + CCA TBD
Arbitrum4216130110v2.1.0 0x0000…63F80x360E…FB32live (pins below)
Unichain13030320v2.1.0 0x0000…63F80x1F98…0004ShareOFT + oracle + CCA TBD
Robinhood466330416v2.1.0 — deploy ourselves with protocolFeeController = address(0)0x8366…0951ShareOFT + oracle + CCA TBD

Arbitrum spoke (live 2026-07-29)

RoleAddress
Registry4626 (spoke; not Base vanity)0xd83b…627c
Bytecode store / CREATE2 deployer0x75FA60e7…117E / 0x7E3898Eb…a2D6 (epoch cca-spoke-v1)
ShareOFT (v1.20.0 codeId 0x9ea810ff…)0x6423…5740
CreatorOracle0xC5c5…78ff
CCALaunchArm0xf140…4469
SimpleSellTaxHook0xb797…4088

Env pins: VITE_AKITA_SHARE_OFT_ARBITRUM, VITE_AKITA_CCA_STRATEGY_ARBITRUM. Hub ShareOFT + hub oracle peers for EID 30110 are wired (treasury Safe). Still open: LayerZero EVM DVN/setConfig for Base↔Arb [15,15] 3-of-5; hub→spoke oracle price broadcast; remaining spokes (ETH / Uni / RH).

Ops: EnsureSpokeBytecodeInfra seeds current forge CreatorShareOFT creation code, which can exceed EIP-170 (CREATE reverts with DeployFailed). For spokes, re-seed ShareOFT + CreatorOracle creation bytecode from Base store using v1.20.0 manifest codeIds (0x9ea810ff…, 0x00d8de27…) before DeployRemoteShareOft / DeployRemoteCreatorOracle. Constructor owner on spokes = deployer EOA when hub batcher key is unavailable (ENFORCE_ADDRESS_PARITY=0). DeploySpokeCcaLaunchArm forge sim can fail on Arb (ArbSys 0xfe stub); deploy arm via cast send --create then configure with the script's post-deploy calls.

Hard constraint: factory protocol fee must be zero on every chain (CCALaunchArm.migrate() requires swept currency == currencyRaised()).

Chainlink ETH/USD (spoke oracle setChainlinkFeed; verified codesize on 2026-07-29):

ChainETH/USD feedSequencer uptime
Ethereum0x5f4e…8419n/a
Base0x7104…Bb700xBCF8…6433
Arbitrum0x639F…a6120xFdB6…697D
Unichain0xBcE7…8CCan/a (decimals=18)
Robinhood0x78F3…d3A9n/a

Uniswap v4 PositionManager (spoke setMigrationConfig; Uniswap deployments docs):

ChainPositionManager
Ethereum0xbD21…ee9e
Base0x7C5f…9bDc
Unichain0x4529…17bf
Arbitrum0xd88F…D869
Robinhood0x58Da…4Fa7

Ops note: Base hub registry must be re-seeded so chainId 130 maps to Unichain LZ 0x6F47…DD5B / EID 30320 (live registry still had canonical 0x1a44… + eid 0).

External Contracts

ContractChainAddress
Chainlink VRF CoordinatorBase0xd5D5…F634
WETHBase0x4200…0006
Sudoswap v2 pair factoryBase0x6051…8eb8
Sudoswap v2 XYK curveBase0xd0A2…037B
Sudoswap v2 fast routerBase0xa07e…5548

AlfaClub room 1659 LP history

RoleAddress / status
FriendKey ERC-11550xAF0B…FA9F
FriendKey token ID1659
Verified Creator Coin (AKITA)0x5b67…fa75
Remine-2 ShareOFT (■AKITA)0xe7e4…4626 (target Sudoswap ERC-20)
Remine-2 wrapper (deposit path)0x0D47…a200
Retired factory ownerProtocol treasury Safe 0x7d42…f2d3
Supported Sudoswap v2 factory0x6051…8eb8 (official Base deployment)
Supported Sudoswap v2 XYK curve0xd0A2…037B (official Base deployment)
AlfaClub Sudoswap adapter0x961b…3Fe5
AlfaClub Universal Router0x14c0…8e9f
Room 1659 Sudoswap pair (legacy creator-coin)0x4a1b…5766 (drained; adapter market disabled)
Room 1659 Sudoswap pair (ShareOFT, live)0x181d…7434 (■AKITA ↔ FriendKey#1659)
ShareOFT cutover drain tx0x23bd6ad6a7e5e92b046ce5741e2a959a3cae9fb48b06b7a825cbee661f61683d
ShareOFT cutover deposit tx0x708709e62e2d160c750c2e8519ea5b8d061dd875a8e3366b41e78c07252e6c88
ShareOFT pair create tx0x33fc4d25d10d359fe916acb771545f05615c77d7e41291932369ce37d05effa6
ShareOFT adapter markets tx0x4ab939efcc08fc7a804e4c11d5ca9aa801fcd0b8a0b2fe5bc1b65ddf7b80adb8
ShareOFT pair SwapOnly fee tx0x02ff4644afcc821ca3ce98e86b3b6ed9c08076f636fe34e34c5bafc96df93947
Adapter deployment tx0xd6fc25bdbbc68eb5fdf8d279666b6bfa54758b7857a07d04299d31ce6ccfbef6
Router deployment tx0x85437706b75f5678f2ad2a163daec1053c43c8044499a640c0969ecad5724397
Legacy pair creation UserOperation tx0x754c26903d801679161b6d501ac282099d65ee70ddf6959c9104c5e283dbc59b
Legacy pair ownership-transfer tx0x9ea8c32c977770ac806d9c040ea1767d2f316b669f8e02e2fd8077e0f666855d
Legacy Safe market-configuration tx0xdedaa61bd2892344439dd8e74df03b1b126725c36e50f1aed1b66265b80ac8e6
Pilot seeder / canonical sender0xAb6d…67b5
Retired AlfaCreatorKeyLPFactory0x0815…f6bf (historical; do not route new writes)
Factory deployment tx0xcc642be6d2b6ca7322a1574dd7628096bd0b3a767ce727c87a7a261a2d5e733e
Seeder/pair allowlist tx0x3953ee689ea8b527bc3e78e76f56e17f21894e6ef2adf27665bfe5b8a56cfa86

The room creator (0x64c3…94e9) is an AlfaClub identity, not the Creator Coin contract. The retired factory is source verified on Basescan; its pool registry was empty immediately after deployment. The supported replacement reuses Sudoswap's official Base v2 factory and XYK curve. The live Room 1659 market is the remine-2 ■AKITA ShareOFT pair (0x181db3Af…); the legacy creator-coin pair was drained and disabled. Pin ALFACLUB_LP_CREATOR_COIN / VITE_ALFACLUB_FRIENDKEY_PAIR_ERC20_KIND=shareOft alongside the pair address. ETH→ShareOFT Uniswap execute remains gated until CCA/Uni depth.