commit 54a937157e82b165d81ddaf978aa4f3d9fec0db6
parent de7780bc4dfb7ffe15b46e6be3fd761c0527c828
Author: Antoine A <>
Date: Wed, 18 Feb 2026 15:52:52 +0100
dd80: christian with crazy ideas
Diffstat:
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;