Skip to content

docs(b20): document sponsored transfers via base transactions - #2116

Open
youssefea wants to merge 5 commits into
masterfrom
docs/devrel-859-b20-fee-payer-gasless-transfers-erc
Open

youssefea wants to merge 5 commits into
masterfrom
docs/devrel-859-b20-fee-payer-gasless-transfers-erc

Conversation

@youssefea

Copy link
Copy Markdown
Contributor

What changed? Why?

Adds a short "Sponsored Transfers" section to the B20 page (docs/upgrades/beryl/b20.mdx). It says that the Beryl B20 interface doesn't include ERC-3009 transferWithAuthorization. It then links to Base Transactions (EIP-8430) for sponsor-paid B20 transfers and the token-reimbursement pattern, and notes that Everest activation dates are TBD.

Closes knowledge-base gap gap-20260930-b20-fee-payer-gasless-transfers-erc: "For gasless (fee-payer) transfers of B20 tokens on Base, will B20 add ERC-3009 transferWithAuthorization, or is an EIP-8130 payer transaction the intended path, and what is the timeline (which hardfork) for mainnet availability?"

Notes to reviewers

Primary sources for each fact:

  • No ERC-3009 in Beryl B20; ERC-2612 permit only: base-std v1.0.0 IB20.sol (no transferWithAuthorization; permit section is EIP-2612 + ERC-5267), plus the existing "ERC-2612 Permit / EIP-712" section of docs/upgrades/beryl/b20.mdx.
  • Sponsor as payer, token transfer to sponsor in the first call phase: docs/specifications/base-transactions.mdx ("Payers" and "Token Gas Payments"). Calls are dispatched from the sender ("Call Phases").
  • Base Transactions activate with Everest, dates TBD: docs/specifications/base-transactions.mdx warning and docs/upgrades/everest/overview.mdx status table.

Before merge, the owners (Native AA/EIP-8130 and B20 spec owners) should confirm:

  • That Base Transactions are the intended path for sponsored B20 transfers. This PR describes the generic mechanism only.
  • Whether a future B20 version plans to add ERC-3009. The PR states only that the Beryl interface doesn't include it and makes no roadmap claim.

Scope notes: this PR adds no activation date beyond TBD. It uses the current EIP-8430/Everest naming, not the older EIP-8130 wording.

How has it been tested?

  • node scripts/lint-mdx.js --files-from=<changed files>: 0 errors. One warning (codeblock/highlight at line 97) is on existing content this PR doesn't touch.
  • node scripts/validate-docs-structure.js: reports 2 redirect errors for /upgrades/denim/eip-8130. These errors are identical on master without this change and are unrelated.
  • Internal links checked: /specifications/base-transactions and /upgrades/everest/overview are in docs/docs.json, and the #token-gas-payments anchor exists.

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 19, 2026, 8:43 PM

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

@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

@linear

linear Bot commented Oct 14, 2026

Copy link
Copy Markdown

DEVREL-859

@youssefea youssefea added the BKB Base Knowledge Base gap fix label Oct 19, 2026
@soheimam
soheimam marked this pull request as draft October 19, 2026 20:11
@soheimam
soheimam marked this pull request as ready for review October 19, 2026 20:11
@github-actions

Copy link
Copy Markdown
Contributor

Docs review

Risk: Low (one AI review) · risk: low · shadow mode, not enforced

  • small change with no risk signals

Verdict: Needs rework · reviewed 7ffc320 with gpt-6-luna

The change adds Beryl interface information and guidance on sponsor-paid B20 transfers. The page is live, but the generic transfer guidance belongs in the canonical B20 specification, not the hardfork detail page. Move it there and clarify how ERC-2612 permit differs from signed transfer authorization.

Blocking

  1. Put current transfer guidance in the canonical B20 specification (placement, docs/upgrades/beryl/b20.mdx L166–174)
    This section describes the general sponsored-transfer path and activation timing, not a change introduced by Beryl. Move the guidance to the Specifications → B20 canonical page; keep the Beryl upgrade page focused on Beryl-specific changes.
    Evidence: The Information Architecture Guidelines say the canonical B20 specification belongs in Specifications → B20 and that Upgrades pages record hardfork-specific changes, not the current specification.

Suggestions

  1. Distinguish signed approvals from signed transfer authorization (writing, docs/upgrades/beryl/b20.mdx L168) — suggestion posted inline
    The adjacent mention of ERC-2612 permit could read as though it provides the signed-transfer behavior being discussed. State that permit authorizes spending but does not provide signed transfer authorization.
    Evidence: The existing ERC-2612 section on this page describes permit as signed approvals; the writing guidelines call for precise, consistent terminology.
What the reviewer checked
Page Placement Index section Neighbors read
docs/upgrades/beryl/b20.mdx Live in navigation not in llms-full.txt 0

Links added: /specifications/base-transactions (live), /specifications/base-transactions#token-gas-payments (live), /upgrades/everest/overview (live)

Advisory review from the Docs PR review workflow (run). It does not approve, block, or edit this PR. Add the skip-ai-review label to turn it off for this PR.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested edits from the docs review. Each one is optional; apply it with "Commit suggestion" if you agree.


## Sponsored Transfers

The Beryl B20 interface doesn't include ERC-3009 `transferWithAuthorization`. Signed approvals use ERC-2612 `permit`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Distinguish signed approvals from signed transfer authorization

The adjacent mention of ERC-2612 permit could read as though it provides the signed-transfer behavior being discussed. State that permit authorizes spending but does not provide signed transfer authorization.

Suggested change
The Beryl B20 interface doesn't include ERC-3009 `transferWithAuthorization`. Signed approvals use ERC-2612 `permit`.
The Beryl B20 interface does not include ERC-3009 `transferWithAuthorization`; ERC-2612 `permit` authorizes spending but does not provide signed transfer authorization.

This branch was successfully deployed

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

Labels

BKB Base Knowledge Base gap fix risk: low small changes, easy to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants