Skip to content

Commit d4539b2

Browse files
committed
docs: tweaks and minor wording revision
docs: update external wallet docs
1 parent 4f26f88 commit d4539b2

File tree

8 files changed

+220
-88
lines changed

8 files changed

+220
-88
lines changed

apps/portal/src/app/connect/sidebar.tsx

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -50,43 +50,6 @@ export const sidebar: SideBar = {
5050
icon: <ExternalLink />,
5151
},
5252
{ separator: true },
53-
{
54-
name: "Get Started",
55-
isCollapsible: false,
56-
links: [
57-
{
58-
name: "TypeScript",
59-
href: "/typescript/v5",
60-
icon: <TypeScriptIcon />,
61-
},
62-
{
63-
name: "React",
64-
href: "/react/v5",
65-
icon: <ReactIcon />,
66-
},
67-
{
68-
name: "React Native",
69-
href: "/react-native/v5",
70-
icon: <ReactIcon />,
71-
},
72-
{
73-
name: "Dotnet",
74-
href: "/dotnet",
75-
icon: <DotNetIcon />,
76-
},
77-
{
78-
name: "Unity",
79-
href: "/unity",
80-
icon: <UnityIcon />,
81-
},
82-
{
83-
name: "Unreal Engine",
84-
href: "/unreal-engine",
85-
icon: <UnrealEngineIcon />,
86-
},
87-
],
88-
},
89-
{ separator: true },
9053
{
9154
name: "Learn",
9255
isCollapsible: false,
@@ -595,5 +558,42 @@ export const sidebar: SideBar = {
595558
},
596559
],
597560
},
561+
{ separator: true },
562+
{
563+
name: "Platform Api References",
564+
isCollapsible: false,
565+
links: [
566+
{
567+
name: "TypeScript",
568+
href: "/typescript/v5",
569+
icon: <TypeScriptIcon />,
570+
},
571+
{
572+
name: "React",
573+
href: "/react/v5",
574+
icon: <ReactIcon />,
575+
},
576+
{
577+
name: "React Native",
578+
href: "/react-native/v5",
579+
icon: <ReactIcon />,
580+
},
581+
{
582+
name: "Dotnet",
583+
href: "/dotnet",
584+
icon: <DotNetIcon />,
585+
},
586+
{
587+
name: "Unity",
588+
href: "/unity",
589+
icon: <UnityIcon />,
590+
},
591+
{
592+
name: "Unreal Engine",
593+
href: "/unreal-engine",
594+
icon: <UnrealEngineIcon />,
595+
},
596+
],
597+
},
598598
],
599599
};

apps/portal/src/app/connect/wallet/get-started/overview/page.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ We have a playground that lets you see all the various options via our prebuilt
3838
href="https://playground.thirdweb.com/connect/sign-in/button"
3939
/>
4040

41-
## Starting from existing project
41+
## Integrate into existing project
4242

4343
Install the required package:
4444

apps/portal/src/app/connect/wallet/overview/page.mdx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Callout, DocImage, createMetadata, FeatureCard } from "@doc";
1+
import { ArticleIconCard, Callout, DocImage, createMetadata, FeatureCard } from "@doc";
2+
import { WalletsConnectIcon } from "@/icons"
23
import customModal from "./assets/custom-modals.png";
34
import EcosystemWalletOverview from "./assets/ecosystem-wallet.png";
45

