Create Wallet For Authenticated User
Changed onCreates a new wallet of specified type for the authenticated user. If called for a user who already has a wallet, returns the existing wallet. Supports both custodial and non-custodial wallet types. Uses client-side API key authentication.
API scope required: wallets.create
Request
- Base URL: https://staging.crossmint.com/api
- URL: https://staging.crossmint.com/api/2025-06-09/wallets/me
- Auth: none declared. Required headers: X-API-KEY
Headers
API key required for authentication
Request body
Example request
{
"config": {
"adminSigner": {
"type": "external-wallet",
"address": "0x1234567890123456789012345678901234567890"
},
"recoveryMethods": {
"type": "external-wallet",
"address": "0x1234567890123456789012345678901234567890"
},
"delegatedSigners": [
{
"signer": {
"type": "passkey",
"id": "cWtP7gmZbd98HbKUuGXx5Q",
"name": "hgranger",
"publicKey": {
"x": "38035223810536273945556366218149112558607829411547667975304293530457502824247",
"y": "91117823763706733837104303008228095481082989039135234750508288790583476078729"
}
},
"scopes": [
{
"type": "transfer",
"tokenLocator": "stellar:usdc",
"recipients": [
"GDUCX62IF76FFIYRNI25LJDS2V43QEZDY4YNF2DJWVIASN5LKX76Q4TW"
],
"spendingLimit": {
"amount": "100",
"interval": 86400
}
}
]
}
],
"creationSeed": "0"
},
"alias": "my-usdc-wallet"
}Response
Returns an existing wallet (200) if one already exists for this user, or creates and returns a new wallet (201).
Example response
{
"type": "smart",
"config": {
"adminSigner": {
"type": "passkey",
"id": "cWtP7gmZbd98HbKUuGXx5Q",
"name": "hgranger",
"publicKey": {
"x": "38035223810536273945556366218149112558607829411547667975304293530457502824247",
"y": "91117823763706733837104303008228095481082989039135234750508288790583476078729"
},
"validatorContractVersion": "0.2.0",
"locator": "passkey:cWtP7gmZbd98HbKUuGXx5Q"
}
},
"address": "0x1234567890123456789012345678901234567890",
"owner": "email:test@example.com",
"alias": "my-usdc-wallet"
}Changes
- breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - warning
removed the request property
// - warning
removed the request property
// - warning
removed the request property
// - info
added the new optional request property
// - info
added the new optional request property
// - info
added the new optional request property
// - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status
- breaking
- breaking
the
//request property's minItems was increased to1 - breaking
the
//request property's minItems was increased to1 - breaking
removed
subschema #1: External Wallet Signersubschema #2: Server Signersubschema #3: API Key Signersubschema #4: Email Signersubschema #5: Phone Signersubschema #6: Quorum Signerfrom the//request propertyoneOflist - breaking
removed
subschema #1: External Wallet Signersubschema #2: Server Signersubschema #3: Email Signersubschema #4: Phone Signersubschema #5: API Key Signersubschema #6: Quorum Signerfrom the//request propertyoneOflist - breaking
the
//request property type changed from no type toarray - breaking
the
//request property type changed from no type toarray - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status
- breaking