Skip to main content

EIP-8021 calldata table function

EIP-8021 defines a standard for embedding builder identification codes at the end of transaction calldata. Dune exposes this as the table function functions.base_l2.call_data_8021. It reads calldata from an input table, keeps the input columns, and adds parsed EIP-8021 fields for rows that contain a valid EIP-8021 suffix. Rows without the EIP-8021 suffix are omitted from the result.

Syntax

Arguments

  • input: The input table or subquery that contains a calldata column.
  • calldata: Optional descriptor pointing to the calldata column in input. If omitted, the function looks for a column named calldata.
The referenced calldata column must be varchar.

Output columns

The table function passes through the original input columns and adds:

Examples

Parse transaction calldata from base.transactions

Use the default calldata column name

Override the calldata column name

Parse schema 2 CBOR calldata

Filter for a specific builder code

Supported schema types

  • Schema 0: Canonical Registry: Builder codes plus the EIP-8021 suffix
  • Schema 1: Custom Registry: Builder codes plus a custom registry address
  • Schema 2: CBOR: CBOR-encoded builder metadata exposed through both codes_* fields and cbor_data

EIP-8021 suffix structure

Schema 0 and schema 1 are parsed from the end of calldata in this order: Schema 2 uses:

Use Cases

  • Builder attribution: Track which wallet or tool produced a transaction
  • Wallet analytics: Measure adoption of builder codes across applications
  • ERC-4337 analysis: Parse builder metadata from UserOperation calldata
  • Schema research: Compare canonical registry, custom registry, and CBOR-based usage

Notes

  • The function currently expects calldata as varchar, not varbinary
  • If your source column is varbinary (for example base.transactions.data), cast it to varchar before passing it into the table function
  • Input rows without the EIP-8021 magic bytes are filtered out of the result
  • Builder codes are typically comma-separated identifiers such as cb_wallet