-
Notifications
You must be signed in to change notification settings - Fork 484
add builder code faq #1022
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
add builder code faq #1022
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
3ff160f
add builder code faq
hughescoin 51eec9b
add doxing question and update gas costs
hughescoin 060d0b0
add team feedback
hughescoin aaad38f
reorder questions
hughescoin f2ea5bc
update value prop for builder codes
hughescoin 435eb74
bold
hughescoin 575418b
move BCs section above tools
hughescoin 591b792
fix formattting
hughescoin 8ddc96e
lint
hughescoin b92c236
update suffix syntax
hughescoin 10b6797
fix title case and builder code marker
hughescoin 2923a43
fix capitalization
hughescoin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| --- | ||
| title: "Builder Codes FAQ" | ||
| description: "Common questions about Builder Codes, ERC-8021 transaction attribution, gas costs, and SDK support on Base." | ||
| --- | ||
|
|
||
| ### What is a "Builder Code" and where do I get one? | ||
|
|
||
| A **Builder Code** is an ASCII string (like `"baseapp"` or `"bc_xyz456"`) that identifies your application in the ERC-8021 attribution system. When your app's transactions include this code, protocols can identify and reward you. | ||
|
|
||
| <Tip> | ||
| Obtain your Builder Code [here](/base-chain/builder-codes/builder-codes). | ||
| </Tip> | ||
|
|
||
| ### What are the benefits of supporting Builder Codes? | ||
|
|
||
| - **Rewards:** If your app drives transactions, Builder Codes let Base automatically attribute that usage back to you, unlocking rewards as our program expands. | ||
| - **Analytics:** Developers can reliably track onchain usage, user acquisition, and conversion metrics in Base.dev. | ||
| - **Visibility:** Apps with Builder Codes can show up in discovery surfaces like our App Leaderboards, Base App store, and ecosystem spotlights. | ||
|
|
||
| ### Do I need to modify my smart contracts to use ERC-8021? | ||
|
|
||
| **No.** The attribution suffix is appended to the end of transaction calldata. Smart contracts execute normally and ignore the extra data. Attribution is extracted by offchain indexers after the fact. | ||
|
|
||
| This means: | ||
|
|
||
| - Any existing smart contract automatically supports ERC-8021 | ||
| - No upgrades or redeployments required | ||
| - Zero impact on contract execution | ||
|
|
||
| ### How much additional gas do Builder Codes cost? | ||
|
|
||
| The ERC-8021 suffix adds a negligible amount of gas to each transaction at 16 gas per non-zero byte. | ||
|
|
||
| ### Will Builder Codes expose my identity? | ||
|
|
||
| **No.** Builder Codes only associate transactions with your application—they don't expose any wallet information that isn't already public onchain. | ||
|
|
||
| ### Can I use ERC-8021 with Externally Owned Accounts (EOAs)? | ||
|
|
||
| **Yes.** ERC-8021 works with both EOAs and smart contract wallets. | ||
|
|
||
| ### How do I verify that my transaction was properly attributed? | ||
|
|
||
| **1. Check base.dev** | ||
|
|
||
| - Visit [base.dev](https://base.dev) | ||
| - Select **Onchain** from the transaction type dropdown | ||
| - Under the Total Transactions section, attribution counts increment when transactions with your code are processed | ||
|
|
||
| **2. Use a Block Explorer (Basescan, Etherscan, etc.)** | ||
|
|
||
| - Find your transaction hash | ||
| - View the input data field | ||
| - Verify the last 16 bytes are the `8021` repeating. | ||
| - Decode the suffix to confirm your Builder Code is present | ||
|
|
||
| **3. Open Source Tools** | ||
|
|
||
| - Use the [Builder Code Validation](https://builder-code-checker.vercel.app/) tool | ||
| - Select transaction type | ||
| - Enter the transaction or UserOperation hash | ||
| - Click the **Check Attribution** button | ||
|
|
||
|
|
||
| ### What wallets and SDKs currently support ERC-8021? | ||
|
|
||
| **EOAs:** | ||
|
|
||
| All EOA wallets support `dataSuffix` by default. | ||
|
|
||
| **SDKs:** | ||
|
|
||
| - **viem/wagmi** - TypeScript SDK with native `dataSuffix` parameter support for server-side and client-side transactions | ||
|
|
||
| <Note> | ||
| This requires `viem@2.45.0` or higher | ||
| </Note> | ||
|
|
||
| **Embedded Wallets:** | ||
|
|
||
| - **Privy** - Embedded wallet solution with ERC-8021 capability | ||
| - **Turnkey** - Infrastructure for programmatic wallets | ||
|
|
||
| **Smart Wallets:** | ||
|
|
||
| Wallets supporting ERC-5792 can use the `DataSuffixCapability` for clean suffix appending: | ||
|
|
||
| ```javascript | ||
| await wallet.sendCalls({ | ||
| calls: [...], | ||
| capabilities: { | ||
| dataSuffix: { | ||
| value: "0x07626173656170700080218021802180218021802180218021" | ||
| optional: true | ||
| } | ||
| } | ||
| }); | ||
| ``` | ||
|
|
||
| ## Additional Resources | ||
|
|
||
| - [Official ERC-8021 Proposal ](https://eip.tools/eip/8021) | ||
| - [Builder Code Docs](/base-chain/builder-codes/builder-codes) | ||
| - [Builder Code Validation tool](https://builder-code-checker.vercel.app/) | ||
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.