/api/drd/list/remove

GET

Removes coins from the caller's private white/black lists in the DRD. AN-authenticated, owner-only. Removing a coin that is not listed is not an error.

Parameters

Name Type Required Description
sn integer No Serial number of the coin that authenticates the request. The coin is loaded from the wallet's Bank or Fracked folder. Omit to use the QMail identity coin instead.
denomination integer No Optional safety check when sn is given: must match the denomination of the coin found for that serial number (-8 to 6).
wallet_path string No Wallet holding the auth coin. Defaults to the Default wallet. Only used together with sn.
entries string No* Comma-separated entries, each denomination:sn. Max 200 per request. *Either entries or the single-entry parameters below.
listed_denomination integer No* Single-entry form: denomination of the coin to remove.
listed_sn integer No* Single-entry form: serial number of the coin to remove.

Responses

Success Response (200)

The fan-out fields are shared by every DRD endpoint: pass_count / fail_count / no_response_count total 25, quorum is true when 13 or more RAIDA servers accepted, and raida_results holds one entry per server (25 entries; truncated in the examples below). Status 250 is success; failed entries include an error string.

{
    "command": "drd-list-remove",
    "success": true,
    "entries_sent": 1,
    "pass_count": 25,
    "fail_count": 0,
    "no_response_count": 0,
    "quorum": true,
    "raida_results": [
        { "raida": 0, "success": true, "status": 250 },
        { "raida": 1, "success": true, "status": 250 }
    ]
}

Error Responses

400 Bad Request

Malformed entry (expected denomination:sn).

{
    "error": true,
    "message": "Invalid entries item: expected den:sn",
    "code": 400
}

404 Not Found

The auth coin was not found in the wallet.

{
    "error": true,
    "message": "Auth coin not found in wallet (Bank/Fracked)",
    "code": 404
}

502 Bad Gateway

No RAIDA server accepted the request. The body names the dominant failure status and includes the full per-server detail.

{
    "error": true,
    "message": "No RAIDA accepted the list removal",
    "code": 502,
    "raida_status_code": 200,
    "detail": "Invalid AN",
    "pass_count": 0,
    "fail_count": 25,
    "no_response_count": 0,
    "quorum": false,
    "raida_results": [
        { "raida": 0, "success": false, "status": 200, "error": "Invalid AN" }
    ]
}

Examples

cURL Example

curl -X GET "http://localhost:8080/api/drd/list/remove?sn=9840&entries=0:11111"

JavaScript Example

fetch(`http://localhost:8080/api/drd/list/remove?sn=9840&entries=0:11111`)
    .then(r => r.json())
    .then(data => console.log(data.success ? 'Removed' : `Error: ${data.message}`));

Python Example

import requests

url = 'http://localhost:8080/api/drd/list/remove'
data = requests.get(url, params={'sn': 9840, 'entries': '0:11111'}).json()
print('Removed' if data.get('success') else f"Error: {data.get('message')}")

Notes

  • Requests fan out to all 25 RAIDA servers in parallel; the client owns consistency. On partial success (pass_count < 25), re-issue the same request to bring stragglers up to date.
  • This operation is AN-authenticated: the auth coin's per-RAIDA Authenticity Numbers are sent with the request, and each server verifies them against its coin database (status 200 = wrong AN, 40 = unknown coin).
  • Without an sn parameter the QMail identity coin from the Mail wallet is used, so QMail users manage their directory entry with their mail identity.
  • Removing an entry that does not exist succeeds — the call is idempotent.
  • Note the entry format here is denomination:sn (no type) — the entry is removed whichever list it was on.