curl --request POST \
--url https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signers \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <x-api-key>' \
--data '{
"signer": "external-wallet:0x1234567890123456789012345678901234567890",
"chain": "base"
}'
{
"type": "external-wallet",
"id": "cWtP7gmZbd98HbKUuGXx5Q",
"name": "hgranger",
"publicKey": {
"x": "38035223810536273945556366218149112558607829411547667975304293530457502824247",
"y": "91117823763706733837104303008228095481082989039135234750508288790583476078729"
},
"validatorContractVersion": "0.2.0",
"locator": "external-wallet:DzaYNi6XtWt9DNwFV61bzWEiaSxfTgWbFDgFmurJzwdo",
"address": "DzaYNi6XtWt9DNwFV61bzWEiaSxfTgWbFDgFmurJzwdo",
"transaction": {
"chainType": "solana",
"walletType": "smart",
"onChain": {
"transaction": "4B9yzZoEV45cngasy9dP2MVxhZ2iro72eqdKitTj62pqFYHk4wVoR4NCc3xkEamWbFGXLjVotyPrDqEn11WUYHoq98b5aKCSDUrLWaQDZgb3xLxF1EvaY82Vui7Ntbv682tYnu5Ngnv4Eun1wrDJ6r4aRsUSQ3XF3jvNq8bRMn4HavBjPyErQSgXX9ytCDKntCEQcY3wfMHYbRFg5zgFU1QCqhuoLa5oBpZLCUYT8DCYu3Ado7W4xzP5aCAAwVd2tj8iAnwJEujQvBnr7wWkf2mCS1cNoCTbCFAvNVaVaau6vXBWKZqS7sDNmUD3KLQVqLwxhLLNeRuvUTkD5VQ5D21VcDiYWQWQTuYYAcQ3RUhn4Vt4ymijgRGbUXZHoeN26UHoGSBFJJ7gjqCruAtFXQZxHRDKSWN9jhYXugPYVVXSpGFA5BYWBuztUtEMF4u96tk6YTgPGdkTgrQybkNxRwbVCbpsKRG1kAbjQgBxDLAX89eMCZVbzWXnAgGA6aDBQPLAyQru8awZBDasrirnxCSQq9cWwMLePQGhY5gJZykswFKtyYF4CHeto",
"lastValidBlockHeight": 343486121
},
"id": "30ef7527-eb5a-4862-92de-aa96947ee705",
"status": "pending",
"approvals": {
"required": 1,
"pending": [
{
"signer": {
"type": "external-wallet",
"address": "GsMTPi8utYnuWakS8uvPah3UKd13dWcAshirnNmXDr3d",
"locator": "external-wallet:GsMTPi8utYnuWakS8uvPah3UKd13dWcAshirnNmXDr3d"
},
"message": "2kwN1iuY6Y6Br2i5D1QphaS28H7vDdAiwtABgtRdYqjx7s85rRwqF9y6iVBdv9dDZ8F1JAZo8iQdFBAx2Eg9tL3P4sbAznPZgkZcGrbUSCe5jTZ7ULZrcSd377SGEjsZcwx7h7ozrUKB6FnjHB7wGaCqEeeUXE2CfCjC1SjEc8ZzZeyNmeEv5hJSkGsK62syoAE4V5ScZs7idhxXWzpeJiRt3wfWJRevr1pJY7BBd8HaEYurXtXqwCox1uzQnnuZTiUNu7cUWUajYXBWUae4NJGJxmtFJvqnPAa5HXB4nZWXMDdcBis4tQkLCfFT6GXMauQTFCaKmcMgLRh218n51nTNopR7gTaY66ysRH536wmxt9dLqkS9okG3HF5GEXufXPLX6iT7e7"
}
],
"submitted": []
},
"createdAt": "2025-01-20T13:49:08.910Z"
}
}
Create a delegated signer for a smart wallet with optional restrictions around permissions and expiry date.
API scope required: wallets.create
curl --request POST \
--url https://staging.crossmint.com/api/2025-06-09/wallets/{walletLocator}/signers \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <x-api-key>' \
--data '{
"signer": "external-wallet:0x1234567890123456789012345678901234567890",
"chain": "base"
}'
{
"type": "external-wallet",
"id": "cWtP7gmZbd98HbKUuGXx5Q",
"name": "hgranger",
"publicKey": {
"x": "38035223810536273945556366218149112558607829411547667975304293530457502824247",
"y": "91117823763706733837104303008228095481082989039135234750508288790583476078729"
},
"validatorContractVersion": "0.2.0",
"locator": "external-wallet:DzaYNi6XtWt9DNwFV61bzWEiaSxfTgWbFDgFmurJzwdo",
"address": "DzaYNi6XtWt9DNwFV61bzWEiaSxfTgWbFDgFmurJzwdo",
"transaction": {
"chainType": "solana",
"walletType": "smart",
"onChain": {
"transaction": "4B9yzZoEV45cngasy9dP2MVxhZ2iro72eqdKitTj62pqFYHk4wVoR4NCc3xkEamWbFGXLjVotyPrDqEn11WUYHoq98b5aKCSDUrLWaQDZgb3xLxF1EvaY82Vui7Ntbv682tYnu5Ngnv4Eun1wrDJ6r4aRsUSQ3XF3jvNq8bRMn4HavBjPyErQSgXX9ytCDKntCEQcY3wfMHYbRFg5zgFU1QCqhuoLa5oBpZLCUYT8DCYu3Ado7W4xzP5aCAAwVd2tj8iAnwJEujQvBnr7wWkf2mCS1cNoCTbCFAvNVaVaau6vXBWKZqS7sDNmUD3KLQVqLwxhLLNeRuvUTkD5VQ5D21VcDiYWQWQTuYYAcQ3RUhn4Vt4ymijgRGbUXZHoeN26UHoGSBFJJ7gjqCruAtFXQZxHRDKSWN9jhYXugPYVVXSpGFA5BYWBuztUtEMF4u96tk6YTgPGdkTgrQybkNxRwbVCbpsKRG1kAbjQgBxDLAX89eMCZVbzWXnAgGA6aDBQPLAyQru8awZBDasrirnxCSQq9cWwMLePQGhY5gJZykswFKtyYF4CHeto",
"lastValidBlockHeight": 343486121
},
"id": "30ef7527-eb5a-4862-92de-aa96947ee705",
"status": "pending",
"approvals": {
"required": 1,
"pending": [
{
"signer": {
"type": "external-wallet",
"address": "GsMTPi8utYnuWakS8uvPah3UKd13dWcAshirnNmXDr3d",
"locator": "external-wallet:GsMTPi8utYnuWakS8uvPah3UKd13dWcAshirnNmXDr3d"
},
"message": "2kwN1iuY6Y6Br2i5D1QphaS28H7vDdAiwtABgtRdYqjx7s85rRwqF9y6iVBdv9dDZ8F1JAZo8iQdFBAx2Eg9tL3P4sbAznPZgkZcGrbUSCe5jTZ7ULZrcSd377SGEjsZcwx7h7ozrUKB6FnjHB7wGaCqEeeUXE2CfCjC1SjEc8ZzZeyNmeEv5hJSkGsK62syoAE4V5ScZs7idhxXWzpeJiRt3wfWJRevr1pJY7BBd8HaEYurXtXqwCox1uzQnnuZTiUNu7cUWUajYXBWUae4NJGJxmtFJvqnPAa5HXB4nZWXMDdcBis4tQkLCfFT6GXMauQTFCaKmcMgLRh218n51nTNopR7gTaY66ysRH536wmxt9dLqkS9okG3HF5GEXufXPLX6iT7e7"
}
],
"submitted": []
},
"createdAt": "2025-01-20T13:49:08.910Z"
}
}
API key required for authentication
A wallet locator can be of the format:
<walletAddress>
email:<email>:<chainType>[:<walletType>]
(walletType defaults to 'smart')userId:<userId>:<chainType>[:<walletType>]
(white label user example)phoneNumber:<phoneNumber>:<chainType>[:<walletType>]
twitter:<handle>:<chainType>[:<walletType>]
x:<handle>:<chainType>[:<walletType>]
me:<chainType>[:<walletType>]
(Use when calling from the client side with a client API key)Parameters for creating a EVM delegated signer
The delegated signer has been successfully created.
Complete delegated signer response including the signer and authorization transaction Response schema for a registered Passkey signer including validator contract details
Was this page helpful?