ConstReadonlymulticall3: `0x${string}`Multicall3 (canonical deterministic deployment, in viem's chain def).
ReadonlynonfungiblePositionManager: `0x${string}`NonfungiblePositionManager linked to the factory above.
ReadonlyquoterV2: `0x${string}`QuoterV2 linked to the factory above.
ReadonlyswapRouter: `0x${string}`Classic v3 SwapRouter (struct-level deadline) linked to the factory above.
ReadonlyuniswapV3Factory: `0x${string}`Community Uniswap v3 factory (the one with liquid Stock Token pools).
Readonlyusdg: `0x${string}`Testnet USDG ("Global Dollar", 6 decimals).
Readonlyweth: `0x${string}`Canonical testnet WETH9 (matches the official protocol-contracts L2 WETH).
Contract addresses on Robinhood Chain testnet (chain ID 46630).
There is NO official Uniswap deployment on the testnet: none of the mainnet addresses have code there (
eth_getCodereturns0xfor all six) and the mainnet Uniswap deployer has zero testnet transactions. The addresses below are the one community v3 deployment that actually has a liquid Stock Token pool, and its internal linkage was verified on-chain during SDK development:router.factory(),quoterV2.factory(),positionManager.factory()and the live pool'sfactory()all returnuniswapV3Factory, androuter.WETH9()matches the chain's canonical WETH (which is also the L2 WETH listed at https://docs.robinhood.com/chain/protocol-contracts).NOTE the router flavor difference: testnet uses the classic v3
SwapRouterwhoseexactInputSinglestruct carries adeadlinefield; mainnet usesSwapRouter02(deadline viamulticall). The swap module handles both.Testnet Stock Tokens (faucet-dripped) and USDG were resolved from the testnet Blockscout (https://explorer.testnet.chain.robinhood.com) — canonical testnet tokens use plain company names, not the mainnet " • Robinhood Token" pattern.