@@ -16,7 +17,7 @@ export const metadata = createMetadata({
1617

1718
A flexible sign-up flow that accommodates different preferences is critical when onboarding users. thirdweb offers multiple wallet solutions to meet various integration needs:
1819

19-
1. **Connect** - Traditional wallet connection with 350+ providers
20+
1. **External Wallets** - Traditional wallet connection with 350+ providers
2021
2. **In-App Wallet** - Seamless onboarding with email, social, and passkey options
2122
3. **Ecosystem Wallet** - Branded wallet service for cross-application authentication
2223

@@ -48,9 +49,9 @@ A flexible sign-up flow that accommodates different preferences is critical when
4849
description="Match your applications branding"
4950
iconUrl="/icons/feature-cards/customize.svg"
5051
/>
51-
<FeatureCard
52+
<FeatureCard
5253
title="Gasless"
53-
description="Enable free transactions with smart accounts"
54+
description="Enable free transactions with smart accounts"
5455
iconUrl="/icons/feature-cards/gasless.svg"
5556
/>
5657

@@ -75,7 +76,7 @@ A flexible sign-up flow that accommodates different preferences is critical when
7576

7677
| SOLUTION | BEST FOR | PRICING |
7778
|----------|----------|----------|
78-
| Connect | Applications needing traditional EOA wallet integration | Free |
79+
| External Wallets | Applications needing traditional EOA wallet integration | Free |
7980
| In-App Wallet | Mainstream applications requiring seamless onboarding | [Free up to 1,000 MAW, then $0.02/MAW](https://thirdweb.com/pricing) |
8081
| Ecosystem Wallet | Organizations building branded wallet networks | [From $250/mo per instance](https://thirdweb.com/pricing) |
8182

@@ -86,12 +87,11 @@ A flexible sign-up flow that accommodates different preferences is critical when
8687
- **DeFi & NFT** - Traditional wallet connection and fiat on-ramps
8788
- **Chain Ecosystems** - Unified accounts across chain applications
8889

89-
### Integration Options
90-
91-
| OPTION | BEST FOR |
92-
| ---------------------------------------------------- | ---------------------------------------------------------------------- |
93-
| [ConnectButton](/connect/sign-in/ConnectButton) | Developers who want an easy-to-integrate button with modal. |
94-
| [ConnectEmbed](/connect/sign-in/ConnectEmbed) | Developers who want an easy-to-integrate full sign-in page experience. |
95-
| [Custom UI (useConnect)](/connect/sign-in/Custom-UI) | Developers who want complete customization over the modal branding. |
90+
<ArticleIconCard
91+
icon={WalletsConnectIcon}
92+
title="Getting started"
93+
description="See our get started guide for quickly getting up and running with thirdweb wallets on the various supported platform."
94+
href="/wallet/get-started/overview"
95+
/>
9696

9797
<DocImage src={customModal} />
Lines changed: 146 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,148 @@
1+
import { ArticleIconCard, Callout } from "@doc";
2+
import {
3+
WalletsAuthIcon,
4+
WalletsConnectIcon,
5+
ReactIcon,
6+
TypeScriptIcon,
7+
UnityIcon,
8+
DotNetIcon,
9+
ExternalLinkIcon,
10+
UnrealEngineIcon
11+
} from "@/icons"
12+
113
# External wallets
214

3-
thirdweb supports a number of first-party web3 wallets such as Metamask and Phantom.
4-
5-
## Add externally owned wallets
6-
7-
```tsx
8-
import { ConnectButton } from "thirdweb/react";
9-
import { createWallet } from "thirdweb/wallets";
10-
11-
const wallets = [
12-
createWallet("io.metamask"),
13-
createWallet("com.coinbase.wallet"),
14-
createWallet("me.rainbow"),
15-
];
16-
17-
function Example() {
18-
return (
19-
<div>
20-
<ConnectButton client={client} wallets={wallets} />
21-
</div>
22-
);
23-
}
24-
```
25-
26-
[View full list of supported wallets.](/typescript/v5/supported-wallets)
15+
thirdweb supports over 350+ first-party web3 wallets. For the full list, please consult [this list](/typescript/v5/supported-wallets).
16+
17+
You can use an external wallet in many ways. We've outlined these different use cases below:
18+
19+
| USAGE | BEST FOR |
20+
|----------|---------- |
21+
| Connect to site | Applications simply needing web3 wallet connectivity |
22+
| Authenticate into your site | Applications requiring authentication with existing web3 users |
23+
| Authenticate into a thirdweb wallet (either in-app or ecosystem) | Applications looking to provide a seamless web3 application with minimal disruptions and prompts |
24+
25+
The good news is that thirdweb cover each and every one of this use case!
26+
27+
Read on to find out how it's done:
28+
29+
## Connecting External Wallets
30+
31+
External wallets are perfect for applications that want to integrate with existing web3 users. These users typically already have wallets like MetaMask, Coinbase Wallet, or Rainbow installed and are familiar with web3 concepts.
32+
33+
<Callout variant="info" title='Limitations'>
34+
Your backend will not know about the user's wallet.
35+
This is fine if the user's wallet is used to sign transactions and interact with the blockchain directly.
36+
37+
If you need your backend to be aware of the user's wallet, see [SIWE](#authenticating-with-external-wallets).
38+
</Callout>
39+
40+
### Implementation
41+
42+
We have code snippets and guide for various wallet connecting options below:
43+
44+
<ArticleIconCard
45+
icon={WalletsConnectIcon}
46+
title="Connecting to an external wallet"
47+
description="How to get started connecting your application to an external wallet."
48+
href="/typescript/v5/supported-wallets"
49+
/>
50+
51+
## Authenticating with External Wallets
52+
53+
Authentication with external wallets using Sign-In with Ethereum (SIWE) enables your backend to securely verify user wallet ownership. This is essential for applications requiring user-specific data or authenticated actions.
54+
55+
<Callout variant="info" title='Key Difference'>
56+
Unlike simple wallet connections, SIWE authentication creates a session between your backend and the user's wallet, enabling secure, authenticated API calls.
57+
58+
However, users will still require to sign prompts when interacting with the blockchain via their wallets. If you want an invisible web3 experience, consider using [thirdweb wallets](#authenticating-with-external-wallets-into-thirdweb-wallets).
59+
</Callout>
60+
61+
### Implementation
62+
63+
<ArticleIconCard
64+
icon={WalletsAuthIcon}
65+
title="Sign In With Ethereum"
66+
description="A whole dedicated guides covering everything you need to know about SIWE."
67+
href="/connect/auth"
68+
/>
69+
70+
## Authenticating with External Wallets into thirdweb Wallets
71+
72+
thirdweb wallets provide a seamless web3 experience with minimal prompts and disruptions. This will provide you, the developer with full control of how the user interacts with your application.
73+
74+
Note, however, that the wallet interacting with your application will be a thirdweb wallet, not the user's external wallet. While we provide methods to export keys and see how the external wallet and thirdweb wallet are linked, if your app requires the user's external wallet, you should use [SIWE](#authenticating-with-external-wallets) instead.
75+
76+
### Implementation
77+
78+
#### In App Wallet
79+
80+
<div className="my-4 grid gap-2 md:grid-cols-2 lg:grid-cols-3">
81+
<ArticleIconCard
82+
title="TypeScript"
83+
icon={TypeScriptIcon}
84+
description="Configure logging in with an external wallet for ecosystem wallets in TypeScript"
85+
href="/typescript/v5/inAppWallet#login-with-siwe"
86+
/>
87+
<ArticleIconCard
88+
title="React"
89+
icon={ReactIcon}
90+
description="Configure logging in with an external wallet for ecosystem wallets in React"
91+
href="/react/v5/in-app-wallet/get-started#choose-authentication-methods"
92+
/>
93+
{/* TODO: Add react native specific getting started for ecosystem wallets */}
94+
<ArticleIconCard
95+
title="React Native"
96+
icon={ReactIcon}
97+
description="Configure logging in with an external wallet for ecosystem wallets in React Native"
98+
href="/react/v5/in-app-wallet/get-started#choose-authentication-methods"
99+
/>
100+
<ArticleIconCard
101+
title=".NET"
102+
icon={DotNetIcon}
103+
description="Connect ecosystem wallets in .NET"
104+
href="/dotnet/wallets/providers/in-app-wallet#login-methods"
105+
/>
106+
<ArticleIconCard
107+
title="Unity"
108+
icon={UnityIcon}
109+
description="Configure logging in with an external wallet for ecosystem wallets in Unity"
110+
href="/unity/v5/wallets/in-app-wallet#login-with-siwe"
111+
/>
112+
</div>
113+
114+
#### Ecosystem Wallet
115+
116+
<div className="my-4 grid gap-2 md:grid-cols-2 lg:grid-cols-3">
117+
<ArticleIconCard
118+
title="TypeScript"
119+
icon={TypeScriptIcon}
120+
description="Configure logging in with an external wallet for ecosystem wallets in TypeScript"
121+
href="/typescript/v5/ecosystemWallet#logging-into-an-ecosystem-wallet"
122+
/>
123+
<ArticleIconCard
124+
title="React"
125+
icon={ReactIcon}
126+
description="Configure logging in with an external wallet for ecosystem wallets in React"
127+
href="/react/v5/ecosystem-wallet/get-started#configuring-auth-strategies"
128+
/>
129+
{/* TODO: Add react native specific getting started for ecosystem wallets */}
130+
<ArticleIconCard
131+
title="React Native"
132+
icon={ReactIcon}
133+
description="Configure logging in with an external wallet for ecosystem wallets in React Native"
134+
href="/react/v5/ecosystem-wallet/get-started#configuring-auth-strategies"
135+
/>
136+
<ArticleIconCard
137+
title=".NET"
138+
icon={DotNetIcon}
139+
description="Connect ecosystem wallets in .NET"
140+
href="/dotnet/wallets/providers/ecosystem-wallet#login-methods"
141+
/>
142+
<ArticleIconCard
143+
title="Unity"
144+
icon={UnityIcon}
145+
description="Configure logging in with an external wallet for ecosystem wallets in Unity"
146+
href="/unity/v5/wallets/ecosystem-wallet#login-with-siwe"
147+
/>
148+
</div>

apps/portal/src/app/connect/wallet/sign-in-methods/guest/page.mdx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,6 @@ export const metadata = createMetadata({
2222

2323
Sometimes users want to get started using your app without signing in. You can now give users an in-memory "guest account" that can then be converted into a standard account by linking another auth method.
2424

25-
<Callout variant='info' title="Guest Mode Support">
26-
Guest mode is supported in both Ecosystem Wallets and In-App Wallets.
27-
28-
The examples below show how to use Guest Mode with In-App Wallets, but the same principles apply to Ecosystem Wallets.
29-
</Callout>
30-
3125
## Logging in with Guest Mode
3226

3327
In general, logging in with guest mode is the same as configuring any other login method in the platform of your choice. See the [login methods overview](/connect/wallet/sign-in-methods/overview) for more information on configuring your login options.
@@ -105,9 +99,12 @@ In general, logging in with guest mode is the same as configuring any other logi
10599

106100
## Making the Guest Wallet Permanent
107101

108-
When your user is ready, [link any other auth method](/connect/in-app-wallet/guides/link-multiple-profiles) so they can access their account in the future.
102+
When your user is ready, link any other auth method so they can access their account in the future.
109103

110104
### In App Wallet
105+
106+
Below are the guides for linking a new identity for in-app wallet on the various platforms:
107+
111108
<div className="my-4 grid gap-2 md:grid-cols-2 lg:grid-cols-3">
112109
<ArticleIconCard
113110
title="TypeScript"
@@ -143,6 +140,9 @@ When your user is ready, [link any other auth method](/connect/in-app-wallet/gui
143140
</div>
144141

145142
### Ecosystem Wallet
143+
144+
Below are the guides for linking a new identity for ecosystem wallet on the various platforms:
145+
146146
<div className="my-4 grid gap-2 md:grid-cols-2 lg:grid-cols-3">
147147
<ArticleIconCard
148148
title="TypeScript"
@@ -177,6 +177,8 @@ When your user is ready, [link any other auth method](/connect/in-app-wallet/gui
177177
/>
178178
</div>
179179

180+
## Wrapping Up
181+
180182
Your user can now access this same wallet with their Google account.
181183

182184
While it is not linked to any other identity, the lifetime of the guest wallet for any given user will last until they clear their browser storage.

apps/portal/src/app/connect/wallet/sign-in-methods/overview/page.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,17 +126,20 @@ Most authentication option are that straight forward. However, some options requ
126126
<ArticleIconCard
127127
href="/wallet/sign-in-methods/guest"
128128
icon={UserIcon}
129-
title="Learn more about guest mode"
129+
title="Guest Mode"
130+
description="Learn more about guest mode"
130131
/>
131132
<ArticleIconCard
132133
href="/wallet/sign-in-methods/external-wallets"
133134
icon={WalletsConnectIcon}
134-
title="Learn more about external wallet authentication"
135+
title="External Wallet"
136+
description="Learn more about external wallet authentication"
135137
/>
136138
<ArticleIconCard
137139
href="/wallet/sign-in-methods/custom-auth/overview"
138140
icon={EcosystemWalletsIcon}
139-
title="Learn more about custom authentication with your own auth system"
141+
title="Custom Authentication"
142+
description="Learn more about custom authentication with your own auth system"
140143
/>
141144
</div>
142145

0 commit comments

Comments
 (0)