Skip to content

[Portal] Fix: Broken /connect Links #7679

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
## Features

- Support for React & React-Native
- First party support for [Embedded Wallets](https://portal.thirdweb.com/connect/embedded-wallet/overview) (social/email login)
- First party support for [Account Abstraction](https://portal.thirdweb.com/connect/account-abstraction/overview)
- First party support for [Embedded Wallets](https://portal.thirdweb.com/wallets) (social/email login)
- First party support for [Account Abstraction](https://portal.thirdweb.com/wallets/sponsor-gas)
- Instant connection to any chain with RPC Edge integration
- Integrated IPFS upload/download
- UI Components for connection, transactions, nft rendering
Expand Down
2 changes: 1 addition & 1 deletion apps/portal/public/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1017,7 +1017,7 @@
* [getProfiles](https://portal.thirdweb.com/references/typescript/v5/getProfiles): Gets the linked profiles for the connected in-app or ecosystem wallet.
* [getUserEmail](https://portal.thirdweb.com/references/typescript/v5/getUserEmail): Retrieves the authenticated user email for the active in-app wallet.
* [getUserPhoneNumber](https://portal.thirdweb.com/references/typescript/v5/getUserPhoneNumber): Retrieves the authenticated user phone number for the active embedded wallet.
* [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet): Creates an app scoped wallet for users based on various authentication methods. Full list of available authentication methods [here](https://portal.thirdweb.com/connect/wallet/sign-in-methods/configure).
* [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet): Creates an app scoped wallet for users based on various authentication methods. Full list of available authentication methods [here](https://portal.thirdweb.com/wallets/users).
* [linkProfile](https://portal.thirdweb.com/references/typescript/v5/linkProfile): Connects a new profile (and new authentication method) to the current user.
* [preAuthenticate](https://portal.thirdweb.com/references/typescript/v5/preAuthenticate): Pre-authenticates the user based on the provided authentication strategy. Use this function to send a verification code to the user's email or phone number.
* [privateKeyToAccount](https://portal.thirdweb.com/references/typescript/v5/privateKeyToAccount): Get an `Account` object from a private key.
Expand Down
169 changes: 80 additions & 89 deletions apps/portal/redirects.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// @ts-check

const unrealEngineRedirects = {
"/unreal-engine/blueprints/private-key-wallet":
"unreal-engine/blueprints/in-app-wallet",
Expand Down Expand Up @@ -206,7 +204,7 @@ const reactRedirects = {
};

const solidityRedirects = {
"/interact/overview": "/connect/blockchain-api",
"/interact/overview": "/wallets",
"/solidity": "/contracts/build",
"/solidity/base-contract/erc721delayedreveal":
"/contracts/build/base-contracts/erc-721/delayed-reveal",
Expand Down Expand Up @@ -545,98 +543,89 @@ const unityRedirects = {

const walletRedirects = {
//auth
"/auth": "/connect/auth",
"/auth/client-frameworks/react": "/connect/auth/client-frameworks/react",
"/auth/client-frameworks/react-native":
"/connect/auth/client-frameworks/react-native",
"/auth/faqs": "/connect/auth/faq",
"/auth/getting-started": "/connect/auth/get-started",
"/auth/how-auth-works": "/connect/auth/how-it-works",
"/auth/how-auth-works/auth-api": "/connect/auth/how-it-works/api",
"/auth/how-auth-works/json-web-tokens": "/connect/auth/how-it-works/jwt",
"/auth/how-auth-works/sign-in-with-wallet": "/connect/auth/how-it-works/siwe",
"/auth/integrations/firebase": "/connect/auth/integrations/firebase",
"/auth/integrations/next-auth": "/connect/auth/integrations/next-auth",
"/auth/integrations/supabase": "/connect/auth/integrations/supabase",
"/auth/server-frameworks/express": "/connect/auth/server-frameworks/express",
"/auth/server-frameworks/next": "/connect/auth/server-frameworks/next",
"/auth/wallet-configuration": "/connect/auth/wallet-configuration",
"/auth": "/wallets/auth",
"/auth/client-frameworks/react": "/wallets",
"/auth/client-frameworks/react-native": "/wallets",
"/auth/faqs": "/wallets/auth",
"/auth/getting-started": "/wallets/auth",
"/auth/how-auth-works": "/wallets/auth",
"/auth/how-auth-works/auth-api": "/wallets/auth",
"/auth/how-auth-works/json-web-tokens": "/wallets/auth",
"/auth/how-auth-works/sign-in-with-wallet": "/wallets/auth",
"/auth/integrations/firebase": "/wallets/auth",
"/auth/integrations/next-auth": "/wallets/auth",
"/auth/integrations/supabase": "/wallets/auth",
"/auth/server-frameworks/express": "/wallets/auth",
"/auth/server-frameworks/next": "/wallets/auth",
"/auth/wallet-configuration": "/wallets/auth",
//connect
"/connect/architecture": "/connect",
"/connect/auth/client-frameworks/react": "/connect/auth",
"/connect/auth/client-frameworks/react-native": "/connect/auth",
"/connect/auth/faqs": "/connect/auth",
"/connect/auth/get-started": "/connect/auth",
"/connect/auth/how-it-works": "/connect/auth",
"/connect/auth/how-it-works/api": "/connect/auth",
"/connect/auth/how-it-works/jwt": "/connect/auth",
"/connect/auth/how-it-works/siwe": "/connect/auth",
"/connect/auth/integrations/firebase": "/connect/auth",
"/connect/auth/integrations/next-auth": "/connect/auth",
"/connect/auth/integrations/supabase": "/connect/auth",
"/connect/auth/server-frameworks/express": "/connect/auth",
"/connect/auth/server-frameworks/next": "/connect/auth",
"/connect/auth/wallet-configuration": "/connect/auth",
"/connect/connect-wallet": "/connect/connect",
"/connect/connect-wallet/auth": "/connect/sign-in",
"/connect/connect-wallet/button-title": "/connect/sign-in",
"/connect/connect-wallet/class-name": "/connect/sign-in",
"/connect/connect-wallet/custom-button": "/connect/sign-in",
"/connect/connect-wallet/custom-ui": "/connect/sign-in/custom-ui",
"/connect/connect-wallet/drop-down-positions": "/connect/sign-in",
"/connect/connect-wallet/hide-testnet-faucet": "/connect/sign-in",
"/connect/connect-wallet/modal-size": "/connect/sign-in",
"/connect/connect-wallet/modal-title": "/connect/sign-in",
"/connect/connect-wallet/privacy-policy": "/connect/sign-in",
"/connect/connect-wallet/switch-chain": "/connect/sign-in",
"/connect/connect-wallet/terms-of-service": "/connect/sign-in",
"/connect/connect-wallet/theme": "/connect/sign-in",
"/connect/connect-wallet/wallet-providers": "/connect/connect",
"/connect/connect-wallet/welcome-screen": "/connect/sign-in",
"/connect/ecosystem/ecosystem-premissions":
"/connect/wallet/ecosystem/permissions",
"/connect/architecture": "/wallets",
"/connect/auth/client-frameworks/react": "/wallets/auth",
"/connect/auth/client-frameworks/react-native": "/wallets/auth",
"/connect/auth/faqs": "/wallets/auth",
"/connect/auth/get-started": "/wallets/auth",
"/connect/auth/how-it-works": "/wallets/auth",
"/connect/auth/how-it-works/api": "/wallets/auth",
"/connect/auth/how-it-works/jwt": "/wallets/auth",
"/connect/auth/how-it-works/siwe": "/wallets/auth",
"/connect/auth/integrations/firebase": "/wallets/auth",
"/connect/auth/integrations/next-auth": "/wallets/auth",
"/connect/auth/integrations/supabase": "/wallets/auth",
"/connect/auth/server-frameworks/express": "/wallets/auth",
"/connect/auth/server-frameworks/next": "/wallets/auth",
"/connect/auth/wallet-configuration": "/wallets/auth",
"/connect/connect-wallet": "/wallets",
"/connect/connect-wallet/auth": "/wallets",
"/connect/connect-wallet/button-title": "/wallets",
"/connect/connect-wallet/class-name": "/wallets",
"/connect/connect-wallet/custom-button": "/wallets",
"/connect/connect-wallet/custom-ui": "/wallets",
"/connect/connect-wallet/drop-down-positions": "/wallets",
"/connect/connect-wallet/hide-testnet-faucet": "/wallets",
"/connect/connect-wallet/modal-size": "/wallets",
"/connect/connect-wallet/modal-title": "/wallets",
"/connect/connect-wallet/privacy-policy": "/wallets",
"/connect/connect-wallet/switch-chain": "/wallets",
"/connect/connect-wallet/terms-of-service": "/wallets",
"/connect/connect-wallet/theme": "/wallets",
"/connect/connect-wallet/wallet-providers": "/wallets",
"/connect/connect-wallet/welcome-screen": "/wallets",
"/connect/ecosystem/ecosystem-premissions": "/wallets/ecosystem/set-up",

"/connect/ecosystem/faq": "/connect/wallet/faq",
"/connect/ecosystem/get-started": "/connect/wallet/get-started",
"/connect/ecosystem/integrating-partners":
"/connect/wallet/ecosystem/integrating-partners",
"/connect/ecosystem/overview": "/connect/wallet/overview",
"/connect/ecosystem/pregenerate-wallets":
"/connect/wallet/pregenerate-wallets",
"/connect/ecosystem/security": "/connect/wallet/security",
"/connect/ecosystem/wallet-explorer": "/connect/wallet/ecosystem/portal",
"/connect/faqs": "/connect/sign-in",
"/connect/in-app-wallet/faqs": "/connect/wallet/faq",
"/connect/in-app-wallet/get-started": "/connect/wallet/get-started",
"/connect/ecosystem/faq": "/wallets/faq",
"/connect/ecosystem/get-started": "/wallets",
"/connect/ecosystem/integrating-partners": "/wallets/ecosystem/set-up",
"/connect/ecosystem/overview": "/wallets/ecosystem/set-up",
"/connect/ecosystem/pregenerate-wallets": "/wallets",
"/connect/ecosystem/security": "/wallets/security",
"/connect/ecosystem/wallet-explorer": "/wallets/ecosystem/set-up",
"/connect/faqs": "/wallets/faq",
"/connect/in-app-wallet/faqs": "/wallets/faq",
"/connect/in-app-wallet/get-started": "/wallets",
"/connect/in-app-wallet/guides/export-private-key":
"/connect/wallet/user-management/export-private-key",
"/connect/in-app-wallet/guides/get-user-details":
"/connect/wallet/user-management/get-user-profiles",
"/wallets/export-private-key",
"/connect/in-app-wallet/guides/get-user-details": "/wallets/get-users",
"/connect/in-app-wallet/guides/link-multiple-profiles":
"/connect/wallet/user-management/link-multiple-identity",
"/wallets/link-profiles",
"/connect/in-app-wallet/guides/retrieve-linked-profiles":
"/connect/wallet/user-management/get-user-profiles",
"/wallets/get-users",

"/connect/in-app-wallet/overview": "/connect/wallet/overview",
"/connect/in-app-wallet/security": "/connect/wallet/security",
"/connect/sign-in": "/connect/sign-in/overview",
"/connect/sign-in/ConnectButton": "/connect/wallet/get-started",
"/connect/sign-in/ConnectEmbed": "/connect/wallet/get-started",
"/connect/sign-in/Custom-UI": "/connect/wallet/get-started",
"/connect/sign-in/methods/email-and-phone":
"/connect/wallet/sign-in-methods/configure",
"/connect/sign-in/methods/external-wallets":
"/connect/wallet/sign-in-methods/external-wallets",
"/connect/sign-in/methods/guest-mode":
"/connect/wallet/sign-in-methods/guest",
"/connect/sign-in/methods/social-logins":
"/connect/wallet/sign-in-methods/configure",
"/connect/in-app-wallet/overview": "/wallets",
"/connect/in-app-wallet/security": "/wallets/security",
"/connect/sign-in": "/wallets/auth",
"/connect/sign-in/ConnectButton": "/wallets",
"/connect/sign-in/ConnectEmbed": "/wallets",
"/connect/sign-in/Custom-UI": "/wallets",
"/connect/sign-in/methods/email-and-phone": "/wallets/users",
"/connect/sign-in/methods/external-wallets": "/wallets/external-wallets",
"/connect/sign-in/methods/guest-mode": "/wallets",
"/connect/sign-in/methods/social-logins": "/wallets/users",

"/connect/sign-in/overview": "/connect/wallet/overview",
"/connect/usage-with-react-native-sdk": "/connect/sign-in",
"/connect/usage-with-react-sdk": "/connect/sign-in",
"/connect/usage-with-typescript-sdk": "/connect/sign-in",
"/connect/usage-with-unity-sdk": "/connect/sign-in",
"/connect/sign-in/overview": "/wallets/auth",
"/connect/usage-with-react-native-sdk": "/wallets",
"/connect/usage-with-react-sdk": "/wallets",
"/connect/usage-with-typescript-sdk": "/wallets",
"/connect/usage-with-unity-sdk": "/wallets",

//embedded wallet
"/embedded-wallet": "/wallets/embedded-wallet/overview",
Expand Down Expand Up @@ -1022,6 +1011,8 @@ const otherRedirects = {
"/wallet/get-started/overview": "/connect/wallet/overview",
// connect > wallets
"/connect": "/wallets",
"/connect/auth": "/wallets/auth",
"/connect/:path*": "/wallets/:path*",
"/connect/wallet/sign-in-methods/configure": "/wallets/users",
"/connect/wallet/server": "/wallets/server",
"/connect/account-abstraction/get-started": "/wallets/sponsor-gas",
Expand Down Expand Up @@ -1061,7 +1052,7 @@ const v4ToV5Redirects = {
"/typescript/v4/:path*": "/typescript/v5",
"/unity/v4": "/unity/v5",
"/unity/v4/:path*": "/unity/v5",
"/wallet-sdk/:path*": "/connect",
"/wallet-sdk/:path*": "/wallets",
};

const payRedirects = {
Expand Down
2 changes: 1 addition & 1 deletion apps/portal/src/app/account/api-keys/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ API Keys consists of two components:

To obtain an API Key, follow the Create Project step in the [Create API Key](/account/api-keys/create) guide.

You can find your API Key in the project settings of your dashboard.
You can find your API Key in the project settings of your dashboard.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const metadata = createMetadata({

# IThirdwebWallet.Authenticate

Login to your [thirdweb Auth](https://portal.thirdweb.com/connect/auth)-integrated backend.
Login to your [thirdweb Auth](/wallets/auth)-integrated backend.

## Usage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ The smart account is automatically deployed the first time you send a transactio

### Pricing

Smart server wallets have no additional costs to use with your Engine instance. Transactions sent from smart backend wallets follow the [same billing model as regular account abstraction transactions with thirdweb](/connect/account-abstraction/infrastructure#pricing--billing).
Smart accounts need to be deployed on each chain. This costs gas and is billed to your account like any other transaction.
Smart server wallets have no additional costs to use with your Engine instance. Transactions sent from smart backend wallets follow the same billing model as regular account abstraction transactions with thirdweb.
Smart accounts need to be deployed on each chain. This costs gas and is billed to your account like any other transaction.
2 changes: 1 addition & 1 deletion apps/portal/src/app/engine/v2/features/relayers/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ import { ThirdwebProvider } from "thirdweb/react";
</ThirdwebProvider>;
```

Next prompt the user to connect a wallet. See [ConnectButton](https://portal.thirdweb.com/connect/sign-in/ConnectButton) for customization options.
Next prompt the user to connect a wallet. See [ConnectButton](/references/typescript/v5/ConnectButton) for customization options.

```tsx
import { ConnectButton } from "thirdweb/react";
Expand Down
8 changes: 1 addition & 7 deletions apps/portal/src/app/engine/v2/troubleshooting/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,6 @@ The backend wallet you are sending the transaction with does not have sufficient
Confirm if the backend wallet is a valid admin for this account.
If you are using Session Keys, confirm they are not close to or already expired.

### Received "AA21 didn’t pay prefund" error

**What it means**

Your thirdweb API key used by Engine is not properly configured to use Account Abstraction, or you have a [sponsorship rule](https://portal.thirdweb.com/connect/account-abstraction/sponsorship-rules) that has been exceeded.

**How to resolve**

Confirm if the API key is tied to an account with valid payment. Also confirm if there are any sponsorship rule for the Engine API key.
Confirm if the API key is tied to an account with valid payment. Also confirm if there are any sponsorship rule for the Engine API key.
4 changes: 0 additions & 4 deletions apps/portal/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,6 @@ export default function RootLayout({

<div className="relative flex min-h-screen flex-col">
<StickyTopContainer>
{/* <Banner
href="https://thirdweb.com/payments"
text="Let users pay with whatever they have without leaving your app"
/> */}
<Header />
</StickyTopContainer>

Expand Down
16 changes: 8 additions & 8 deletions apps/portal/src/app/nebula/get-started/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import NewProject from "../assets/new-project.png";
import KeysSetup from "../assets/keys.png";

export const metadata = createMetadata({
image: {
title: "Get Started",
icon: "nebula",
},
title: "Get started with thirdweb Nebula: Set up Guide",
description:
"How to start building web3 capable apps with thirdweb Nebula, the most powerful AI to interact with the blockchain.",
image: {
title: "Get Started",
icon: "nebula",
},
title: "Get started with thirdweb Nebula: Set up Guide",
description:
"How to start building web3 capable apps with thirdweb Nebula, the most powerful AI to interact with the blockchain.",
});


Expand Down Expand Up @@ -181,4 +181,4 @@ Congratulations! You have successfully set up the Nebula API and executed a tran
### Additional Resources

- [Nebula API Documentation](https://portal.thirdweb.com/nebula/api-reference)
- [thirdweb SDK Documentation](https://portal.thirdweb.com/typescript/v5)
- [thirdweb SDK Documentation](https://portal.thirdweb.com/typescript/v5)
Loading
Loading