๐ Builder Fee Recipients
Returns the curated builder name of each fee recipient in the request. By convention, a builder sets its own address as the fee recipient (the coinbase) of the payloads it builds, so entity here names the owner of the payload coinbase: who built the payload. On v2/ethereum/builders/metadata and v2/ethereum/builders/entities, entity names who signed the winning bid instead, and for a payload that a relay signed the two differ. An address without a curated name returns a null entity, so one unknown address never fails the batch.
From the Glamsterdam hard fork on, the builder that signs the winning bid is not always the builder that built the payload. A relay, a service that forwards payloads from other builders, can register as a builder and sign the bids for their payloads. execution_payload.builder_pubkey then names the relay. The fee recipient still names the builder that built the payload, but only by convention, because the chain does not check it. The result is an attribution, never a proof.
To name the builder of a proposalโs payload, take execution_payload from v2/ethereum/validators/proposal-slots and apply these checks in order. The first check that applies gives the result. Compare addresses case-insensitively.
self_builtis true: self-built. The proposer built the payload.fee_recipientis null: no payload. No included payload is known: the chain did not include it, or, whilepayload_statusispending, it has not arrived yet.fee_recipientis the zero address (0x0000000000000000000000000000000000000000): unattributed.fee_recipientequalsbid_fee_recipient, the address the bid pays the proposer at: unattributed. The payload pays its fees to the proposer, which names no builder.- Otherwise, look up
fee_recipientwith this endpoint: the result isentity, or unattributed whenentityis null.
beaconcha.inโs builder pages apply the same checks, with one difference: they also name the builder of a payload that the builder revealed but the chain did not include (payload_status empty). This API returns a null fee_recipient for such a payload, so step 2 gives no payload.
Entity names share one namespace with the builder_entity selector and v2/ethereum/builders/entities, which name the builders that sign bids. A name selects builders there only when one of its execution addresses in the builder registry is curated too, and a relayโs name ends in โ relayโ.
Builder entity labels may take a few days after a chainโs Glamsterdam hard fork to settle, while we observe how builders operate in the first days; until then most entity values are null.
Premium Endpoint: This endpoint requires a Scale or Enterprise plan.
Authorizations
Body
Execution payload fee recipients to look up, such as execution_payload.fee_recipient from v2/ethereum/validators/proposal-slots. Up to 100 per request.
1 - 100 elementsA standard Ethereum address (20-byte hex string with 0x prefix).
^0x[a-fA-F0-9]{40}$The Ethereum chain to query.
mainnet, hoodi Response
Successful response.
One row per requested fee recipient, in the order of the request.

