Repository navigation
docs(builder-codes): add user analytics guide for app developers - #2077
Merged
Merged
Conversation
Adds a Track User Analytics section to the Builder Codes for App Developers page with a copy-paste prompt builders can give their coding agent to set up product analytics.
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
Collaborator
✅ Heimdall Review Status
|
1 of 8 tasks
youssefea
reviewed
Oct 6, 2026
youssefea
left a comment
Contributor
There was a problem hiding this comment.
Thanks for putting this together. Two overall points before merging:
- No external tools. We don't want to recommend or name PostHog (or Plausible, Mixpanel, Amplitude) in the docs. The section should stay tool-agnostic.
- No copy-paste prompt. Rather than shipping an agent prompt in the guide, describe what the app developer needs to track and where that data comes from (as a few plain steps). How they prompt their own agent, and which stack they use, is up to them. We just want to give them enough information to build their own analytics.
Related: no need to mention Wagmi either. The guidance should hold for any wallet library. Pointers to the onchain signals worth looking at (e.g. transactions carrying their Builder Code, the sending wallet addresses, success/revert status) are more useful and longer-lived than library-specific hooks.
Inline comments below.
Collaborator
Author
Collaborator
Author
Addresses review feedback: removes the agent prompt, analytics tool names and Wagmi references; replaces them with steps describing what to measure and which onchain signals to use.
Replaces the generic Track User Analytics steps with the concrete data sources behind each journey stage: - read the user identifier from the EIP-1193 provider (eth_requestAccounts, accountsChanged, chainChanged) and explain smart account addresses - list the in-app signal for open, connect, submit and success, including the wallet_sendCalls bundle ID and wallet_getCallsStatus resolution and EIP-1193 error code 4001 - explain where the user, Builder Code and success live for EOA transactions vs ERC-4337 UserOperations, the ERC-8021 suffix byte layout, and a Viem + ox function that returns one row per user action - define the active user, retention and funnel calculations Drops the guidance on which identifiers to collect; the section is about finding the right data, not prescribing a data policy. Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Base Dashboard 2.0 replaced the transaction and user counts with spot trading volume, borrow TVL and lending TVL derived from Builder Code activity, renamed apps to projects, and moved the code to Settings > Project Settings > Builder Code. - point the Builder Code location and code comments to the new path - document the Encoded String format (the ready-made dataSuffix) - replace the analytics benefit claims on the overview, app and agent pages with what the Dashboard shows today, linking to Track User Analytics for users, retention and conversion Co-authored-by: Toshi <toshi-noreply@coinbase.com>
base.dev now 302-redirects to dashboard.base.org. Points the Builder Codes links and the two data-driven-growth redirects straight at the canonical host. blog.base.dev, verify.base.dev and api.base.dev are separate services and are unchanged. Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
soheimam
approved these changes
Oct 6, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What changed? Why?
Adds a Track User Analytics section at the end of the Builder Codes for App Developers page.
Base Dashboard no longer shows app-level metrics such as transactions and users, so builders track these themselves. This section tells app developers what to measure (active users, retention, conversion) and where each signal comes from, so they can build their own analytics with whatever stack they use.
The section has a metrics-to-data-source table and four steps: identify users by wallet address, record key moments in the user journey, use onchain data for transactions (Builder Code suffix, sender address, receipt status), and build three dashboards (growth, retention, funnel).
Notes to reviewers
@youssefea, the latest commit addresses all of your review feedback: no agent prompt, no analytics tool names, no Wagmi, and dashboards described as journey stages. Each inline comment has a reply. (The changes briefly lived in #2082, which is now closed.)
Follow-up commits from @youssefea:
drop deprecated base.dev attribution check: removes the "Check base.dev" step from the app and agent pages (same change as docs(builder-codes): drop deprecated base.dev attribution check from sub-pages #2066, which this supersedes).show where each analytics signal comes from: makes the steps technical. It covers the EIP-1193 calls and events behind each journey stage,wallet_sendCalls/wallet_getCallsStatus, where the user, Builder Code and success live for EOA transactions vs ERC-4337 UserOperations, the ERC-8021 suffix byte layout, and a Viem + ox function that returns one row per user action. It also removes the guidance on which identifiers to collect.update Dashboard references for Dashboard 2.0: the code now lives at Settings → Project Settings → Builder Code (with an Encoded String format), apps are now projects, and the Dashboard shows spot trading volume, borrow TVL and lending TVL instead of transaction and user counts. Source:protocols/base-dev-frontend(builder-code-section.tsx,metric-tiles.tsx,builder-code-banner.tsx, Issue on docs #676, Update node-providers dRPC entry #715).How has it been tested?
get-attributed-activity.tstype-checks undertsc --strictand was run against Base mainnet: it decodedbc_lv99qw8tfrom EOA tx0x702c00b9…e049and returned the UserOperation sender for EntryPoint v0.7 tx0x3309c7c6…e049npm test: 125 passed, 0 failednode scripts/lint-mdx.json the changed file: 0 errors, 0 warningsnode scripts/check-terminology.js: passednode scripts/validate-docs-structure.js: passed (no navigation changes)Rendered and reviewed locally with
mint devScreenshots
To be added. Verified locally at
/specifications/builder-codes/for-app-developers#track-user-analytics.Generated with Toshi