Skip to main content
Para’s REST API enforces a uniqueness constraint: each combination of type + scheme + userIdentifier can only have one wallet. Attempting to create a duplicate returns 409 Conflict. To create multiple wallets per user, use CUSTOM_ID with unique identifiers that you manage.

Solution

Instead of using EMAIL or PHONE, use CUSTOM_ID with a unique identifier for each wallet:
PatternExampleUse Case
{userId}-{purpose}user_123-savingsNamed wallet purposes
{userId}-{index}user_123-0, user_123-1Sequential wallets
{userId}-{uuid}user_123-a1b2c3d4Unlimited unique wallets

Example

Create multiple EVM wallets for the same user:
# Savings wallet
curl -X POST https://api.beta.getpara.com/v1/wallets \
  -H "X-API-Key: sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "EVM",
    "userIdentifier": "user_123-savings",
    "userIdentifierType": "CUSTOM_ID"
  }'

# Checking wallet
curl -X POST https://api.beta.getpara.com/v1/wallets \
  -H "X-API-Key: sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "EVM",
    "userIdentifier": "user_123-checking",
    "userIdentifierType": "CUSTOM_ID"
  }'
Both requests succeed because each has a unique userIdentifier.

Common Use Cases

  • Fintech: Savings, checking, and emergency fund accounts
  • Payments: Category-based wallets (groceries, entertainment, subscriptions)
  • Multi-chain: Same user with wallets on EVM, Solana, and Cosmos

Best Practices

  1. Store the mapping: Keep a database record linking your user ID, custom identifier, and Para wallet ID
  2. Use descriptive identifiers: Choose clear names like savings or trading rather than wallet1
  3. Add randomness if needed: If you get 409 Conflict, append a timestamp or UUID to guarantee uniqueness
  4. Use wallet ID for operations: When signing transactions, use the Para wallet ID (not your custom identifier)