path: root/frags
diff options
authorChristian Grothoff <>2021-02-24 22:41:09 +0100
committerChristian Grothoff <>2021-02-24 22:41:09 +0100
commit46c74b3f32078932199c0bc05813338c637730fd (patch)
tree2fe34a2473998d6b7e6e565f069f7c79a0afcbf9 /frags
parent25ff2e7b82dcdaffd673260f462c891884cd375a (diff)
parent4cdcfee257d3fca8584963e41ead35298d2f3534 (diff)
Merge branch 'master' of git+ssh://
Diffstat (limited to 'frags')
1 files changed, 37 insertions, 0 deletions
diff --git a/frags/taler-payment-cycle.rst b/frags/taler-payment-cycle.rst
new file mode 100644
index 0000000..9c7d130
--- /dev/null
+++ b/frags/taler-payment-cycle.rst
@@ -0,0 +1,37 @@
+The Taler payment cycle involves six parties:
+(a) customer,
+(b) exchange,
+(c) merchant,
+(d) customer's bank,
+(e) exchange's bank,
+(f) merchant's bank.
+The exchange is the central entity that mediates the wire transfer of real
+currency between (d), (e), (f) by way of *coins*, cryptographically secure
+tokens passed between (a), (b), (c).
+There are six steps to a Taler payment cycle.
+In step 1, (a) directs (d) to make real funds available to (b).
+In step 2, (d) does a wire transfer of real funds to (e), fulfilling the
+request from step 1. (b) generates coins corresponding to those real funds;
+these are called the *reserve*.
+In step 3, (a) *withdraws* coins, either wholly or partially, from (b). These
+coins are kept in a *wallet* under control of (a). The coins in the wallet
+are anonymous.
+In step 4, (a) authorizes payment of coins from the wallet to (c). This
+transfers payment coins from the wallet to (c), and change coins from (b) to
+the wallet (unless the payment amount exactly matches the denomination of the
+coins in the wallet).
+In step 5, (c) *deposits* coins into (b). These coins are still anonymous,
+although the transaction itself is not anonymous.
+In step 6, (b) directs (e) to wire transfer real funds corresponding to the
+accumulated deposited coins to (f).
+NB: The Taler payment cycle is part of the Taler payment system, which
+includes also an auditor component, not described here.