Skip to content

Commit b64ffe3

Browse files
committed
Gi/portal knowledge base (#6993)
<!-- ## 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 primarily focuses on enhancing the `thirdweb Knowledge Base` by adding new troubleshooting guides, updating existing resources, and improving documentation structure for better user support. ### Detailed summary - Added a new troubleshooting guide for `Nebula`. - Introduced detailed steps for resolving `device link errors` in `thirdweb CLI`. - Updated support links in `Header.tsx`. - Created new sections for `batch upload issues` and `airdrop contract troubleshooting`. - Improved layout in `layout.tsx` with `DocLayout`. - Removed unused `ContractsIcon` from `page.tsx`. - Enhanced the `knowledge base` sidebar structure. - Added visual guides and images in multiple `mdx` files for clarity. - Improved metadata for better SEO and documentation clarity. > ✨ 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** - Introduced a comprehensive Knowledge Base with structured navigation, guides, and troubleshooting for web3 development and thirdweb support. - Added detailed documentation on deploying NFT mint sites, creating soulbound tokens, sharing console errors, and resolving CLI device link errors. - Launched troubleshooting guides for airdrop contracts, batch upload issues, embed feature changes, and Nebula-specific support. - **Improvements** - Updated navigation links to add a Nebula API reference and consolidated support links to internal resources. - **Removals** - Removed the "Contracts" article card from the learning resources section. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 30fafd1 commit b64ffe3

File tree

32 files changed

+538
-33
lines changed

32 files changed

+538
-33
lines changed

apps/portal/src/app/Header.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ export const connectLinks: Array<{
122122
] as const;
123123

124124
const apisLinks = [
125+
{
126+
name: "Nebula",
127+
href: "/nebula/api-reference",
128+
},
125129
{
126130
name: "Insight",
127131
href: "https://insight.thirdweb.com/reference",
@@ -139,11 +143,7 @@ const apisLinks = [
139143
const supportLinks = [
140144
{
141145
name: "Get thirdweb support",
142-
href: "https://thirdweb.com/support",
143-
},
144-
{
145-
name: "Knowledge Base",
146-
href: "https://support.thirdweb.com",
146+
href: "/knowledge-base",
147147
},
148148
{
149149
name: "Contact Sales",
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import { WalletIcon, FileIcon, MessageCircleIcon, BracesIcon, BotIcon, BlocksIcon } from "lucide-react";
2+
import { DocImage, createMetadata, FeatureCard, GithubTemplateCard, Stack, Grid, ArticleCard, ArticleIconCard } from "@doc";
3+
import { ExternalLink } from "lucide-react";
4+
5+
export const metadata = createMetadata({
6+
title: "thirdweb Knowledge Base",
7+
8+
description:
9+
"This Knowledge Base collects concise guides and troubleshooting tips for common web3 development challenges—especially when using thirdweb, but many articles apply to any web3 project.",
10+
});
11+
12+
# Welcome to thirdweb Support!
13+
14+
This section shows you how to leverage our Knowledge Base, request support, and understand our response process.
15+
16+
---
17+
18+
## 1. thirdweb Resources
19+
20+
Before opening a support ticket, check these resources:
21+
22+
- **Documentation:** [thirdweb Docs](https://portal.thirdweb.com/)
23+
- **Changelog:** Stay up to date with our latest releases: [thirdweb Changelog](https://portal.thirdweb.com/changelog)
24+
- **Status Page:** [thirdweb Status](https://status.thirdweb.com/)
25+
- **Guides & Troubleshooting:** Explore tutorials and tips: [thirdweb Guides](https://blog.thirdweb.com/guides/)
26+
- **Templates:** [thirdweb Starters](https://github.com/thirdweb-example/)
27+
- **Video Tutorials:** [YouTube](https://www.youtube.com/@thirdweb_)
28+
- **Playground:** Test live in [thirdweb Playground](https://playground.thirdweb.com/)
29+
30+
---
31+
32+
## 2. How to Request Support
33+
34+
- **Submit a ticket** through our system: [thirdweb.com/support](https://thirdweb.com/support).
35+
- Our team operates **worldwide** and will respond **as soon as possible**.
36+
- *Response times may vary depending on issue severity and priority.*
37+
- We’ll keep you updated on your ticket’s progress.
38+
- For faster resolution, please include a minimal reproduction with step-by-step instructions.
39+
- Found an issue in our open-source code? Submit a PR: [thirdweb-dev/js](https://github.com/thirdweb-dev/js).
40+
41+
---
42+
43+
## 3. Response Time Expectations
44+
45+
### Starter Plan
46+
47+
- Estimated response time: **3 business days**.
48+
- We aim to respond sooner when possible.
49+
50+
### Growth Plan & Accelerate Customers
51+
52+
- Estimated response time: **Within 48 business hours**.
53+
54+
### Scale & Pro Plans
55+
56+
- Estimated response time: **Within 2 business hours**.
57+
- Customers on the **Scale** or **Pro** plans get a **dedicated Slack channel or Telegram group**.
58+
59+
---
60+
61+
## Need Help?
62+
63+
You can [submit a ticket](https://thirdweb.com/support), and we’ll be happy to help you!
64+
65+
66+
67+
68+
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { DocImage, Step, Steps } from "@doc";
2+
import ScreenshotConsole from "../../assets/screenshot-console.png";
3+
import TabConsole from "../../assets/tab-console.png";
4+
import Inspect from "../../assets/inspect-console.png";
5+
6+
# How to share your console log errors
7+
8+
Follow these steps to capture and share your browser console errors:
9+
10+
<Steps>
11+
12+
<Step title="Open your app">
13+
Navigate to the page where you’re seeing errors.
14+
</Step>
15+
16+
<Step title="Inspect the page">
17+
Right-click and choose **Inspect** (or **Inspect Element**) to open DevTools.
18+
<DocImage src={Inspect} />
19+
</Step>
20+
21+
<Step title="Switch to the Console">
22+
Click on the **Console** tab to view logs and errors.
23+
<DocImage src={TabConsole} />
24+
</Step>
25+
26+
<Step title="Capture the error">
27+
Screenshot any red error messages in **Console**.
28+
<DocImage src={ScreenshotConsole} />
29+
</Step>
30+
31+
<Step title="Share with us">
32+
Send your screenshots to our support team.
33+
</Step>
34+
35+
</Steps>
36+
37+
38+
By following these steps, you’ll give us the full error context so we can resolve your issue quickly.
39+
40+
---
41+
42+
43+
Still stuck? [**Contact our support team**](https://thirdweb.com/support)
44+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { DocImage } from "@doc";
2+
import Soulbound from "../../assets/soulbound-explorer.png";
3+
import Permissions from "../../assets/permissions-soulbound.png";
4+
5+
# What is a Soulbound Token
6+
7+
Let’s first understand what a Soulbound Token (SBT) is:
8+
9+
A **Soulbound Token** is a unique digital asset that cannot be transferred to another wallet. Once minted, it remains permanently tied to the owner’s wallet—perfect for credentials, achievement badges, or any on-chain proof of identity.
10+
11+
## How to make your tokens Soulbound or Non-Transferrable
12+
13+
The easiest way is via the **Permissions** tab on your thirdweb contract dashboard. For a visual walkthrough, check out our [guide on making NFTs non-transferable](https://blog.thirdweb.com/guides/make-your-nft-non-transferable/?utm_source=dc).
14+
15+
If you prefer using the **Explorer**, follow these steps:
16+
17+
1. **Connect your wallet**
18+
Ensure your wallet is connected to the Dashboard/Explorer and set to the same network as your contract.
19+
20+
2. **Select the correct network**
21+
Verify the network selector (top-right) matches your contract’s deployment chain (e.g., Ethereum Mainnet, Goerli).
22+
23+
3. **Open the Explorer**
24+
In the thirdweb Dashboard, select your contract and switch to the **Explorer** tab.
25+
26+
4. **Choose `revokeRole` under write**
27+
The `revokeRole` function requires two inputs: **Role** and **Account**.
28+
29+
5. **Convert `TRANSFER_ROLE` to bytes32**
30+
Use a [keccak256 tool](https://emn178.github.io/online-tools/keccak_256.html) to hash the string `TRANSFER_ROLE`, then prefix with `0x`.
31+
For example:
32+
`0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c`
33+
34+
6. **Set the account to the zero address**
35+
Enter `0x0000000000000000000000000000000000000000` to revoke transfer rights from every wallet.
36+
37+
7. **Confirm the on-chain transaction**
38+
Click “write” and approve the transaction in your wallet.
39+
40+
<DocImage src={Soulbound} />
41+
42+
8. **Verify in Permissions**
43+
Refresh the **Permissions** tab to confirm that `TRANSFER_ROLE` is revoked for the zero address.
44+
45+
<DocImage src={Permissions} />
46+
47+
That’s it—your tokens are officially soulbound!
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { DocImage } from "@doc";
2+
import deployGithub from "../../assets/deploy-github.png";
3+
import newProject from "../../assets/new-project-github.png";
4+
import newProjectName from "../../assets/new-project-name-github.png";
5+
import newVercel from "../../assets/add-new-vercel.png";
6+
import createVercel from "../../assets/create-project-vercel.png";
7+
import variablesVercel from "../../assets/variables-vercel.png";
8+
import deployVercel from "../../assets/deploy-vercel.png";
9+
10+
11+
12+
# How to deploy an NFT Mint site template [NO CODE]
13+
14+
## Prerequisites
15+
16+
- [GitHub account](https://github.com)
17+
- [thirdweb account](https://thirdweb.com/)
18+
- [Vercel account](https://vercel.com/)
19+
20+
21+
## Step-by-Step Guide
22+
23+
### 1. Initial Setup
24+
25+
- Navigate to the [NFT Minting Template repository](https://github.com/thirdweb-example/nft-minting-template)
26+
- Click **Deploy with Vercel**
27+
28+
<DocImage src={deployGithub} />
29+
30+
### 2. Configure Git Repository
31+
32+
- **Choose your Git provider** (GitHub, GitLab, or Bitbucket)
33+
- **Set up your repository details**:
34+
- **Git Scope**: Select your GitHub username or organization
35+
- **Repository Name**: Enter a name (e.g., `my-nft-minting-website`)
36+
- **Team**: Select your team if applicable
37+
38+
<DocImage src={newProject} />
39+
<DocImage src={newProjectName} />
40+
41+
42+
### 3. Create Thirdweb Project
43+
44+
- Go to the [thirdweb dashboard](https://thirdweb.com/team/~/~/) and create a new project
45+
- Enter your project name (e.g., `NFT MINTING TEMPLATE`)
46+
- Configure allowed domains:
47+
- Add your custom domain (e.g., `mydomain.com`)
48+
- Add `localhost:<port>` for local development
49+
- Click **Create** and save your Client ID and Secret Key
50+
51+
<DocImage src={newVercel} />
52+
<DocImage src={createVercel} />
53+
54+
55+
### 4. Configure Environment Variables
56+
57+
- In Vercel, add the following:
58+
![](https://prod-files-secure.s3.us-west-2.amazonaws.com/f6d1ff84-8c0e-4bcb-8dd6-edab3b3c175b/3ce22022-f27e-46cf-b460-2038d5e61dbe/image.png)
59+
- `NEXT_PUBLIC_THIRDWEB_CLIENT_ID`: Your thirdweb Client ID
60+
- `THIRDWEB_SECRET_KEY`: Your thirdweb Secret Key
61+
- `NFT_CONTRACT_ADDRESS`: Your NFT contract address
62+
- `NFT_CONTRACT_CHAIN_ID`: Chain ID (e.g., 43113 for Avalanche testnet)
63+
- `NFT_CONTRACT_TOKEN_ID`: `0` for ERC-721 or the token ID for ERC-1155
64+
65+
<DocImage src={variablesVercel} />
66+
67+
### 5. Deploy
68+
69+
- Click **Deploy** in the Vercel dashboard
70+
- Wait for the build and deployment to complete
71+
- Access your new mint site via the provided Vercel URL
72+
73+
<DocImage src={deployVercel} />
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { DocLayout } from "@/components/Layouts/DocLayout";
2+
import { createMetadata } from "@doc";
3+
import { sidebar } from "./sidebar";
4+
5+
export default async function Layout(props: { children: React.ReactNode }) {
6+
return (
7+
<DocLayout sideBar={sidebar} editPageButton={true}>
8+
{props.children}
9+
</DocLayout>
10+
);
11+
}
12+
13+
export const metadata = createMetadata({
14+
title: "thirdweb Knowledge Base",
15+
16+
description:
17+
"This Knowledge Base collects concise guides and troubleshooting tips for common web3 development challenges—especially when using thirdweb, but many articles apply to any web3 project.",
18+
});
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Issue linking device on the authorization page via Thirdweb CLI
2+
3+
Encountering issues when linking a new device via the authorization page.
4+
5+
### Error
6+
7+
How to authorize your account using `secretKey` for the thirdweb CLI
8+
9+
### Solution
10+
11+
You can authorize the CLI with a `secretKey` in just a couple of steps:
12+
13+
1. **Get your `secretKey`**
14+
Head over to the thirdweb dashboard and generate a key: https://thirdweb.com/team/~/~/.
15+
16+
2. **Deploy with your `secretKey`**
17+
Run the following command: `npx thirdweb deploy -k secretKey`
18+
19+
3. **Use the same pattern for other commands**
20+
You can also use other methods like `upload`, `publish`, and `build` using the same format:
21+
- `npx thirdweb upload -k secretKey`
22+
- `npx thirdweb publish -k secretKey`
23+
- `npx thirdweb build -k secretKey`
24+
25+
That’s it! The CLI will now use your `secretKey` to authenticate every command.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import { WalletIcon, FileIcon, MessageCircleIcon, BracesIcon, BotIcon, BlocksIcon } from "lucide-react";
2+
import { DocImage, createMetadata, FeatureCard, GithubTemplateCard, Stack, Grid, ArticleCard, ArticleIconCard } from "@doc";
3+
import { ExternalLink } from "lucide-react";
4+
5+
export const metadata = createMetadata({
6+
title: "thirdweb Knowledge Base",
7+
8+
description:
9+
"This Knowledge Base collects concise guides and troubleshooting tips for common web3 development challenges—especially when using thirdweb, but many articles apply to any web3 project.",
10+
});
11+
12+
# Welcome to thirdweb Support!
13+
14+
This section shows you how to leverage our Knowledge Base, request support, and understand our response process.
15+
16+
---
17+
18+
## 1. thirdweb Resources
19+
20+
Before opening a support ticket, check these resources:
21+
22+
- **Documentation:** [thirdweb Docs](https://portal.thirdweb.com/)
23+
- **Changelog:** Stay up to date with our latest releases: [thirdweb Changelog](https://portal.thirdweb.com/changelog)
24+
- **Status Page:** [thirdweb Status](https://status.thirdweb.com/)
25+
- **Guides & Troubleshooting:** Explore tutorials and tips: [thirdweb Guides](https://blog.thirdweb.com/guides/)
26+
- **Templates:** [thirdweb Starters](https://github.com/thirdweb-example/)
27+
- **Video Tutorials:** [YouTube](https://www.youtube.com/@thirdweb_)
28+
- **Playground:** Test live in [thirdweb Playground](https://playground.thirdweb.com/)
29+
30+
---
31+
32+
## 2. How to Request Support
33+
34+
- **Submit a ticket** through our system: [thirdweb.com/support](https://thirdweb.com/support).
35+
- Our team operates **worldwide** and will respond **as soon as possible**.
36+
- *Response times may vary depending on issue severity and priority.*
37+
- We’ll keep you updated on your ticket’s progress.
38+
- For faster resolution, please include a minimal reproduction with step-by-step instructions.
39+
- Found an issue in our open-source code? Submit a PR: [thirdweb-dev/js](https://github.com/thirdweb-dev/js).
40+
41+
---
42+
43+
## 3. Response Time Expectations
44+
45+
### Starter Plan
46+
47+
- Estimated response time: **3 business days**.
48+
- We aim to respond sooner when possible.
49+
50+
### Growth Plan & Accelerate Customers
51+
52+
- Estimated response time: **Within 48 business hours**.
53+
54+
### Scale & Pro Plans
55+
56+
- Estimated response time: **Within 2 business hours**.
57+
- Customers on the **Scale** or **Pro** plans get a **dedicated Slack channel or Telegram group**.
58+
59+
---
60+
61+
## Need Help?
62+
63+
You can [submit a ticket](https://thirdweb.com/support), and we’ll be happy to help you!
64+
65+
66+
67+
68+

0 commit comments

Comments
 (0)