taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 54a937157e82b165d81ddaf978aa4f3d9fec0db6
parent de7780bc4dfb7ffe15b46e6be3fd761c0527c828
Author: Antoine A <>
Date:   Wed, 18 Feb 2026 15:52:52 +0100

dd80: christian with crazy ideas

Diffstat:
Mdesign-documents/080-short-wire-subject.rst | 29++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/design-documents/080-short-wire-subject.rst b/design-documents/080-short-wire-subject.rst @@ -193,12 +193,14 @@ mathematical fariness across any alphabet size. - CH_YUH: BASE32 encode and trunc N chars - NZ_SBI: BASE32 encode and trunc 36 char split in 3 chunk of 12 char - BTC: trunc and encode in segwit address +- URI: the subject derivation depends on the underlying system but is similar .. ts:def:: TransferSubject // Union discriminated by the "type" field. type TransferSubject = | SimpleSubject + | UriSubject | BitcoinSubject | NzSbiSubject; @@ -207,16 +209,32 @@ mathematical fariness across any alphabet size. interface SimpleSubject { // Subject for system accepting large subjects type: "SIMPLE"; + + // Amount to transfer + credit_amount: Amount; // Encoded string containing either the full key and transfer type or a derived short subject subject: string; } + +.. ts:def:: UriSubject + + interface UrlSubject { + // Subject for system accepting prepared payments + type: "URI"; + + // Withdrawal confirmation URI + uri: string; + } .. ts:def:: BitcoinSubject interface BitcoinSubject { // Subject for Bitcoin networks type: "BTC"; + + // Amount to transfer + credit_amount: Amount; // Encoded bitcoin address to add as recipent whith minimum amount. address: string; @@ -227,6 +245,9 @@ mathematical fariness across any alphabet size. interface NzSbiSubject { // Subject for New Zealand Settlement Before Interchange system type: "NZ_SBI"; + + // Amount to transfer + credit_amount: Amount; // 12 chars to set in the Particulars field particulars: string; @@ -250,12 +271,14 @@ Sometimes some clients will have more restriction than others. We will sometimes type SubjectFormat = | "SIMPLE" | "CH_YUH" + | "URI" | "NZ_SBI" | "BTC"; The backend will expose the supported formats in its ``/config`` endpoint. - "SIMPLE" & "CH_YUH" -> SimpleSubject +- "URI" -> UriSubject - "BTC" -> BitcoinSubject - "NZ_SBI" -> NzSbiSubject @@ -350,9 +373,9 @@ API // Subject format requested format: SubjectFormat; - - // Optional expiration date, null or never will use a default expiration - expiration?: Timestamp; + + // Amount to transfer + credit_amount: Amount; // Optional mapping public key that will be used in the encoded subject instead map?: EddsaPublicKey;