Live on Arbitrum One
Arbitrum One

Arbitrum One

Ethereum L2 coverage where DeFi randomness demand is densest.

KeeperCoordinatorV8ETH feeschainId 42161
Deployment

Live and proven.

Contract
KeeperCoordinatorV8
Deployed
October 2026
Committee
12 keepers — the same committee on every chain
Threshold
4-of-12 signatures (BFT-safe)
Fee token
ETH
chainId
42161
Treasury
Multisig treasury — deployed per the standard runbook
Shared Security

Same committee. Same proof.

Arbitrum One runs the same KeeperCoordinator as every other deployment — the seed derives from the drand Quicknet anchor verified on-chain via EIP-2537, and fulfillment requires 4-of-12 committee signatures bound to this chain's chainId.

Same contract everywhere

One audited bytecode, chainId-bound signatures — a proof on one chain can never replay on another.

Native fees

Requests priced in ETH, the chain's native gas token — no oracle token.

Shared committee

The same 12 keepers secure every chain — adding a chain doesn't dilute security.

No admin key on fulfill()

The fulfillment path is immutable — no privileged call can alter, delay, or redirect an outcome.

For Developers

Integrate on Arbitrum One.

Same interface on every chain — point your contract at the Arbitrum One deployment and pay fees in ETH. Nothing else changes.

RandProofRNG

Verifiable randomness — one payable call, a permanent on-chain proof.

// KeeperCoordinatorV8 on Arbitrum One
IKeeperCoordinator coordinator =
    IKeeperCoordinator(0xF7e34F900b845e3a2F72fbCE78E6666803D15a82);

// fee in ETH
bytes32 eventId =
    coordinator.requestRandomness{value: fee}(userSeed);

// receive the result — enforced by the coordinator
function fulfillRandomness(bytes32 eventId, bytes32 seed)
    external
{
    require(msg.sender == address(coordinator));
    // settle your draw
}

// audit any past draw — permanent, public
coordinator.getRandProof(eventId);

Per-request fee in ETH — 4-of-12 committee fulfillment, no oracle token.

RandProofAutomation

Decentralized upkeep — Chainlink-compatible or deadline-native, executed by the same keeper network.

// RandProofAutomation on Arbitrum One
// Chainlink-compatible — zero logic changes
function checkUpkeep(bytes calldata) external view
    returns (bool upkeepNeeded, bytes memory performData);

function performUpkeep(bytes calldata performData)
    external
{
    // your own guards re-verified here
}

// or the native path — deadline-shaped conditions
function nextDeadline() external view
    returns (uint256);

Registry address published at deployment · Per-execution fee in ETH — fund a balance, pay per upkeep.