lsd0009

LSD0009: The GNU Taler Protocol
Log | Files | Refs | README

test-case-1.md (37323B)


      1 ~~~ pseudocode
      2 exchange.master_pub  = 3cb5e9823db2b335fdb3f284ae960e56be8b081c6819b8
      3                        b0217f38b095b4313b
      4 exchange.priv        = 1bf4149fa644b3c7f2bf02da4703ff2de3fa160dce0c75
      5                        0eabfa0f7ac70a2442
      6 exchange.pub         = 4c130aae3246831808a162e2d4330de394e5f0d7dff75a
      7                        80f3fa045b1a43eabb
      8 exchange.url         = https://exchange.taler.example.org/
      9 denom₀.pub.n         = ba42b9e75e48847bab175ed4797384d68a430fd849a914
     10                        aa68438349743b2728d9ca97709c15d5c81c7d9d11c84e
     11                        c9c60cec03aed4b36ad153768eb30cf9845474e97ee9d7
     12                        475ebc926d87135d56926b7df1cea3ec38897a74bc3e24
     13                        5e59ffa76e5aff2c2f2eb84e7133a879f4229221f91c7b
     14                        ddf96088e4020e16444d94acc30708069f4a1bde3dcbea
     15                        d32e3916a9f6722adb3d63bb9075dde49258fbd28a9a09
     16                        251fa08b64faee53a506b9f637136c72af7382b9243fa8
     17                        996ad4d72cc1b05cfb45271cb3187b4eeec0b5f9e847cd
     18                        cc0c3ddef9787164a1aee7e4e1ee6de1b95282c1ff646a
     19                        a70aabd1df0003f75d3585e9e740916cee4f7bca0cd82f
     20                        72104d
     21 denom₀.pub.e         = 010001
     22 denom₀.priv.d        = 07bc432fbc6eeb0f9ec2a4f5d2886d65228f57ee5ddac7
     23                        88af355493bd9fc247d449b161e41d95080f44d93bd693
     24                        8d162c4db5f6720f7479768ba73000f330df780e856e8d
     25                        3a01d1778c546e85b3157820de24bc9290238782271a36
     26                        94f38c6645f3420331ff70f8930377f4fea25beaccc775
     27                        ce796f9ca7c97d0fc82ce7a6880dd437e6b30695ca51a5
     28                        8f0239aef7481932550ce61b5b085313cb888c893cc1bb
     29                        ef6b47c607e1189f8cccb04eeb9f87b9e53f414850f8b9
     30                        23ce83e2859c0434a3d14d861e864fd5ce701af1161139
     31                        8a73515b7056b2828e564cdec6052bdbb43ff435178577
     32                        198de0676e5d378ade9b31844e81e2218ba3b3aec5bff9
     33                        a26621
     34 denom₀.hash          = 8653090e3f3f5efac9770a5dd0c97813940c191c9fa171
     35                        3367f8bb1279b1e3d27f32d16ea7699501e5fc4d176725
     36                        d76ab0307f9bdf9d0d263c2256a7f1c63143
     37 denom₀.value         = KUDOS:5.12
     38 denom₀.fee_withdraw  = KUDOS:0.01
     39 denom₀.fee_deposit   = KUDOS:0.01
     40 denom₀.fee_refresh   = KUDOS:0.01
     41 denom₀.fee_refund    = KUDOS:0.01
     42 denom₁.pub.n         = d5455fb79449df7bf548e384d5201d75f4f7697ef9b805
     43                        1eb8536f66783e70ca2d524fefa6840c1f87d9d8814868
     44                        15d5ace866a32269b05bdba7ff6024811c19456026b0a5
     45                        9da4db96f58729d286c90be8cd9cbf575d346202b43282
     46                        d601b5751ff77a88a0742a692349a0e3fa8ed5518fc537
     47                        8fcf434929b541c942573abef310b87776e976e81cf650
     48                        a04399fabddbde677163918250c4d45f5e90ee7539de50
     49                        0a8e915be1d5f17d79cb9585ccdf5dba42ef53c24eae7d
     50                        7c93c4e0a432788245b7c76a587f0ac6889d3038953136
     51                        2d51c2ad65cb1e28b4ad4cc97fcd2a4aedd6612ae8888e
     52                        b2dbc4de0cf30f46a43b76cc8c3245eefe013195a237f0
     53                        2d13b5
     54 denom₁.pub.e         = 010001
     55 denom₁.priv.d        = 5a520e0e663bbeecf55d5015d258ce8145247ec62aa5d7
     56                        6d422cfbb1cedccad1a4ce06527d17d1368d47221ce678
     57                        463eff02516d6746914ce5c2c9318364366d31675e1b53
     58                        9866d8249f89059a4640e0cd503ec0fe13d7fa6620c07f
     59                        8e789ccba4a51f7cbb4f5722bdb211f45b09a0a7f11659
     60                        c88ac37939b3accfba4bccf24ea260e21aaec0dfbf8571
     61                        78438986e963e9e356277c3badc34fc91b705d9956b4be
     62                        dc0947d65924d7dd31e564de798eb06837380caed6813d
     63                        3761d119901c5540eb74c3cb674fdfd64b67d78ebd40de
     64                        0cafd53c038a0a8e87890b953b8b94a9771a6efb3142ca
     65                        02db873053f8d1de2082db4366fc072aafc723c036a2fb
     66                        999605
     67 denom₁.hash          = 1de6052bce12feaa2d26e3bba1789b0c2295028279f3ea
     68                        ff8e1345448ba05390cff49656ed72a1f7ef6ee2c4a80f
     69                        80eefa0d0f906e74305b0215c4194ab1c7b8
     70 denom₁.value         = KUDOS:2.56
     71 denom₁.fee_withdraw  = KUDOS:0.01
     72 denom₁.fee_deposit   = KUDOS:0.01
     73 denom₁.fee_refresh   = KUDOS:0.01
     74 denom₁.fee_refund    = KUDOS:0.01
     75 denom₂.pub.n         = d1320993658042f995f09ed66ad2283e457a1f44cad96f
     76                        1cf5a6299ac93d61724a7448d70e56a38666ec66352a58
     77                        10ca3e544d957dedb5789e135589fcb8b139c65a2f70d7
     78                        c421dfd4e27cf38d463074d286730be23d446fc0781151
     79                        9b068346b28b86b94acff35524eb62436852714c92f03b
     80                        0bac21bb6bf727734be7871b702f928c3ced4bad9ba2d4
     81                        9cec6a86d1019181c65c16abf7b391f103c90c3eaaaa9d
     82                        5298a4a60c71bdaf0f08246327a62399bf4c424c1ed771
     83                        8cb5df178daa9710ec9d098e99ed0456de2fbaf7865ba4
     84                        7931c52d1cac78cacc1bc451782587487a6189addfe5dc
     85                        df6f190f28816707e3d1e104b5a1f7a570b75c1951588f
     86                        3289ef
     87 denom₂.pub.e         = 010001
     88 denom₂.priv.d        = 311849a8066faa083218b4e6444e8af44650e94ab7427d
     89                        31b232eb5bb0b3cf8d478cefd54cbfa783f0deb503f02a
     90                        97d226fb98f3a708a508a82c886c285bddf7dda5a7b197
     91                        69a7bb84961cd5f9c749b2f8ff65bb99be6033cbdb41d1
     92                        418d2f3ce5c519fa9d649d4a53ae4c32dea64e81b6905b
     93                        831b44155cbab5cef8b6defde09295662cdf2189f2763e
     94                        de05bea0acb707b9b6b087dcebb9ca81f1c2785d6560f9
     95                        3bf1a1860676cccceb079c22b48b9fdef68e1d286164f1
     96                        32ffddeab29fa7a704e1bc3f9f5e28c39675f17136aed8
     97                        542aa4470a14a7380a4016b21d43ef5b9e2b241ced017c
     98                        54247c12fd6beccb7bd356820b0246553c751b3e071468
     99                        c2efdd
    100 denom₂.hash          = 4f8c487d21ffb5bb7571f5d66bcf6f93f4f5c043df5483
    101                        669383128700064e8637afecd6029cb36dfc5a60d20ff3
    102                        112ff1b5ad1b53c78cf39ad13cd2531ba24e
    103 denom₂.value         = KUDOS:0.16
    104 denom₂.fee_withdraw  = KUDOS:0.01
    105 denom₂.fee_deposit   = KUDOS:0.01
    106 denom₂.fee_refresh   = KUDOS:0.01
    107 denom₂.fee_refund    = KUDOS:0.01
    108 denom₃.pub.n         = bddb1806b7b7663d94bedbeccbb515987fcae457b5920d
    109                        85b8485edac6ab0e73e6991780e9f1fa6f88e500e0ccd9
    110                        eeb80d8e3b66289a7cf1b25bd56d05081d583864ad225a
    111                        36f8d38391782a85bfe320d439443e8ea19f555edb36fc
    112                        b58af81ca5168ca7c42dda68f191bd1587b4da27703384
    113                        f2aad300a043549c67fc6defd98bd1074b3bab1bc0d89b
    114                        87d81f8a1f555a3b4ce2b4ca7b0b1d8f446fa93258db51
    115                        1cc3bc2ff62871cb4c746f6806d0b839db8cc560da06eb
    116                        5619d9d42309a77161373708db18e453ff0a1d6f63281c
    117                        54ffacada7c8bf5ca7281ffe7e2e5be03fc006c064d820
    118                        f719e672429628837399a565dd9d70f6e9ed91e1eb0567
    119                        978015
    120 denom₃.pub.e         = 010001
    121 denom₃.priv.d        = 1e3370867d0a0d1705b18e0d848d73f7d422f920e4aec2
    122                        3cea7184b9463a26c1e9704d4cacaa5952b8683eb403e7
    123                        8a5c628cfa1b9da0e44d9462f1b7f66c1c883b419f484e
    124                        d3de257e113c1828e4e5e3592f1a3bddf78d7f88927ee9
    125                        9892c3362ca2c226dbd90971d68a54404d069d5f5704b3
    126                        04e131fb3058959338781a203993804f64def2980210dc
    127                        3f4e77c1207400e922032952cb154bb1b776d164cce69e
    128                        418844f2f4b20850c0a23d30059362edadfe00fbfa04b6
    129                        833fc4606deda441eb345c49b52d91063da7c55ecea7b3
    130                        2e99a49a823264955803ce3ee220a2cc64cd4321e18ae2
    131                        8bb1071c7746e8a3d69adef5113e21a01cab6809668793
    132                        c2a94f
    133 denom₃.hash          = 96524d30b4398d0d5bbe2eff902c4df1cc8286629d149b
    134                        ee0530edcfb361c468ea5fdb1b41d538223c8b3fe1a974
    135                        951bb3290bbfffc6f10cbf0326585041ca4d
    136 denom₃.value         = KUDOS:0.08
    137 denom₃.fee_withdraw  = KUDOS:0.01
    138 denom₃.fee_deposit   = KUDOS:0.01
    139 denom₃.fee_refresh   = KUDOS:0.01
    140 denom₃.fee_refund    = KUDOS:0.01
    141 merchant.priv        = 7607240acc4563ebe2e38e76eaf61d74160d71c9a6670a
    142                        e2e5147ce848767037
    143 merchant.pub         = f54d646619723f7fa2ce79267953fdd8654cfcd0f2cfc0
    144                        c5e880e3e0d0ab19f0
    145 merchant.url         = https://merchant.taler.example.org/
    146 merchant.payto       = payto://x-taler-bank/bank.taler.example.org/merchant
    147 ~~~
    148 
    149 ### Withdrawal {#tc1-withdraw}
    150 ~~~ pseudocode
    151 (W1) reserve key generation (wallet)
    152 
    153 reserve.priv         = d9641dab5c7f2474573871c25cae2f6c8924ace4157a56
    154                        d128b1432e55a6c6ba
    155 reserve.pub          = ec8ad5e4c6abcf4d0d597f0066a0e3ea0370d221973e06
    156                        e73f4287148cb93c38
    157 ~~~
    158 ~~~ pseudocode
    159 (W2) coin generation and blinding (wallet)
    160 
    161 batch_seed           = 466431296486ed9cd71fc207254820a2c4a85aeb0b2041
    162                        494f8bf1f8cd30f113
    163 coin_seed₀           = 88899daa409b8c4c4a91c8e39030d247d00b292eff952e
    164                        36067fbe33f2d7ce48
    165 coin_seed₁           = f5be0b8790719072c7043c257f2c114cd8cb45ea5d98c4
    166                        aa25d9025f45f1caeb
    167 blind_secret₀        = a3cbe2b0babf5bdfb98f45804acf63225c16e09be1677f
    168                        705393df3f5de98ebf
    169 blind_secret₁        = 8ea6335ed3ff8a41f9fae95e9fd87382be402d6c26ef97
    170                        2381dee6b3c1e9d775
    171 coin₀.priv           = a5a38bb23a9f36564f9d4e566cdd7e3521b04f8ea4175d
    172                        a726ac4e3ac540b485
    173 coin₁.priv           = ae98c5207fe31e20a7b7a8677b780c6735ce69df32d308
    174                        5d504010f23c59064a
    175 coin₀.pub            = afbdf99f1a794add25bad59c9a3f442714e166adc99c57
    176                        db991947669a36b185
    177 coin₁.pub            = aa7118596b1adf89543e9afcf2925e516a782eed9d75c8
    178                        abc4a470e7efdd7fe4
    179 planchet₀            = 64ede0cf40a952b95af4b09b22c6fd27a1ff6d0ae3920e
    180                        a03fe14a8b547f1e14a2eea98443e7aa092075f6585103
    181                        fb06c1d68fb4616bf33ae30a207e51840f1ae655a73418
    182                        4a73d804df42650ce296954c9b61e249486468f7fda8a7
    183                        4f85ec6ccdb34a66819fbeaf846b10087ffaf8e734428a
    184                        907b96c6a112f8f943b3a8d55455c01b0daf55456acf07
    185                        15874ff90fba45b265e2021a70997100fb18bfbef822c8
    186                        475820b4855f141730751bcfad2e7eb46dd6c6a400a8a6
    187                        a98486c4a2bce4d3407a0d0ba612faebb49428ba3a1986
    188                        eddadb04b6790fbb7bd27cc0bd98341c60ec5b98027520
    189                        2aedd4b0cf3b7ee1732c67c84db4b30b60b551cbf84922
    190                        2c60e1
    191 planchet₁            = 41f8a6622c99b6a9c30d52d19fc2c20a39a481219de4b0
    192                        f3e7f604efed5d962554ea13255785d10a037e14abd75d
    193                        80a0aa9861df9d80a051c418ff197e68bd0eee61e6fd5d
    194                        3214633734659e8bbd7dd2fe566bd41c537a5759bad9bb
    195                        ca6b2eb7e3217e7d3cbefff192d83bd0527dbe0eff56df
    196                        0b2e2062670d2873ca7766a7c1255e6fcf2c37e95de19f
    197                        cad244f3986bab45c0a3aca726fc682455ea1166a23891
    198                        52d7a67d181f035de6bdb97633888f0594c2f63dd39651
    199                        34372507faf84f753759abd662d4c7e8df7e01149ff44d
    200                        a3499ed49406d9398e86c4abf12a1f57f38002115ef728
    201                        3e4d5422b41c752a0cce8c2c1a9b84e109b4554fc1150e
    202                        f578b9
    203 h_planchet₀          = 888da42dbf4897a5d6d9420b827e340c74c0b0e973e140
    204                        ad1c7b9abfc400a9ec5a86b3185e4c656dbe8e01125604
    205                        616de83fa28910fae513d016f56c3ca94eb4
    206 h_planchet₁          = f20015bbe0147313e59f9e64ee9e836c192b5d504dbd33
    207                        28fcfce41fbe9310d6aa96d91fdd77599c122cc5390ad7
    208                        cb86d2c6d4261bd5950e7ec0f86959613841
    209 sig                  = 2ae0027dd4a196c4741d60e3e7ff933d7374fa5534d15f
    210                        1cc2e96e9ab3392894c65ab6a0af31ccdb395db5c52677
    211                        0077642502e27d4619d385a91dd13854e706
    212 ~~~
    213 ~~~ pseudocode
    214 (E1) coin issuance and signing (exchange)
    215 
    216 total                = KUDOS:7.7
    217 blind_sig₀           = 139af4e7e7f6e9e0391e22f78cb0b2c334e6d6667633a1
    218                        92f56fde38ac9feec7841be59b2aa993084c50f70dfd96
    219                        73dc723eec9d84c28ebd5f8104d1b0b29cf118cd64cbe3
    220                        3925524a3363a1a6f24f59d47a404cf74680eee97cdeb8
    221                        cc44a0b84f3db4496d9bed1224c0fbda64d40f84ef5447
    222                        d764fb714ca8e72a23a882e749e47a519310f6d87b3e8d
    223                        dc3e4ac4e541cdbfe7550c92f41c511b544d9fbdc2a729
    224                        6b958e9df0b1394210aef4f1a780a129883d4bcb45425e
    225                        ef96204a7eaa9daa7d21827ecbf4571cefe6dbe65314e6
    226                        1c688175c1e81e01d4f0377c9c2312b6cc3487f2dd2cf8
    227                        d85efde346f4d1a12de70bec4038b0bea0c505087c0e67
    228                        ce4694
    229 blind_sig₁           = 89649cf83e2ba2cd75c7a1d01809c33d5d02fec8164925
    230                        6215f13a8965ad37d8d47c264668ec187e46d75210ce60
    231                        1362fbb15f61a24ec1d337dd2589b5a4ee0e77a8d9734a
    232                        ca6a149b9f9b3a78c158b1f8cb243b8cbe9c2212290e8b
    233                        c731d02382463f3e1cf0fc86c5472b8c96c5eaeac9c906
    234                        4fdf7411f97935f27fd0bf88200440c7cc3e6960c5c515
    235                        6aedb5a820077be08f1ac4b00780258d7b843b21d7baf2
    236                        d969d1b3c77a08b4fe14b216fe78c7e4c0ae964fc06bf3
    237                        dfe7ff20ec85fa4d5e5aec24d89848645ffadb0de3da80
    238                        c6e41b96571ef28e3d132b7c3fd16a289e32389cffb653
    239                        b4744fabf882342f0db9aef110351d8ffd7a3b86701f0f
    240                        5034c8
    241 ~~~
    242 ~~~ pseudocode
    243 (W3) coin unblinding (wallet)
    244 
    245 coin₀.sig            = 9303650b8896b6619ca061f4bf44c1b02fb60784a2659d
    246                        e7512b599e7e6524ad5a283c81d289d3ec75fc81e7f336
    247                        bd41dd67a41b72a98d9171f0461c188535b555019079a1
    248                        8b4491903797f62a034e5f277ce8f7f3f56fbe47e44113
    249                        561fd414c841c2da97da1ae92df0e2cfbe3c26ad37f8ba
    250                        b9bd71365ac536204cda7c21dc39891b5cbb4e213f75d4
    251                        e09c248a7a59f6322fd011619b29ec25ad621dfa2d6fae
    252                        9f8b91935caf54d0d30f4a03bf6beed6637a4054efbad7
    253                        a41f9da434f07cfd2f7619e8a3c82b30e079ff9fe13fc0
    254                        23fba7d627f4fb21e14467ce1db27767831eb1c3ad5c39
    255                        f61437a0a70c300fd84cd9280474bb507768a868ea92fa
    256                        905428
    257 coin₁.sig            = 355aa5b6bf10591375f22a014640cd242f470834759fab
    258                        4421b4d237a149bc3e5fbc8f073e1348da770983cd36df
    259                        9cf72a30bfe55776744b2d787acb06ba25ccdef36e5269
    260                        771fe4a38a1109e8b96437a3cc625003f7fdf4d0cc8793
    261                        35584c5b13f2b29be1ea4d8a2da7826d608179d98b5edb
    262                        11261e2048fbbba217a52ae862d1e78e30c0787ee40908
    263                        f1bca708c434d5412a262eca6bcd0ac5890bfbbe7df6d6
    264                        9a5544d0054716dfda47791546c177223606c0645858a1
    265                        5b36887619a9d70a515f42897758bbe181765d7184cc92
    266                        b5e2d743df1db9b30394b697117ad24811812febe0a3c5
    267                        7cbb5cf7f6857378f57cd1149f745ed95fd1d342e9860f
    268                        516469
    269 ~~~
    270 
    271 ### Payment and Deposit {#tc1-payment}
    272 ~~~ pseudocode
    273 (M1) order generation (merchant)
    274 
    275 wire_salt            = 4c5249caea865380e0e519fc38177686
    276 order.id             = ORDER-40
    277 order.price          = KUDOS:7.42
    278 ~~~
    279 ~~~ pseudocode
    280 (W1) nonce generation (wallet)
    281 
    282 nonce.pub            = 6729d69abd7d8218e02c953317b46bba2522efc2c19a7d
    283                        a63194e9ef40fcbd0d
    284 ~~~
    285 ~~~ pseudocode
    286 (M2) contract generation (merchant)
    287 
    288 h_wire               = ec4e7258747a4de49628a27907b74f0aad097cfafaa595
    289                        320f81786375430b67ae1ada754299bbc0472f5a1e8bae
    290                        6fe8e5dc52683dd09490ff06fb2fa4f20ec2
    291 timestamp            = Sat Feb 14 13:37:42 2026
    292 pay_deadline         = Sat Feb 14 14:07:42 2026
    293 refund_deadline      = Sun Feb 15 13:37:42 2026
    294 wire_deadline        = Mon Feb 16 13:37:42 2026
    295 contract             = {
    296   "version": 0,
    297   "summary": "Free Software Support",
    298   "order_id": "ORDER-40",
    299   "products": [],
    300   "timestamp": {
    301     "t_s": 1771076262
    302   },
    303   "refund_deadline": {
    304     "t_s": 1771162662
    305   },
    306   "pay_deadline": {
    307     "t_s": 1771078062
    308   },
    309   "wire_transfer_deadline": {
    310     "t_s": 1771249062
    311   },
    312   "merchant_pub": "YN6P8SGSE8ZQZ8PEF4K7JMZXV1JMSZ6GYB7W1HF8G3HY1M5B37R0",
    313   "merchant_base_url": "https://merchant.taler.example.org/",
    314   "merchant": {
    315     "name": "Taler Merchant"
    316   },
    317   "h_wire": "XH774P3MF96Y95H8M9WGFDTF1APGJZ7TZAJSACGFG5W66XA31DKTW6PTEN19KEY08WQNM7MBNSQYHSEWA9M3VM4MJ3ZGDYSFMKS0XGG",
    318   "wire_method": "XXXX",
    319   "exchanges": [
    320     {
    321       "url": "https://exchange.taler.example.org/",
    322       "priority": 1024,
    323       "master_pub": "7JTYK0HXPASKBZDKYA2AX5GEATZ8P20WD0CVHC11FWWB15DM64XG"
    324     }
    325   ],
    326   "nonce": "CWMXD6NXFP11HR1CJMSHFD3BQ8JJ5VY2R6D7V9HHJKMYYG7WQM6G",
    327   "amount": "KUDOS:7.42",
    328   "max_fee": "KUDOS:0.01"
    329 }
    330 h_contract           = cc934a29efa612754edba0453d1b0ba175d6830d3ec2b2
    331                        839a9a539d845a5da4622498e3819cb49206810688a93d
    332                        e1989c6542d2cf1d71f64dc998193e76d535
    333 sig                  = c249ee766b4dd256560d48b367d05a41cf7169306247ec
    334                        56c51c39412b34c11015e365c2b2836761ba020b7175e6
    335                        0870572a6c7f780eeabb6f0777783064d602
    336 ~~~
    337 ~~~ pseudocode
    338 (W2) payment preparation (wallet)
    339 
    340 contribution₀        = KUDOS:5.12
    341 contribution₁        = KUDOS:2.3
    342 sig₀                 = 8876dce4ca504df355f17c783e8327ea29b2cbcd7dde60
    343                        8b473644af3580621d3eb429022f6d1c4937328db478c6
    344                        ed9784f6788e2e18dc16927efd4bc9c10908
    345 sig₁                 = 031283a02cb413308cea4b69bd3d1b7beef87be7788fcf
    346                        c1d7b83f8d97cd4ede218d0f753ba8fc92e22415a66065
    347                        f5c1dff402368de8e85eca0c0ac7358e3602
    348 ~~~
    349 ~~~ pseudocode
    350 (M3) deposit preparation (merchant)
    351 
    352 ~~~
    353 ~~~ pseudocode
    354 (E1) deposit check (exchange)
    355 
    356 time_exchange        = Sat Feb 14 13:37:44 2026
    357 sig                  = 09338dd4b1e692431290355b7df62d627a894718db68cf
    358                        4a8e083bfed7b6c98a0dde3c5724f3cb3db0e6737f57c9
    359                        eb35136997eaf403f27f82c0a9f1cf27d308
    360 ~~~
    361 ~~~ pseudocode
    362 (M2) deposit verification (merchant)
    363 
    364 sig                  = e66d503c843d72da4b6eb95f872396449de25cbf80b9c2
    365                        43d8c9ed2bde533d2460542c685bfdbf2eabc755510a60
    366                        b97ed289711fd3f353cd80aa791e2e2f1e0d
    367 ~~~
    368 
    369 ### Refund {#tc1-refund}
    370 ~~~ pseudocode
    371 (W1) refund request (wallet)
    372 
    373 ~~~
    374 ~~~ pseudocode
    375 (M1) refund processing (merchant)
    376 
    377 id                   = 14365434601518496594
    378 value₀               = KUDOS:2.1
    379 sig₀                 = a626cc04101e3abe295c217de5636be135be8935dfaf0b
    380                        3589a8c7de22c3e6c7a581a031c0691476e82ee0e9798c
    381                        3c8c8be6bc1066bd955acf4d1ce59eb7e10d
    382 ~~~
    383 ~~~ pseudocode
    384 (E1) refund check and confirmation (exchange)
    385 
    386 sig₀                 = be9dd11dec0e2fb2a2dfbc778b2d9bb21c665ecfa4d1b6
    387                        c9d42747902f071631f84a946881bc787f8627a6871226
    388                        4b06410b445f37e569edb7dbf77193b5990b
    389 ~~~
    390 ~~~ pseudocode
    391 (M2) refund confirmation (merchant)
    392 
    393 value                = KUDOS:2.1
    394 ~~~
    395 
    396 ### Refresh {#tc1-refresh}
    397 ~~~ pseudocode
    398 (W1) coin melting (wallet)
    399 
    400 refresh_seed         = 466431296486ed9cd71fc207254820a2c4a85aeb0b2041
    401                        494f8bf1f8cd30f11394223cf8a82995804957876e9fa7
    402                        1163506b4e5b8c8fa4db1b95d3e8c5c5fb5a
    403 for k = 0:
    404  batch_seedₖ         = 415e62ec89f6397c834087efe396b127c6d5bdfe360145
    405                        a6abbfc7a88c6504eee6e3f59db026cc5742c4065fd917
    406                        bbf2b7f52e82e88409263130300279e52617
    407  transferₖ₀.priv     = 5a08ea181dddd480b2e1e2294e1d886efe45070858adb3
    408                        26e2d562dc330c8ca4
    409  transferₖ₁.priv     = dccf4e1880b343687c7f39df603386a27510bd356ae1bc
    410                        86f45ef9b7a8927613
    411  transferₖ₀.pub      = ab4a35f7fc78a3d07e5828f0fae0295ebbe93e9ecc63c1
    412                        09703f15816af8d000
    413  transferₖ₁.pub      = 09893d5ef58fe696207e93cbd0cceb311265aa89745705
    414                        9c40f366d59b028a29
    415  sharedₖ₀            = a7a9524dfc565b8006470ab90cba091a809f1de14eeda0
    416                        dc98408f880d5cf587c2aa338ea1e3153ed8c624044f15
    417                        19f3d8e8d6c731d7af6d0383b136a48a8e7f
    418  sharedₖ₁            = dd7051d4c4b03d78f0c5365ea0a2947f48604beee2e792
    419                        0349d7a4371dbff00d9986202459277250461ab936d5f7
    420                        45bb6c6c28e8badd7936002f25d9b97a65b2
    421  coinₖ₀.priv         = c4fe7e3e64453e477e736ebabe2e5a7c4919eb2fa4bf02
    422                        9e536d56a7eec59c9a
    423  coinₖ₁.priv         = 409db2ea007fff35506607da6c67e52204097be8a114b7
    424                        a654f53da392886e48
    425  coinₖ₀.pub          = 65a93d56a84e8110fc2ae9c6ace89ddd9c625bd632501b
    426                        663fefd047ee31feed
    427  coinₖ₁.pub          = 7c61cf322d34ead1de43869690c70e22d9bae8f2354e0d
    428                        d07e71c5736b506f41
    429  blind_secretₖ₀      = 0f53bafa492d5d90dd3ad13ba7b37b3c4a8b167dffc63f
    430                        7940dcb340275be90b
    431  blind_secretₖ₁      = 799169aeddfec48aaab23a88df8d74318870c7b6cb3922
    432                        5a3c43d4576db61f88
    433  planchetₖ₀          = 90997841cb9d3b4bef237213b1ee1da9286e775c1cc10d
    434                        c78e32f836d7897500a587babeefed3f310a5b509c29d1
    435                        91804b89d2aee75073f4d49d7ff5f60be991e0ae1a148e
    436                        134b92c5c9537a59bc30516e0244e714ec2b6067337ffd
    437                        970fd3987799d2ac7b3e3430068c923974751864ed8f4d
    438                        087b0cd62e0edb807d9ac4bf70e68c9d774a0f26947413
    439                        0f4fa5a8f4e0a5ac67ef6c73a1cb486792605f447384ea
    440                        9deb040f851953db240a5f23401e0d75f93f810132ed9e
    441                        782ba05b4f78ce7cafc501925ce0bde12e58ef48861969
    442                        038a95802a1d943b2ce31a3278a1cb4f14cc12ff2ffee1
    443                        3aba0ee151145a3b7abdd1a00e0684a57a1b2a0fd97348
    444                        81243b
    445  planchetₖ₁          = 0562f874175e223f087e7950f2082e869bca1ded7087be
    446                        27a98f1f9be30a38f33e9a98ca5efb6f15536df774ce32
    447                        1efd36909d67869e704db3ff352c76298c0d33014a32ff
    448                        636c22866b5e5d6dbc5e6c50f630d95112e8916fd23ec4
    449                        88eb457f55ad3a29d50c3c7387b4ee1045cbe4d37241e9
    450                        b958d1642b34f4a15a259b344163dbf73bc55e5b99e0d4
    451                        6ba59b7dca0a1fbe859f6f7d5756d6afff58571fdac617
    452                        48a81e5e94e784c2d5de60a192d86c0529e35f2efa29d4
    453                        2e0ce8526db5fd3258a470a43d55c184287fe0c639ff8a
    454                        eea1ee64a61d6466d15e20c8203a73ce1b2fc7b2949947
    455                        f9804b0710e41351af67cc30b86108dca7ea0208062ae6
    456                        0be2e5
    457  h_planchetₖ₀        = ba016fdedb6c5033f1f870edd9ab10d0dd116c0e3a8483
    458                        0ddd44c9aed5a2844aea96146cf7c72153a910ca3d3de1
    459                        faab7fca5e1c4079e2e0c680410cf68ee27b
    460  h_planchetₖ₁        = c4f4451f85f02c950fba164ccc52fd2123576ddad6ab87
    461                        c25b175a33aed8afff5c5866b2fbcec6ef67a1367f91e5
    462                        da56041371bc9e8cefd2a93ad386504568a3
    463  h_planchetsₖ        = 7e420d01a6413fb6cc300257031f37ab2d456583d3189c
    464                        3e5f7049c1c61f49c7918289b7cd169cebd0bb81ca0a83
    465                        2f2c4c6c7529e861a88d65c6d3ef5fd540ff
    466 for k = 1:
    467  batch_seedₖ         = 0311a9766673b9df343498afcd6f6926b9bd6352201351
    468                        5c072a0b5a3af98aeb8158869f3ece08532473980a652d
    469                        d6479f296a28504b850791f9775e3b0f8436
    470  transferₖ₀.priv     = 4a3d33228a7c1d6330fb2ec827256aad75f7ea56712072
    471                        f8ff69238b47e98895
    472  transferₖ₁.priv     = ad0b2c176a9564ea7aee7c55ddd92af22d777ea4a8605b
    473                        d486d8ccc31bb1402f
    474  transferₖ₀.pub      = 1839010739d0450e9a0702167d5106dbcb0a81641e0080
    475                        716785850e60bc541d
    476  transferₖ₁.pub      = 16a20ed27a63c204d94ef3d0c2b554343567d319afc70d
    477                        856cc6a61c3bdaa142
    478  sharedₖ₀            = 32751bb2cf2a3106593aac0fb38172943c54a96992b22a
    479                        7927ce37fcf0b9b4aa4671033c93ece3c70f2033e4c52a
    480                        953bf46254db7f6d7feb926d78b28bb60901
    481  sharedₖ₁            = 2c4118e0d52fe1851410fb70b60cc5b3fa6bbb53df8acc
    482                        5a379c65d9f89c2ba37ea732e76d081e03d845dd2f3ef8
    483                        a53b682941d4e598a17823ea06cd28058e8d
    484  coinₖ₀.priv         = 16977a220b0bfcb2a0ef82faa3afea901d0cf3e6829905
    485                        85b63d9c855be5d5aa
    486  coinₖ₁.priv         = 1b5bab529c09f313f2a18e3d2712c1a7e0548f15651b40
    487                        af12b22c17ca861273
    488  coinₖ₀.pub          = 4b53ebc94ca1a96ca4795a0ce1254f70ba2fdd72528d57
    489                        4f4bb47d26fe845239
    490  coinₖ₁.pub          = 6de1ac4370a5336349ed50cfd4d6298b193504c1325614
    491                        9cb0fa85c1f9a178c7
    492  blind_secretₖ₀      = 30e3a32819cdc5a2e9b28d7953bba0038eaf701ceaf691
    493                        a6bf44833ae6f305a9
    494  blind_secretₖ₁      = 62ac62d9df0b5f71f0b43329baa15c5e79f46b09fe432f
    495                        cdeb3a9100b31a0fa2
    496  planchetₖ₀          = 73cbbfab1a58b12c55b4eecf705c9db8fb953f52bfb4fa
    497                        9922f39641efb85802659d266f979c819294af91cb395c
    498                        f93f67a0a6b561e445b0a138f04e6428222ccb5ef92a21
    499                        1da2218953e8aa108f339bbce666a71640f555570d6fec
    500                        a446b67be82edfa3f90697d5558d7b7707bb87bf790d35
    501                        35e429d705367f0ceb3fea30f7666ed428679bed440540
    502                        3f2a9cf5cf75a43f16fc5b63276e9a18bea0c0864587c0
    503                        a884d1a474f3a248e36183a067e59496d8968427c55e63
    504                        ac3f0052fc20fea5b9f01b19ee776e7c1bdfa576be42d2
    505                        1e7214606bea3277878cb7beb7015a242bd9bfaee620dc
    506                        ccdfda8f34b7174ed28766000d22dd552cd487fdaf9cd0
    507                        cc1f5f
    508  planchetₖ₁          = 922bf6290e8f5e8746f68cda30cee9d368f3988b93d26d
    509                        c753e082fe56db8191430ce8ef78f1175d651b491e6cc6
    510                        7e0cf34253abcf3c3bbae44b4620ca0879171710caac83
    511                        89704d99d5d49da5de04b44f03d03b30df9d872611d779
    512                        6c6903fdee77a68a29aabac5c332588aaecf2a5e8cbfe4
    513                        446d33f423040e7eda99268f2ca558615b541cd912ef30
    514                        2a9f079705b9d1785839a593d07d8b79756f0077cb5169
    515                        a3a88f08ee7371419c940f35250d2aa52bcfc6beab73b9
    516                        72f31d3b5de16e55c590788cb4443dc0de7d2cb6993555
    517                        0b04b8bcc2c33669f97ed1d36f29c594c6f0f84a72bd73
    518                        f76c7617e748356f7989a98deca97f360fcf2d087f9bcc
    519                        d61732
    520  h_planchetₖ₀        = 6523f04c8eacea9af24c08905eb009c8e15a6c62adfae2
    521                        fcee6813bba22ba014c3c831cae6fb63a2a889af0e99ea
    522                        d40a39b57d42043dd67fe4e446c7691558c3
    523  h_planchetₖ₁        = f86bf5d2bf56d182ff70b0ecf635401bce1dab4bd52f40
    524                        023adef27ca2a4165d19b0de911a6a6e41e5811ea1d9cd
    525                        9bb17dbf9ee518b1f3bfec644e8a36f7fb2e
    526  h_planchetsₖ        = f63471c1555835b7032ffa41db189f013d1f26dd5bf1fd
    527                        c79bf18ea8c3f24ec7f31f0b4c1688d7a6a729c7b2c2ee
    528                        f42a5ce3524ca23a566d74e708eac487b1dc
    529 for k = 2:
    530  batch_seedₖ         = 35e8f7b41e25d3ca2c8e70d02be85843b53703f199809f
    531                        98527e316bda6a457a2fab9d327f96242c4e0afbd6214f
    532                        aee6a5172aca2b49ad37a12590dc3bbc3f58
    533  transferₖ₀.priv     = 1ca613b8fbe4a341b2fc617687553e778de9b8d40c462a
    534                        88bc1ac169d2984da7
    535  transferₖ₁.priv     = bb8196a4a5b9a646c5424664b8505eb8781ded006c74e7
    536                        cc719e7a2cc730ae88
    537  transferₖ₀.pub      = e21056df9fdf4cd94a4175f94a48fce623db6f2bc4097d
    538                        818f839ec421fe974f
    539  transferₖ₁.pub      = 0409b44ddfed03111d7dab5af1b71d8b2597ee50772a9f
    540                        272e799133718fd571
    541  sharedₖ₀            = 01a355feafd4daafcd6341597b73eee6ca7ad5dfb78758
    542                        88a373434043d17087ab882cca24e580985068eb1b39b8
    543                        c0e7f81f03ccca337961cd1d6a528abd3cd1
    544  sharedₖ₁            = 39cdc5377c7295d1e997a43fdc2aac0f5005e64211f7f0
    545                        9da36db035ddad5bc32c2dcc4bd5fe1e0d3e471ae8fcfa
    546                        9cac0fefa8078570b894164194829e54dabf
    547  coinₖ₀.priv         = 343d0b591fc0c495d2e7cb68f2cb0c24d9b274e3ae8504
    548                        1dd94454d2856059f6
    549  coinₖ₁.priv         = 57c9447a9a34e4b7ed5f4bc71122d76dee9583cb578eb8
    550                        eff2e837bc9a0591e6
    551  coinₖ₀.pub          = 3b9fb220f7679b3488f8e2710f41d5e6cfee1b6c23bef3
    552                        04d9dbfc404341fccd
    553  coinₖ₁.pub          = 6ee277e7bcd2584c5ee8f46cc24b531515a33388e6035d
    554                        00b33df8ce6a7edaee
    555  blind_secretₖ₀      = f5d25d0124dce3b3529325b6512fd34293448b710217fa
    556                        885ba5d80705d16a64
    557  blind_secretₖ₁      = 974dc1b68e4a7613346375372ead838842bab6335d1696
    558                        af3b6a2ad249fee4ee
    559  planchetₖ₀          = 55e3f72dfd4c53ba21f6f9e108c34f8f6bf0b69dd8daab
    560                        bf4386a7e3a31c7e33ecda1dc54a31a1d5f97b810806f9
    561                        d845af20716f4aad733026ff0f6ad0219a1f92d937ade7
    562                        6b268f8d436fdf6ca63d9051008efa3af022c9846fdecc
    563                        79ce27c8e59042795f2f8a4bc0a792b44bc64c8e6e7c27
    564                        3a107d96081142b1d06718e28b32bc733ff36e7b95538f
    565                        b2ec30d1242965f9ab40debe4ed845227b7a4a4d795286
    566                        6b798253cf1eb664a1d832c2397d044122d24982fb88bd
    567                        68f81efa45f80bdbe918680004bdea5dc2e4e76dfed297
    568                        af200350793f820aa094e1b26c79e2c2faff866410e741
    569                        1bb662c94be10a841ec9db1432d198a4a01c2911326cec
    570                        da502a
    571  planchetₖ₁          = 978fca7d513afac1d6ec6561fd967218bf0d84e388a23f
    572                        b085f1c37493d765090b90c0c23ba20647114c0f34d8db
    573                        1041809a66dfeab96c36477be8342ff4f2660cfd8f0011
    574                        14f2aab3d12d983d82b92fcfb38e97fa83142980a9f919
    575                        7e794859f439b18491600ea92bcdc1af7ebe4784eb0229
    576                        bd287b9c71cdde177d4576d7907f9d643a363e09685293
    577                        b7474c990d5d8cdc119d7448d768412e40e8461ea88109
    578                        461e37f3a76178df074c942e99062ce717eba48903c7a0
    579                        cd27889429ac5a657ca50efd441363c18f9968b33962e4
    580                        960bf2005fc0fb2b8050024bf34e8f608f4dade5554aab
    581                        1d28478f5bc1c5939c939ff5b9b11f225e7eb275887d3a
    582                        475a34
    583  h_planchetₖ₀        = 5c9603dc7240248f0a93107bce217562d60943c9976770
    584                        d11c1fd4c9f73fe7f2f3696696b37fb0fa73331c301e8d
    585                        d7adceafb23456bfcb6d44063d61f5db239e
    586  h_planchetₖ₁        = d905de829b86b21eb19c036320d3e11571e6ca8390e81f
    587                        86e4569e3cc12189ea10cd752c738972a809fa292818a1
    588                        f13367c389a3f505f084c5001615de3b647e
    589  h_planchetsₖ        = 802838537720786bbe61a0752397056c3a7f7bc332a54d
    590                        c5a649452a9a74fef79c2c59deaf1e03cf73f85f241f28
    591                        61a50f2f859d95c3c660ab5e57b448526036
    592 value                = KUDOS:0.25
    593 commitment           = ba2a18eb9cc878b20dde4679910aede08b37b58e47df25
    594                        2a245598e0671ed6fc012c9cc245d13f9759d777d80d51
    595                        d4a29bcdba486109d83075b8bf47fc518928
    596 sig                  = 62ce04a6a6dd6b3f50792e34b51ccc10d2552425800566
    597                        90248790f6280db11f6f29753f601f19e8504ea378574a
    598                        dec5b1fc6f5509f3ec79af3110bb4cd4670a
    599 ~~~
    600 ~~~ pseudocode
    601 (E1) gamma selection and coin signing (exchange)
    602 
    603 ɣ                    = 1
    604 blind_sig₀           = 1885a01f26936f28dfd201a7dd615dacd68a287e17aa8d
    605                        d1e4f3a1925047049a491c1b76ca687431faf6fd290deb
    606                        4dc80601ba79d7754c84a8d8550a0b166104b6ec7e611f
    607                        bc577aff339033d421035578029068a84bd4fe5e212670
    608                        fd2ce7091ef9950ee48778aae2855a99555308ae90b72a
    609                        b1fb53fea714841c94e256705aae8efeebc877efd376a8
    610                        78c6e2cb4e811a267484e4da8e13206c1dde7ef3646528
    611                        c1d8bf48096eabcc454ed5ee180e3fe7229785a51a3b8b
    612                        d3fba176c05baf0eb82e99d225cfa5f9359d07d2510013
    613                        301a7bdf815a7db36d400bc00ca861dbe1402ec6dacbba
    614                        901e8c8e4e8f1912e63e2a440e667cea243d46e08026d3
    615                        738fab
    616 blind_sig₁           = 9c10e5b88fe3563bdaba5934447baad4d05e66a9075102
    617                        7a5cbdd2cf0cd9bcaaec68935d3c85509894247ab569d9
    618                        7fd4825a7972d48dbab1c9cbf791776c96a8dcf48caf2e
    619                        542f5e50f86d794066b7bc82e975c55995b40cf10d00e6
    620                        4904530dad5c396543fadf88b79f81b00c8ebbaf2f6731
    621                        f434c5c3d72b451586d0412b0272a6c6ac5ba5ef59af57
    622                        969d4f985ea513187c8020a318d4a9c9711ccfdb5aa8b9
    623                        ebd93b20e129c3447771a1dfb1b1bbdccaef56323005c5
    624                        6116b1df97ace4ae6f6865e5467a96d2fad9cb4c9cf0c0
    625                        3cf774ad1dd8f5b0a0fe218ac78b37c4435e4f5616c2fd
    626                        96dba36f3c7c1973835fe53c95839ed11c792ad011c9fb
    627                        1ce55c
    628 sig                  = 6eb68d755e7e554ade9f9f21e3a04b83a74753ec136f98
    629                        981ec2369d0fd56f88c274fe44482f425f1142a447627b
    630                        71e2117d9991d89dfbf97441b881963a360a
    631 ~~~
    632 ~~~ pseudocode
    633 (W2) secret revelation (wallet)
    634 
    635 revealed_seed₀       = 415e62ec89f6397c834087efe396b127c6d5bdfe360145
    636                        a6abbfc7a88c6504eee6e3f59db026cc5742c4065fd917
    637                        bbf2b7f52e82e88409263130300279e52617
    638 revealed_seed₂       = 35e8f7b41e25d3ca2c8e70d02be85843b53703f199809f
    639                        98527e316bda6a457a2fab9d327f96242c4e0afbd6214f
    640                        aee6a5172aca2b49ad37a12590dc3bbc3f58
    641 ~~~
    642 ~~~ pseudocode
    643 (E2) commitment validation (exchange)
    644 
    645 ~~~
    646 ~~~ pseudocode
    647 (W3) coin unblinding (wallet)
    648 
    649 coinᵧ₀.sig           = 68773443fe6cf88ddea6f6614213f12ec7ded4fbb39fa0
    650                        a4ffc1a68bbfc363be0b33bd03a41d31c8ffe331614ee4
    651                        b986679ac8e51aaa0903eee492d0ff81327589c842ac80
    652                        a6b47e0833840935e9cd543fbbb91c5b80a591e01eb34d
    653                        7bb5aa3fe837b22f8dcfcaf0ee9d71d93c866f00a8f787
    654                        def0b79eaa4e6e96c420990b05c2b82c378757ce220e96
    655                        734e547a6962148848d2ebb66e9c67a40115a958d21c05
    656                        c7e0a0db72e505076e35ddca7b09b603b55dad394c1d12
    657                        ff4b6b219feafc3ca24c43c36ad2da9fa632ec1bcfc057
    658                        2db80d0afcc9875182def7983385f872005033d7ea7080
    659                        bce0df982a134f5ae2dccb2cdc304278c809979252ac28
    660                        2a76e1
    661 coinᵧ₁.sig           = 1551b2dcf6daa264d4c96452f46c88e7b4ca3955642da4
    662                        5e375cb319602897ceb75eda64060afd17002b63fdd39c
    663                        c0f86c473a530813c23958573431e2fcd2277cc853f5ab
    664                        6a20a9e7499154420f0cd8d13990d45423e61a6651a614
    665                        7e8a146a10fd5d63e085c2c4c133d4db0827df1d4fed10
    666                        d1e6eadc566e167a17fd36ee884900db9a8cc4b82a02b7
    667                        ca0cfacb7d391f535da3011ca469146f239d621fcdfc10
    668                        563bfe6ac4c962109e2fc39aa236151f15a9c85b8e0e4e
    669                        2ee4f6b6b5f54337c184936e2fe4029e2d39ffe6953f7d
    670                        cf208ba062334e8595dbb9784857df770377a59dee2a8b
    671                        ee4e9c10e662f15dedd0379849ebc4a7a02a31f1ebd8a8
    672                        e55432
    673 coin₂                = coinᵧ₀
    674 coin₃                = coinᵧ₁
    675 ~~~
    676 
    677 ### Link {#tc1-link}
    678 ~~~ pseudocode
    679 (W1) history request (wallet)
    680 
    681 sig                  = ceb8dc24e263252b479376b15ae141e4da28dd712c37c4
    682                        81a163d549b44afdd018d04fe709462a56739b3cc0671c
    683                        2cc0333b7e5da25210b8bda54d83d25f5407
    684 ~~~
    685 ~~~ pseudocode
    686 (E1) refresh secret lookup (exchange)
    687 
    688 ~~~
    689 ~~~ pseudocode
    690 (W2) coin acquisition (wallet)
    691 
    692 ~~~
    693 
    694 ### Account Creation {#tc1-w2w-account}
    695 
    696 ### Push Payment {#tc1-w2w-push}
    697 
    698 ### Pull Payment {#tc1-w2w-pull}
    699 
    700 ### Recoup Withdrawal {#tc1-withdraw-recoup}
    701 
    702 ### Recoup Refresh {#tc1-refresh-recoup}