23.62. DD 61: Batched Withdraw#
- Design status:
Accepted
- Implementation status:
Implemented
- DD shepherd:
TBD
- Historical contributors:
Özgür Kesim
- First published:
2025-04-12
- Last substantive change:
2025-04-12
- Implementation evidence:
taler-typescript-core (2022-05-03), exchange (2025-01-09)
- Normative references:
core/exchange/post-withdraw.rst
Note
This DD was reserved as a design placeholder and was never expanded. The
current POST /withdraw specification is normative and supersedes the
former endpoint named batch_withdraw.
23.62.1. Summary#
We replace the previous single-coin withdraw protocol with a variant that allows for batched withdrawal of multiple coins in only one (or two, in case of Clause-Schnorr) roundtrips.
23.62.2. Motivation#
The original single-coin withdraw requires too many roundtrips, one for each coin, whenever a client wants to withdraw multiple coins.
23.62.3. Requirements#
One idempotent request must be able to withdraw multiple coins from the same reserve.
23.62.4. Proposed Solution#
Use the current POST /withdraw request with arrays of denominations and
coin envelopes, as specified by the normative exchange API.
23.62.5. Definition of Done#
[x] batched withdrawal implemented by wallet-core
[x] current
POST /withdrawendpoint specified and implemented[x] former
batch_withdrawendpoint removed
23.62.6. Alternatives#
Retain one request per coin, with the associated extra round trips.
23.62.7. Drawbacks#
The request and response are larger and clients must persist all coin inputs before sending the request.
23.62.8. Discussion / Q&A#
(This should be filled in with results from discussions on mailing lists / personal communication.)