GNU Taler Documentation¶
We are building an anonymous, taxable payment system using modern cryptography. Customers will use traditional money transfers to send money to a digital Exchange and in return receive (anonymized) digital cash. Customers can use this digital cash to anonymously pay Merchants. Merchants can redeem the digital cash for traditional money at the digital Exchange. As Merchants are not anonymous, they can be taxed, enabling income or sales taxes to be withheld by the state while providing anonymity for Customers.
Cryptography is used to ensure that none of the participants can defraud the others without being detected immediately; however, in practice a fraudulent Exchange might go bankrupt instead of paying the Merchants and thus the Exchange will need to be audited regularly like any other banking institution.
The system will be based on free software and open protocols.
In this document, we describe the REST-based APIs between the various components, internal architecture of key components, and how to get them installed. In addition to this documentation, we have source-level documentation which you can find converted to HTML at these pages:
Documentation Overview¶
- 1. Core Protocol Specification
- 1.1. Overview
- 1.2. Conventions for Taler RESTful APIs
- 1.3. The Exchange RESTful API
- 1.4. Merchant Backend RESTful API
- 1.5. Wallet-Core API Documentation
- 1.6. The Auditor RESTful JSON API
- 1.7. Backup and Synchronization RESTful API
- 1.8. Challenger Service API
- 1.9. The TalDir RESTful API
- 1.10. The Mailbox RESTful API
- 1.11. Bank RESTful APIs
- 1.12. The Donau RESTful API
- 2. GNU Taler User Guide
- 2.1. Introduction
- 2.2. Withdrawing
- 2.3. Depositing
- 2.4. Sending cash
- 2.5. Invoicing
- 2.6. Configuring Accounts at a Merchant Instance
- 2.7. Using the Point-of-Sale App
- 2.8. Setting up an order in the merchant backoffice SPA
- 2.9. Paying an order
- 2.10. Setting up a template
- 2.11. Paying with static QR codes
- 2.12. Setting up a webhook
- 2.13. Rewarding visitors
- 3. GNU Taler Merchant Backend Operator Manual
- 4. GNU Taler Merchant API Tutorial
- 5. GNU Taler Merchant POS Manual
- 6. GNU Taler Wallet Manual
- 7. GNU Taler Exchange Operator Manual
- 7.1. Introduction
- 7.2. Installation
- 7.3. Configuration Fundamentals
- 7.4. Exchange Database Setup
- 7.5. Basic Setup: Currency, Denominations and Keys
- 7.6. Wire Gateway Setup
- 7.7. Legal Setup
- 7.8. KYC Configuration
- 7.9. Deployment
- 7.10. Offline Signing Setup, Key Maintenance and Tear-Down
- 7.11. AML Configuration
- 7.12. Setup Linting
- 7.13. Testing and Troubleshooting
- 7.14. Benchmarking
- 7.15. FIXMEs
- 8. GNU Taler Challenger Operator Manual
- 9. GNU Taler Auditor Operator Manual
- 10. Developer’s Manual
- 10.4. Project Overview
- 10.5. Fundamentals
- 10.6. Debian and Ubuntu Repositories
- 10.7. Language-Specific Guidelines
- 10.8. Taler Deployment on gv.taler.net
- 10.9. Demo Upgrade Procedure
- 10.10. Environments and Builders on taler.net
- 10.11. Releases
- 10.12. Continuous integration
- 10.13. Internationalization
- 10.14. iOS Apps
- 10.15. Android Apps
- 10.16. Code Coverage
- 10.17. Coding Conventions
- 10.18. Testing library
- 10.19. User-Facing Terminology
- 10.20. Developer Glossary
- 10.21. Developer Tools
- 11. LibEuFin
- 12. Design Documents
- 12.1. XX 01: New Browser Integration
- 12.2. XX 02: Wallet Exchange Management
- 12.3. DD 03: ToS rendering
- 12.4. DD 04: Wallet Withdrawal Flow
- 12.5. XX 05: Wallet Backup and Sync
- 12.6. DD 06: Extensions for GNU Taler
- 12.7. DD 07: Specification of the Payment Flow
- 12.8. XX 08: Fee Structure Metrics
- 12.9. DD 09: Wallet Backup
- 12.10. DD 10: Exchange crypto helper design
- 12.11. DD 11: Auditor-Exchange Database Synchronization
- 12.12. DD 12: Exchange Fee Configuration
- 12.13. DD 13: Wallet-to-Wallet Payments
- 12.14. DD 14: Merchant backoffice UI
- 12.15. DD 15: Merchant backoffice Routing
- 12.16. DD 16: Backoffice Order Management
- 12.17. DD 17: Backoffice Inventory Management
- 12.18. DD 18: Forgettable Data in JSON Contract Terms
- 12.19. DD 19: Wallet Backup Merging
- 12.20. DD 20: Backoffice Rewards Management
- 12.21. DD 21: Exchange Key Continuity
- 12.22. DD 22: Wallet Proofs to Auditor
- 12.23. DD 23: Taler KYC
- 12.24. DD 24: Anonymous Age Restriction Extension
- 12.25. DD 25: Withdraw coins manually starting from the wallet
- 12.26. DD 26: Refunds and Fees
- 12.27. DD 27: Sandboxing all the Taler services
- 12.28. DD 28: Deposit Policy Extensions
- 12.29. DD 29: Mobile P2P UI
- 12.30. DD 30: Offline payments
- 12.31. DD 31: Invoicing
- 12.32. DD 32: Brandt-Vickrey Auctions
- 12.33. DD 33: Database Schema and Versioning
- 12.34. DD 34: Considerations for Wallet Database Migrations
- 12.35. DD 35: Regional currencies
- 12.36. DD 36: Currency conversion service
- 12.37. DD 37: Wallet Transaction Lifecycle
- 12.38. XX 38: Demobanks protocol suppliers
- 12.39. DD 39: Taler Wallet Browser Integration Considerations
- 12.40. DD 40: Distro Packaging
- 12.41. DD 41: Wallet Balance and Amount Definitions
- 12.42. DD 42: Wallet Dev Experiments
- 12.43. DD 43: Managing Prebuilt Artifacts and Source-Level Dependencies
- 12.44. DD 44: CI System
- 12.45. DD 45: Single-Depth Inheritance of KYC for Reserves
- 12.46. DD 46: Contract Format v1
- 12.47. DD 47: STEFAN
- 12.48. DD 48: Wallet Exchange Lifecycle and Management
- 12.49. DD 49: Authentication
- 12.50. DD 50: Libeufin-Nexus
- 12.51. DD 51: Fractional Digits
- 12.52. DD XY: Template
- 13. Taler licensing information
- 13.1. Following the AGPL
- 13.2. Following the GPL
- 13.3. Following the LGPL
- 13.4. API (git://git.taler.net/docs)
- 13.5. Firefox/Android/Python Wallet (git://git.taler.net/wallet-core)
- 13.6. WebExtensions Wallet (git://git.taler.net/wallet-webex)
- 13.7. Merchant (git://git.taler.net/merchant)
- 13.8. Libeufin (git://git.taler.net/libeufin)
- 13.9. Exchange (git://git.taler.net/exchange)
- 13.10. Web includes (git://git.taler.net/web-common)
- 13.11. Documentation
- 14. Man Pages
- 14.1. challenger-admin(1)
- 14.2. challenger-config(1)
- 14.3. challenger-dbconfig(1)
- 14.4. challenger-dbinit(1)
- 14.5. challenger-httpd(1)
- 14.6. challenger.conf(5)
- 14.7. libeufin-bank(1)
- 14.8. libeufin-bank.conf(5)
- 14.9. libeufin-cli(1)
- 14.10. libeufin-nexus(1)
- 14.11. libeufin-nexus.conf(5)
- 14.12. libeufin-sandbox(1)
- 14.13. sync-config(1)
- 14.14. sync-dbconfig(1)
- 14.15. sync-dbinit(1)
- 14.16. sync-httpd(1)
- 14.17. sync.conf(5)
- 14.18. taler-aggregator-benchmark(1)
- 14.19. taler-auditor-dbconfig(1)
- 14.20. taler-auditor-dbinit(1)
- 14.21. taler-auditor-exchange(1)
- 14.22. taler-auditor-httpd(1)
- 14.23. taler-auditor-offline(1)
- 14.24. taler-auditor-sync(1)
- 14.25. taler-auditor(1)
- 14.26. taler-bank-benchmark(1)
- 14.27. taler-config(1)
- 14.28. taler-exchange-aggregator(1)
- 14.29. taler-exchange-benchmark(1)
- 14.30. taler-exchange-closer(1)
- 14.31. taler-exchange-dbconfig(1)
- 14.32. taler-exchange-dbinit(1)
- 14.33. taler-exchange-drain(1)
- 14.34. taler-exchange-expire(1)
- 14.35. taler-exchange-httpd(1)
- 14.36. taler-exchange-kyc-aml-pep-trigger(1)
- 14.37. taler-exchange-kyc-tester(1)
- 14.38. taler-exchange-offline(1)
- 14.39. taler-exchange-router(1)
- 14.40. taler-exchange-secmod-cs(1)
- 14.41. taler-exchange-secmod-eddsa(1)
- 14.42. taler-exchange-secmod-rsa(1)
- 14.43. taler-exchange-transfer(1)
- 14.44. taler-exchange-wire-gateway-client(1)
- 14.45. taler-exchange-wirewatch(1)
- 14.46. taler-fakebank-run(1)
- 14.47. taler-helper-auditor-aggregation(1)
- 14.48. taler-helper-auditor-coins(1)
- 14.49. taler-helper-auditor-deposits(1)
- 14.50. taler-helper-auditor-purses(1)
- 14.51. taler-helper-auditor-reserves(1)
- 14.52. taler-helper-auditor-wire(1)
- 14.53. taler-merchant-benchmark(1)
- 14.54. taler-merchant-dbconfig(1)
- 14.55. taler-merchant-dbinit(1)
- 14.56. taler-merchant-httpd(1)
- 14.57. taler-merchant-passwd(1)
- 14.58. taler-merchant-setup-reserve(1)
- 14.59. taler-merchant-webhook(1)
- 14.60. taler-merchant-wirewatch(1)
- 14.61. taler-terms-generator(1)
- 14.62. taler-unified-setup.sh(1)
- 14.63. taler-wallet-cli(1)
- 14.64. taler.conf(5)
- Index