curl --request PUT \
--url https://staging.crossmint.com/api/2025-06-09/users/{userLocator}/linked-wallets/{address} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"chain": "base"
}
'{
"address": "0x1234567890abcdef1234567890abcdef12345678",
"chain": "ethereum",
"ownership": {
"verified": true
},
"type": "external-wallet"
}Link External Wallet to User
Link an external wallet address to a user. Optionally provide a proof to verify ownership.
API scope required: users.create
curl --request PUT \
--url https://staging.crossmint.com/api/2025-06-09/users/{userLocator}/linked-wallets/{address} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"chain": "base"
}
'{
"address": "0x1234567890abcdef1234567890abcdef12345678",
"chain": "ethereum",
"ownership": {
"verified": true
},
"type": "external-wallet"
}Authorizations
API key required for authentication
Path Parameters
A user locator can be of the format:
email:<email>userId:<userId>phoneNumber:<phoneNumber>twitter:<handle>x:<handle>
"email:user@example.com"
"userId:507f1f77bcf86cd799439011"
"userId:did:example:cm4lr5piw0h6t1bjho0onryql"
"phoneNumber:+12125551234"
"twitter:johndoe"
"x:@johndoe"
Body
The blockchain of the wallet
abstract, abstract-testnet, apechain, aptos, arbitrum, arbitrum-sepolia, arbitrumnova, arc, arc-testnet, astar-zkevm, avalanche, avalanche-fuji, base, base-goerli, base-sepolia, bsc, bsc-testnet, celo, celo-sepolia, chiliz, chiliz-spicy-testnet, coti, coti-testnet, curtis, ethereum, ethereum-goerli, ethereum-sepolia, flow, flow-testnet, hedera, hedera-testnet, hypersonic-testnet, lightlink, lightlink-pegasus, mantle, mantle-sepolia, mode, mode-sepolia, optimism, optimism-goerli, optimism-sepolia, plume, plume-testnet, polygon, polygon-amoy, polygon-mumbai, rari, rari-testnet, robinhood-chain, robinhood-chain-testnet, scroll, scroll-sepolia, sei-atlantic-2-testnet, sei-pacific-1, shape, shape-sepolia, skale-nebula, skale-nebula-testnet, solana, soneium, soneium-minato-testnet, space, space-testnet, stellar, story, story-testnet, sui, tempo, tempo-testnet, u2u-nebulas, u2u-solaris, verify-testnet, viction, viction-testnet, world-chain, world-chain-sepolia, xai, xai-sepolia-testnet, xion, zenchain-testnet, zkatana, zkyoto, zora, zora-goerli, zora-sepolia "solana"
A signed message proving ownership of the wallet: a base64 signature by the wallet itself, or, for a Squads Smart Account vault on Solana, signatures by its members.
Show child attributes
Show child attributes
Response
Wallet linked to user
The wallet address
"0x1234567890abcdef1234567890abcdef12345678"
The blockchain of the wallet
abstract, abstract-testnet, apechain, aptos, arbitrum, arbitrum-sepolia, arbitrumnova, arc, arc-testnet, astar-zkevm, avalanche, avalanche-fuji, base, base-goerli, base-sepolia, bsc, bsc-testnet, celo, celo-sepolia, chiliz, chiliz-spicy-testnet, coti, coti-testnet, curtis, ethereum, ethereum-goerli, ethereum-sepolia, flow, flow-testnet, hedera, hedera-testnet, hypersonic-testnet, lightlink, lightlink-pegasus, mantle, mantle-sepolia, mode, mode-sepolia, optimism, optimism-goerli, optimism-sepolia, plume, plume-testnet, polygon, polygon-amoy, polygon-mumbai, rari, rari-testnet, robinhood-chain, robinhood-chain-testnet, scroll, scroll-sepolia, sei-atlantic-2-testnet, sei-pacific-1, shape, shape-sepolia, skale-nebula, skale-nebula-testnet, solana, soneium, soneium-minato-testnet, space, space-testnet, stellar, story, story-testnet, sui, tempo, tempo-testnet, u2u-nebulas, u2u-solaris, verify-testnet, viction, viction-testnet, world-chain, world-chain-sepolia, xai, xai-sepolia-testnet, xion, zenchain-testnet, zkatana, zkyoto, zora, zora-goerli, zora-sepolia "ethereum"
Ownership verification status of the wallet
- Option 1
- Option 2
Show child attributes
Show child attributes
The type of linked wallet
external-wallet "external-wallet"
Was this page helpful?

