Skip to content

added wallets seo, fixed faqs, added deployment guides #7786

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 1 commit into from
Aug 4, 2025

Conversation

saminacodes
Copy link
Member

@saminacodes saminacodes commented Aug 4, 2025


PR-Codex overview

This PR primarily focuses on enhancing the documentation for various features of the thirdweb platform. It includes updates to existing pages, addition of new content, and improvements in clarity and structure across multiple sections, particularly around token deployment and wallet functionalities.

Detailed summary

  • Added new images for token deployment and ERC token creation guides.
  • Updated titles and descriptions for various pages to enhance clarity and include "thirdweb Documentation".
  • Introduced sections for FAQs related to tokens and contracts.
  • Improved descriptions for wallet functionalities and security.
  • Added HTTP API links in sidebars for better resource access.
  • Enhanced content for deploying ERC-20 and ERC-721 tokens with step-by-step guides.
  • Consolidated and clarified wallet FAQs, focusing on user experience and recovery options.
  • Updated sidebar navigation for better organization and accessibility of resources.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Summary by CodeRabbit

  • New Features

    • Added an "Insight" navigation link to the main header.
    • Introduced new documentation pages: Modular Contracts overview, ERC-20, ERC-721, and ERC-1155 token deployment guides, token listing placeholder, and troubleshooting guides for contracts.
    • Added new FAQ pages for contracts and expanded FAQs for payments, tokens, and wallets.
  • Documentation

    • Improved and expanded metadata (titles, descriptions, images) for multiple documentation pages for better clarity and SEO.
    • Updated and restructured sidebar navigation for Contracts, Tokens, Transactions, and Wallets sections, including new links, reorganized groups, and resource sections.
    • Enhanced FAQ formatting with collapsible sections and improved content clarity across several pages.
    • Streamlined and updated content in various wallet and contract documentation pages.
  • Style

    • Improved documentation structure and presentation, including use of collapsible details and better grouping of related topics.

@saminacodes saminacodes requested review from a team as code owners August 4, 2025 14:46
Copy link

changeset-bot bot commented Aug 4, 2025

⚠️ No Changeset found

Latest commit: fa7a812

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Aug 4, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
docs-v2 ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 4, 2025 5:56pm
4 Skipped Deployments
Name Status Preview Comments Updated (UTC)
nebula ⬜️ Skipped (Inspect) Aug 4, 2025 5:56pm
thirdweb_playground ⬜️ Skipped (Inspect) Aug 4, 2025 5:56pm
thirdweb-www ⬜️ Skipped (Inspect) Aug 4, 2025 5:56pm
wallet-ui ⬜️ Skipped (Inspect) Aug 4, 2025 5:56pm

Copy link
Contributor

coderabbitai bot commented Aug 4, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

This update introduces multiple new documentation pages and reorganizes existing content within the portal application. It adds new guides for token deployment, modular contracts, and troubleshooting, restructures several FAQ pages for clarity, and updates sidebar navigation for contracts, tokens, transactions, and wallets. Most changes focus on documentation structure, metadata, and navigation, with no significant logic or functional code modifications.

Changes

Cohort / File(s) Change Summary
Header Navigation Update
apps/portal/src/app/Header.tsx
Added "Insight" navigation link to the header's main links array.
Contracts Documentation Additions
apps/portal/src/app/contracts/faqs/page.mdx, apps/portal/src/app/contracts/modular-contracts/page.mdx, apps/portal/src/app/contracts/troubleshoot/page.mdx
Added new FAQ, Modular Contracts, and Troubleshooting documentation pages with metadata and structured content.
Contracts Sidebar Update
apps/portal/src/app/contracts/sidebar.tsx
Removed "Playground" link, updated API references, added "Resources" and "Archive" sections, and reorganized sidebar links.
Tokens Documentation Additions
apps/portal/src/app/tokens/deploy-erc20/page.mdx, apps/portal/src/app/tokens/deploy-erc721/page.mdx, apps/portal/src/app/tokens/deploy-erc1155/page.mdx, apps/portal/src/app/tokens/list-tokens/page.mdx
Added new pages for deploying ERC-20, ERC-721, ERC-1155 tokens, and a placeholder for listing tokens, with relevant metadata and instructional content.
Tokens FAQ and Sidebar Update
apps/portal/src/app/tokens/faq/page.mdx, apps/portal/src/app/tokens/sidebar.tsx
Replaced FAQ content to focus on Tokens UI benefits, reorganized sidebar with new "Guides", "Resources", and "Archive" groups, and added deploy/list token links.
Payments FAQ Expansion
apps/portal/src/app/payments/faq/page.mdx
Expanded, reorganized, and clarified Payments FAQ content, updating metadata and thematic grouping.
Transactions Sidebar Update
apps/portal/src/app/transactions/sidebar.tsx
Updated Playground link, added a new "Resources" section, and moved "Vault" link; reorganized "Archive" section.
Wallets Documentation Metadata Updates
apps/portal/src/app/wallets/auth/page.mdx, apps/portal/src/app/wallets/custom-auth/page.mdx, apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx, apps/portal/src/app/wallets/ecosystem/set-up/page.mdx, apps/portal/src/app/wallets/export-private-key/page.mdx, apps/portal/src/app/wallets/external-wallets/page.mdx, apps/portal/src/app/wallets/get-users/page.mdx, apps/portal/src/app/wallets/link-profiles/page.mdx, apps/portal/src/app/wallets/pregenerate-wallets/page.mdx, apps/portal/src/app/wallets/security/page.mdx, apps/portal/src/app/wallets/server/page.mdx, apps/portal/src/app/wallets/sponsor-gas/page.mdx, apps/portal/src/app/wallets/users/page.mdx
Updated metadata (titles, descriptions, images) for various wallet documentation pages for clarity, SEO, and consistency; added metadata export where missing.
Wallets FAQ and Sidebar Update
apps/portal/src/app/wallets/faq/page.mdx, apps/portal/src/app/wallets/sidebar.tsx
Restructured FAQ using collapsible details, updated metadata, and added a "HTTP API" link to the sidebar with a code icon.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant PortalApp
    participant Sidebar
    participant DocsPage

    User->>PortalApp: Navigates to portal
    PortalApp->>Sidebar: Loads sidebar configuration
    Sidebar-->>User: Displays updated sidebar with new/updated sections
    User->>DocsPage: Selects a documentation/FAQ page
    DocsPage-->>User: Renders updated content and metadata
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~18 minutes

Suggested labels

SDK

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (4)
  • TEAM-0000: Entity not found: Issue - Could not find referenced Issue.
  • ERC-20: Entity not found: Issue - Could not find referenced Issue.
  • ERC-721: Entity not found: Issue - Could not find referenced Issue.
  • ERC-1155: Entity not found: Issue - Could not find referenced Issue.
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs-changes-6

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

graphite-app bot commented Aug 4, 2025

How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge-queue - adds this PR to the back of the merge queue
  • hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

@github-actions github-actions bot added the Portal Involves changes to the Portal (docs) codebase. label Aug 4, 2025
Copy link

codecov bot commented Aug 4, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.34%. Comparing base (e5326c4) to head (fa7a812).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7786   +/-   ##
=======================================
  Coverage   56.34%   56.34%           
=======================================
  Files         905      905           
  Lines       58788    58788           
  Branches     4142     4142           
=======================================
  Hits        33127    33127           
  Misses      25556    25556           
  Partials      105      105           
Flag Coverage Δ
packages 56.34% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

github-actions bot commented Aug 4, 2025

size-limit report 📦

Path Size Loading time (3g) Running time (snapdragon) Total time
thirdweb (esm) 63.15 KB (0%) 1.3 s (0%) 169 ms (+136.98% 🔺) 1.5 s
thirdweb (cjs) 353.02 KB (0%) 7.1 s (0%) 648 ms (+6.48% 🔺) 7.8 s
thirdweb (minimal + tree-shaking) 5.7 KB (0%) 114 ms (0%) 67 ms (+1472.58% 🔺) 181 ms
thirdweb/chains (tree-shaking) 526 B (0%) 11 ms (0%) 38 ms (+2238.34% 🔺) 48 ms
thirdweb/react (minimal + tree-shaking) 19.3 KB (0%) 386 ms (0%) 101 ms (+597.66% 🔺) 487 ms

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

🔭 Outside diff range comments (2)
apps/portal/src/app/tokens/faq/page.mdx (1)

3-10: Metadata title doesn’t match the page & sidebar context

metadata.title is still set to “Contracts FAQs” while the file path, sidebar entry, and H1 heading refer to Tokens FAQs. This will hurt search accuracy and confuse breadcrumb / sidebar highlighting.

