diff --git a/apps/portal/src/app/Header.tsx b/apps/portal/src/app/Header.tsx index 561b2628e44..540163ffdb2 100644 --- a/apps/portal/src/app/Header.tsx +++ b/apps/portal/src/app/Header.tsx @@ -122,6 +122,10 @@ export const connectLinks: Array<{ ] as const; const apisLinks = [ + { + name: "Nebula", + href: "/nebula/api-reference", + }, { name: "Insight", href: "https://insight.thirdweb.com/reference", @@ -139,11 +143,7 @@ const apisLinks = [ const supportLinks = [ { name: "Get thirdweb support", - href: "https://thirdweb.com/support", - }, - { - name: "Knowledge Base", - href: "https://support.thirdweb.com", + href: "/knowledge-base", }, { name: "Contact Sales", diff --git a/apps/portal/src/app/knowledge-base/assets/add-new-vercel.png b/apps/portal/src/app/knowledge-base/assets/add-new-vercel.png new file mode 100644 index 00000000000..7bd2dc85e4c Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/add-new-vercel.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/context-filters.png b/apps/portal/src/app/knowledge-base/assets/context-filters.png new file mode 100644 index 00000000000..05f57b28cea Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/context-filters.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/create-project-vercel.png b/apps/portal/src/app/knowledge-base/assets/create-project-vercel.png new file mode 100644 index 00000000000..7453eacff75 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/create-project-vercel.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/deploy-github.png b/apps/portal/src/app/knowledge-base/assets/deploy-github.png new file mode 100644 index 00000000000..a0558ba41f7 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/deploy-github.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/deploy-vercel.png b/apps/portal/src/app/knowledge-base/assets/deploy-vercel.png new file mode 100644 index 00000000000..0669da42233 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/deploy-vercel.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/inspect-console.png b/apps/portal/src/app/knowledge-base/assets/inspect-console.png new file mode 100644 index 00000000000..a611ed0b162 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/inspect-console.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/keys.png b/apps/portal/src/app/knowledge-base/assets/keys.png new file mode 100644 index 00000000000..d372453b1d0 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/keys.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/new-project-github.png b/apps/portal/src/app/knowledge-base/assets/new-project-github.png new file mode 100644 index 00000000000..1d4b2e88c57 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/new-project-github.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/new-project-name-github.png b/apps/portal/src/app/knowledge-base/assets/new-project-name-github.png new file mode 100644 index 00000000000..68af67b3955 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/new-project-name-github.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/new-project.png b/apps/portal/src/app/knowledge-base/assets/new-project.png new file mode 100644 index 00000000000..8cbc736a17a Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/new-project.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/permissions-soulbound.png b/apps/portal/src/app/knowledge-base/assets/permissions-soulbound.png new file mode 100644 index 00000000000..9af95de8c3d Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/permissions-soulbound.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/screenshot-console.png b/apps/portal/src/app/knowledge-base/assets/screenshot-console.png new file mode 100644 index 00000000000..cf2e3f46450 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/screenshot-console.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/set-approval-forall.png b/apps/portal/src/app/knowledge-base/assets/set-approval-forall.png new file mode 100644 index 00000000000..70a73d54bb3 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/set-approval-forall.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/soulbound-explorer.png b/apps/portal/src/app/knowledge-base/assets/soulbound-explorer.png new file mode 100644 index 00000000000..e8851eaabb2 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/soulbound-explorer.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/streamed-response.png b/apps/portal/src/app/knowledge-base/assets/streamed-response.png new file mode 100644 index 00000000000..a745cd36537 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/streamed-response.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/tab-console.png b/apps/portal/src/app/knowledge-base/assets/tab-console.png new file mode 100644 index 00000000000..dc16a86bf87 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/tab-console.png differ diff --git a/apps/portal/src/app/knowledge-base/assets/variables-vercel.png b/apps/portal/src/app/knowledge-base/assets/variables-vercel.png new file mode 100644 index 00000000000..ed0994c2a16 Binary files /dev/null and b/apps/portal/src/app/knowledge-base/assets/variables-vercel.png differ diff --git a/apps/portal/src/app/knowledge-base/get-started/page.mdx b/apps/portal/src/app/knowledge-base/get-started/page.mdx new file mode 100644 index 00000000000..4915e365b37 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/get-started/page.mdx @@ -0,0 +1,68 @@ +import { WalletIcon, FileIcon, MessageCircleIcon, BracesIcon, BotIcon, BlocksIcon } from "lucide-react"; +import { DocImage, createMetadata, FeatureCard, GithubTemplateCard, Stack, Grid, ArticleCard, ArticleIconCard } from "@doc"; +import { ExternalLink } from "lucide-react"; + +export const metadata = createMetadata({ + title: "thirdweb Knowledge Base", + + description: + "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.", +}); + +# Welcome to thirdweb Support! + +This section shows you how to leverage our Knowledge Base, request support, and understand our response process. + +--- + +## 1. thirdweb Resources + +Before opening a support ticket, check these resources: + +- **Documentation:** [thirdweb Docs](https://portal.thirdweb.com/) +- **Changelog:** Stay up to date with our latest releases: [thirdweb Changelog](https://portal.thirdweb.com/changelog) +- **Status Page:** [thirdweb Status](https://status.thirdweb.com/) +- **Guides & Troubleshooting:** Explore tutorials and tips: [thirdweb Guides](https://blog.thirdweb.com/guides/) +- **Templates:** [thirdweb Starters](https://github.com/thirdweb-example/) +- **Video Tutorials:** [YouTube](https://www.youtube.com/@thirdweb_) +- **Playground:** Test live in [thirdweb Playground](https://playground.thirdweb.com/) + +--- + +## 2. How to Request Support + +- **Submit a ticket** through our system: [thirdweb.com/support](https://thirdweb.com/support). +- Our team operates **worldwide** and will respond **as soon as possible**. + - *Response times may vary depending on issue severity and priority.* + - We’ll keep you updated on your ticket’s progress. +- For faster resolution, please include a minimal reproduction with step-by-step instructions. +- Found an issue in our open-source code? Submit a PR: [thirdweb-dev/js](https://github.com/thirdweb-dev/js). + +--- + +## 3. Response Time Expectations + +### Starter Plan + +- Estimated response time: **3 business days**. +- We aim to respond sooner when possible. + +### Growth Plan & Accelerate Customers + +- Estimated response time: **Within 48 business hours**. + +### Scale & Pro Plans + +- Estimated response time: **Within 2 business hours**. +- Customers on the **Scale** or **Pro** plans get a **dedicated Slack channel or Telegram group**. + +--- + +## Need Help? + +You can [submit a ticket](https://thirdweb.com/support), and we’ll be happy to help you! + + + + + diff --git a/apps/portal/src/app/knowledge-base/how-to/console-error-sharing/page.mdx b/apps/portal/src/app/knowledge-base/how-to/console-error-sharing/page.mdx new file mode 100644 index 00000000000..9aea48a1551 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/how-to/console-error-sharing/page.mdx @@ -0,0 +1,44 @@ +import { DocImage, Step, Steps } from "@doc"; +import ScreenshotConsole from "../../assets/screenshot-console.png"; +import TabConsole from "../../assets/tab-console.png"; +import Inspect from "../../assets/inspect-console.png"; + +# How to share your console log errors + +Follow these steps to capture and share your browser console errors: + + + + +Navigate to the page where you’re seeing errors. + + + +Right-click and choose **Inspect** (or **Inspect Element**) to open DevTools. + + + + + Click on the **Console** tab to view logs and errors. + + + + + Screenshot any red error messages in **Console**. + + + + + Send your screenshots to our support team. + + + + + +By following these steps, you’ll give us the full error context so we can resolve your issue quickly. + +--- + + +Still stuck? [**Contact our support team**](https://thirdweb.com/support) + diff --git a/apps/portal/src/app/knowledge-base/how-to/creating-soulbound-nfts/page.mdx b/apps/portal/src/app/knowledge-base/how-to/creating-soulbound-nfts/page.mdx new file mode 100644 index 00000000000..2f1dc873b4a --- /dev/null +++ b/apps/portal/src/app/knowledge-base/how-to/creating-soulbound-nfts/page.mdx @@ -0,0 +1,47 @@ +import { DocImage } from "@doc"; +import Soulbound from "../../assets/soulbound-explorer.png"; +import Permissions from "../../assets/permissions-soulbound.png"; + +# What is a Soulbound Token + +Let’s first understand what a Soulbound Token (SBT) is: + +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. + +## How to make your tokens Soulbound or Non-Transferrable + +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). + +If you prefer using the **Explorer**, follow these steps: + +1. **Connect your wallet** + Ensure your wallet is connected to the Dashboard/Explorer and set to the same network as your contract. + +2. **Select the correct network** + Verify the network selector (top-right) matches your contract’s deployment chain (e.g., Ethereum Mainnet, Goerli). + +3. **Open the Explorer** + In the thirdweb Dashboard, select your contract and switch to the **Explorer** tab. + +4. **Choose `revokeRole` under write** + The `revokeRole` function requires two inputs: **Role** and **Account**. + +5. **Convert `TRANSFER_ROLE` to bytes32** + Use a [keccak256 tool](https://emn178.github.io/online-tools/keccak_256.html) to hash the string `TRANSFER_ROLE`, then prefix with `0x`. + For example: + `0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c` + +6. **Set the account to the zero address** + Enter `0x0000000000000000000000000000000000000000` to revoke transfer rights from every wallet. + +7. **Confirm the on-chain transaction** + Click “write” and approve the transaction in your wallet. + + + +8. **Verify in Permissions** + Refresh the **Permissions** tab to confirm that `TRANSFER_ROLE` is revoked for the zero address. + + + +That’s it—your tokens are officially soulbound! diff --git a/apps/portal/src/app/knowledge-base/how-to/deploy-mint-template/page.mdx b/apps/portal/src/app/knowledge-base/how-to/deploy-mint-template/page.mdx new file mode 100644 index 00000000000..b22dca11013 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/how-to/deploy-mint-template/page.mdx @@ -0,0 +1,73 @@ +import { DocImage } from "@doc"; +import deployGithub from "../../assets/deploy-github.png"; +import newProject from "../../assets/new-project-github.png"; +import newProjectName from "../../assets/new-project-name-github.png"; +import newVercel from "../../assets/add-new-vercel.png"; +import createVercel from "../../assets/create-project-vercel.png"; +import variablesVercel from "../../assets/variables-vercel.png"; +import deployVercel from "../../assets/deploy-vercel.png"; + + + +# How to deploy an NFT Mint site template [NO CODE] + +## Prerequisites + +- [GitHub account](https://github.com) +- [thirdweb account](https://thirdweb.com/) +- [Vercel account](https://vercel.com/) + + +## Step-by-Step Guide + +### 1. Initial Setup + +- Navigate to the [NFT Minting Template repository](https://github.com/thirdweb-example/nft-minting-template) +- Click **Deploy with Vercel** + + + +### 2. Configure Git Repository + +- **Choose your Git provider** (GitHub, GitLab, or Bitbucket) +- **Set up your repository details**: + - **Git Scope**: Select your GitHub username or organization + - **Repository Name**: Enter a name (e.g., `my-nft-minting-website`) + - **Team**: Select your team if applicable + + + + + +### 3. Create Thirdweb Project + +- Go to the [thirdweb dashboard](https://thirdweb.com/team/~/~/) and create a new project +- Enter your project name (e.g., `NFT MINTING TEMPLATE`) +- Configure allowed domains: + - Add your custom domain (e.g., `mydomain.com`) + - Add `localhost:` for local development +- Click **Create** and save your Client ID and Secret Key + + + + + +### 4. Configure Environment Variables + +- In Vercel, add the following: + ![](https://prod-files-secure.s3.us-west-2.amazonaws.com/f6d1ff84-8c0e-4bcb-8dd6-edab3b3c175b/3ce22022-f27e-46cf-b460-2038d5e61dbe/image.png) + - `NEXT_PUBLIC_THIRDWEB_CLIENT_ID`: Your thirdweb Client ID + - `THIRDWEB_SECRET_KEY`: Your thirdweb Secret Key + - `NFT_CONTRACT_ADDRESS`: Your NFT contract address + - `NFT_CONTRACT_CHAIN_ID`: Chain ID (e.g., 43113 for Avalanche testnet) + - `NFT_CONTRACT_TOKEN_ID`: `0` for ERC-721 or the token ID for ERC-1155 + + + +### 5. Deploy + +- Click **Deploy** in the Vercel dashboard +- Wait for the build and deployment to complete +- Access your new mint site via the provided Vercel URL + + diff --git a/apps/portal/src/app/knowledge-base/layout.tsx b/apps/portal/src/app/knowledge-base/layout.tsx new file mode 100644 index 00000000000..b1f2b498b38 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/layout.tsx @@ -0,0 +1,18 @@ +import { DocLayout } from "@/components/Layouts/DocLayout"; +import { createMetadata } from "@doc"; +import { sidebar } from "./sidebar"; + +export default async function Layout(props: { children: React.ReactNode }) { + return ( + + {props.children} + + ); +} + +export const metadata = createMetadata({ + title: "thirdweb Knowledge Base", + + description: + "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.", +}); diff --git a/apps/portal/src/app/knowledge-base/onchain-common-errors/thirdweb-cli/device-link-error/page.mdx b/apps/portal/src/app/knowledge-base/onchain-common-errors/thirdweb-cli/device-link-error/page.mdx new file mode 100644 index 00000000000..d89a33a8169 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/onchain-common-errors/thirdweb-cli/device-link-error/page.mdx @@ -0,0 +1,25 @@ +# Issue linking device on the authorization page via Thirdweb CLI + +Encountering issues when linking a new device via the authorization page. + +### Error + +How to authorize your account using `secretKey` for the thirdweb CLI + +### Solution + +You can authorize the CLI with a `secretKey` in just a couple of steps: + +1. **Get your `secretKey`** + Head over to the thirdweb dashboard and generate a key: https://thirdweb.com/team/~/~/. + +2. **Deploy with your `secretKey`** + Run the following command: `npx thirdweb deploy -k secretKey` + +3. **Use the same pattern for other commands** + You can also use other methods like `upload`, `publish`, and `build` using the same format: + - `npx thirdweb upload -k secretKey` + - `npx thirdweb publish -k secretKey` + - `npx thirdweb build -k secretKey` + +That’s it! The CLI will now use your `secretKey` to authenticate every command. diff --git a/apps/portal/src/app/knowledge-base/page.mdx b/apps/portal/src/app/knowledge-base/page.mdx new file mode 100644 index 00000000000..4915e365b37 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/page.mdx @@ -0,0 +1,68 @@ +import { WalletIcon, FileIcon, MessageCircleIcon, BracesIcon, BotIcon, BlocksIcon } from "lucide-react"; +import { DocImage, createMetadata, FeatureCard, GithubTemplateCard, Stack, Grid, ArticleCard, ArticleIconCard } from "@doc"; +import { ExternalLink } from "lucide-react"; + +export const metadata = createMetadata({ + title: "thirdweb Knowledge Base", + + description: + "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.", +}); + +# Welcome to thirdweb Support! + +This section shows you how to leverage our Knowledge Base, request support, and understand our response process. + +--- + +## 1. thirdweb Resources + +Before opening a support ticket, check these resources: + +- **Documentation:** [thirdweb Docs](https://portal.thirdweb.com/) +- **Changelog:** Stay up to date with our latest releases: [thirdweb Changelog](https://portal.thirdweb.com/changelog) +- **Status Page:** [thirdweb Status](https://status.thirdweb.com/) +- **Guides & Troubleshooting:** Explore tutorials and tips: [thirdweb Guides](https://blog.thirdweb.com/guides/) +- **Templates:** [thirdweb Starters](https://github.com/thirdweb-example/) +- **Video Tutorials:** [YouTube](https://www.youtube.com/@thirdweb_) +- **Playground:** Test live in [thirdweb Playground](https://playground.thirdweb.com/) + +--- + +## 2. How to Request Support + +- **Submit a ticket** through our system: [thirdweb.com/support](https://thirdweb.com/support). +- Our team operates **worldwide** and will respond **as soon as possible**. + - *Response times may vary depending on issue severity and priority.* + - We’ll keep you updated on your ticket’s progress. +- For faster resolution, please include a minimal reproduction with step-by-step instructions. +- Found an issue in our open-source code? Submit a PR: [thirdweb-dev/js](https://github.com/thirdweb-dev/js). + +--- + +## 3. Response Time Expectations + +### Starter Plan + +- Estimated response time: **3 business days**. +- We aim to respond sooner when possible. + +### Growth Plan & Accelerate Customers + +- Estimated response time: **Within 48 business hours**. + +### Scale & Pro Plans + +- Estimated response time: **Within 2 business hours**. +- Customers on the **Scale** or **Pro** plans get a **dedicated Slack channel or Telegram group**. + +--- + +## Need Help? + +You can [submit a ticket](https://thirdweb.com/support), and we’ll be happy to help you! + + + + + diff --git a/apps/portal/src/app/knowledge-base/sidebar.tsx b/apps/portal/src/app/knowledge-base/sidebar.tsx new file mode 100644 index 00000000000..1006137db53 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/sidebar.tsx @@ -0,0 +1,78 @@ +import type { SideBar } from "@/components/Layouts/DocLayout"; + +import { BracesIcon, CodeIcon, RocketIcon } from "lucide-react"; + +export const sidebar: SideBar = { + name: "Support Knowledge Base", + links: [ + { + name: "Get Started", + href: "/knowledge-base/get-started", + icon: , + }, + { + separator: true, + }, + { + name: "thirdweb Resources", + isCollapsible: false, + links: [ + { + name: "How to", + icon: , + links: [ + { + name: "Creating Soulbound NFTs", + expanded: true, + href: "/knowledge-base/how-to/creating-soulbound-nfts", + }, + { + name: "Console Error Sharing", + expanded: true, + href: "/knowledge-base/how-to/console-error-sharing", + }, + { + name: "Deploy mint template", + expanded: true, + href: "/knowledge-base/how-to/deploy-mint-template", + }, + ], + }, + ], + }, + { + name: "Troubleshoot", + isCollapsible: false, + links: [ + { + name: "Onchain common errors", + icon: , + links: [ + { + name: "Thirdweb CLI: Device Link Error", + href: "/knowledge-base/onchain-common-errors/thirdweb-cli/device-link-error", + }, + ], + }, + { + name: "Contracts", + icon: , + links: [ + { + name: "Airdrop Contract", + href: "/knowledge-base/troubleshoot/contracts/airdrop-contract", + }, + { + name: "Embed Feature Not Found", + href: "/knowledge-base/troubleshoot/contracts/embed-feature-not-found", + }, + { + name: "Batch Upload", + href: "/knowledge-base/troubleshoot/contracts/batch-upload", + }, + ], + }, + ], + }, + ], +}; diff --git a/apps/portal/src/app/knowledge-base/troubleshoot/contracts/airdrop-contract/page.mdx b/apps/portal/src/app/knowledge-base/troubleshoot/contracts/airdrop-contract/page.mdx new file mode 100644 index 00000000000..759abab79c6 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/troubleshoot/contracts/airdrop-contract/page.mdx @@ -0,0 +1,48 @@ +import { DocImage } from "@doc"; +import setApproval from "../../../assets/set-approval-forall.png"; + + +# Airdrop Contract Troubleshooting + +Airdropping NFTs to your community is a popular way to provide utility in many NFT-based projects. Using the [airdrop contracts](https://thirdweb.com/explore/airdrop), you can airdrop any ERC20, ERC721, or ERC1155 tokens. + +To get started, here is a quick overview of how to airdrop NFTs: + +- Deploy your NFT/token contract and mint tokens +- Deploy the airdrop contract +- Approve the airdrop contract in your NFT contract via `approve` or `setApprovalForAll`. We recommend `setApprovalForAll` for large airdrops so you don’t need to approve each token ID individually. +- Enter your NFT/token parameters into the airdrop contract’s `airdrop` function and execute + + + +If you encounter an error after following these steps, verify the following: + +- You have enough funds in your wallet to cover gas fees +- The airdrop contract has been granted approval on the NFT contract. See the example below: + + + +- Your airdrop parameters use the correct formatting: + - **recipients** must be an array of quoted addresses: `["0x...","0x...","0x..."]` + - **token ID** must be an array of numeric IDs: `[0,1,2]` + +## Common Airdrop Issues + +1. NFTs aren’t minted/claimed +2. Trying to airdrop too many NFTs at once +3. Airdropping NFTs to invalid wallet addresses + +**NFTs aren’t minted/claimed** +Make sure you’ve minted the NFTs to your wallet first. You can only airdrop tokens you already own. + +**Trying to airdrop too many NFTs at once** +Most chains limit a single transaction to around 100 recipients. Split large lists into batches of 100 addresses or fewer. + +**Airdropping NFTs to invalid wallet addresses** +If you see `execution reverted: ERC1155: transfer to non ERC1155Receiver implementer`, one or more addresses in your list aren’t valid ERC1155 recipients. Remove any invalid addresses and try again. + +--- + +Can’t get this working? [**Contact our support team**](https://thirdweb.com/support) for help. diff --git a/apps/portal/src/app/knowledge-base/troubleshoot/contracts/batch-upload/page.mdx b/apps/portal/src/app/knowledge-base/troubleshoot/contracts/batch-upload/page.mdx new file mode 100644 index 00000000000..fae8a38ae6f --- /dev/null +++ b/apps/portal/src/app/knowledge-base/troubleshoot/contracts/batch-upload/page.mdx @@ -0,0 +1,23 @@ +# Batch Upload Issues + +Uploading large amounts of media for your drop contracts can sometimes fail. This guide will help you identify and resolve the most common causes. + +## Common Causes + +### 1. Oversized batches +Although our batch uploader technically supports up to 25 GB, we recommend splitting large uploads into smaller chunks—ideally 100 MB per batch, and no more than 1–2 GB at a time. If you still see errors, try uploading just 2–3 files as a quick test. + +### 2. Network interference +- **VPNs** can interrupt your connection—disable any active VPN during uploads. +- **Ad blockers** may block necessary requests—turn them off temporarily. +- **Anti-virus software** can also interfere—pause it while you upload. + +## Best Practices + +- Aim for 100 MB batches when possible. +- Keep each batch upload under 10 minutes to avoid timeout. +- Test with a small batch of 2–3 files to verify your setup before larger uploads. + +## Need More Help? + +If you’ve tried these steps and still encounter issues, [contact our support team](https://thirdweb.com/support). diff --git a/apps/portal/src/app/knowledge-base/troubleshoot/contracts/embed-feature-not-found/page.mdx b/apps/portal/src/app/knowledge-base/troubleshoot/contracts/embed-feature-not-found/page.mdx new file mode 100644 index 00000000000..cdbabac1d83 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/troubleshoot/contracts/embed-feature-not-found/page.mdx @@ -0,0 +1,38 @@ +import { createMetadata } from "@doc"; + +export const metadata = createMetadata({ + title: "Missing embed menu in contracts", + description: + "Troubleshooting guide for the deprecated embed menu feature in thirdweb contracts.", +}); + +# Missing embed Menu in Contracts + + +## Problem + +The embed menu in your thirdweb contract has been deprecated and will no longer appear in the dashboard—this can be confusing if you’ve used it before. Here are a few alternative solutions to embed contract functionality into your project: + +## Solution + +The embed feature has been deprecated. However, there are alternative solutions available for embedding contract functionality into a project: + +### Alternative Solutions + +1. **Use NFT Minting Templates** + - Deploy NFT minting pages using the following templates: + - **Vercel:** [NFT Minting Template](https://github.com/thirdweb-example/nft-minting-template) + - **Railway:** [NFT Minting Page for Railway](https://github.com/warengonzaga/thirdweb-nft-minting-page-railway) + - For a full no-code walkthrough, check out our [Deploy Mint Template guide](/knowledge-base/how-to/deploy-mint-template). + + + +2. **Configure API Key Settings** + - Ensure that your API keys are correctly set up to prevent authorization errors. + - Refer to the API Key Configuration guide: https://portal.thirdweb.com/account/api-keys/access + +## Additional Tips + +- If you experience issues deploying the templates, check your environment variables and API key configurations. +- Reach out to thirdweb support for further assistance if needed. +- **Join our [Telegram community](https://t.me/officialthirdweb)** for updates, changelogs, and new features. \ No newline at end of file diff --git a/apps/portal/src/app/knowledge-base/troubleshoot/page.mdx b/apps/portal/src/app/knowledge-base/troubleshoot/page.mdx new file mode 100644 index 00000000000..d90e588cd40 --- /dev/null +++ b/apps/portal/src/app/knowledge-base/troubleshoot/page.mdx @@ -0,0 +1,3 @@ +# Nebula Troubleshoot Guide + +For any issues you encounter while using Nebula, please [visit our support site](https://thirdweb.com/support). \ No newline at end of file diff --git a/apps/portal/src/app/page.tsx b/apps/portal/src/app/page.tsx index 15977e5051a..8ee6843cbb1 100644 --- a/apps/portal/src/app/page.tsx +++ b/apps/portal/src/app/page.tsx @@ -8,7 +8,6 @@ import { ReactIcon } from "../icons"; import { TypeScriptIcon } from "../icons"; import { BridgeIcon } from "../icons/products/BridgeIcon"; import { ConnectIcon } from "../icons/products/ConnectIcon"; -import { ContractsIcon } from "../icons/products/ContractsIcon"; import { EngineIcon } from "../icons/products/EngineIcon"; import { InsightIcon } from "../icons/products/InsightIcon"; import { NebulaIcon } from "../icons/products/NebulaIcon"; @@ -178,12 +177,6 @@ function LearningResourcesSection() { description="API interface for LLMs" icon={NebulaIcon} /> - ); diff --git a/apps/portal/src/icons/products/ContractsIcon.tsx b/apps/portal/src/icons/products/ContractsIcon.tsx deleted file mode 100644 index 849a9fc6fcd..00000000000 --- a/apps/portal/src/icons/products/ContractsIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -export function ContractsIcon({ className }: { className?: string }) { - return ( - - - - ); -}