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.
Server signers are the standard for server-side and agent operations. Unlike API key signers — which used your primary API key as the signing mechanism itself — server signers are dedicated signing credentials, giving you stronger isolation and a smaller blast radius if credentials are ever rotated or compromised.API key signers are deprecated and will be removed in a future release. To take advantage of the improved security model, migrate any server-side or agent workflows to server signers.
Configuration
- React
- Node.js
- React Native
- REST
import { useWallet } from '@crossmint/client-sdk-react-ui';
const { getOrCreateWallet } = useWallet();
const wallet = await getOrCreateWallet({
chain: "evm",
signer: {
type: "api-key",
},
});
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: "evm",
signer: {
type: "api-key",
},
});
import { useWallet } from '@crossmint/client-sdk-react-native-ui';
const { getOrCreateWallet } = useWallet();
const wallet = await getOrCreateWallet({
chain: "evm",
signer: {
type: "api-key",
},
});
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": "api-key"
}
}
}'
const url = 'https://staging.crossmint.com/api/2025-06-09/wallets';
const payload = {
chainType: "evm",
config: {
adminSigner: {
type: "api-key"
}
}
};
const options = {
method: 'POST',
headers: {
'X-API-KEY': '<x-api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
import requests
url = "https://staging.crossmint.com/api/2025-06-09/wallets"
payload = {
"chainType": "evm",
"config": {
"adminSigner": {
"type": "api-key"
}
}
}
headers = {
"X-API-KEY": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())