-	title: "Contracts FAQs",
+	title: "Tokens FAQs",
apps/portal/src/app/wallets/custom-auth/page.mdx (1)

32-33: Typo: “OICD” should be “OIDC”

-<TabsTrigger value="jwt">JWT (OICD)</TabsTrigger>
+<TabsTrigger value="jwt">JWT (OIDC)</TabsTrigger>
🧹 Nitpick comments (17)
apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx (1)

12-12: Metadata title likely exceeds recommended length and duplicates site-wide suffix

The new title string ("Integrating Partners using Ecosystem Wallets | thirdweb Documentation") is ~68 characters and already appends “thirdweb Documentation”.
If createMetadata automatically adds a global “| thirdweb Documentation” suffix (as seen in several other pages), this will create a duplicate and push the effective <title> past ~70 chars—hurting SEO and truncating in SERPs.

-	title: "Integrating Partners using Ecosystem Wallets | thirdweb Documentation",
+	title: "Integrate Partners with Ecosystem Wallets | thirdweb",

Shortening keeps the core keywords, avoids double-suffixing, and stays within the ~60-char guideline.

apps/portal/src/app/wallets/server/page.mdx (1)

10-12: Meta description length exceeds typical SEO recommendations
Most search engines truncate meta descriptions at ~160 characters. The new description is ~200 characters, so the tail may be ignored. Consider trimming to the core keywords.

apps/portal/src/app/tokens/list-tokens/page.mdx (1)

1-3: Missing page metadata block
All other MDX guides include a createMetadata call for title, description and image (important for SEO and social cards). Add one to stay consistent.

+import { createMetadata } from "@doc";
+
+export const metadata = createMetadata({
+  title: "List Tokens | thirdweb Documentation",
+  description:
+    "Learn how to list ERC-20, ERC-721 and ERC-1155 tokens on marketplaces. Coming soon – join our Telegram for updates.",
+  image: { title: "List Tokens", icon: "tokens" },
+});
apps/portal/src/app/wallets/external-wallets/page.mdx (1)

12-14: Consider trimming the meta description to ≤160 chars for SEO.

Search engines often truncate longer descriptions. The current copy is ~170 chars (including Unicode dash).
Example tightening:

-Connect 500+ wallets with thirdweb—including all EIP-6963 compatible wallets with native UI components and customizable APIs. Native support for top wallets with simple integration.
+Connect 500+ wallets—including all EIP-6963 wallets—using native UI components or fully-customizable APIs. Get first-class support for the most-used wallets with one-line integration.
apps/portal/src/app/wallets/auth/page.mdx (1)

23-25: Minor SEO polish – avoid repeating “login” & stay under 160 chars.

Current description is ~180 chars and repeats “login / web3-native auth”.
Tighten wording:

-"Add passwordless login with Sign in with Ethereum (SIWE). thirdweb makes it easy to integrate web3-native auth using any wallet, fully compatible with traditional backends."
+"Add passwordless Sign-in with Ethereum (SIWE). thirdweb lets you drop-in web3 auth with any wallet while remaining fully compatible with traditional back-ends."
apps/portal/src/app/wallets/ecosystem/set-up/page.mdx (1)

15-17: Align image.title with the new page title for coherence.

image.title (“thirdweb Ecosystem Wallet”) no longer matches the updated metadata.title.
Either adjust the image title or keep both in sync to avoid mismatched social previews.

-		title: "thirdweb Ecosystem Wallet",
+		title: "Ecosystem Wallet",
apps/portal/src/app/wallets/users/page.mdx (1)

16-24: Meta description exceeds 160 chars – trim to avoid SERP truncation.

Current copy is ~190 chars. A concise alternative:

-		"Create secure, non-custodial embedded wallets with social login, email, SMS, passkeys, and more using thirdweb. Instantly onboard users with seamless authentication and automatically generate wallets behind the scenes—no seed phrases required.",
+		"Create secure, non-custodial embedded wallets with social login, email, SMS, passkeys, and more. thirdweb auto-generates wallets behind the scenes—no seed phrase needed.",
apps/portal/src/app/tokens/faq/page.mdx (1)

14-15: Grammar is clumsy – re-phrase for clarity

“improved experience to deploying tokens over previously deploying tokens through Explore” is hard to parse.

-Tokens offers an improved experience to deploying tokens over previously deploying tokens through Explore. 
+Tokens provides a smoother deployment experience compared to the old “Explore” flow.
apps/portal/src/app/wallets/pregenerate-wallets/page.mdx (1)

10-11: Description reads well – minor style nit

Consider hyphenating “Pre-fund” to align with “Pre-generate” style, but current copy is acceptable.

apps/portal/src/app/tokens/deploy-erc1155/page.mdx (1)

1-2: Remove unused imports.

The DocImage component and TokenDeployment image are imported but not used in the content.

-import { Step, Steps, DocImage, createMetadata } from "@doc";
-import TokenDeployment from "../assets/token_deployment.png";
+import { createMetadata } from "@doc";
apps/portal/src/app/contracts/troubleshoot/page.mdx (1)

3-6: Consider using createMetadata for consistency.

Other documentation pages use the createMetadata helper function for better SEO optimization and consistency.

+import { createMetadata } from "@doc";
+
-export const metadata = {
-    title: "Troubleshooting Guides",
-    description: "Guides to help you troubleshoot common issues with thirdweb contracts.",
-};
+export const metadata = createMetadata({
+    title: "Troubleshooting Guides | thirdweb Documentation",
+    description: "Guides to help you troubleshoot common issues with thirdweb contracts.",
+});
apps/portal/src/app/tokens/deploy-erc20/page.mdx (1)

31-31: Fix missing space in configuration step.

There's a missing space between "symbol," and "and" in the token configuration description.

-    Determine a token name, symbol,and chain. You may also optionally set up an image or logo, social links, and a description for your token.
+    Determine a token name, symbol, and chain. You may also optionally set up an image or logo, social links, and a description for your token.
apps/portal/src/app/contracts/modular-contracts/page.mdx (3)

5-6: Subject-verb agreement & sentence repetition

“Modular contracts is …” should be “Modular contracts are …”.
Also, three consecutive sentences start with “Modular contracts…”, which trips the repetition rule flagged by LanguageTool. Consider merging or varying the wording.

-Modular contracts is an open source framework that enables the creation of highly customizable and upgradeable smart contracts. Modular contracts is designed to encompass a broad number of use cases without compromising on the ease and security of creating smart contracts with thirdweb.
+Modular contracts are an open-source framework that enable the creation of highly customizable and upgradeable smart contracts. The framework is designed to cover a broad range of use cases without compromising the ease and security of building smart contracts with thirdweb.

9-10: Terminology consistency

The list mixes singular (“Core Contract”) with singular (“Module Contract”). Because the heading says “components”, pluralising both keeps tone consistent.

-- Core Contract: smart contracts that serve as the foundation of the modular contract
-- Module Contract: smart contracts that are installed on top of the core contract
+- Core contracts – serve as the foundation of a modular contract
+- Module contracts – are installed on top of the core contract

30-31: Duplicate link entry

Lines 30 and 31 both point to the same design-document URL but carry different titles. Either remove one or update the second to the intended unique resource (blog post / video).

