Deployed contracts
The addresses an operation touches on supported mainnets.
Published addresses
The contracts an operation touches on supported mainnets. Integrate against these addresses; the Paymaster is a proxy whose backing contract can be upgraded.
UGTP Paymaster
Pays the network for an operation on the UserOperation rail and collects gas plus the UGTP fee from the transferred asset. Integrate against this proxy address; the contract behind it can be upgraded.
0x49f26881b5EA4d3F3d451C7faA4BCa1B4AeBCD97Arbitrum One
Chain ID 42161Polygon PoS
Chain ID 137Base
Chain ID 8453BNB Smart Chain
Chain ID 56EntryPoint v0.9
Third-party, not ours: the canonical eth-infinitism EntryPoint v0.9 singleton, which executes UserOperations on the UserOperation rail. Same address on every network that carries the rail.
0x433709009B8330FDa32311DF1C2AFA402eD8D009Ethereum Mainnet
Chain ID 1Arbitrum One
Chain ID 42161Polygon PoS
Chain ID 137Base
Chain ID 8453BNB Smart Chain
Chain ID 56Account delegate
Third-party, not ours: eth-infinitism's canonical Simple7702Account v0.9 implementation, which is the code an EIP-7702 account adopts. A delegated account's on-chain code is the 0xef0100 prefix followed by this address, which is what GET /account/delegation-status reports as the delegate. UGTP verifies the runtime bytecode at this address against the approved implementation before it builds an operation for the account.
0xa46cc63eBF4Bd77888AA327837d20b23A63a56B5Ethereum Mainnet
Chain ID 1Arbitrum One
Chain ID 42161Polygon PoS
Chain ID 137Base
Chain ID 8453BNB Smart Chain
Chain ID 56Avalanche executor
Executes an account-signed EIP-712 execution request on Avalanche C-Chain, where EIP-7702 does not exist. It pulls the ERC-20 fee against an allowance the account granted once, so it moves nothing the account has not approved for it.
0xA7C8776C6ac6f21eC923321793F62A4887f9E767Avalanche C-Chain
Chain ID 43114Encrypted-token converter
The EncryptedERC contract in converter mode: it wraps a supported public ERC-20 1:1 into its encrypted form and back. Deposits, private transfers and withdrawals are all calls to this address. One converter serves every private token on the network — the underlying binds on its first deposit — so it is also the spender a deposit's allowance is granted to. Read it from GET /private/tokens rather than pinning it here; a redeployment moves it and the registry moves with it.
0x10dFB26576d490FF985f61B4Ec3F8DA65aF7B656Avalanche C-Chain
Chain ID 43114Encrypted-token registrar
Binds an address to the public key its private balances are encrypted under. A registration is a call to this address, and its isUserRegistered(address) view is the public read that tells a client whether an account — or a transfer recipient — can hold a private token yet.
0x906FAF1D7AD681c92E37B4843A18c56a56f0c85d