Docs

Contracts

Perp City markets are deployed permissionlessly through the PerpFactory contract. Each market is its own Perp contract with isolated USDC margin, trading on a Uniswap V4 concentrated-liquidity pool. Per-market modules (fees, funding, pricing, margin ratios, price impact) are pluggable external contracts approved through the ModuleRegistry.

Perp City relies on the Strobe Protocol, a collection of smart contract factories, for permissionless market settlement.

Each market is connected to a beacon oracle from the Strobe BeaconRegistry.

Deployed Contracts

Arbitrum One (mainnet, chain id 42161)

ContractDescriptionAddress
PerpFactoryCreates perp markets; each market is an isolated Perp contract0xCE0c5f65A5eDa69A1dFb3f3273749B649abc4eC6
ProtocolFeeManagerProtocol fee configuration0x9d0bB98fca4D4913C3851606941B52DDfdB4b9EE
ModuleRegistryApproves module contracts markets may use0xa8D623C214F70A6D40Cad299d1fffF9667a97965
FeesFee module0xBfda8AA80132C51995B37c03D9FE384dcbF0056E
FundingFunding-rate module0xB9572a6CdD39965e2d03F13d5559e0CA9fe599D1
PricingPricing module0xF4689DA0CaC3f23a04145236Dbfe81C3c58cFe22
MarginRatiosMargin ratio module0x8Afca53c52B1F02d76aefB811C6B08F4BD3e4cf9
PriceImpactPrice impact bounds module0x71889d6B403DdC5007d1EBaBB52D1fcd5ec04832
BeaconRegistryRegistry of all deployed beacon oracles0xBEF280BefeE2Cb28c20D1E4Cc1da999B4DA0f1fD
ECDSAVerifierFactoryFactory for ECDSA beacon verifiers0x687EeB3E4989441C91BF0D4F797AF4C400803c95
USDC (collateral)Native Circle USDC on Arbitrum0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Uniswap V4 PoolManagerPool singleton markets trade on0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32

Arbitrum Sepolia (testnet, chain id 421614)

ContractDescriptionAddress
PerpFactoryCreates perp markets0xa54F81e7BD5C0d52d6fdE2ba40d0B1123d53E7a7
BeaconRegistryRegistry of all deployed beacon oracles0xAA0B2AB577D75bC8ED5380752b612a04896d6f10
FeesFee module0xa8f7453Fc54E4578dDde12e3DC65b7614938a620
FundingFunding-rate module0x693852A74cF7f5936e1cfD6f3971aE3027b84e7D
PricingPricing module0xc33205B471a9529fdD0A81fdEA037737Ff5c7A97
MarginRatiosMargin ratio module0xB118b54e8b513F6A67fD555348f216d804C0eB89
PriceImpactPrice impact bounds module0x0168716E60f5A54e62aec8c20D3caa37e5ce61C2
Testnet USDCPerp City test collateral token (not Circle USDC)0xBEF280BefeE2Cb28c20D1E4Cc1da999B4DA0f1fD

Testnet modules are lightweight development builds and a testnet ModuleRegistry address is not published; use the module addresses above directly when wiring against Sepolia.

Note: the same address can host different contracts on different chains (the deployer is reused across chains, so contract addresses collide by nonce). Always check the chain a link points to.