Skip to content

docs(validity): document predicate limit and unspecified behaviors - #2115

Open
youssefea wants to merge 4 commits into
masterfrom
docs/devrel-859-validity-transactions-predicate-limits-p
Open

youssefea wants to merge 4 commits into
masterfrom
docs/devrel-859-validity-transactions-predicate-limits-p

Conversation

@youssefea

Copy link
Copy Markdown
Contributor

What changed? Why?

Adds a Limits section to the Validity Transaction RPC page. It documents the default 64-predicate-per-transaction limit as a version-qualified implementation default, links to the existing expiry rules, and states that the docs do not yet specify a storage-read cost for storage predicates or propagation to other nodes.

Closes knowledge gap gap-20261005-validity-transactions-predicate-limits-propagati: "For base_sendRawTransactionValidity, what are the limits on number of predicates per transaction and storage-read cost, do validity transactions stay sequencer-local or propagate to other nodes, and what are the stable JSON-RPC error codes?"

Notes to reviewers

Primary sources:

  • 64-predicate default: DEFAULT_MAX_VALIDITY_PREDICATES = 64 in crates/execution/txpool/src/validity.rs @ v1.4.2 (same value on main); enforced via validate_batch in crates/execution/txpool-rpc/src/rpc.rs @ v1.4.2.
  • Mandatory block_number expiry: same rpc.rs (validate_block_expiry_bounds / validate_has_block_expiry); already documented on fees-ordering-and-lifecycle.mdx.
  • No storage-read cost or peer propagation behavior is documented in the reviewed sources; rpc.rs forwards accepted transactions to builders, which does not establish peer propagation. The page therefore says the docs do not yet specify these.
  • Error codes: unchanged. The page still says codes and messages are not yet stable.

Needs owner confirmation before merge (Base protocol / node team owning base_sendRawTransactionValidity):

  • Whether the production sequencer runs with the default 64-predicate limit (it is a configurable default).
  • Whether there is a storage-read budget, and whether validity transactions stay sequencer-local, so these can be documented instead of flagged as unspecified.
  • Whether stable error codes can be published.

How has it been tested?

  • node scripts/lint-mdx.js --files-from=<changed files>: 0 errors (1 pre-existing warning on the request example code block).
  • node scripts/validate-docs-structure.js: only pre-existing redirect errors for /upgrades/denim/eip-8130, unrelated to this change.
  • Internal link /specifications/build-transaction/fees-ordering-and-lifecycle exists in docs/docs.json; the GitHub link returns 200.

Screenshots

N/A (text-only change)

Generated with Toshi

@mintlify

mintlify Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
base 🟢 Ready View Preview Oct 15, 2026, 3:01 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@linear

linear Bot commented Oct 14, 2026

Copy link
Copy Markdown

DEVREL-859

@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

This branch was successfully deployed

1 active deployment
staging - docs — 3ec8c74b Deployed Oct 15, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants