lsd0009

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

test-case-1.md (36953B)


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