POST
https://api.stableyard.fi
/
sdk
/
v1
/
remove-address
curl -X POST https://api.stableyard.fi/sdk/v1/remove-address \
  -H "Authorization: Basic $(echo -n $STABLEYARD_APP_ID:$STABLEYARD_APP_SECRET | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "user_abc123",
    "address": "0x9876543210fedcba9876543210fedcba98765432",
    "signature": "0x...",
    "message": "Remove address 0x987654... from my Stableyard account: user_abc123"
  }'
{
  "success": true,
  "message": "Address removed successfully",
  "data": {
    "userId": "user_abc123",
    "addresses": [
      { "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f...", "chainType": "evm" }
    ],
    "removedAddress": "0x9876543210fedcba9876543210fedcba98765432"
  },
  "requestId": "req_xyz789"
}
Disconnect a wallet from a Money Account. Use this when a wallet is compromised, lost, or no longer in use.
Cannot remove last address — A Money Account must always have at least one linked address. If you need to replace the only address, use /add-address first, then remove the old one.

Authentication

Authorization
string
required
Basic authentication. Value: Basic base64(STABLEYARD_APP_ID:STABLEYARD_APP_SECRET). Obtain your credentials from the Stableyard SDK.

Body Parameters

userId
string
required
Money Account’s unique identifier
address
string
required
The wallet address to remove
signature
string
required
Signature from one of the remaining linked addresses authorizing the removal
message
string
required
The message that was signed (for verification)

Response

success
boolean
Indicates if the request was successful
data
object
message
string
Status message
curl -X POST https://api.stableyard.fi/sdk/v1/remove-address \
  -H "Authorization: Basic $(echo -n $STABLEYARD_APP_ID:$STABLEYARD_APP_SECRET | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "user_abc123",
    "address": "0x9876543210fedcba9876543210fedcba98765432",
    "signature": "0x...",
    "message": "Remove address 0x987654... from my Stableyard account: user_abc123"
  }'
{
  "success": true,
  "message": "Address removed successfully",
  "data": {
    "userId": "user_abc123",
    "addresses": [
      { "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f...", "chainType": "evm" }
    ],
    "removedAddress": "0x9876543210fedcba9876543210fedcba98765432"
  },
  "requestId": "req_xyz789"
}

Security Flow

For compromised wallet scenarios:
1. User still has access to another linked wallet
2. Sign removal message with the safe wallet
3. Call /remove-address to unlink compromised wallet
4. Compromised wallet can no longer authorize transactions
Best practice — Encourage users to link multiple wallets (e.g., hot wallet + hardware wallet) so they can recover if one is compromised.