You are viewing docs for the previous version of the Wallets SDK. We recommend upgrading to V1.
See the updated version of this page or the V1 migration guide.
Prerequisites
- API Key: Ensure you have an API key with the scopes:
wallets.create.
Try it Live
Experience wallet creation in action with this interactive demo. Create a Solana testnet wallet using just your email address:Create a Wallet
- React
- Node.js
- React Native
- Swift
- REST
import { useWallet } from '@crossmint/client-sdk-react-ui';
const { getOrCreateWallet } = useWallet();
const wallet = await getOrCreateWallet({
chain: "base-sepolia",
signer: {
type: "email",
email: "user@example.com"
},
});
import { CrossmintWallets, createCrossmint } from "@crossmint/wallets-sdk";
const crossmint = createCrossmint({
apiKey: "<your-server-api-key>",
});
const crossmintWallets = CrossmintWallets.from(crossmint);
const wallet = await crossmintWallets.createWallet({
chain: "base-sepolia",
signer: {
type: "external-wallet",
address: "0x1234567890123456789012345678901234567890"
},
});
import { useWallet } from '@crossmint/client-sdk-react-native-ui';
const { getOrCreateWallet } = useWallet();
const wallet = await getOrCreateWallet({
chain: "base-sepolia",
signer: {
type: "email",
email: "user@example.com"
},
});
import CrossmintClient
import Wallet
let sdk = CrossmintSDK.shared
let wallet = try await sdk.crossmintWallets.getOrCreateWallet(
chain: .baseSepolia,
signer: .email(email: "user@example.com")
)
Parameters
The chain to use the wallet on.See all supported chains for more details. On staging only testnet chains are supported.Note: For EVM-compatible chains, wallets are created for all
chains as part of the shared address space derived from the same private key. However, to
interact with a specific chain using the SDK, you must instantiate a wallet object per chain.
This allows the SDK to correctly route interactions to the appropriate network configuration.
An optional identifier for the wallet, used to organize multiple wallets on the same chain.Aliases are:
- Unique per wallet type and chain.
- Must use only lowercase letters, numbers, underscores, or hyphens (
a-z,0-9,_,-). - No spaces or empty strings allowed.
trading, long-term-holdings, treasuryReturns
The created wallet.
curl --request POST \
--url https://staging.crossmint.com/api/2025-06-09/wallets \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <x-api-key>' \
--data '{
"chainType": "evm",
"config": {
"adminSigner": {
"type": "email",
"email": "user@example.com"
}
},
"owner": "email:user@example.com"
}'