- - [Modular Contracts Design Documentation](https://github.com/thirdweb-dev/modular-contracts/blob/dev/design-document.md)
- - [Modular Contracts 101 | Build Upgradeable Smart Contracts Like Lego Blocks](https://github.com/thirdweb-dev/modular-contracts/blob/dev/design-document.md)
+ - [Modular Contracts Design Documentation](https://github.com/thirdweb-dev/modular-contracts/blob/dev/design-document.md)
+ - [Modular Contracts 101 — Build Upgradeable Smart Contracts Like LEGO Blocks](<INSERT_CORRECT_URL>)
apps/portal/src/app/contracts/faqs/page.mdx (2)

15-16: Incomplete sentence

The line ends abruptly after “manage”. Add object for clarity.

-For any already deployed contracts, you can use the thirdweb dashboard to import them and manage
+For contracts that are already deployed, you can import them into the thirdweb dashboard and manage them there.

20-22: Line break splits one sentence

Combine to keep audit-report statement contiguous.

-Yes, thirdweb pre-built contracts are audited by third-party security firms. You can see the attached
-audit reports for each contract linked on the contract page on Explore. 
+Yes, thirdweb pre-built contracts are audited by third-party security firms, and the audit reports for each contract are linked on the contract’s page in Explore. 
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5326c4 and 40be7cf.

⛔ Files ignored due to path filters (6)
  • apps/portal/src/app/tokens/assets/token_deployment.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc20/assets/configure_coin.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc20/assets/distribute_coin.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc721/assets/create_nft.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc721/assets/sale_recipients.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc721/assets/upload_NFTs.png is excluded by !**/*.png
📒 Files selected for processing (28)
  • apps/portal/src/app/Header.tsx (1 hunks)
  • apps/portal/src/app/contracts/faqs/page.mdx (1 hunks)
  • apps/portal/src/app/contracts/modular-contracts/page.mdx (1 hunks)
  • apps/portal/src/app/contracts/sidebar.tsx (3 hunks)
  • apps/portal/src/app/contracts/troubleshoot/page.mdx (1 hunks)
  • apps/portal/src/app/payments/faq/page.mdx (4 hunks)
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/faq/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/list-tokens/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/sidebar.tsx (3 hunks)
  • apps/portal/src/app/transactions/sidebar.tsx (2 hunks)
  • apps/portal/src/app/wallets/auth/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/custom-auth/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/export-private-key/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/external-wallets/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/faq/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/get-users/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/link-profiles/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/security/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/server/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/sidebar.tsx (2 hunks)
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/users/page.mdx (2 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (CLAUDE.md)

**/*.{ts,tsx}: Write idiomatic TypeScript with explicit function declarations and return types
Limit each file to one stateless, single-responsibility function for clarity
Re-use shared types from @/types or local types.ts barrels
Prefer type aliases over interface except for nominal shapes
Avoid any and unknown unless unavoidable; narrow generics when possible
Choose composition over inheritance; leverage utility types (Partial, Pick, etc.)
Comment only ambiguous logic; avoid restating TypeScript in prose

Files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/Header.tsx
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit Inference Engine (CLAUDE.md)

Load heavy dependencies inside async paths to keep initial bundle lean (lazy loading)

Files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/Header.tsx
🧠 Learnings (52)
📓 Common learnings
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : EIP-1193, EIP-5792, EIP-7702 standard support in wallet modules
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Surface breaking changes prominently in PR descriptions
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : Support for in-app wallets (social/email login)
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Keep documentation focused on developer experience and practical usage
📚 Learning: applies to packages/thirdweb/src/wallets/** : eip-1193, eip-5792, eip-7702 standard support in walle...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : EIP-1193, EIP-5792, EIP-7702 standard support in wallet modules

Applied to files:

  • apps/portal/src/app/wallets/auth/page.mdx
  • apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx
  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx
  • apps/portal/src/app/wallets/export-private-key/page.mdx
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/wallets/link-profiles/page.mdx
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/faq/page.mdx
  • apps/portal/src/app/contracts/modular-contracts/page.mdx
  • apps/portal/src/app/tokens/faq/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
📚 Learning: applies to packages/thirdweb/src/wallets/** : support for in-app wallets (social/email login)...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : Support for in-app wallets (social/email login)

Applied to files:

  • apps/portal/src/app/wallets/auth/page.mdx
  • apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx
  • apps/portal/src/app/wallets/export-private-key/page.mdx
  • apps/portal/src/app/wallets/custom-auth/page.mdx
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/wallets/link-profiles/page.mdx
  • apps/portal/src/app/wallets/get-users/page.mdx
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/faq/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
📚 Learning: applies to packages/thirdweb/src/wallets/** : unified `wallet` and `account` interfaces in wallet ar...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : Unified `Wallet` and `Account` interfaces in wallet architecture

Applied to files:

  • apps/portal/src/app/wallets/auth/page.mdx
  • apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx
  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/wallets/link-profiles/page.mdx
  • apps/portal/src/app/wallets/get-users/page.mdx
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/faq/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : use design system tokens (e.g., `bg-card`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : Use design system tokens (e.g., `bg-card`, `border-border`, `text-muted-foreground`)

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contracttokenspage` component in the...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/shared-page.tsx:41-48
Timestamp: 2025-05-26T16:28:50.772Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractTokensPage` component in the tokens shared page, unlike some other shared pages where it's needed for consistency.

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/wallets/custom-auth/page.mdx
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
  • apps/portal/src/app/tokens/faq/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : keep tokens secret via internal api route...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : Keep tokens secret via internal API routes or server actions

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
  • apps/portal/src/app/tokens/sidebar.tsx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : for notices & skeletons rely on `announcementbanner`, `generic...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : For notices & skeletons rely on `AnnouncementBanner`, `GenericLoadingPage`, `EmptyStateCard`.

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/Header.tsx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : stick to design-tokens: background (`bg-card`), borders (`bord...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Stick to design-tokens: background (`bg-card`), borders (`border-border`), muted text (`text-muted-foreground`) etc.

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
  • apps/portal/src/app/tokens/sidebar.tsx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : use `authorization: bearer` header – neve...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : Use `Authorization: Bearer` header – never embed tokens in URLs

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
📚 Learning: applies to dashboard/**/api/**/*.{ts,tsx} : pass the token in the `authorization: bearer` header – n...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/api/**/*.{ts,tsx} : Pass the token in the `Authorization: Bearer` header – never embed it in the URL.

Applied to files:

  • apps/portal/src/app/tokens/list-tokens/page.mdx
📚 Learning: in the thirdweb-dev/js repository, lucide-react icons must be imported with the "icon" suffix (e.g.,...
Learnt from: saminacodes
PR: thirdweb-dev/js#7543
File: apps/portal/src/app/pay/page.mdx:4-4
Timestamp: 2025-07-07T21:21:47.488Z
Learning: In the thirdweb-dev/js repository, lucide-react icons must be imported with the "Icon" suffix (e.g., ExternalLinkIcon, RocketIcon) as required by the new linting rule, contrary to the typical lucide-react convention of importing without the suffix.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : icons come from `lucide-react` or the project-specific `…/icon...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Icons come from `lucide-react` or the project-specific `…/icons` exports – never embed raw SVG.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to dashboard/**/*client.tsx : interactive ui that relies on hooks (`usestate`, `useeffect`, ...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*client.tsx : Interactive UI that relies on hooks (`useState`, `useEffect`, React Query, wallet hooks).

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/Header.tsx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : import ui primitives from `@/components/u...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : Import UI primitives from `@/components/ui/*` (Button, Input, Select, Tabs, Card, Sidebar, Badge, Separator) in dashboard and playground apps

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/Header.tsx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : use `navlink` for internal navigation wit...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : Use `NavLink` for internal navigation with automatic active states in dashboard and playground apps

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/Header.tsx
📚 Learning: configuration files that import and reference react components (like icon components from lucide-rea...
Learnt from: MananTank
PR: thirdweb-dev/js#7768
File: apps/playground-web/src/app/navLinks.ts:1-1
Timestamp: 2025-07-31T16:17:42.753Z
Learning: Configuration files that import and reference React components (like icon components from lucide-react) need the "use client" directive, even if they primarily export static data, because the referenced components need to be executed in a client context when used by other client components.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : use `navlink` (`@/components/ui/navlink`) for internal navigat...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Use `NavLink` (`@/components/ui/NavLink`) for internal navigation so active states are handled automatically.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/Header.tsx
📚 Learning: applies to dashboard/**/*client.tsx : prefer api routes or server actions to keep tokens secret; the...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*client.tsx : Prefer API routes or server actions to keep tokens secret; the browser only sees relative paths.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : always import from the central ui library under `@/components/...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Always import from the central UI library under `@/components/ui/*` – e.g. `import { Button } from "@/components/ui/button"`.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : prefer composable primitives over custom markup: `button`, `in...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Prefer composable primitives over custom markup: `Button`, `Input`, `Select`, `Tabs`, `Card`, `Sidebar`, `Separator`, `Badge`.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : reuse core ui primitives; avoid re-implementing buttons, cards...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Reuse core UI primitives; avoid re-implementing buttons, cards, modals.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : layouts should reuse `sidebarlayout` / `fullwidthsidebarlayout...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Layouts should reuse `SidebarLayout` / `FullWidthSidebarLayout` (`@/components/blocks/SidebarLayout`).

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
📚 Learning: next.js link component fully supports both internal and external urls and works appropriately with a...
Learnt from: jnsdls
PR: thirdweb-dev/js#7365
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectFTUX/ProjectFTUX.tsx:16-17
Timestamp: 2025-06-18T04:30:04.326Z
Learning: Next.js Link component fully supports both internal and external URLs and works appropriately with all standard anchor attributes including target="_blank", rel="noopener noreferrer", etc. Using Link for external URLs is completely appropriate and recommended.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
📚 Learning: next.js link component supports external urls without throwing errors. when used with absolute urls ...
Learnt from: jnsdls
PR: thirdweb-dev/js#7365
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectFTUX/ProjectFTUX.tsx:16-17
Timestamp: 2025-06-18T04:27:16.172Z
Learning: Next.js Link component supports external URLs without throwing errors. When used with absolute URLs (like https://...), it behaves like a regular anchor tag without client-side routing, but does not cause runtime crashes or errors as previously believed.

Applied to files:

  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/Header.tsx
📚 Learning: surface breaking changes prominently in pr descriptions...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Surface breaking changes prominently in PR descriptions

Applied to files:

  • apps/portal/src/app/wallets/export-private-key/page.mdx
  • apps/portal/src/app/wallets/custom-auth/page.mdx
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/wallets/link-profiles/page.mdx
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/faq/page.mdx
  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to packages/thirdweb/src/exports/** : export everything via `exports/` directory, grouped by...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/exports/** : Export everything via `exports/` directory, grouped by feature in the SDK public API

Applied to files:

  • apps/portal/src/app/wallets/export-private-key/page.mdx
📚 Learning: applies to dashboard/**/components/**/index.ts : group related components in their own folder and ex...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/components/**/index.ts : Group related components in their own folder and expose a single barrel `index.ts` where necessary.

Applied to files:

  • apps/portal/src/app/tokens/sidebar.tsx
📚 Learning: in the dashboard application, the route structure for team and project navigation is `/team/[team_sl...
Learnt from: MananTank
PR: thirdweb-dev/js#7315
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-nft.tsx:155-160
Timestamp: 2025-06-10T00:46:58.580Z
Learning: In the dashboard application, the route structure for team and project navigation is `/team/[team_slug]/[project_slug]/...` without a `/project/` segment. Contract links should be formatted as `/team/${teamSlug}/${projectSlug}/contract/${chainId}/${contractAddress}`.

Applied to files:

  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/transactions/sidebar.tsx
📚 Learning: applies to src/extensions/** : auto-generated contracts from abi definitions in extensions...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Auto-generated contracts from ABI definitions in extensions

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/contracts/modular-contracts/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
📚 Learning: in the project-selector.tsx component for contract imports, the addtoproject.mutate() call is intent...
Learnt from: MananTank
PR: thirdweb-dev/js#7434
File: apps/dashboard/src/app/(app)/team/~/~/contract/[chain]/[contractAddress]/components/project-selector.tsx:62-76
Timestamp: 2025-06-24T21:38:03.155Z
Learning: In the project-selector.tsx component for contract imports, the addToProject.mutate() call is intentionally not awaited (fire-and-forget pattern) to allow immediate navigation to the contract page while the import happens in the background. This is a deliberate design choice to prioritize user experience.

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to src/exports/react.native.ts : react native specific exports are in `src/exports/react.nat...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/exports/react.native.ts : React Native specific exports are in `src/exports/react.native.ts`

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
📚 Learning: in the thirdweb/js project, the react namespace is available for type annotations (like react.fc) wi...
Learnt from: MananTank
PR: thirdweb-dev/js#7356
File: apps/nebula/src/app/not-found.tsx:1-1
Timestamp: 2025-06-17T18:30:52.976Z
Learning: In the thirdweb/js project, the React namespace is available for type annotations (like React.FC) without needing to explicitly import React. This is project-specific configuration that differs from typical TypeScript/React setups.

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
📚 Learning: the thirdweb `contract` object is serializable and can safely be used in contexts (e.g., react-query...
Learnt from: MananTank
PR: thirdweb-dev/js#7332
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/nft/overview/nft-drop-claim.tsx:82-90
Timestamp: 2025-06-13T13:03:41.732Z
Learning: The thirdweb `contract` object is serializable and can safely be used in contexts (e.g., React-Query keys) that require serializable values.

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
📚 Learning: applies to dashboard/**/*client.tsx : anything that consumes hooks from `@tanstack/react-query` or t...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*client.tsx : Anything that consumes hooks from `@tanstack/react-query` or thirdweb SDKs.

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
📚 Learning: the `fetchdashboardcontractmetadata` function from "@3rdweb-sdk/react/hooks/usedashboardcontractmeta...
Learnt from: MananTank
PR: thirdweb-dev/js#7177
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/erc20.tsx:15-17
Timestamp: 2025-05-27T19:54:55.885Z
Learning: The `fetchDashboardContractMetadata` function from "@3rdweb-sdk/react/hooks/useDashboardContractMetadata" has internal error handlers for all promises and cannot throw errors, so external error handling is not needed when calling this function.

Applied to files:

  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contractdirectlistingspage` componen...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/direct-listings/shared-direct-listings-page.tsx:47-52
Timestamp: 2025-05-26T16:29:54.317Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractDirectListingsPage` component in the direct listings shared page, following the same pattern as other server components in the codebase where `projectMeta` is only needed for client components.

Applied to files:

  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
📚 Learning: in the thirdweb dashboard codebase, redirecttocontractlandingpage function already handles execution...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/analytics/shared-analytics-page.tsx:33-39
Timestamp: 2025-05-26T16:30:24.965Z
Learning: In the thirdweb dashboard codebase, redirectToContractLandingPage function already handles execution termination internally (likely using Next.js redirect() which throws an exception), so no explicit return statement is needed after calling it.

Applied to files:

  • apps/portal/src/app/contracts/troubleshoot/page.mdx
📚 Learning: applies to test/src/test-wallets.ts : predefined test accounts are in `test/src/test-wallets.ts`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to test/src/test-wallets.ts : Predefined test accounts are in `test/src/test-wallets.ts`

Applied to files:

  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
📚 Learning: applies to packages/thirdweb/src/wallets/** : smart wallets with account abstraction...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : Smart wallets with account abstraction

Applied to files:

  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/faq/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
📚 Learning: applies to dashboard/**/layout.tsx : building layout shells (`layout.tsx`) and top-level pages that ...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/layout.tsx : Building layout shells (`layout.tsx`) and top-level pages that mainly assemble data.

Applied to files:

  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/Header.tsx
📚 Learning: in the accounts component at apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractad...
Learnt from: jnsdls
PR: thirdweb-dev/js#7188
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/accounts/components/accounts-count.tsx:15-15
Timestamp: 2025-05-29T00:46:09.063Z
Learning: In the accounts component at apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/accounts/components/accounts-count.tsx, the 3-column grid layout (md:grid-cols-3) is intentionally maintained even when rendering only one StatCard, as part of the design structure for this component.

Applied to files:

  • apps/portal/src/app/transactions/sidebar.tsx
📚 Learning: applies to dashboard/**/*client.tsx : pages requiring fast transitions where data is prefetched on t...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*client.tsx : Pages requiring fast transitions where data is prefetched on the client.

Applied to files:

  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/Header.tsx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{tsx} : expose `classname` prop on root element of c...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{tsx} : Expose `className` prop on root element of components for overrides

Applied to files:

  • apps/portal/src/app/transactions/sidebar.tsx
📚 Learning: in the thirdweb dashboard's token asset creation flow, the `transferbatch` function from `thirdweb/e...
Learnt from: MananTank
PR: thirdweb-dev/js#7081
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/assets/create/create-token-page-impl.tsx:110-118
Timestamp: 2025-05-20T18:54:15.781Z
Learning: In the thirdweb dashboard's token asset creation flow, the `transferBatch` function from `thirdweb/extensions/erc20` accepts the raw quantity values from the form without requiring explicit conversion to wei using `toUnits()`. The function appears to handle this conversion internally or is designed to work with the values in the format they're already provided.

Applied to files:

  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : merge class names with `cn` from `@/lib/utils` to keep conditi...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Merge class names with `cn` from `@/lib/utils` to keep conditional logic readable.

Applied to files:

  • apps/portal/src/app/wallets/users/page.mdx
📚 Learning: applies to packages/thirdweb/src/exports/** : every public symbol must have comprehensive tsdoc with...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/exports/** : Every public symbol must have comprehensive TSDoc with at least one `@example` block that compiles and custom annotation tags (`@beta`, `@internal`, `@experimental`)

Applied to files:

  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
📚 Learning: applies to src/extensions/** : extensions follow modular pattern in `src/extensions/`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Extensions follow modular pattern in `src/extensions/`

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the modulecarduiprops interface already includes a client prop of type thirdwebclient, so when compo...
Learnt from: MananTank
PR: thirdweb-dev/js#7227
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/modules/components/OpenEditionMetadata.tsx:26-26
Timestamp: 2025-05-30T17:14:25.332Z
Learning: The ModuleCardUIProps interface already includes a client prop of type ThirdwebClient, so when components use `Omit<ModuleCardUIProps, "children" | "updateButton">`, they inherit the client prop without needing to add it explicitly.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: in event-tracking (`usetrack`) calls across the dashboard, the team intentionally keeps `contracttyp...
Learnt from: MananTank
PR: thirdweb-dev/js#7332
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/nft/overview/nft-drop-claim.tsx:170-178
Timestamp: 2025-06-13T13:50:08.622Z
Learning: In event-tracking (`useTrack`) calls across the dashboard, the team intentionally keeps `contractType` generic as `"NFTCollection"` even for ERC-721 drops; contract differentiation is handled via the `ercType` field instead.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to dashboard/**/*.{ts,tsx} : redirect logic using `redirect()` from `next/navigation`....
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{ts,tsx} : Redirect logic using `redirect()` from `next/navigation`.

Applied to files:

  • apps/portal/src/app/Header.tsx
📚 Learning: the thirdwebbarchart component in apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(side...
Learnt from: arcoraven
PR: thirdweb-dev/js#7505
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/analytics/components/WebhookAnalyticsCharts.tsx:186-204
Timestamp: 2025-07-10T10:18:33.238Z
Learning: The ThirdwebBarChart component in apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/analytics/components/WebhookAnalyticsCharts.tsx does not accept standard accessibility props like `aria-label` and `role` in its TypeScript interface, causing compilation errors when added.

Applied to files:

  • apps/portal/src/app/Header.tsx
🧬 Code Graph Analysis (1)
apps/portal/src/app/contracts/sidebar.tsx (1)
apps/portal/src/icons/index.ts (2)
  • TypeScriptIcon (22-22)
  • ReactIcon (21-21)
🪛 LanguageTool
apps/portal/src/app/contracts/modular-contracts/page.mdx

[style] ~5-~5: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...izable and upgradeable smart contracts. Modular contracts is designed to encompass a br...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~6-~6: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...reating smart contracts with thirdweb. Modular contracts are composed of two component...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: Unit Tests
  • GitHub Check: E2E Tests (pnpm, webpack)
  • GitHub Check: E2E Tests (pnpm, esbuild)
  • GitHub Check: E2E Tests (pnpm, vite)
  • GitHub Check: Size
  • GitHub Check: Lint Packages
  • GitHub Check: Build Packages
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (19)
apps/portal/src/app/Header.tsx (1)

54-57: Potential duplication / broken link for “Insight”
/insight is added as an internal route, while the APIs dropdown already links to the external URL https://insight.thirdweb.com. Verify that an internal /insight page actually exists and is meant to be distinct; otherwise users will hit a 404 or be confused by two different “Insight” docs.

apps/portal/src/app/wallets/export-private-key/page.mdx (1)

14-15: LGTM – clearer description
The expanded copy gives users better context without conflicting with the non-custodial warning below.

apps/portal/src/app/wallets/sidebar.tsx (1)

75-79: External URL should open in a new tab
For consistency with other external links in this block (e.g., React, Unity) set target="_blank" via the href.startsWith("http") check. Defining the link here without https:// conditional still works, but confirm the consumer component (DocLayout sidebar) applies the same logic; otherwise users may get a full-page navigation away from docs.

apps/portal/src/app/wallets/get-users/page.mdx (1)

11-13: LGTM – improved SEO metadata

Title and description are clearer and consistent with other wallet pages. No further action required.

apps/portal/src/app/wallets/link-profiles/page.mdx (1)

16-19: Consistent metadata – looks good

Title and description align with the rest of the wallets docs. Nice upgrade.

apps/portal/src/app/tokens/deploy-erc1155/page.mdx (1)

10-12: Align description with actual content.

The metadata description mentions "dashboard or programmatically through the SDK" but the content only mentions community Telegram for notifications.

Consider updating the description to reflect the current "coming soon" status:

    description:
-        "Learn how to deploy an ERC-1155 token using thirdweb's dashboard or programmatically through the SDK.",
+        "ERC-1155 token deployment guide - coming soon. Join our community for release notifications.",

Likely an incorrect or invalid review comment.

apps/portal/src/app/wallets/sponsor-gas/page.mdx (1)

14-22: LGTM! Excellent metadata improvements.

The metadata updates improve SEO and clarity by:

  • Using proper title case ("Sponsor Gas")
  • Following consistent page title format
  • Providing a more descriptive summary that mentions EIP-7702 and ERC-4337 standards

These changes align well with the comprehensive wallet documentation enhancements mentioned in the AI summary.

apps/portal/src/app/transactions/sidebar.tsx (2)

16-16: Good improvement to playground link specificity.

Linking directly to the "airdrop-tokens" playground example provides more targeted value than the generic playground root.


86-121: Excellent sidebar reorganization.

The new structure improves navigation by:

  • Grouping commonly needed resources (Vault, Security, Troubleshoot, FAQs) together
  • Separating archive content (Engine versions) appropriately
  • Moving Vault from Archive to Resources where it's more discoverable

This follows the consistent pattern of sidebar improvements across the portal app.

apps/portal/src/app/tokens/sidebar.tsx (2)

21-48: Excellent addition of deployment guides section.

The new "Guides" section with the "Deploy Tokens" subsection provides clear navigation to the token deployment documentation pages. The structure is well-organized with:

  • Collapsible "Deploy Tokens" grouping for ERC-20, ERC-721, and ERC-1155
  • "List Tokens" guide for token management

This aligns perfectly with the new token deployment pages added in this PR.


525-564: Good reorganization of resources and archive sections.

The changes improve navigation structure by:

  • Moving FAQ to a dedicated "Resources" section with token-specific URL
  • Renaming "Resources" to "Archive" for design documentation
  • Making Archive collapsible since it contains older/reference material

The FAQ link update to use the tokens slug (${slug}/faq) is more semantically correct.

apps/portal/src/app/tokens/deploy-erc20/page.mdx (1)

1-14: Well-structured documentation with proper SEO metadata.

The file follows documentation best practices with proper imports, metadata configuration, and clear step-by-step structure. The SEO metadata is comprehensive and appropriate for the content.

apps/portal/src/app/tokens/deploy-erc721/page.mdx (1)

1-15: Well-structured NFT deployment documentation.

The file follows documentation best practices with proper imports, comprehensive metadata, and clear organization. The use of visual aids and step-by-step structure enhances user experience.

apps/portal/src/app/contracts/sidebar.tsx (2)

53-56: Good addition of HTTP API reference link.

The new HTTP API link with CodeIcon provides valuable external documentation access and follows consistent iconography patterns used elsewhere in the codebase.


90-119: Well-organized Resources and Archive sections.

The addition of Resources and Archive sections improves documentation navigation by logically grouping support content. The collapsible Archive section appropriately houses legacy content like Modular Contracts.

apps/portal/src/app/wallets/faq/page.mdx (2)

4-5: Improved SEO metadata for better discoverability.

The updated title and description are more descriptive and SEO-friendly, clearly indicating the content covers wallet-related FAQs with specific topics like embedded wallets, smart accounts, and multi-chain support.


16-66: Excellent use of collapsible Details components.

The restructuring of FAQ content using Details components significantly improves user experience by making content more scannable and organized. The content is comprehensive and addresses key wallet-related concerns.

apps/portal/src/app/payments/faq/page.mdx (2)

8-9: Enhanced metadata for better SEO and clarity.

The updated title and description provide clearer context about the Payments FAQ content, improving discoverability and user expectations.


14-133: Well-organized thematic structure improves usability.

The reorganization into General, Fees, Token & Region Support, and KYC & Compliance sections creates a logical flow that helps users quickly find relevant payment information. The comprehensive coverage of topics addresses key user concerns.

@vercel vercel bot temporarily deployed to Preview – nebula August 4, 2025 14:55 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb_playground August 4, 2025 14:55 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb-www August 4, 2025 14:55 Inactive
@vercel vercel bot temporarily deployed to Preview – wallet-ui August 4, 2025 14:55 Inactive
@vercel vercel bot temporarily deployed to Preview – wallet-ui August 4, 2025 15:03 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb_playground August 4, 2025 15:03 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb-www August 4, 2025 15:03 Inactive
@vercel vercel bot temporarily deployed to Preview – nebula August 4, 2025 15:03 Inactive
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🔭 Outside diff range comments (1)
apps/portal/src/app/tokens/faq/page.mdx (1)

3-10: Fix metadata: page is about Tokens, not Contracts

metadata.title and metadata.description still reference “Contracts FAQs”, which will mis-categorize the page for SEO, sidebar look-ups, and internal search. Align them with the actual Tokens FAQ content.

-	title: "Contracts FAQs",
-	description: "Frequently asked questions about thirdweb contracts",
+	title: "Tokens FAQs",
+	description: "Frequently asked questions about thirdweb tokens",

Also applies to: 12-12

🧹 Nitpick comments (7)
apps/portal/src/app/tokens/faq/page.mdx (2)

14-15: Polish the opening sentence for clarity

The sentence is grammatically awkward and repeats “deploying tokens”. Tighten it up:

-Tokens offers an improved experience to deploying tokens over previously deploying tokens through Explore. 
+Tokens provides a smoother token-deployment experience compared to the legacy “Explore” flow.

17-21: Minor copy tweaks in bullet list

For consistency and readability:

- Ability to create liquidity pools for your token (coming soon)
- An included listing page to share your token to users for purchasing
+ Ability to create liquidity pools for your token (coming soon)
+ A built-in listing page you can share with users so they can purchase the token
apps/portal/src/app/contracts/modular-contracts/page.mdx (5)

5-6: Avoid repetition & singular/plural inconsistency in the intro

The first two sentences both start with “Modular contracts …”, and the second switches from singular (“is”) to plural (“are”) later in the file. Streamline the paragraph and pick one grammatical number to keep the voice consistent.

-Modular contracts is an open source framework that enables the creation of highly customizable and upgradeable smart contracts. Modular contracts is designed to encompass a broad number of use cases without compromising on the ease and security of creating smart contracts with thirdweb.
+Modular Contracts is an open-source framework that lets you create highly-customizable, upgradeable smart contracts on thirdweb. The framework covers a broad range of use-cases without compromising ease-of-use or security.

7-12: Tighten bullet wording & keep naming consistent

Capitalize component names, drop the trailing “Contract” duplication, and use parallel wording to read cleanly.

-- Core Contract: smart contracts that serve as the foundation of the modular contract
-- Module Contract: smart contracts that are installed on top of the core contract
+- Core contract – the base implementation that every Modular Contract is deployed with
+- Module contract – an add-on that can be installed on top of the core contract to extend functionality

18-25: Minor copy-editing in FAQ answers

Grammar/wording tweaks for clarity; avoid the “pattern is” phrasing and stray spaces around slashes.

-<Details summary="Is Modular Contracts actively maintained by thirdweb?">
-Modular Contracts is no longer actively maintained with dedicated engineering resources from thirdweb. However, we are happy to answer questions about the framework and provide support to existing modular contract users.
+<Details summary="Is Modular Contracts actively maintained by thirdweb?">
+Modular Contracts is no longer staffed with dedicated engineering resources at thirdweb. We will, however, answer questions and continue to support existing users where possible.
@@
-<Details summary="What are modular contracts good for?">
-Modular contracts pattern is useful in the context of sharing core or modular contracts with other teams / developers while giving them control over the contract. 
-It is useful for creating a contract where you need to upgrade the core contract by adding new functionality through modules. 
+<Details summary="What are Modular Contracts good for?">
+The pattern shines when you want to share a core contract with other teams or developers while still giving them full control to extend it.  
+It is particularly helpful when you expect to upgrade a contract by adding new functionality through additional modules rather than redeploying an entire contract. 
 </Details>

29-32: Add terminal punctuation & consistent list style

Most bullet items in the docs include a period; line 30 does, 29/31/32 do not.

-- [Modular Contracts Repository](https://github.com/thirdweb-dev/modular-contracts).
-- [Modular Contracts Design Documentation](https://github.com/thirdweb-dev/modular-contracts/blob/dev/design-document.md)
-- [Modular Contracts 101 | Build Upgradeable Smart Contracts Like Lego Blocks](https://www.youtube.com/watch?v=4YE0WljSpiQ&t=9s)
-- [Modular Contracts SDK: Build Core & Modules from Scratch (Advanced Guide)](https://www.youtube.com/watch?v=ZoOk41y4f_k&t=29s)
+- [Modular Contracts Repository](https://github.com/thirdweb-dev/modular-contracts).
+- [Modular Contracts Design Documentation](https://github.com/thirdweb-dev/modular-contracts/blob/dev/design-document.md).
+- [Modular Contracts 101 | Build Upgradeable Smart Contracts Like Lego Blocks](https://www.youtube.com/watch?v=4YE0WljSpiQ&t=9s).
+- [Modular Contracts SDK: Build Core & Modules from Scratch (Advanced Guide)](https://www.youtube.com/watch?v=ZoOk41y4f_k&t=29s).

1-3: Consider adding page-level metadata for SEO consistency

Other newly-added portal pages export a metadata object (title & description) for Next-app-router SEO. This page omits it; adding one keeps the docs uniform and ensures the updated “wallets SEO” work applies here too.
Example:

+export const metadata = {
+  title: "Modular Contracts | thirdweb Docs",
+  description:
+    "Learn how to build upgradeable, LEGO-style smart contracts using thirdweb’s open-source Modular Contracts framework.",
+};
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e1bec80 and 50e622c.

📒 Files selected for processing (6)
  • apps/portal/src/app/contracts/modular-contracts/page.mdx (1 hunks)
  • apps/portal/src/app/contracts/troubleshoot/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/faq/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/custom-auth/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/security/page.mdx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/wallets/custom-auth/page.mdx
🧰 Additional context used
🧠 Learnings (15)
📓 Common learnings
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : EIP-1193, EIP-5792, EIP-7702 standard support in wallet modules
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Surface breaking changes prominently in PR descriptions
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : Support for in-app wallets (social/email login)
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Keep documentation focused on developer experience and practical usage
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contracttokenspage` component in the...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/shared-page.tsx:41-48
Timestamp: 2025-05-26T16:28:50.772Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractTokensPage` component in the tokens shared page, unlike some other shared pages where it's needed for consistency.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: surface breaking changes prominently in pr descriptions...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Surface breaking changes prominently in PR descriptions

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to packages/thirdweb/src/wallets/** : eip-1193, eip-5792, eip-7702 standard support in walle...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : EIP-1193, EIP-5792, EIP-7702 standard support in wallet modules

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: applies to dashboard/**/*client.tsx : interactive ui that relies on hooks (`usestate`, `useeffect`, ...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*client.tsx : Interactive UI that relies on hooks (`useState`, `useEffect`, React Query, wallet hooks).

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: in apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-n...
Learnt from: MananTank
PR: thirdweb-dev/js#7315
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-nft.tsx:153-226
Timestamp: 2025-06-10T00:50:20.795Z
Learning: In apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-nft.tsx, the updateStatus function correctly expects a complete MultiStepState["status"] object. For pending states, { type: "pending" } is the entire status object. For error states, { type: "error", message: React.ReactNode } is the entire status object. The current code incorrectly spreads the entire step object instead of passing just the status object.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : stick to design-tokens: background (`bg-card`), borders (`bord...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Stick to design-tokens: background (`bg-card`), borders (`border-border`), muted text (`text-muted-foreground`) etc.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : use design system tokens (e.g., `bg-card`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to apps/{dashboard,playground-web}/**/*.{ts,tsx} : Use design system tokens (e.g., `bg-card`, `border-border`, `text-muted-foreground`)

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to dashboard/**/*.{tsx,jsx} : prefer composable primitives over custom markup: `button`, `in...
Learnt from: CR
PR: thirdweb-dev/js#0
File: .cursor/rules/dashboard.mdc:0-0
Timestamp: 2025-07-18T19:20:32.530Z
Learning: Applies to dashboard/**/*.{tsx,jsx} : Prefer composable primitives over custom markup: `Button`, `Input`, `Select`, `Tabs`, `Card`, `Sidebar`, `Separator`, `Badge`.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: in the thirdweb dashboard's token asset creation flow, the `transferbatch` function from `thirdweb/e...
Learnt from: MananTank
PR: thirdweb-dev/js#7081
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/assets/create/create-token-page-impl.tsx:110-118
Timestamp: 2025-05-20T18:54:15.781Z
Learning: In the thirdweb dashboard's token asset creation flow, the `transferBatch` function from `thirdweb/extensions/erc20` accepts the raw quantity values from the form without requiring explicit conversion to wei using `toUnits()`. The function appears to handle this conversion internally or is designed to work with the values in the format they're already provided.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: in event-tracking (`usetrack`) calls across the dashboard, the team intentionally keeps `contracttyp...
Learnt from: MananTank
PR: thirdweb-dev/js#7332
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/nft/overview/nft-drop-claim.tsx:170-178
Timestamp: 2025-06-13T13:50:08.622Z
Learning: In event-tracking (`useTrack`) calls across the dashboard, the team intentionally keeps `contractType` generic as `"NFTCollection"` even for ERC-721 drops; contract differentiation is handled via the `ercType` field instead.

Applied to files:

  • apps/portal/src/app/tokens/faq/page.mdx
📚 Learning: applies to src/extensions/** : auto-generated contracts from abi definitions in extensions...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Auto-generated contracts from ABI definitions in extensions

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: applies to src/extensions/** : extensions follow modular pattern in `src/extensions/`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Extensions follow modular pattern in `src/extensions/`

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: in the dashboard application, the route structure for team and project navigation is `/team/[team_sl...
Learnt from: MananTank
PR: thirdweb-dev/js#7315
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-nft.tsx:155-160
Timestamp: 2025-06-10T00:46:58.580Z
Learning: In the dashboard application, the route structure for team and project navigation is `/team/[team_slug]/[project_slug]/...` without a `/project/` segment. Contract links should be formatted as `/team/${teamSlug}/${projectSlug}/contract/${chainId}/${contractAddress}`.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the modulecarduiprops interface already includes a client prop of type thirdwebclient, so when compo...
Learnt from: MananTank
PR: thirdweb-dev/js#7227
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/modules/components/OpenEditionMetadata.tsx:26-26
Timestamp: 2025-05-30T17:14:25.332Z
Learning: The ModuleCardUIProps interface already includes a client prop of type ThirdwebClient, so when components use `Omit<ModuleCardUIProps, "children" | "updateButton">`, they inherit the client prop without needing to add it explicitly.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
🪛 LanguageTool
apps/portal/src/app/contracts/modular-contracts/page.mdx

[style] ~5-~5: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...izable and upgradeable smart contracts. Modular contracts is designed to encompass a br...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~6-~6: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...reating smart contracts with thirdweb. Modular contracts are composed of two component...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

@vercel vercel bot temporarily deployed to Preview – thirdweb-www August 4, 2025 17:37 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb_playground August 4, 2025 17:37 Inactive
@vercel vercel bot temporarily deployed to Preview – nebula August 4, 2025 17:37 Inactive
@vercel vercel bot temporarily deployed to Preview – wallet-ui August 4, 2025 17:38 Inactive
@vercel vercel bot temporarily deployed to Preview – wallet-ui August 4, 2025 17:39 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb_playground August 4, 2025 17:39 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb-www August 4, 2025 17:39 Inactive
@vercel vercel bot temporarily deployed to Preview – nebula August 4, 2025 17:39 Inactive
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
apps/portal/src/app/contracts/modular-contracts/page.mdx (3)

15-21: Plural agreement & compound-adjective nit
“Modular contracts is an open source framework …” should read “Modular contracts are an open-source framework …” to keep subject-verb agreement (plural) and hyphenate the compound adjective.

-Modular contracts is an open source framework that enables …
+Modular contracts are an open-source framework that enables …

32-35: Minor wording improvement for clarity
A small tweak makes the FAQ read more naturally.

-<Details summary="What are modular contracts good for?">
-Modular contracts pattern is useful in the context of sharing core or modular contracts with other teams / developers while giving them control over the contract. 
-It is useful for creating a contract where you need to upgrade the core contract by adding new functionality through modules. 
+<Details summary="What are modular contracts good for?">
+The modular-contracts pattern is useful when you need to share core or module contracts with other teams/developers while still giving them control over the contract.  
+It also shines when you expect to upgrade the core contract later by installing new modules.
 </Details>

39-42: Bullet-list punctuation consistency
Only the first bullet ends with a period; the rest do not. Either drop the period on Line 39 or add periods to Lines 40-42 for consistency.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1c47c90 and c36774a.

📒 Files selected for processing (7)
  • apps/portal/src/app/contracts/faqs/page.mdx (1 hunks)
  • apps/portal/src/app/contracts/modular-contracts/page.mdx (1 hunks)
  • apps/portal/src/app/payments/faq/page.mdx (4 hunks)
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/external-wallets/page.mdx (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx
🚧 Files skipped from review as they are similar to previous changes (5)
  • apps/portal/src/app/payments/faq/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : EIP-1193, EIP-5792, EIP-7702 standard support in wallet modules
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Surface breaking changes prominently in PR descriptions
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : Support for in-app wallets (social/email login)
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Keep documentation focused on developer experience and practical usage
📚 Learning: applies to src/extensions/** : auto-generated contracts from abi definitions in extensions...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Auto-generated contracts from ABI definitions in extensions

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: applies to src/extensions/** : extensions follow modular pattern in `src/extensions/`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Extensions follow modular pattern in `src/extensions/`

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: in the dashboard application, the route structure for team and project navigation is `/team/[team_sl...
Learnt from: MananTank
PR: thirdweb-dev/js#7315
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-nft.tsx:155-160
Timestamp: 2025-06-10T00:46:58.580Z
Learning: In the dashboard application, the route structure for team and project navigation is `/team/[team_slug]/[project_slug]/...` without a `/project/` segment. Contract links should be formatted as `/team/${teamSlug}/${projectSlug}/contract/${chainId}/${contractAddress}`.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contracttokenspage` component in the...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/shared-page.tsx:41-48
Timestamp: 2025-05-26T16:28:50.772Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractTokensPage` component in the tokens shared page, unlike some other shared pages where it's needed for consistency.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contractdirectlistingspage` componen...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/direct-listings/shared-direct-listings-page.tsx:47-52
Timestamp: 2025-05-26T16:29:54.317Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractDirectListingsPage` component in the direct listings shared page, following the same pattern as other server components in the codebase where `projectMeta` is only needed for client components.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: applies to src/exports/react.native.ts : react native specific exports are in `src/exports/react.nat...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/exports/react.native.ts : React Native specific exports are in `src/exports/react.native.ts`

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the `fetchdashboardcontractmetadata` function from "@3rdweb-sdk/react/hooks/usedashboardcontractmeta...
Learnt from: MananTank
PR: thirdweb-dev/js#7177
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/erc20.tsx:15-17
Timestamp: 2025-05-27T19:54:55.885Z
Learning: The `fetchDashboardContractMetadata` function from "@3rdweb-sdk/react/hooks/useDashboardContractMetadata" has internal error handlers for all promises and cannot throw errors, so external error handling is not needed when calling this function.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
🪛 LanguageTool
apps/portal/src/app/contracts/modular-contracts/page.mdx

[uncategorized] ~15-~15: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ular Contracts Modular contracts is an open source framework that enables the creation of ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~15-~15: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...izable and upgradeable smart contracts. Modular contracts is designed to encompass a br...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~16-~16: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...reating smart contracts with thirdweb. Modular contracts are composed of two component...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Lint Packages
  • GitHub Check: Size
  • GitHub Check: E2E Tests (pnpm, webpack)
  • GitHub Check: E2E Tests (pnpm, vite)
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (1)
apps/portal/src/app/contracts/modular-contracts/page.mdx (1)

3-11: ✅ Metadata export now present – good catch
The earlier feedback about the missing metadata export is addressed. Title, description, and social image are all provided and follow the pattern used across the portal.

@saminacodes saminacodes requested a review from MananTank August 4, 2025 17:46
@saminacodes saminacodes added the merge-queue Adds the pull request to Graphite's merge queue. label Aug 4, 2025
Copy link
Contributor

graphite-app bot commented Aug 4, 2025

Merge activity

<!--

## title your PR with this format: "[SDK/Dashboard/Portal] Feature/Fix: Concise title for the changes"

If you did not copy the branch name from Linear, paste the issue tag here (format is TEAM-0000):

## Notes for the reviewer

Anything important to call out? Be sure to also clarify these in your comments.

## How to test

Unit tests, playground, etc.

-->

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on updating documentation and content related to thirdweb's tokens, wallets, and contracts. It enhances clarity, adds new features, and improves user guidance across various sections.

### Detailed summary
- Added new images for token deployment and wallet features.
- Updated titles and descriptions for clarity in multiple `.mdx` files.
- Introduced new sections and links in the sidebar for better navigation.
- Enhanced FAQs with specific details about tokens and wallet security.
- Added guides for deploying ERC-20 and ERC-721 tokens.
- Updated resource links and documentation structure for improved user experience.

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **New Features**
  * Added an "Insight" navigation link to the main header.
  * Introduced new documentation pages: Modular Contracts overview, ERC-20, ERC-721, and ERC-1155 token deployment guides, token listing placeholder, and troubleshooting guides for contracts.
  * Added new FAQ pages for contracts and expanded FAQs for payments, tokens, and wallets.

* **Documentation**
  * Improved and expanded metadata (titles, descriptions, images) for multiple documentation pages for better clarity and SEO.
  * Updated and restructured sidebar navigation for Contracts, Tokens, Transactions, and Wallets sections, including new links, reorganized groups, and resource sections.
  * Enhanced FAQ formatting with collapsible sections and improved content clarity across several pages.
  * Streamlined and updated content in various wallet and contract documentation pages.

* **Style**
  * Improved documentation structure and presentation, including use of collapsible details and better grouping of related topics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@vercel vercel bot temporarily deployed to Preview – wallet-ui August 4, 2025 17:55 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb-www August 4, 2025 17:55 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb_playground August 4, 2025 17:55 Inactive
@vercel vercel bot temporarily deployed to Preview – nebula August 4, 2025 17:55 Inactive
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
apps/portal/src/app/contracts/modular-contracts/page.mdx (3)

15-17: Reduce repetitive sentence starts for smoother reading

Lines 15-17 start three successive sentences with “Modular contracts”, which reads a bit clunky and was flagged by LanguageTool. Re-phrase one or two sentences or merge them to improve flow.


28-30: Surface the “archived / not actively maintained” status more prominently

Because this framework is no longer under active development (Line 29), consider adding a short “⚠️ Archived project” call-out near the top of the page (before the main content) so readers notice immediately, without having to expand the FAQ. For example:

<Warning title="Archived project">
  Modular Contracts is no longer actively maintained by thirdweb.  
  While we still provide community support, we recommend evaluating our current pre-built contracts for new projects.
</Warning>

This mirrors the new “Archive” sidebar section and sets clear expectations.


39-42: Align list-item punctuation for consistency

Only the first bullet (Line 39) ends with a period. Either remove that trailing period or add periods to the remaining bullets so the list is stylistically consistent.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c36774a and fa7a812.

⛔ Files ignored due to path filters (6)
  • apps/portal/src/app/tokens/assets/token_deployment.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc20/assets/configure_coin.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc20/assets/distribute_coin.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc721/assets/create_nft.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc721/assets/sale_recipients.png is excluded by !**/*.png
  • apps/portal/src/app/tokens/deploy-erc721/assets/upload_NFTs.png is excluded by !**/*.png
📒 Files selected for processing (28)
  • apps/portal/src/app/Header.tsx (1 hunks)
  • apps/portal/src/app/contracts/faqs/page.mdx (1 hunks)
  • apps/portal/src/app/contracts/modular-contracts/page.mdx (1 hunks)
  • apps/portal/src/app/contracts/sidebar.tsx (3 hunks)
  • apps/portal/src/app/contracts/troubleshoot/page.mdx (1 hunks)
  • apps/portal/src/app/payments/faq/page.mdx (4 hunks)
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/faq/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/list-tokens/page.mdx (1 hunks)
  • apps/portal/src/app/tokens/sidebar.tsx (3 hunks)
  • apps/portal/src/app/transactions/sidebar.tsx (2 hunks)
  • apps/portal/src/app/wallets/auth/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/custom-auth/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/export-private-key/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/external-wallets/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/faq/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/get-users/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/link-profiles/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/security/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/server/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/sidebar.tsx (2 hunks)
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx (1 hunks)
  • apps/portal/src/app/wallets/users/page.mdx (2 hunks)
✅ Files skipped from review due to trivial changes (6)
  • apps/portal/src/app/tokens/deploy-erc1155/page.mdx
  • apps/portal/src/app/contracts/troubleshoot/page.mdx
  • apps/portal/src/app/wallets/pregenerate-wallets/page.mdx
  • apps/portal/src/app/wallets/get-users/page.mdx
  • apps/portal/src/app/wallets/ecosystem/integrating-partners/page.mdx
  • apps/portal/src/app/wallets/sponsor-gas/page.mdx
🚧 Files skipped from review as they are similar to previous changes (21)
  • apps/portal/src/app/tokens/list-tokens/page.mdx
  • apps/portal/src/app/Header.tsx
  • apps/portal/src/app/tokens/faq/page.mdx
  • apps/portal/src/app/wallets/custom-auth/page.mdx
  • apps/portal/src/app/transactions/sidebar.tsx
  • apps/portal/src/app/wallets/users/page.mdx
  • apps/portal/src/app/wallets/server/page.mdx
  • apps/portal/src/app/wallets/ecosystem/set-up/page.mdx
  • apps/portal/src/app/wallets/auth/page.mdx
  • apps/portal/src/app/wallets/security/page.mdx
  • apps/portal/src/app/tokens/sidebar.tsx
  • apps/portal/src/app/wallets/faq/page.mdx
  • apps/portal/src/app/tokens/deploy-erc721/page.mdx
  • apps/portal/src/app/wallets/link-profiles/page.mdx
  • apps/portal/src/app/wallets/export-private-key/page.mdx
  • apps/portal/src/app/contracts/faqs/page.mdx
  • apps/portal/src/app/wallets/external-wallets/page.mdx
  • apps/portal/src/app/contracts/sidebar.tsx
  • apps/portal/src/app/wallets/sidebar.tsx
  • apps/portal/src/app/tokens/deploy-erc20/page.mdx
  • apps/portal/src/app/payments/faq/page.mdx
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to packages/thirdweb/src/wallets/** : EIP-1193, EIP-5792, EIP-7702 standard support in wallet modules
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Surface breaking changes prominently in PR descriptions
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Keep documentation focused on developer experience and practical usage
📚 Learning: applies to src/extensions/** : auto-generated contracts from abi definitions in extensions...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Auto-generated contracts from ABI definitions in extensions

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: applies to src/extensions/** : extensions follow modular pattern in `src/extensions/`...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/extensions/** : Extensions follow modular pattern in `src/extensions/`

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: in the dashboard application, the route structure for team and project navigation is `/team/[team_sl...
Learnt from: MananTank
PR: thirdweb-dev/js#7315
File: apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/nft/launch-nft.tsx:155-160
Timestamp: 2025-06-10T00:46:58.580Z
Learning: In the dashboard application, the route structure for team and project navigation is `/team/[team_slug]/[project_slug]/...` without a `/project/` segment. Contract links should be formatted as `/team/${teamSlug}/${projectSlug}/contract/${chainId}/${contractAddress}`.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contracttokenspage` component in the...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/shared-page.tsx:41-48
Timestamp: 2025-05-26T16:28:50.772Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractTokensPage` component in the tokens shared page, unlike some other shared pages where it's needed for consistency.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the `projectmeta` prop is not required for the server-rendered `contractdirectlistingspage` componen...
Learnt from: MananTank
PR: thirdweb-dev/js#7152
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/direct-listings/shared-direct-listings-page.tsx:47-52
Timestamp: 2025-05-26T16:29:54.317Z
Learning: The `projectMeta` prop is not required for the server-rendered `ContractDirectListingsPage` component in the direct listings shared page, following the same pattern as other server components in the codebase where `projectMeta` is only needed for client components.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: applies to src/exports/react.native.ts : react native specific exports are in `src/exports/react.nat...
Learnt from: CR
PR: thirdweb-dev/js#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-18T19:19:55.613Z
Learning: Applies to src/exports/react.native.ts : React Native specific exports are in `src/exports/react.native.ts`

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
📚 Learning: the `fetchdashboardcontractmetadata` function from "@3rdweb-sdk/react/hooks/usedashboardcontractmeta...
Learnt from: MananTank
PR: thirdweb-dev/js#7177
File: apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/erc20.tsx:15-17
Timestamp: 2025-05-27T19:54:55.885Z
Learning: The `fetchDashboardContractMetadata` function from "@3rdweb-sdk/react/hooks/useDashboardContractMetadata" has internal error handlers for all promises and cannot throw errors, so external error handling is not needed when calling this function.

Applied to files:

  • apps/portal/src/app/contracts/modular-contracts/page.mdx
🪛 LanguageTool
apps/portal/src/app/contracts/modular-contracts/page.mdx

[style] ~15-~15: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...izable and upgradeable smart contracts. Modular contracts is designed to encompass a br...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~16-~16: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...reating smart contracts with thirdweb. Modular contracts are composed of two component...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: Unit Tests
  • GitHub Check: Size
  • GitHub Check: E2E Tests (pnpm, webpack)
  • GitHub Check: Lint Packages
  • GitHub Check: E2E Tests (pnpm, esbuild)
  • GitHub Check: Build Packages
  • GitHub Check: E2E Tests (pnpm, vite)
  • GitHub Check: Analyze (javascript)

@graphite-app graphite-app bot merged commit fa7a812 into main Aug 4, 2025
24 checks passed
@graphite-app graphite-app bot removed the merge-queue Adds the pull request to Graphite's merge queue. label Aug 4, 2025
@graphite-app graphite-app bot deleted the docs-changes-6 branch August 4, 2025 17:58
@vercel vercel bot temporarily deployed to Production – thirdweb_playground August 4, 2025 17:58 Inactive
@vercel vercel bot temporarily deployed to Production – nebula August 4, 2025 17:58 Inactive
@vercel vercel bot temporarily deployed to Production – thirdweb-www August 4, 2025 17:58 Inactive
@vercel vercel bot temporarily deployed to Production – wallet-ui August 4, 2025 17:58 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Portal Involves changes to the Portal (docs) codebase.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants