Skip to main content

PGA for Arbitrum chains

Priority Gas Auctions (PGA) is an optional transaction-ordering policy that can be enabled on any Arbitrum chain. Under PGA, the sequencer orders transactions by the priority fee attached to each, draining a priority queue during short ordering rounds that run several times per block. You can learn more in our introduction to PGA

PGA can be activated by changing the sequencer configuration. There is no added operational overhead, which makes it viable for a much wider range of chains than Timeboost.

The critical prerequisite is that your chain must actually collect priority fees (priority fee collection is available on ArbOs 61). PGA orders transactions by tips.

As with all features on the Arbitrum stack, Arbitrum chains can adopt PGA at their own discretion and on their own timeline.

PGA is worth considering for any chain with meaningful contention for block space, that is, where transactions actually compete for ordering. Some cases include:

  • Chains with active DeFi, arbitrage, or liquidation activity are good candidates. PGA converts latency competition into fee competition and routes the proceeds to your chain's fee collector.
  • Chains with latency-sensitive applications, such as proposer-based AMMs (propAMMs), benefit from per-transaction, just-in-time bidding, which suits workloads that require frequent priority-ordered inclusion.

Benefits​

PGA enables a chain owner to capture a portion of the available MEV on their blockchain, while preserving the built-in protections and UX benefits that Arbitrum users have come to know and enjoy.

Familiar mechanics and a low barrier to entry​

Participants bid by setting maxPriorityFeePerGas on a standard EIP-1559 type 2 transaction. There is no auction to register for, and no custom tooling to build. Anyone already running a searcher on another EVM chain should be able to participate on day one.

Near-zero operational cost​

There is no additional infrastructure to run with PGA. PGA is a sequencer flag plus a round-count parameter.

Faster blocks under load​

Blocks are issued as soon as they fill rather than idling for the remainder of the block window. On a chain with B=250ms and K=2, this yields between 4 and 8 blocks per second: a minimum of 1/B and a maximum of K/B. Under heavy load, your chain confirms faster than its nominal block time.

Starvation protection built in​

Transactions paying no priority fee are not left behind indefinitely. An anti-starvation boost raises the effective ordering position of anything left waiting at the end of each round, so ordinary transactions are included within a small number of blocks. The boost is virtual; it moves a transaction's position in the queue without changing the fee charged on inclusion. Tradeoffs

Costs​

Under FIFO, ordering is determined by arrival time; under PGA, it is determined by willingness to pay. Users who do not attach a priority fee will be ordered behind those who do whenever the chain is congested. The anti-starvation boost bounds how long they wait, but it does not restore parity.

Revenue​

PGA revenue depends on there being MEV and contention to compete over. A chain with no congestion will collect little in priority fees. Enabling PGA for your Arbitrum chain For a conceptual introduction, see the gentle introduction to PGA.

Prerequisites​

Before starting, ensure you have:

  1. ArbOS 61 or newer. This release supports priority fee collection. PGA orders by tips, so running it on an earlier ArbOS means ordering by fees the chain never collects.
  2. Priority fee collection enabled. Collection requires all three of: ArbOS 61+, the chain's collect-tips flag set, and the batch poster coinbase configured. On Arbitrum One, this is toggled via an ArbOwner precompile call to setCollectTips.
  3. Timeboost disabled. Configurations enabling Timeboost and PGA will behave unpredictably.
  4. A Nitro build that includes PGA. Confirm the release you are running supports it.

Overview​

Enabling PGA requires completing these two steps:

  1. Confirm priority fee collection is active on your chain
  2. Configure your sequencer node to enable PGA and set the rounds-per-block parameter

Step 1: Confirm priority fee collection​

Verify that your chain is on ArbOS 61 or newer and that tip collection is switched on. If your chain has a toggler contract for this, use it; otherwise, this is an ArbOwner precompile call to setCollectTips. Confirm that the batch poster coinbase is configured, since collection depends on it. Do not proceed to Step 2 until this is confirmed.

Step 2: Configure your sequencer node for PGA​

Add the following to your sequencer's node configuration file:

{
"execution": {
"sequencer": {
"pga": {
"enable": true,
"rounds-per-block": 2
},
"timeboost": {
"enable": false
},
"max-block-speed": "250ms"
}
}
}

rounds-per-block is the K parameter. With max-block-speed at 250ms and K=2, ordering rounds are 125ms long.