-
Notifications
You must be signed in to change notification settings - Fork 567
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
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Note Other AI code review bot(s) detectedCodeRabbit 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. WalkthroughThis 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
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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~18 minutes Suggested labels
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (4)
✨ Finishing Touches
🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
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. |
Codecov Report✅ All modified and coverable lines are covered by tests. 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
🚀 New features to boost your workflow:
|
size-limit report 📦
|
There was a problem hiding this 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 suffixThe new title string (
"Integrating Partners using Ecosystem Wallets | thirdweb Documentation"
) is ~68 characters and already appends “thirdweb Documentation”.
IfcreateMetadata
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 acreateMetadata
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
: Alignimage.title
with the new page title for coherence.
image.title
(“thirdweb Ecosystem Wallet”) no longer matches the updatedmetadata.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 nitConsider 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 andTokenDeployment
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 consistencyThe 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 entryLines 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 sentenceThe 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 sentenceCombine 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
⛔ 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 localtypes.ts
barrels
Prefer type aliases over interface except for nominal shapes
Avoidany
andunknown
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 URLhttps://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) settarget="_blank"
via thehref.startsWith("http")
check. Defining the link here withouthttps://
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 metadataTitle 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 goodTitle 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.
There was a problem hiding this 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
andmetadata.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 clarityThe 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 listFor 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 tokenapps/portal/src/app/contracts/modular-contracts/page.mdx (5)
5-6
: Avoid repetition & singular/plural inconsistency in the introThe 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 consistentCapitalize 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 answersGrammar/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 styleMost 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 consistencyOther 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
📒 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)
There was a problem hiding this 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
📒 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 missingmetadata
export is addressed. Title, description, and social image are all provided and follow the pattern used across the portal.
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 -->
c36774a
to
fa7a812
Compare
There was a problem hiding this 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 readingLines 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 prominentlyBecause 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 consistencyOnly 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
⛔ 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)
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
Summary by CodeRabbit
New Features
Documentation
Style