gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-donau] branch master updated (39efb81 -> 40157ed)


From: gnunet
Subject: [taler-donau] branch master updated (39efb81 -> 40157ed)
Date: Thu, 28 Sep 2023 14:22:34 +0200

This is an automated email from the git hooks/post-receive script.

johannes-casaburi pushed a change to branch master
in repository donau.

    from 39efb81  added initial DONAU protocol overview
     new 2a96023  Initial refactoring
     new 40157ed  Renamed files

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 COPYING                                            |    6 +-
 README                                             |   36 +-
 aclocal.m4                                         |    4 +-
 ci/jobs/0-codespell/job.sh                         |    2 +-
 ci/jobs/4-deb-package/install-fix.patch            |   18 +-
 configure.ac                                       |   12 +-
 contrib/Makefile.am                                |   18 +-
 contrib/coverage.sh                                |    2 +-
 ...aler-exchange-dbconfig => taler-donau-dbconfig} |   24 +-
 contrib/uncrustify-mode.el                         |    2 +-
 debian/.gitignore                                  |   22 +-
 debian/README-packaging.md                         |    4 +-
 debian/changelog                                   |  126 +--
 debian/control                                     |   60 +-
 debian/copyright                                   |    8 +-
 .../taler/overrides.conf                           |    0
 .../taler/taler.conf                               |    0
 .../apache2/sites-available/taler-exchange.conf    |    4 +
 .../nginx/sites-available/taler-exchange           |    8 +-
 .../taler/conf.d/exchange-business.conf            |   14 +-
 .../taler/conf.d/exchange-coins.conf               |    4 +-
 .../taler/conf.d/exchange-system.conf              |    6 +-
 .../exchange-accountcredentials-1.secret.conf      |   10 +-
 .../taler/secrets/exchange-db.secret.conf          |    4 +-
 .../apache2/sites-available/taler-exchange.conf    |    4 -
 ...hange-dev.install => libtalerdonau-dev.install} |    8 +-
 .../{libtalerexchange.dirs => libtalerdonau.dirs}  |    0
 ...talerexchange.install => libtalerdonau.install} |    2 +-
 ...lerexchange.tmpfiles => libtalerdonau.tmpfiles} |    0
 debian/po/POTFILES.in                              |    2 +-
 debian/rules                                       |   38 +-
 debian/taler-auditor.install                       |    4 +-
 debian/taler-donau-database.install                |    8 +
 debian/taler-donau-offline.install                 |    2 +
 ...fline.postinst => taler-donau-offline.postinst} |   12 +-
 debian/taler-donau-offline.tmpfiles                |    2 +
 debian/taler-donau.README.Debian                   |   34 +
 debian/{taler-exchange.docs => taler-donau.docs}   |    0
 debian/taler-donau.install                         |   39 +
 debian/{taler-exchange.links => taler-donau.links} |    0
 ...ntan-overrides => taler-donau.lintan-overrides} |    2 +-
 ...aler-exchange.postinst => taler-donau.postinst} |   26 +-
 .../{taler-exchange.postrm => taler-donau.postrm}  |   24 +-
 debian/{taler-exchange.prerm => taler-donau.prerm} |    0
 debian/taler-donau.taler-donau-aggregator.service  |   18 +
 debian/taler-donau.taler-donau-aggregator@.service |   17 +
 ...vice => taler-donau.taler-donau-closer.service} |   12 +-
 debian/taler-donau.taler-donau-expire.service      |   18 +
 debian/taler-donau.taler-donau-httpd.service       |   33 +
 debian/taler-donau.taler-donau-httpd.socket        |   14 +
 debian/taler-donau.taler-donau-httpd@.service      |   27 +
 debian/taler-donau.taler-donau-httpd@.socket       |   14 +
 debian/taler-donau.taler-donau-secmod-cs.service   |   18 +
 .../taler-donau.taler-donau-secmod-eddsa.service   |   19 +
 debian/taler-donau.taler-donau-secmod-rsa.service  |   18 +
 ...ce => taler-donau.taler-donau-transfer.service} |   10 +-
 ...e => taler-donau.taler-donau-wirewatch.service} |   12 +-
 debian/taler-donau.taler-donau-wirewatch@.service  |   18 +
 debian/taler-donau.taler-donau.slice               |    7 +
 debian/taler-donau.taler-donau.target              |   13 +
 debian/taler-donau.tmpfiles                        |    8 +
 debian/taler-exchange-database.install             |    8 -
 debian/taler-exchange-offline.install              |    2 -
 debian/taler-exchange-offline.tmpfiles             |    2 -
 debian/taler-exchange.README.Debian                |   34 -
 debian/taler-exchange.install                      |   39 -
 ...aler-exchange.taler-exchange-aggregator.service |   18 -
 ...ler-exchange.taler-exchange-aggregator@.service |   17 -
 .../taler-exchange.taler-exchange-expire.service   |   18 -
 debian/taler-exchange.taler-exchange-httpd.service |   33 -
 debian/taler-exchange.taler-exchange-httpd.socket  |   14 -
 .../taler-exchange.taler-exchange-httpd@.service   |   27 -
 debian/taler-exchange.taler-exchange-httpd@.socket |   14 -
 ...taler-exchange.taler-exchange-secmod-cs.service |   18 -
 ...er-exchange.taler-exchange-secmod-eddsa.service |   19 -
 ...aler-exchange.taler-exchange-secmod-rsa.service |   18 -
 ...aler-exchange.taler-exchange-wirewatch@.service |   18 -
 debian/taler-exchange.taler-exchange.slice         |    7 -
 debian/taler-exchange.taler-exchange.target        |   13 -
 debian/taler-exchange.tmpfiles                     |    8 -
 debian/upstream/metadata                           |    4 +-
 doc/.gitignore                                     |   26 +-
 doc/Makefile.am                                    |   54 +-
 doc/doxygen/.gitignore                             |    2 +-
 doc/doxygen/Makefile.in                            |    2 +-
 doc/doxygen/taler.doxy                             |    6 +-
 doc/flows/Makefile                                 |    3 +
 doc/{protocol/overview.tex => flows/main.tex}      |    0
 doc/protocol/.gitignore                            |   39 -
 doc/protocol/Makefile                              |   13 -
 m4/libgcrypt.m4                                    |    2 +-
 m4/mhd.m4                                          |    2 +-
 po/{taler-exchange.pot => taler-donau.pot}         |  294 +++---
 src/Makefile.am                                    |    6 +-
 src/{exchange-tools => donau-tools}/.gitignore     |    2 +-
 src/{exchange-tools => donau-tools}/Makefile.am    |   26 +-
 src/{exchange-tools => donau-tools}/coins.conf     |    0
 .../donau-offline.conf}                            |    8 +-
 .../taler-donau-dbinit.c}                          |   26 +-
 .../taler-donau-offline.c}                         |  468 ++++-----
 src/donau/.gitignore                               |   13 +
 src/donau/Makefile.am                              |  232 +++++
 src/{exchange/exchange.conf => donau/donau.conf}   |   28 +-
 .../taler-donau-httpd.c}                           |  224 ++---
 .../taler-donau-httpd.h}                           |   22 +-
 .../taler-donau-httpd_batch-deposit.c}             |  108 +-
 .../taler-donau-httpd_batch-deposit.h}             |   10 +-
 .../taler-donau-httpd_batch-withdraw.c}            |   48 +-
 .../taler-donau-httpd_batch-withdraw.h}            |   10 +-
 .../taler-donau-httpd_common_deposit.c}            |   30 +-
 .../taler-donau-httpd_common_deposit.h}            |    8 +-
 .../taler-donau-httpd_config.c}                    |   12 +-
 .../taler-donau-httpd_config.h}                    |   14 +-
 .../taler-donau-httpd_csr.c}                       |   38 +-
 .../taler-donau-httpd_csr.h}                       |   10 +-
 .../taler-donau-httpd_db.c}                        |   32 +-
 .../taler-donau-httpd_db.h}                        |   16 +-
 .../taler-donau-httpd_deposits_get.c}              |   72 +-
 .../taler-donau-httpd_deposits_get.h}              |   14 +-
 .../taler-donau-httpd_keys.c}                      |  244 ++---
 .../taler-donau-httpd_keys.h}                      |   72 +-
 .../taler-donau-httpd_metrics.c}                   |   92 +-
 .../taler-donau-httpd_metrics.h}                   |   16 +-
 .../taler-donau-httpd_mhd.c}                       |   16 +-
 .../taler-donau-httpd_mhd.h}                       |   10 +-
 .../taler-donau-httpd_reserves_close.c}            |   26 +-
 .../taler-donau-httpd_reserves_close.h}            |   10 +-
 .../taler-donau-httpd_reserves_get.c}              |   16 +-
 .../taler-donau-httpd_reserves_get.h}              |   10 +-
 .../taler-donau-httpd_reserves_history.c}          |   28 +-
 .../taler-donau-httpd_reserves_history.h}          |   10 +-
 .../taler-donau-httpd_reserves_open.c}             |   28 +-
 .../taler-donau-httpd_reserves_open.h}             |   10 +-
 .../taler-donau-httpd_reserves_status.c}           |   22 +-
 .../taler-donau-httpd_reserves_status.h}           |   10 +-
 .../taler-donau-httpd_responses.c}                 |  268 ++---
 .../taler-donau-httpd_responses.h}                 |   24 +-
 .../taler-donau-httpd_terms.c}                     |   12 +-
 .../taler-donau-httpd_terms.h}                     |   10 +-
 .../taler-donau-httpd_withdraw.c}                  |   42 +-
 .../taler-donau-httpd_withdraw.h}                  |   10 +-
 .../test_taler_donau_httpd.conf}                   |   22 +-
 .../test_taler_donau_httpd.sh}                     |   32 +-
 .../test_taler_donau_unix.conf}                    |   20 +-
 src/donaudb/.gitignore                             |   16 +
 .../0002-account_merges.sql                        |   10 +-
 .../0002-batch_deposits.sql                        |   20 +-
 src/{exchangedb => donaudb}/0002-coin_deposits.sql |   14 +-
 .../0002-cs_nonce_locks.sql                        |    8 +-
 .../0002-denomination_revocations.sql              |    2 +-
 src/{exchangedb => donaudb}/0002-denominations.sql |    6 +-
 .../0002-donau_sign_keys.sql}                      |   22 +-
 src/{exchangedb => donaudb}/0002-known_coins.sql   |   12 +-
 src/{exchangedb => donaudb}/0002-reserves.sql      |    8 +-
 src/{exchangedb => donaudb}/0002-reserves_in.sql   |   16 +-
 src/{exchangedb => donaudb}/0002-reserves_out.sql  |   22 +-
 .../0002-signkey_revocations.sql                   |    4 +-
 .../0002-wad_in_entries.sql                        |   14 +-
 .../0002-wad_out_entries.sql                       |   10 +-
 src/{exchangedb => donaudb}/0002-wads_in.sql       |   22 +-
 src/{exchangedb => donaudb}/0002-wads_out.sql      |   14 +-
 src/{exchangedb => donaudb}/Makefile.am            |   80 +-
 src/{exchangedb => donaudb}/bench-db-postgres.conf |    6 +-
 src/{exchangedb => donaudb}/benchmark-0001.sql     |    2 +-
 .../exchange-0001.sql => donaudb/donau-0001.sql}   |   52 +-
 .../donau-0002.sql.in}                             |   14 +-
 .../donau_do_account_merge.sql}                    |    2 +-
 .../donau_do_amount_specific.sql}                  |    0
 .../donau_do_batch_coin_known.sql}                 |   10 +-
 .../donau_do_batch_reserves_update.sql}            |   10 +-
 .../donau_do_batch_withdraw.sql}                   |   10 +-
 .../donau_do_batch_withdraw_insert.sql}            |   14 +-
 .../donau_do_deposit.sql}                          |   30 +-
 .../exchange_do_gc.sql => donaudb/donau_do_gc.sql} |   52 +-
 .../donau_do_reserves_in_insert.sql}               |   16 +-
 .../donau_do_withdraw.sql}                         |   18 +-
 .../donaudb-postgres.conf}                         |    4 +-
 .../exchangedb.conf => donaudb/donaudb.conf}       |   10 +-
 .../donaudb_plugin.c}                              |   22 +-
 .../donaudb_transactions.c}                        |   30 +-
 src/{exchangedb => donaudb}/drop.sql               |    8 +-
 .../exchange_do_withdraw.sql~                      |   16 +-
 src/{exchangedb => donaudb}/list.txt               |   12 +-
 .../pg_activate_signing_key.c                      |   14 +-
 .../pg_activate_signing_key.h                      |   14 +-
 .../pg_add_denomination_key.c                      |    6 +-
 .../pg_add_denomination_key.h                      |    8 +-
 .../pg_batch_ensure_coin_known.c                   |   18 +-
 .../pg_batch_ensure_coin_known.h                   |    8 +-
 src/{exchangedb => donaudb}/pg_commit.c            |    4 +-
 src/{exchangedb => donaudb}/pg_commit.h            |    6 +-
 src/{exchangedb => donaudb}/pg_count_known_coins.c |    4 +-
 src/{exchangedb => donaudb}/pg_count_known_coins.h |    6 +-
 src/{exchangedb => donaudb}/pg_create_tables.c     |   12 +-
 src/{exchangedb => donaudb}/pg_create_tables.h     |    6 +-
 src/{exchangedb => donaudb}/pg_do_batch_withdraw.c |    6 +-
 src/{exchangedb => donaudb}/pg_do_batch_withdraw.h |    6 +-
 .../pg_do_batch_withdraw_insert.c                  |    8 +-
 .../pg_do_batch_withdraw_insert.h                  |    8 +-
 src/{exchangedb => donaudb}/pg_do_deposit.c        |   24 +-
 src/{exchangedb => donaudb}/pg_do_deposit.h        |   12 +-
 src/{exchangedb => donaudb}/pg_do_withdraw.c       |    8 +-
 src/{exchangedb => donaudb}/pg_do_withdraw.h       |    8 +-
 src/{exchangedb => donaudb}/pg_drop_tables.c       |    6 +-
 src/{exchangedb => donaudb}/pg_drop_tables.h       |    6 +-
 src/{exchangedb => donaudb}/pg_ensure_coin_known.c |   20 +-
 src/{exchangedb => donaudb}/pg_ensure_coin_known.h |    8 +-
 src/{exchangedb => donaudb}/pg_event_listen.c      |    4 +-
 src/{exchangedb => donaudb}/pg_event_listen.h      |    6 +-
 .../pg_event_listen_cancel.c                       |    4 +-
 .../pg_event_listen_cancel.h                       |    6 +-
 src/{exchangedb => donaudb}/pg_event_notify.c      |    4 +-
 src/{exchangedb => donaudb}/pg_event_notify.h      |    6 +-
 src/{exchangedb => donaudb}/pg_gc.c                |   10 +-
 src/{exchangedb => donaudb}/pg_gc.h                |    6 +-
 .../pg_get_coin_denomination.c                     |    6 +-
 .../pg_get_coin_denomination.h                     |    6 +-
 .../pg_get_coin_transactions.c                     |  138 +--
 .../pg_get_coin_transactions.h                     |    6 +-
 .../pg_get_denomination_info.c                     |    6 +-
 .../pg_get_denomination_info.h                     |    8 +-
 .../pg_get_denomination_revocation.c               |    4 +-
 .../pg_get_denomination_revocation.h               |    6 +-
 .../pg_get_expired_reserves.c                      |    8 +-
 .../pg_get_expired_reserves.h                      |    6 +-
 src/{exchangedb => donaudb}/pg_get_known_coin.c    |    6 +-
 src/{exchangedb => donaudb}/pg_get_known_coin.h    |    6 +-
 src/{exchangedb => donaudb}/pg_get_ready_deposit.c |   12 +-
 src/{exchangedb => donaudb}/pg_get_ready_deposit.h |   12 +-
 .../pg_get_reserve_balance.c                       |    4 +-
 .../pg_get_reserve_balance.h                       |    6 +-
 .../pg_get_reserve_by_h_blind.c                    |    4 +-
 .../pg_get_reserve_by_h_blind.h                    |    6 +-
 src/{exchangedb => donaudb}/pg_get_withdraw_info.c |    6 +-
 src/{exchangedb => donaudb}/pg_get_withdraw_info.h |    8 +-
 src/{exchangedb => donaudb}/pg_have_deposit2.c     |   28 +-
 src/{exchangedb => donaudb}/pg_have_deposit2.h     |   18 +-
 src/{exchangedb => donaudb}/pg_helper.h            |    4 +-
 .../pg_insert_denomination_info.c                  |    6 +-
 .../pg_insert_denomination_info.h                  |    8 +-
 .../pg_insert_denomination_revocation.c            |    4 +-
 .../pg_insert_denomination_revocation.h            |    6 +-
 .../pg_insert_signkey_revocation.c                 |   12 +-
 .../pg_insert_signkey_revocation.h                 |   10 +-
 .../pg_iterate_active_signkeys.c                   |   24 +-
 .../pg_iterate_active_signkeys.h                   |   10 +-
 .../pg_iterate_denomination_info.c                 |   12 +-
 .../pg_iterate_denomination_info.h                 |    8 +-
 .../pg_iterate_denominations.c                     |   10 +-
 .../pg_iterate_denominations.h                     |    8 +-
 .../pg_lookup_denomination_key.c                   |    6 +-
 .../pg_lookup_denomination_key.h                   |    8 +-
 .../pg_lookup_signing_key.c                        |   14 +-
 .../pg_lookup_signing_key.h                        |   14 +-
 .../pg_lookup_signkey_revocation.c                 |   12 +-
 .../pg_lookup_signkey_revocation.h                 |   10 +-
 src/{exchangedb => donaudb}/pg_preflight.c         |    4 +-
 src/{exchangedb => donaudb}/pg_preflight.h         |    6 +-
 src/{exchangedb => donaudb}/pg_reserves_get.c      |    6 +-
 src/{exchangedb => donaudb}/pg_reserves_get.h      |    8 +-
 .../pg_reserves_get_origin.c                       |    4 +-
 .../pg_reserves_get_origin.h                       |    6 +-
 .../pg_reserves_in_insert.c                        |   24 +-
 .../pg_reserves_in_insert.h                        |    8 +-
 src/{exchangedb => donaudb}/pg_reserves_update.c   |    6 +-
 src/{exchangedb => donaudb}/pg_reserves_update.h   |    8 +-
 src/{exchangedb => donaudb}/pg_rollback.c          |    4 +-
 src/{exchangedb => donaudb}/pg_rollback.h          |    6 +-
 src/{exchangedb => donaudb}/pg_start.c             |    4 +-
 src/{exchangedb => donaudb}/pg_start.h             |    6 +-
 .../pg_start_read_committed.c                      |    4 +-
 .../pg_start_read_committed.h                      |    6 +-
 src/{exchangedb => donaudb}/pg_start_read_only.c   |    4 +-
 src/{exchangedb => donaudb}/pg_start_read_only.h   |    6 +-
 src/{exchangedb => donaudb}/pg_template.c          |    4 +-
 src/{exchangedb => donaudb}/pg_template.h          |    6 +-
 src/{exchangedb => donaudb}/pg_template.sh         |    4 +-
 .../plugin_donaudb_common.c}                       |   80 +-
 .../plugin_donaudb_common.h}                       |   14 +-
 .../plugin_donaudb_postgres.c}                     |   64 +-
 src/donaudb/procedures.sql.in                      |   50 +
 .../test_exchangedb.c => donaudb/test_donaudb.c}   |  260 ++---
 src/{exchangedb => donaudb}/versioning.sql         |    2 +-
 src/exchange/.gitignore                            |   13 -
 src/exchange/Makefile.am                           |  232 -----
 src/exchangedb/.gitignore                          |   16 -
 src/exchangedb/procedures.sql.in                   |   50 -
 src/include/Makefile.am                            |    6 +-
 src/include/taler_crypto_lib.h                     |  928 ++++++++---------
 src/include/taler_donau_service.h                  |  126 +--
 src/include/taler_donaudb_lib.h                    |   74 +-
 src/include/taler_donaudb_plugin.h                 | 1062 ++++++++++----------
 src/include/taler_testing_lib.h                    |  206 ++--
 src/include/taler_util.h                           |   22 +-
 src/lib/Makefile.am                                |  126 +--
 ...i_batch_deposit.c => donau_api_batch_deposit.c} |  196 ++--
 ...batch_withdraw.c => donau_api_batch_withdraw.c} |  104 +-
 ...tch_withdraw2.c => donau_api_batch_withdraw2.c} |  102 +-
 .../{exchange_api_common.c => donau_api_common.c}  |  384 +++----
 .../{exchange_api_common.h => donau_api_common.h}  |   62 +-
 ...api_csr_withdraw.c => donau_api_csr_withdraw.c} |   68 +-
 ...i_curl_defaults.c => donau_api_curl_defaults.c} |    8 +-
 ...i_curl_defaults.h => donau_api_curl_defaults.h} |    8 +-
 ...api_deposits_get.c => donau_api_deposits_get.c} |  128 +--
 .../{exchange_api_handle.c => donau_api_handle.c}  |  312 +++---
 .../{exchange_api_handle.h => donau_api_handle.h}  |   16 +-
 ...reserves_close.c => donau_api_reserves_close.c} |   52 +-
 ...api_reserves_get.c => donau_api_reserves_get.c} |   46 +-
 ...rves_history.c => donau_api_reserves_history.c} |   72 +-
 ...i_reserves_open.c => donau_api_reserves_open.c} |   78 +-
 ...serves_status.c => donau_api_reserves_status.c} |   68 +-
 ...i_transfers_get.c => donau_api_transfers_get.c} |   94 +-
 ...xchange_api_withdraw.c => donau_api_withdraw.c} |   94 +-
 ...hange_api_withdraw2.c => donau_api_withdraw2.c} |   94 +-
 src/testing/.gitignore                             |   96 +-
 src/testing/Makefile.am                            |  250 ++---
 src/testing/coins-cs.conf                          |    2 +-
 src/testing/coins-rsa.conf                         |    2 +-
 ...exchange_api-cs.conf => test_donau_api-cs.conf} |    2 +-
 ...change_api-rsa.conf => test_donau_api-rsa.conf} |    2 +-
 .../{test_exchange_api.c => test_donau_api.c}      |  172 ++--
 ...{test_exchange_api.conf => test_donau_api.conf} |   28 +-
 src/testing/testing_api_cmd_batch.c                |    2 +-
 src/testing/testing_api_cmd_batch_deposit.c        |   82 +-
 src/testing/testing_api_cmd_batch_withdraw.c       |   72 +-
 src/testing/testing_api_cmd_common.c               |   28 +-
 src/testing/testing_api_cmd_deposit.c              |  102 +-
 src/testing/testing_api_cmd_deposits_get.c         |   46 +-
 ..._get_exchange.c => testing_api_cmd_get_donau.c} |  146 +--
 src/testing/testing_api_cmd_insert_deposit.c       |   72 +-
 .../testing_api_cmd_offline_sign_extensions.c      |   10 +-
 .../testing_api_cmd_offline_sign_global_fees.c     |   10 +-
 src/testing/testing_api_cmd_offline_sign_keys.c    |   10 +-
 src/testing/testing_api_cmd_reserve_close.c        |   16 +-
 src/testing/testing_api_cmd_reserve_get.c          |   22 +-
 src/testing/testing_api_cmd_reserve_history.c      |   30 +-
 src/testing/testing_api_cmd_reserve_open.c         |   18 +-
 src/testing/testing_api_cmd_reserve_status.c       |   18 +-
 src/testing/testing_api_cmd_revoke.c               |    8 +-
 src/testing/testing_api_cmd_revoke_denom_key.c     |   42 +-
 src/testing/testing_api_cmd_revoke_sign_key.c      |   50 +-
 src/testing/testing_api_cmd_stat.c                 |    2 +-
 src/testing/testing_api_cmd_transfer_get.c         |   16 +-
 src/testing/testing_api_cmd_wait.c                 |    2 +-
 src/testing/testing_api_cmd_withdraw.c             |   82 +-
 src/testing/testing_api_misc.c                     |   50 +-
 src/util/.gitignore                                |    6 +-
 src/util/Makefile.am                               |   34 +-
 ...{merchant_signatures.c => charity_signatures.c} |  158 +--
 src/util/conversion.c                              |    2 +-
 src/util/crypto_confirmation.c                     |    4 +-
 src/util/crypto_contract.c                         |   16 +-
 .../{exchange_signatures.c => donau_signatures.c}  |  636 ++++++------
 src/util/offline_signatures.c                      |  162 +--
 src/util/os_installation.c                         |    4 +-
 src/util/taler-config.c                            |    2 +-
 src/util/wallet_signatures.c                       |   80 +-
 357 files changed, 6795 insertions(+), 6844 deletions(-)
 rename contrib/{taler-exchange-dbconfig => taler-donau-dbconfig} (81%)
 rename debian/{etc-libtalerexchange => etc-libtalerdonau}/taler/overrides.conf 
(100%)
 rename debian/{etc-libtalerexchange => etc-libtalerdonau}/taler/taler.conf 
(100%)
 create mode 100644 
debian/etc-taler-donau/apache2/sites-available/taler-exchange.conf
 rename debian/{etc-taler-exchange => 
etc-taler-donau}/nginx/sites-available/taler-exchange (55%)
 rename debian/{etc-taler-exchange => 
etc-taler-donau}/taler/conf.d/exchange-business.conf (77%)
 rename debian/{etc-taler-exchange => 
etc-taler-donau}/taler/conf.d/exchange-coins.conf (90%)
 rename debian/{etc-taler-exchange => 
etc-taler-donau}/taler/conf.d/exchange-system.conf (52%)
 rename debian/{etc-taler-exchange => 
etc-taler-donau}/taler/secrets/exchange-accountcredentials-1.secret.conf (50%)
 rename debian/{etc-taler-exchange => 
etc-taler-donau}/taler/secrets/exchange-db.secret.conf (73%)
 delete mode 100644 
debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf
 rename debian/{libtalerexchange-dev.install => libtalerdonau-dev.install} (82%)
 rename debian/{libtalerexchange.dirs => libtalerdonau.dirs} (100%)
 rename debian/{libtalerexchange.install => libtalerdonau.install} (88%)
 rename debian/{libtalerexchange.tmpfiles => libtalerdonau.tmpfiles} (100%)
 create mode 100644 debian/taler-donau-database.install
 create mode 100644 debian/taler-donau-offline.install
 rename debian/{taler-exchange-offline.postinst => 
taler-donau-offline.postinst} (55%)
 create mode 100644 debian/taler-donau-offline.tmpfiles
 create mode 100644 debian/taler-donau.README.Debian
 rename debian/{taler-exchange.docs => taler-donau.docs} (100%)
 create mode 100644 debian/taler-donau.install
 rename debian/{taler-exchange.links => taler-donau.links} (100%)
 rename debian/{taler-exchange.lintan-overrides => 
taler-donau.lintan-overrides} (64%)
 rename debian/{taler-exchange.postinst => taler-donau.postinst} (75%)
 rename debian/{taler-exchange.postrm => taler-donau.postrm} (62%)
 rename debian/{taler-exchange.prerm => taler-donau.prerm} (100%)
 create mode 100644 debian/taler-donau.taler-donau-aggregator.service
 create mode 100644 debian/taler-donau.taler-donau-aggregator@.service
 rename debian/{taler-exchange.taler-exchange-wirewatch.service => 
taler-donau.taler-donau-closer.service} (50%)
 create mode 100644 debian/taler-donau.taler-donau-expire.service
 create mode 100644 debian/taler-donau.taler-donau-httpd.service
 create mode 100644 debian/taler-donau.taler-donau-httpd.socket
 create mode 100644 debian/taler-donau.taler-donau-httpd@.service
 create mode 100644 debian/taler-donau.taler-donau-httpd@.socket
 create mode 100644 debian/taler-donau.taler-donau-secmod-cs.service
 create mode 100644 debian/taler-donau.taler-donau-secmod-eddsa.service
 create mode 100644 debian/taler-donau.taler-donau-secmod-rsa.service
 rename debian/{taler-exchange.taler-exchange-transfer.service => 
taler-donau.taler-donau-transfer.service} (52%)
 rename debian/{taler-exchange.taler-exchange-closer.service => 
taler-donau.taler-donau-wirewatch.service} (51%)
 create mode 100644 debian/taler-donau.taler-donau-wirewatch@.service
 create mode 100644 debian/taler-donau.taler-donau.slice
 create mode 100644 debian/taler-donau.taler-donau.target
 create mode 100644 debian/taler-donau.tmpfiles
 delete mode 100644 debian/taler-exchange-database.install
 delete mode 100644 debian/taler-exchange-offline.install
 delete mode 100644 debian/taler-exchange-offline.tmpfiles
 delete mode 100644 debian/taler-exchange.README.Debian
 delete mode 100644 debian/taler-exchange.install
 delete mode 100644 debian/taler-exchange.taler-exchange-aggregator.service
 delete mode 100644 debian/taler-exchange.taler-exchange-aggregator@.service
 delete mode 100644 debian/taler-exchange.taler-exchange-expire.service
 delete mode 100644 debian/taler-exchange.taler-exchange-httpd.service
 delete mode 100644 debian/taler-exchange.taler-exchange-httpd.socket
 delete mode 100644 debian/taler-exchange.taler-exchange-httpd@.service
 delete mode 100644 debian/taler-exchange.taler-exchange-httpd@.socket
 delete mode 100644 debian/taler-exchange.taler-exchange-secmod-cs.service
 delete mode 100644 debian/taler-exchange.taler-exchange-secmod-eddsa.service
 delete mode 100644 debian/taler-exchange.taler-exchange-secmod-rsa.service
 delete mode 100644 debian/taler-exchange.taler-exchange-wirewatch@.service
 delete mode 100644 debian/taler-exchange.taler-exchange.slice
 delete mode 100644 debian/taler-exchange.taler-exchange.target
 delete mode 100644 debian/taler-exchange.tmpfiles
 create mode 100644 doc/flows/Makefile
 rename doc/{protocol/overview.tex => flows/main.tex} (100%)
 delete mode 100644 doc/protocol/.gitignore
 delete mode 100644 doc/protocol/Makefile
 rename po/{taler-exchange.pot => taler-donau.pot} (86%)
 rename src/{exchange-tools => donau-tools}/.gitignore (64%)
 rename src/{exchange-tools => donau-tools}/Makefile.am (73%)
 rename src/{exchange-tools => donau-tools}/coins.conf (100%)
 rename src/{exchange-tools/exchange-offline.conf => 
donau-tools/donau-offline.conf} (50%)
 rename src/{exchange-tools/taler-exchange-dbinit.c => 
donau-tools/taler-donau-dbinit.c} (89%)
 rename src/{exchange-tools/taler-exchange-offline.c => 
donau-tools/taler-donau-offline.c} (91%)
 create mode 100644 src/donau/.gitignore
 create mode 100644 src/donau/Makefile.am
 rename src/{exchange/exchange.conf => donau/donau.conf} (86%)
 rename src/{exchange/taler-exchange-httpd.c => donau/taler-donau-httpd.c} (92%)
 rename src/{exchange/taler-exchange-httpd.h => donau/taler-donau-httpd.h} (93%)
 rename src/{exchange/taler-exchange-httpd_batch-deposit.c => 
donau/taler-donau-httpd_batch-deposit.c} (87%)
 rename src/{exchange/taler-exchange-httpd_batch-deposit.h => 
donau/taler-donau-httpd_batch-deposit.h} (85%)
 rename src/{exchange/taler-exchange-httpd_batch-withdraw.c => 
donau/taler-donau-httpd_batch-withdraw.c} (94%)
 rename src/{exchange/taler-exchange-httpd_batch-withdraw.h => 
donau/taler-donau-httpd_batch-withdraw.h} (85%)
 rename src/{exchange/taler-exchange-httpd_common_deposit.c => 
donau/taler-donau-httpd_common_deposit.c} (88%)
 rename src/{exchange/taler-exchange-httpd_common_deposit.h => 
donau/taler-donau-httpd_common_deposit.h} (93%)
 rename src/{exchange/taler-exchange-httpd_config.c => 
donau/taler-donau-httpd_config.c} (83%)
 rename src/{exchange/taler-exchange-httpd_config.h => 
donau/taler-donau-httpd_config.h} (84%)
 rename src/{exchange/taler-exchange-httpd_csr.c => 
donau/taler-donau-httpd_csr.c} (90%)
 rename src/{exchange/taler-exchange-httpd_csr.h => 
donau/taler-donau-httpd_csr.h} (86%)
 rename src/{exchange/taler-exchange-httpd_db.c => 
donau/taler-donau-httpd_db.c} (88%)
 rename src/{exchange/taler-exchange-httpd_db.h => 
donau/taler-donau-httpd_db.h} (92%)
 rename src/{exchange/taler-exchange-httpd_deposits_get.c => 
donau/taler-donau-httpd_deposits_get.c} (87%)
 rename src/{exchange/taler-exchange-httpd_deposits_get.h => 
donau/taler-donau-httpd_deposits_get.h} (75%)
 rename src/{exchange/taler-exchange-httpd_keys.c => 
donau/taler-donau-httpd_keys.c} (95%)
 rename src/{exchange/taler-exchange-httpd_keys.h => 
donau/taler-donau-httpd_keys.h} (89%)
 rename src/{exchange/taler-exchange-httpd_metrics.c => 
donau/taler-donau-httpd_metrics.c} (60%)
 rename src/{exchange/taler-exchange-httpd_metrics.h => 
donau/taler-donau-httpd_metrics.h} (88%)
 rename src/{exchange/taler-exchange-httpd_mhd.c => 
donau/taler-donau-httpd_mhd.c} (80%)
 rename src/{exchange/taler-exchange-httpd_mhd.h => 
donau/taler-donau-httpd_mhd.h} (87%)
 rename src/{exchange/taler-exchange-httpd_reserves_close.c => 
donau/taler-donau-httpd_reserves_close.c} (94%)
 rename src/{exchange/taler-exchange-httpd_reserves_close.h => 
donau/taler-donau-httpd_reserves_close.h} (82%)
 rename src/{exchange/taler-exchange-httpd_reserves_get.c => 
donau/taler-donau-httpd_reserves_get.c} (94%)
 rename src/{exchange/taler-exchange-httpd_reserves_get.h => 
donau/taler-donau-httpd_reserves_get.h} (85%)
 rename src/{exchange/taler-exchange-httpd_reserves_history.c => 
donau/taler-donau-httpd_reserves_history.c} (90%)
 rename src/{exchange/taler-exchange-httpd_reserves_history.h => 
donau/taler-donau-httpd_reserves_history.h} (82%)
 rename src/{exchange/taler-exchange-httpd_reserves_open.c => 
donau/taler-donau-httpd_reserves_open.c} (93%)
 rename src/{exchange/taler-exchange-httpd_reserves_open.h => 
donau/taler-donau-httpd_reserves_open.h} (82%)
 rename src/{exchange/taler-exchange-httpd_reserves_status.c => 
donau/taler-donau-httpd_reserves_status.c} (91%)
 rename src/{exchange/taler-exchange-httpd_reserves_status.h => 
donau/taler-donau-httpd_reserves_status.h} (82%)
 rename src/{exchange/taler-exchange-httpd_responses.c => 
donau/taler-donau-httpd_responses.c} (83%)
 rename src/{exchange/taler-exchange-httpd_responses.h => 
donau/taler-donau-httpd_responses.h} (90%)
 rename src/{exchange/taler-exchange-httpd_terms.c => 
donau/taler-donau-httpd_terms.c} (87%)
 rename src/{exchange/taler-exchange-httpd_terms.h => 
donau/taler-donau-httpd_terms.h} (87%)
 rename src/{exchange/taler-exchange-httpd_withdraw.c => 
donau/taler-donau-httpd_withdraw.c} (94%)
 rename src/{exchange/taler-exchange-httpd_withdraw.h => 
donau/taler-donau-httpd_withdraw.h} (86%)
 rename src/{exchange/test_taler_exchange_httpd.conf => 
donau/test_taler_donau_httpd.conf} (87%)
 rename src/{exchange/test_taler_exchange_httpd.sh => 
donau/test_taler_donau_httpd.sh} (55%)
 rename src/{exchange/test_taler_exchange_unix.conf => 
donau/test_taler_donau_unix.conf} (87%)
 create mode 100644 src/donaudb/.gitignore
 rename src/{exchangedb => donaudb}/0002-account_merges.sql (95%)
 rename src/{exchangedb => donaudb}/0002-batch_deposits.sql (89%)
 rename src/{exchangedb => donaudb}/0002-coin_deposits.sql (94%)
 rename src/{exchangedb => donaudb}/0002-cs_nonce_locks.sql (94%)
 rename src/{exchangedb => donaudb}/0002-denomination_revocations.sql (92%)
 rename src/{exchangedb => donaudb}/0002-denominations.sql (92%)
 rename src/{exchangedb/0002-exchange_sign_keys.sql => 
donaudb/0002-donau_sign_keys.sql} (69%)
 rename src/{exchangedb => donaudb}/0002-known_coins.sql (91%)
 rename src/{exchangedb => donaudb}/0002-reserves.sql (96%)
 rename src/{exchangedb => donaudb}/0002-reserves_in.sql (92%)
 rename src/{exchangedb => donaudb}/0002-reserves_out.sql (93%)
 rename src/{exchangedb => donaudb}/0002-signkey_revocations.sql (84%)
 rename src/{exchangedb => donaudb}/0002-wad_in_entries.sql (95%)
 rename src/{exchangedb => donaudb}/0002-wad_out_entries.sql (96%)
 rename src/{exchangedb => donaudb}/0002-wads_in.sql (82%)
 rename src/{exchangedb => donaudb}/0002-wads_out.sql (90%)
 rename src/{exchangedb => donaudb}/Makefile.am (91%)
 rename src/{exchangedb => donaudb}/bench-db-postgres.conf (61%)
 rename src/{exchangedb => donaudb}/benchmark-0001.sql (95%)
 rename src/{exchangedb/exchange-0001.sql => donaudb/donau-0001.sql} (86%)
 rename src/{exchangedb/exchange-0002.sql.in => donaudb/donau-0002.sql.in} (88%)
 rename src/{exchangedb/exchange_do_account_merge.sql => 
donaudb/donau_do_account_merge.sql} (88%)
 rename src/{exchangedb/exchange_do_amount_specific.sql => 
donaudb/donau_do_amount_specific.sql} (100%)
 rename src/{exchangedb/exchange_do_batch_coin_known.sql => 
donaudb/donau_do_batch_coin_known.sql} (97%)
 rename src/{exchangedb/exchange_do_batch_reserves_update.sql => 
donaudb/donau_do_batch_reserves_update.sql} (89%)
 rename src/{exchangedb/exchange_do_batch_withdraw.sql => 
donaudb/donau_do_batch_withdraw.sql} (90%)
 rename src/{exchangedb/exchange_do_batch_withdraw_insert.sql => 
donaudb/donau_do_batch_withdraw_insert.sql} (87%)
 rename src/{exchangedb/exchange_do_deposit.sql => 
donaudb/donau_do_deposit.sql} (88%)
 rename src/{exchangedb/exchange_do_gc.sql => donaudb/donau_do_gc.sql} (74%)
 rename src/{exchangedb/exchange_do_reserves_in_insert.sql => 
donaudb/donau_do_reserves_in_insert.sql} (87%)
 rename src/{exchangedb/exchange_do_withdraw.sql => 
donaudb/donau_do_withdraw.sql} (90%)
 rename src/{exchangedb/exchangedb-postgres.conf => 
donaudb/donaudb-postgres.conf} (67%)
 rename src/{exchangedb/exchangedb.conf => donaudb/donaudb.conf} (78%)
 rename src/{exchangedb/exchangedb_plugin.c => donaudb/donaudb_plugin.c} (74%)
 rename src/{exchangedb/exchangedb_transactions.c => 
donaudb/donaudb_transactions.c} (87%)
 rename src/{exchangedb => donaudb}/drop.sql (77%)
 rename src/{exchangedb => donaudb}/exchange_do_withdraw.sql~ (91%)
 rename src/{exchangedb => donaudb}/list.txt (69%)
 rename src/{exchangedb => donaudb}/pg_activate_signing_key.c (82%)
 rename src/{exchangedb => donaudb}/pg_activate_signing_key.h (74%)
 rename src/{exchangedb => donaudb}/pg_add_denomination_key.c (94%)
 rename src/{exchangedb => donaudb}/pg_add_denomination_key.h (86%)
 rename src/{exchangedb => donaudb}/pg_batch_ensure_coin_known.c (97%)
 rename src/{exchangedb => donaudb}/pg_batch_ensure_coin_known.h (87%)
 rename src/{exchangedb => donaudb}/pg_commit.c (93%)
 rename src/{exchangedb => donaudb}/pg_commit.h (87%)
 rename src/{exchangedb => donaudb}/pg_count_known_coins.c (94%)
 rename src/{exchangedb => donaudb}/pg_count_known_coins.h (88%)
 rename src/{exchangedb => donaudb}/pg_create_tables.c (86%)
 rename src/{exchangedb => donaudb}/pg_create_tables.h (90%)
 rename src/{exchangedb => donaudb}/pg_do_batch_withdraw.c (94%)
 rename src/{exchangedb => donaudb}/pg_do_batch_withdraw.h (92%)
 rename src/{exchangedb => donaudb}/pg_do_batch_withdraw_insert.c (91%)
 rename src/{exchangedb => donaudb}/pg_do_batch_withdraw_insert.h (88%)
 rename src/{exchangedb => donaudb}/pg_do_deposit.c (85%)
 rename src/{exchangedb => donaudb}/pg_do_deposit.h (82%)
 rename src/{exchangedb => donaudb}/pg_do_withdraw.c (93%)
 rename src/{exchangedb => donaudb}/pg_do_withdraw.h (90%)
 rename src/{exchangedb => donaudb}/pg_drop_tables.c (90%)
 rename src/{exchangedb => donaudb}/pg_drop_tables.h (87%)
 rename src/{exchangedb => donaudb}/pg_ensure_coin_known.c (91%)
 rename src/{exchangedb => donaudb}/pg_ensure_coin_known.h (89%)
 rename src/{exchangedb => donaudb}/pg_event_listen.c (93%)
 rename src/{exchangedb => donaudb}/pg_event_listen.h (90%)
 rename src/{exchangedb => donaudb}/pg_event_listen_cancel.c (89%)
 rename src/{exchangedb => donaudb}/pg_event_listen_cancel.h (86%)
 rename src/{exchangedb => donaudb}/pg_event_notify.c (91%)
 rename src/{exchangedb => donaudb}/pg_event_notify.h (88%)
 rename src/{exchangedb => donaudb}/pg_gc.c (89%)
 rename src/{exchangedb => donaudb}/pg_gc.h (88%)
 rename src/{exchangedb => donaudb}/pg_get_coin_denomination.c (93%)
 rename src/{exchangedb => donaudb}/pg_get_coin_denomination.h (89%)
 rename src/{exchangedb => donaudb}/pg_get_coin_transactions.c (88%)
 rename src/{exchangedb => donaudb}/pg_get_coin_transactions.h (89%)
 rename src/{exchangedb => donaudb}/pg_get_denomination_info.c (94%)
 rename src/{exchangedb => donaudb}/pg_get_denomination_info.h (85%)
 rename src/{exchangedb => donaudb}/pg_get_denomination_revocation.c (94%)
 rename src/{exchangedb => donaudb}/pg_get_denomination_revocation.h (89%)
 rename src/{exchangedb => donaudb}/pg_get_expired_reserves.c (95%)
 rename src/{exchangedb => donaudb}/pg_get_expired_reserves.h (87%)
 rename src/{exchangedb => donaudb}/pg_get_known_coin.c (94%)
 rename src/{exchangedb => donaudb}/pg_get_known_coin.h (89%)
 rename src/{exchangedb => donaudb}/pg_get_ready_deposit.c (87%)
 rename src/{exchangedb => donaudb}/pg_get_ready_deposit.h (78%)
 rename src/{exchangedb => donaudb}/pg_get_reserve_balance.c (93%)
 rename src/{exchangedb => donaudb}/pg_get_reserve_balance.h (88%)
 rename src/{exchangedb => donaudb}/pg_get_reserve_by_h_blind.c (94%)
 rename src/{exchangedb => donaudb}/pg_get_reserve_by_h_blind.h (89%)
 rename src/{exchangedb => donaudb}/pg_get_withdraw_info.c (93%)
 rename src/{exchangedb => donaudb}/pg_get_withdraw_info.h (86%)
 rename src/{exchangedb => donaudb}/pg_have_deposit2.c (84%)
 rename src/{exchangedb => donaudb}/pg_have_deposit2.h (75%)
 rename src/{exchangedb => donaudb}/pg_helper.h (97%)
 rename src/{exchangedb => donaudb}/pg_insert_denomination_info.c (95%)
 rename src/{exchangedb => donaudb}/pg_insert_denomination_info.h (85%)
 rename src/{exchangedb => donaudb}/pg_insert_denomination_revocation.c (93%)
 rename src/{exchangedb => donaudb}/pg_insert_denomination_revocation.h (88%)
 rename src/{exchangedb => donaudb}/pg_insert_signkey_revocation.c (82%)
 rename src/{exchangedb => donaudb}/pg_insert_signkey_revocation.h (80%)
 rename src/{exchangedb => donaudb}/pg_iterate_active_signkeys.c (85%)
 rename src/{exchangedb => donaudb}/pg_iterate_active_signkeys.h (80%)
 rename src/{exchangedb => donaudb}/pg_iterate_denomination_info.c (93%)
 rename src/{exchangedb => donaudb}/pg_iterate_denomination_info.h (83%)
 rename src/{exchangedb => donaudb}/pg_iterate_denominations.c (94%)
 rename src/{exchangedb => donaudb}/pg_iterate_denominations.h (85%)
 rename src/{exchangedb => donaudb}/pg_lookup_denomination_key.c (94%)
 rename src/{exchangedb => donaudb}/pg_lookup_denomination_key.h (84%)
 rename src/{exchangedb => donaudb}/pg_lookup_signing_key.c (83%)
 rename src/{exchangedb => donaudb}/pg_lookup_signing_key.h (72%)
 rename src/{exchangedb => donaudb}/pg_lookup_signkey_revocation.c (84%)
 rename src/{exchangedb => donaudb}/pg_lookup_signkey_revocation.h (81%)
 rename src/{exchangedb => donaudb}/pg_preflight.c (94%)
 rename src/{exchangedb => donaudb}/pg_preflight.h (89%)
 rename src/{exchangedb => donaudb}/pg_reserves_get.c (91%)
 rename src/{exchangedb => donaudb}/pg_reserves_get.h (85%)
 rename src/{exchangedb => donaudb}/pg_reserves_get_origin.c (93%)
 rename src/{exchangedb => donaudb}/pg_reserves_get_origin.h (88%)
 rename src/{exchangedb => donaudb}/pg_reserves_in_insert.c (93%)
 rename src/{exchangedb => donaudb}/pg_reserves_in_insert.h (86%)
 rename src/{exchangedb => donaudb}/pg_reserves_update.c (89%)
 rename src/{exchangedb => donaudb}/pg_reserves_update.h (84%)
 rename src/{exchangedb => donaudb}/pg_rollback.c (92%)
 rename src/{exchangedb => donaudb}/pg_rollback.h (86%)
 rename src/{exchangedb => donaudb}/pg_start.c (93%)
 rename src/{exchangedb => donaudb}/pg_start.h (88%)
 rename src/{exchangedb => donaudb}/pg_start_read_committed.c (93%)
 rename src/{exchangedb => donaudb}/pg_start_read_committed.h (88%)
 rename src/{exchangedb => donaudb}/pg_start_read_only.c (93%)
 rename src/{exchangedb => donaudb}/pg_start_read_only.h (88%)
 rename src/{exchangedb => donaudb}/pg_template.c (88%)
 rename src/{exchangedb => donaudb}/pg_template.h (84%)
 rename src/{exchangedb => donaudb}/pg_template.sh (78%)
 rename src/{exchangedb/plugin_exchangedb_common.c => 
donaudb/plugin_donaudb_common.c} (61%)
 rename src/{exchangedb/plugin_exchangedb_common.h => 
donaudb/plugin_donaudb_common.h} (79%)
 rename src/{exchangedb/plugin_exchangedb_postgres.c => 
donaudb/plugin_donaudb_postgres.c} (94%)
 create mode 100644 src/donaudb/procedures.sql.in
 rename src/{exchangedb/test_exchangedb.c => donaudb/test_donaudb.c} (91%)
 rename src/{exchangedb => donaudb}/versioning.sql (99%)
 delete mode 100644 src/exchange/.gitignore
 delete mode 100644 src/exchange/Makefile.am
 delete mode 100644 src/exchangedb/.gitignore
 delete mode 100644 src/exchangedb/procedures.sql.in
 rename src/lib/{exchange_api_batch_deposit.c => donau_api_batch_deposit.c} 
(78%)
 rename src/lib/{exchange_api_batch_withdraw.c => donau_api_batch_withdraw.c} 
(79%)
 rename src/lib/{exchange_api_batch_withdraw2.c => donau_api_batch_withdraw2.c} 
(84%)
 rename src/lib/{exchange_api_common.c => donau_api_common.c} (86%)
 rename src/lib/{exchange_api_common.h => donau_api_common.h} (82%)
 rename src/lib/{exchange_api_csr_withdraw.c => donau_api_csr_withdraw.c} (78%)
 rename src/lib/{exchange_api_curl_defaults.c => donau_api_curl_defaults.c} 
(89%)
 rename src/lib/{exchange_api_curl_defaults.h => donau_api_curl_defaults.h} 
(78%)
 rename src/lib/{exchange_api_deposits_get.c => donau_api_deposits_get.c} (73%)
 rename src/lib/{exchange_api_handle.c => donau_api_handle.c} (88%)
 rename src/lib/{exchange_api_handle.h => donau_api_handle.h} (80%)
 rename src/lib/{exchange_api_reserves_close.c => donau_api_reserves_close.c} 
(87%)
 rename src/lib/{exchange_api_reserves_get.c => donau_api_reserves_get.c} (84%)
 rename src/lib/{exchange_api_reserves_history.c => 
donau_api_reserves_history.c} (82%)
 rename src/lib/{exchange_api_reserves_open.c => donau_api_reserves_open.c} 
(88%)
 rename src/lib/{exchange_api_reserves_status.c => donau_api_reserves_status.c} 
(82%)
 rename src/lib/{exchange_api_transfers_get.c => donau_api_transfers_get.c} 
(81%)
 rename src/lib/{exchange_api_withdraw.c => donau_api_withdraw.c} (78%)
 rename src/lib/{exchange_api_withdraw2.c => donau_api_withdraw2.c} (84%)
 rename src/testing/{test_exchange_api-cs.conf => test_donau_api-cs.conf} (65%)
 rename src/testing/{test_exchange_api-rsa.conf => test_donau_api-rsa.conf} 
(67%)
 rename src/testing/{test_exchange_api.c => test_donau_api.c} (91%)
 rename src/testing/{test_exchange_api.conf => test_donau_api.conf} (80%)
 rename src/testing/{testing_api_cmd_get_exchange.c => 
testing_api_cmd_get_donau.c} (70%)
 rename src/util/{merchant_signatures.c => charity_signatures.c} (59%)
 rename src/util/{exchange_signatures.c => donau_signatures.c} (68%)

diff --git a/COPYING b/COPYING
index dba13ed..b56a0b7 100644
--- a/COPYING
+++ b/COPYING
@@ -245,7 +245,7 @@ in one of these ways:
     b) Convey the object code in, or embodied in, a physical product
     (including a physical distribution medium), accompanied by a
     written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
+    long as you offer spare parts or donor support for that product
     model, to give anyone who possesses the object code either (1) a
     copy of the Corresponding Source for all the software in the
     product that is covered by this License, on a durable physical
@@ -590,7 +590,7 @@ later version.
 APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
 HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+THE IMPLIED WARRANTIES OF CHARITYABILITY AND FITNESS FOR A PARTICULAR
 PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
 IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
@@ -639,7 +639,7 @@ the "copyright" line and a pointer to where the full notice 
is found.
 
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Affero General Public License for more details.
 
     You should have received a copy of the GNU Affero General Public License
diff --git a/README b/README
index 2e6dbba..e33a52a 100644
--- a/README
+++ b/README
@@ -6,11 +6,11 @@ What is Taler?
 
 Taler is an electronic payment system providing the ability to pay
 anonymously using digital cash.  Taler consists of a network protocol
-definition (using a RESTful API over HTTP), a Exchange (which creates
-digital coins), a Wallet (which allows customers to manage, store and
-spend digital coins), and a Merchant website which allows customers to
-spend their digital coins.  Naturally, each Merchant is different, but
-Taler includes code examples to help Merchants integrate Taler as a
+definition (using a RESTful API over HTTP), a Donau (which creates
+digital coins), a Wallet (which allows donors to manage, store and
+spend digital coins), and a Charity website which allows donors to
+spend their digital coins.  Naturally, each Charity is different, but
+Taler includes code examples to help Charities integrate Taler as a
 payment system.
 
 Taler is currently developed by a worldwide group of independent free software
@@ -20,7 +20,7 @@ package (https://www.gnu.org/).
 This is an alpha release with a few known bugs, lacking a few important
 features, documentation, testing, performance tuning and an external security
 audit.  However, you can run the code and it largely works fine.  This package
-also only includes the Taler exchange, not the other components of the system.
+also only includes the Taler donau, not the other components of the system.
 
 Documentation about Taler can be found at https://taler.net/.
 Our bug tracker is at https://bugs.taler.net/.
@@ -40,7 +40,7 @@ We are looking forward to hacking with you!
 Dependencies:
 =============
 
-These are the direct dependencies for running a Taler exchange:
+These are the direct dependencies for running a Taler donau:
 
 - GNUnet            >= 0.16.0
 - GNU libmicrohttpd >= 0.9.71
@@ -61,21 +61,21 @@ src/util/
 src/pq/
   -- Postgres-specific utility functions
 
-src/exchangedb/
-  -- Exchange database backend (with database-specific plugins)
+src/donaudb/
+  -- Donau database backend (with database-specific plugins)
 
-src/exchange/
-  -- taler exchange server
+src/donau/
+  -- taler donau server
 
-src/exchange-tools/
-  -- taler exchange helper programs
+src/donau-tools/
+  -- taler donau helper programs
 
 src/lib/
-  -- libtalerexchange: C API to issue HTTP requests to exchange
+  -- libtalerdonau: C API to issue HTTP requests to donau
 
 src/auditor/
   -- tools to generate reports about financial performance and
-     to validate that the exchange has been operating correctly
+     to validate that the donau has been operating correctly
 
 src/auditordb/
   -- database logic for the auditor component (with database-specific
@@ -96,7 +96,7 @@ src/bank-lib/
      RTGS emulator ("fakebank") for testing.
 
 src/extensions/
-  -- extensions to the core logic of an exchange
+  -- extensions to the core logic of an donau
 
 src/json/
   -- helper functions for generating and parsing JSON
@@ -111,9 +111,9 @@ src/curl/
 Getting Started
 ===============
 
-Please follow the exchange manual you can view after
+Please follow the donau manual you can view after
 installing using
 
-$ info taler-exchange
+$ info taler-donau
 
 or by visiting https://docs.taler.net/.
diff --git a/aclocal.m4 b/aclocal.m4
index 44ab1c8..981f0e3 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -8,7 +8,7 @@
 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# even the implied warranty of CHARITYABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
 m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], 
[])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
@@ -33,7 +33,7 @@ dnl (at your option) any later version.
 dnl
 dnl This program is distributed in the hope that it will be useful, but
 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 dnl General Public License for more details.
 dnl
 dnl You should have received a copy of the GNU General Public License
diff --git a/ci/jobs/0-codespell/job.sh b/ci/jobs/0-codespell/job.sh
index 58bd07b..bb37c82 100755
--- a/ci/jobs/0-codespell/job.sh
+++ b/ci/jobs/0-codespell/job.sh
@@ -3,4 +3,4 @@ set -exuo pipefail
 
 job_dir=$(dirname "${BASH_SOURCE[0]}")
 
-codespell -I "${job_dir}"/dictionary.txt -S 
"*.bib,*.bst,*.cls,*.json,*.png,*.svg,*.wav,*.gz,*/templating/test?/**,**/auditor/*.sql,**/templating/mustach**,*.fees,*key,*.tag,*.info,*.latexmkrc,*.ecc,*.jpg,*.zkey,*.sqlite,*/contrib/hellos/**,*/vpn/tests/**,*.priv,*.file,*.tgz,*.woff,*.gif,*.odt,*.fee,*.deflate,*.dat,*.jpeg,*.eps,*.odg,*/m4/ax_lib_postgresql.m4,*/m4/libgcrypt.m4,*.rpath,config.status,ABOUT-NLS,*/doc/texinfo.tex,*.PNG,*.??.json,*.docx,*.ods,*.doc,*.docx,*.xcf,*.xlsx,*.ecc,*
 [...]
+codespell -I "${job_dir}"/dictionary.txt -S 
"*.bib,*.bst,*.cls,*.json,*.png,*.svg,*.wav,*.gz,*/templating/test?/**,**/auditor/*.sql,**/templating/mustach**,*.fees,*key,*.tag,*.info,*.latexmkrc,*.ecc,*.jpg,*.zkey,*.sqlite,*/contrib/hellos/**,*/vpn/tests/**,*.priv,*.file,*.tgz,*.woff,*.gif,*.odt,*.fee,*.deflate,*.dat,*.jpeg,*.eps,*.odg,*/m4/ax_lib_postgresql.m4,*/m4/libgcrypt.m4,*.rpath,config.status,ABOUT-NLS,*/doc/texinfo.tex,*.PNG,*.??.json,*.docx,*.ods,*.doc,*.docx,*.xcf,*.xlsx,*.ecc,*
 [...]
diff --git a/ci/jobs/4-deb-package/install-fix.patch 
b/ci/jobs/4-deb-package/install-fix.patch
index 8334c5a..8f72309 100644
--- a/ci/jobs/4-deb-package/install-fix.patch
+++ b/ci/jobs/4-deb-package/install-fix.patch
@@ -1,13 +1,13 @@
-diff --git a/debian/taler-exchange.install b/debian/taler-exchange.install
+diff --git a/debian/taler-donau.install b/debian/taler-donau.install
 index 631c270b..072c6231 100644
---- a/debian/taler-exchange.install
-+++ b/debian/taler-exchange.install
-@@ -36,6 +36,6 @@ usr/share/taler/exchange/templates/*.must
- debian/etc-taler-exchange/* etc/
+--- a/debian/taler-donau.install
++++ b/debian/taler-donau.install
+@@ -36,6 +36,6 @@ usr/share/taler/donau/templates/*.must
+ debian/etc-taler-donau/* etc/
  
  # Terms of service / privacy policy templates
--usr/share/taler/exchange/*.rst
-+#usr/share/taler/exchange/terms/*.rst
+-usr/share/taler/donau/*.rst
++#usr/share/taler/donau/terms/*.rst
  # Translations of ToS/PP
--usr/share/taler/exchange/locale/*/LC_MESSAGES/*.po
-+#usr/share/taler/exchange/terms/locale/*/LC_MESSAGES/*.po
+-usr/share/taler/donau/locale/*/LC_MESSAGES/*.po
++#usr/share/taler/donau/terms/locale/*/LC_MESSAGES/*.po
diff --git a/configure.ac b/configure.ac
index fc08c5f..dbbf57c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@
 #  Foundation; either version 3, or (at your option) any later version.
 #
 #  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 #  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
 #  You should have received a copy of the GNU General Public License along with
@@ -17,7 +17,7 @@
 #
 #
 AC_PREREQ([2.69])
-AC_INIT([taler-exchange],[0.9.2],[taler-bug@gnunet.org])
+AC_INIT([taler-donau],[0.9.2],[taler-bug@gnunet.org])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_SRCDIR([src/util/util.c])
 AC_CONFIG_HEADERS([taler_config.h])
@@ -41,7 +41,7 @@ AM_PROG_CC_C_O
 
 LT_INIT([disable-static dlopen])
 
-DX_INIT_DOXYGEN([taler-exchange],,,
+DX_INIT_DOXYGEN([taler-donau],,,
  DX_PS_FEATURE(OFF),
  DX_PDF_FEATURE(OFF),
  DX_RTF_FEATURE(OFF),
@@ -521,9 +521,9 @@ AC_CONFIG_FILES([Makefile
                  src/auditordb/Makefile
                  src/bank-lib/Makefile
                  src/curl/Makefile
-                 src/exchange/Makefile
-                 src/exchangedb/Makefile
-                 src/exchange-tools/Makefile
+                 src/donau/Makefile
+                 src/donaudb/Makefile
+                 src/donau-tools/Makefile
                  src/extensions/Makefile
                  src/extensions/age_restriction/Makefile
                  src/lib/Makefile
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 58c8969..ea114ed 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -2,11 +2,11 @@
 
 SUBDIRS = .
 
-tmplpkgdatadir = $(datadir)/taler/exchange/templates/
+tmplpkgdatadir = $(datadir)/taler/donau/templates/
 dist_tmplpkgdata_DATA = \
-  persona-exchange-unauthorized.en.must \
+  persona-donau-unauthorized.en.must \
   persona-load-failure.en.must \
-  persona-exchange-unpaid.en.must \
+  persona-donau-unpaid.en.must \
   persona-logic-failure.en.must \
   persona-invalid-response.en.must \
   persona-network-timeout.en.must \
@@ -15,22 +15,22 @@ dist_tmplpkgdata_DATA = \
 
 termsdir=$(datadir)/taler/terms/
 terms_DATA = \
-  exchange-tos-v0.rst \
-  exchange-tos-bfh-v0.rst \
-  exchange-pp-v0.rst
+  donau-tos-v0.rst \
+  donau-tos-bfh-v0.rst \
+  donau-pp-v0.rst
 
 install-exec-local:
        find locale/ -name "*.po"
        mkdir -p $(DESTDIR)$(datadir)
        cp --parents -r $$(find locale/ -name "*.po") $(DESTDIR)$(datadir)
 
-rdatadir=$(datadir)/taler/exchange
+rdatadir=$(datadir)/taler/donau
 rdata_DATA = \
   auditor-report.tex.j2
 
 bin_SCRIPTS = \
   taler-auditor-dbconfig \
-  taler-exchange-dbconfig \
+  taler-donau-dbconfig \
   taler-terms-generator \
   taler-bank-manage-testing \
   taler-nexus-prepare
@@ -46,7 +46,7 @@ CLEANFILES = \
   taler-terms-generator
 
 EXTRA_DIST = \
-  locale/de/LC_MESSAGES/exchange-tos-v0.po \
+  locale/de/LC_MESSAGES/donau-tos-v0.po \
   taler-bank-manage-testing \
   taler-nexus-prepare \
   taler-terms-generator.in \
diff --git a/contrib/coverage.sh b/contrib/coverage.sh
index cce6222..7aa362c 100755
--- a/contrib/coverage.sh
+++ b/contrib/coverage.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Run from 'taler-exchange/' top-level directory to generate
+# Run from 'taler-donau/' top-level directory to generate
 # code coverage data.
 TOP=`pwd`
 mkdir -p doc/coverage/
diff --git a/contrib/taler-exchange-dbconfig b/contrib/taler-donau-dbconfig
similarity index 81%
rename from contrib/taler-exchange-dbconfig
rename to contrib/taler-donau-dbconfig
index dc92abb..47ee1ec 100755
--- a/contrib/taler-exchange-dbconfig
+++ b/contrib/taler-donau-dbconfig
@@ -7,7 +7,7 @@
 # Foundation; either version 2.1, or (at your option) any later version.
 #
 # TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more 
details.
 #
 # You should have received a copy of the GNU Lesser General Public License 
along with
@@ -21,10 +21,10 @@ set -eu
 
 RESET_DB=0
 SKIP_DBINIT=0
-DBUSER="taler-exchange-httpd"
-DBGROUP="taler-exchange-db"
-DBNAME="exchange"
-CFGFILE="/etc/taler/secrets/exchange-db.secret.conf"
+DBUSER="taler-donau-httpd"
+DBGROUP="taler-donau-db"
+DBNAME="donau"
+CFGFILE="/etc/taler/secrets/donau-db.secret.conf"
 
 # Parse command-line options
 while getopts ':g:hn:rsu:' OPTION; do
@@ -32,12 +32,12 @@ while getopts ':g:hn:rsu:' OPTION; do
         h)
             echo 'Supported options:'
             echo "  -c FILENAME  -- write configuration to FILENAME (default: 
$CFGFILE)"
-            echo "  -g GROUP     -- taler-exchange to be run by GROUP 
(default: $DBGROUP)"
+            echo "  -g GROUP     -- taler-donau to be run by GROUP (default: 
$DBGROUP)"
             echo "  -h           -- print this help text"
             echo "  -n NAME      -- user NAME for database name (default: 
$DBNAME)"
             echo "  -r           -- reset database (dangerous)"
             echo "  -s           -- skip database initialization"
-            echo "  -u USER      -- taler-exchange to be run by USER (default: 
$DBUSER)"
+            echo "  -u USER      -- taler-donau to be run by USER (default: 
$DBUSER)"
             exit 0
             ;;
         n)
@@ -72,9 +72,9 @@ fi
 
 if [ 0 = "$SKIP_DBINIT" ]
 then
-    if ! taler-exchange-dbinit -v 2> /dev/null
+    if ! taler-donau-dbinit -v 2> /dev/null
     then
-        echo "Required 'taler-exchange-dbinit' not found. Please fix your 
installation."
+        echo "Required 'taler-donau-dbinit' not found. Please fix your 
installation."
     fi
 fi
 
@@ -115,13 +115,13 @@ fi
 if [ -f "$CFGFILE" ]
 then
     echo "Adding database configuration to '$CFGFILE'." 1>&2
-    echo -e "[exchangedb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE"
+    echo -e "[donaudb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE"
     chown root:"$DBGROUP" "$CFGFILE"
     chmod 640 "$CFGFILE"
 else
     echo "Configuration '$CFGFILE' does not yet exist, creating it." 1>&2
     mkdir -p "$(dirname "$CFGFILE")"
-    echo -e "[exchangedb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE"
+    echo -e "[donaudb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE"
     chown root:"$DBGROUP" "$CFGFILE"
     chmod 640 "$CFGFILE"
 fi
@@ -129,7 +129,7 @@ fi
 if [ 0 = "$SKIP_DBINIT" ]
 then
     echo "Initializing database '$DBNAME'." 1>&2
-    sudo -u "$DBUSER" taler-exchange-dbinit
+    sudo -u "$DBUSER" taler-donau-dbinit
 fi
 
 echo "Database configuration finished." 1>&2
diff --git a/contrib/uncrustify-mode.el b/contrib/uncrustify-mode.el
index cf615b0..6a822ac 100755
--- a/contrib/uncrustify-mode.el
+++ b/contrib/uncrustify-mode.el
@@ -12,7 +12,7 @@
 
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
diff --git a/debian/.gitignore b/debian/.gitignore
index f3ddfd1..aa7c0f5 100644
--- a/debian/.gitignore
+++ b/debian/.gitignore
@@ -4,20 +4,20 @@ autoreconf.before
 debhelper-build-stamp
 files
 *.log
-libtalerexchange.substvars
-libtalerexchange/
-taler-exchange-dev.substvars
-taler-exchange-dev/
-taler-exchange.substvars
-taler-exchange/
-taler-exchange-database/
+libtalerdonau.substvars
+libtalerdonau/
+taler-donau-dev.substvars
+taler-donau-dev/
+taler-donau.substvars
+taler-donau/
+taler-donau-database/
 tmp/
-libtalerexchange-dev.substvars
-libtalerexchange-dev/
+libtalerdonau-dev.substvars
+libtalerdonau-dev/
 taler-auditor.postrm.debhelper
 taler-auditor.substvars
 taler-auditor/
-taler-exchange.postrm.debhelper
+taler-donau.postrm.debhelper
 *.debhelper
 *.substvars
-taler-exchange-offline
+taler-donau-offline
diff --git a/debian/README-packaging.md b/debian/README-packaging.md
index ac42746..3490fee 100644
--- a/debian/README-packaging.md
+++ b/debian/README-packaging.md
@@ -2,6 +2,6 @@ This file contains some notes about packaging.
 
 ## Systemd Units
 
-The main unit file is taler-exchange.service.  It is a unit that does not run
-anything, but instead can be used to stop/start all exchange-related services
+The main unit file is taler-donau.service.  It is a unit that does not run
+anything, but instead can be used to stop/start all donau-related services
 at once.
diff --git a/debian/changelog b/debian/changelog
index f0e914e..b0dd36d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,283 +1,283 @@
-taler-exchange (0.9.3) unstable; urgency=low
+taler-donau (0.9.3) unstable; urgency=low
 
   * First work towards packaging v0.9.3.
 
  -- Christian Grothoff <grothoff@gnu.org>  Thu, 7 Sep 2023 23:50:12 +0200
 
-taler-exchange (0.9.2-3) unstable; urgency=low
+taler-donau (0.9.2-3) unstable; urgency=low
 
   * Improvements to timeout handling when DB is not available yet.
 
  -- Florian Dold <dold@taler.net>  Tue, 14 Mar 2023 12:30:15 +0100
 
-taler-exchange (0.9.2-2) unstable; urgency=low
+taler-donau (0.9.2-2) unstable; urgency=low
 
   * Further improvements to Debian package.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sat, 3 Mar 2023 23:50:12 +0200
 
-taler-exchange (0.9.2-1) unstable; urgency=low
+taler-donau (0.9.2-1) unstable; urgency=low
 
   * Minor improvements to Debian package, also adds age-withdraw REST APIs.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sat, 3 Mar 2023 13:50:12 +0200
 
-taler-exchange (0.9.2) unstable; urgency=low
+taler-donau (0.9.2) unstable; urgency=low
 
   * Packaging latest release.
 
  -- Christian Grothoff <grothoff@gnu.org>  Tue, 21 Feb 2023 13:50:12 +0200
 
-taler-exchange (0.9.1) unstable; urgency=low
+taler-donau (0.9.1) unstable; urgency=low
 
   * Packaging latest release.
 
  -- Christian Grothoff <grothoff@gnu.org>  Tue, 17 Jan 2023 11:50:12 +0200
 
-taler-exchange (0.9.0) unstable; urgency=low
+taler-donau (0.9.0) unstable; urgency=low
 
   * Packaging latest release.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sat, 5 Nov 2022 11:50:12 +0200
 
-taler-exchange (0.8.99-2) unstable; urgency=low
+taler-donau (0.8.99-2) unstable; urgency=low
 
   * Packaging latest pre-release from Git.
 
  -- Christian Grothoff <grothoff@gnu.org>  Mon, 26 Sep 2022 09:50:12 +0200
 
-taler-exchange (0.8.99-1) unstable; urgency=low
+taler-donau (0.8.99-1) unstable; urgency=low
 
   * Updating to latest pre-release from Git.
 
  -- Christian Grothoff <grothoff@taler.net>  Mon, 20 Jun 2022 13:12:58 +0200
 
-taler-exchange (0.8.5-3) unstable; urgency=low
+taler-donau (0.8.5-3) unstable; urgency=low
 
   * Updating to latest Git with minor bugfixes and improvements.
 
  -- Christian Grothoff <grothoff@taler.net>  Tue, 12 Oct 2021 13:12:58 +0200
 
-taler-exchange (0.8.5-2) unstable; urgency=low
+taler-donau (0.8.5-2) unstable; urgency=low
 
   * Updating to latest Git with minor bugfixes and improvements.
 
  -- Christian Grothoff <grothoff@taler.net>  Mon, 27 Sep 2021 13:12:58 +0200
 
-taler-exchange (0.8.5-1) unstable; urgency=low
+taler-donau (0.8.5-1) unstable; urgency=low
 
   * Updating to latest Git with minor bugfixes and improvements.
 
  -- Christian Grothoff <grothoff@taler.net>  Sat, 28 Aug 2021 13:12:58 +0200
 
-taler-exchange (0.8.5) unstable; urgency=low
+taler-donau (0.8.5) unstable; urgency=low
 
-  * Official release of GNU Taler exchange 0.8.5.
+  * Official release of GNU Taler donau 0.8.5.
 
  -- Christian Grothoff <grothoff@taler.net>  Sat, 28 Aug 2021 13:12:58 +0200
 
-taler-exchange (0.8.4-1) unstable; urgency=low
+taler-donau (0.8.4-1) unstable; urgency=low
 
   * Updated GANA.
 
  -- Florian Dold <dold@taler.net>  Thu, 26 Aug 2021 16:37:33 +0200
 
-taler-exchange (0.8.4) unstable; urgency=low
+taler-donau (0.8.4) unstable; urgency=low
 
-  * Official release of GNU Taler exchange 0.8.4.
+  * Official release of GNU Taler donau 0.8.4.
 
  -- Florian Dold <dold@taler.net>  Tue, 24 Aug 2021 13:12:58 +0200
 
-taler-exchange (0.8.3) unstable; urgency=low
+taler-donau (0.8.3) unstable; urgency=low
 
-  * Official release of GNU Taler exchange 0.8.3.
+  * Official release of GNU Taler donau 0.8.3.
 
  -- Christian Grothoff <grothoff@taler.net>  Fri, 13 Aug 2021 23:23:21 +0200
 
-taler-exchange (0.8.2) unstable; urgency=low
+taler-donau (0.8.2) unstable; urgency=low
 
-  * Official release of GNU Taler exchange 0.8.2.
+  * Official release of GNU Taler donau 0.8.2.
 
  -- Christian Grothoff <grothoff@taler.net>  Sun, 08 Aug 2021 23:23:21 +0200
 
-taler-exchange (0.8.1-31) unstable; urgency=low
+taler-donau (0.8.1-31) unstable; urgency=low
 
   * Fix dependencies in service definition.
 
  -- Florian Dold <dold@taler.net>  Sat, 07 Aug 2021 23:23:21 +0200
 
-taler-exchange (0.8.1-30) unstable; urgency=low
+taler-donau (0.8.1-30) unstable; urgency=low
 
   * Fix dependencies in service definition.
   * Minor fixes in upstream code.
 
  -- Florian Dold <dold@taler.net>  Sat, 07 Aug 2021 20:20:33 +0200
 
-taler-exchange (0.8.1-29) unstable; urgency=low
+taler-donau (0.8.1-29) unstable; urgency=low
 
   * Minor fix in gateway client.
 
  -- Florian Dold <dold@taler.net>  Fri, 06 Aug 2021 17:17:46 +0200
 
-taler-exchange (0.8.1-28) unstable; urgency=low
+taler-donau (0.8.1-28) unstable; urgency=low
 
   * Service and configuration fixes.
 
  -- Florian Dold <dold@taler.net>  Fri, 06 Aug 2021 13:29:47 +0200
 
-taler-exchange (0.8.1-27) unstable; urgency=low
+taler-donau (0.8.1-27) unstable; urgency=low
 
   * Update to upstream code with minor bugfixes.
   * Fix permissions of secret configuration files in /etc.
 
  -- Florian Dold <dold@taler.net>  Thu, 05 Aug 2021 21:36:54 +0200
 
-taler-exchange (0.8.1-26) unstable; urgency=low
+taler-donau (0.8.1-26) unstable; urgency=low
 
   * Search config file location correctly.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 21:49:42 +0200
 
-taler-exchange (0.8.1-25) unstable; urgency=low
+taler-donau (0.8.1-25) unstable; urgency=low
 
   * Socket permissions.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 20:54:31 +0200
 
-taler-exchange (0.8.1-24) unstable; urgency=low
+taler-donau (0.8.1-24) unstable; urgency=low
 
   * Service dependencies.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 20:17:53 +0200
 
-taler-exchange (0.8.1-23) unstable; urgency=low
+taler-donau (0.8.1-23) unstable; urgency=low
 
   * Fix secmod helper permissions.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 20:01:12 +0200
 
-taler-exchange (0.8.1-22) unstable; urgency=low
+taler-donau (0.8.1-22) unstable; urgency=low
 
   * Fix permissions.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 19:08:56 +0200
 
-taler-exchange (0.8.1-21) unstable; urgency=low
+taler-donau (0.8.1-21) unstable; urgency=low
 
   * Fix service start assertion.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 18:54:54 +0200
 
-taler-exchange (0.8.1-20) unstable; urgency=low
+taler-donau (0.8.1-20) unstable; urgency=low
 
-  * Reduce service dependencies of taler-exchange-httpd.service.
+  * Reduce service dependencies of taler-donau-httpd.service.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 18:44:34 +0200
 
-taler-exchange (0.8.1-19) unstable; urgency=low
+taler-donau (0.8.1-19) unstable; urgency=low
 
   * Changes to configuration structure.
 
  -- Florian Dold <dold@taler.net>  Wed, 04 Aug 2021 16:41:21 +0200
 
-taler-exchange (0.8.1-18) unstable; urgency=low
+taler-donau (0.8.1-18) unstable; urgency=low
 
   * Support debhelper-compat 12.
 
  -- Florian Dold <dold@taler.net>  Sun, 01 Aug 2021 18:42:34 +0200
 
-taler-exchange (0.8.1-17) unstable; urgency=low
+taler-donau (0.8.1-17) unstable; urgency=low
 
   * Fix installation of config files.
 
  -- Florian Dold <dold@taler.net>  Sat, 31 Jul 2021 18:41:20 +0200
 
-taler-exchange (0.8.1-16) unstable; urgency=low
+taler-donau (0.8.1-16) unstable; urgency=low
 
   * Improved default configuration.
   * Various packaging tweaks.
 
  -- Florian Dold <dold@taler.net>  Sat, 31 Jul 2021 13:17:47 +0200
 
-taler-exchange (0.8.1-15) unstable; urgency=low
+taler-donau (0.8.1-15) unstable; urgency=low
 
   * New Taler amount operations (set zero, ...) added.
   * New configuration file structure
-  * New taler-exchange-offline package
+  * New taler-donau-offline package
 
  -- Florian Dold <dold@taler.net>  Mon, 26 Jul 2021 11:21:39 +0200
 
-taler-exchange (0.8.1-14) unstable; urgency=low
+taler-donau (0.8.1-14) unstable; urgency=low
 
-  * Expose additional symbols needed in merchant logic.
+  * Expose additional symbols needed in charity logic.
 
  -- Christian Grothoff <grothoff@gnu.org>  Tue, 20 Jul 2021 14:02:10 +0100
 
-taler-exchange (0.8.1-13) unstable; urgency=low
+taler-donau (0.8.1-13) unstable; urgency=low
 
   * New Taler amount operations (multiply and divide) added.
 
  -- Christian Grothoff <grothoff@gnu.org>  Wed, 14 Jul 2021 14:02:10 +0100
 
-taler-exchange (0.8.1-12) unstable; urgency=low
+taler-donau (0.8.1-12) unstable; urgency=low
 
   * Fix typo in taler-auditor shell script: clean before building.
 
  -- Christian Grothoff <grothoff@gnu.org>  Mon, 28 Jun 2021 14:02:10 +0100
 
-taler-exchange (0.8.1-11) unstable; urgency=low
+taler-donau (0.8.1-11) unstable; urgency=low
 
   * Fix typo in taler-auditor-sync.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sun, 27 Jun 2021 14:02:10 +0100
 
-taler-exchange (0.8.1-10) unstable; urgency=low
+taler-donau (0.8.1-10) unstable; urgency=low
 
-  * Improve database performance for taler-exchange-wirewatch.
+  * Improve database performance for taler-donau-wirewatch.
   * Update database schema, fix missing indices.
 
  -- Christian Grothoff <grothoff@gnu.org>  Thu, 24 Jun 2021 14:02:10 +0100
 
-taler-exchange (0.8.1-9) unstable; urgency=low
+taler-donau (0.8.1-9) unstable; urgency=low
 
-  * Fix #6769: have systemd create exchange UNIX domain socket with nice 
permissions.
+  * Fix #6769: have systemd create donau UNIX domain socket with nice 
permissions.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sun, 18 Apr 2021 13:02:10 +0100
 
-taler-exchange (0.8.1-8) unstable; urgency=low
+taler-donau (0.8.1-8) unstable; urgency=low
 
   * Fix minor memory leak.
 
  -- Christian Grothoff <grothoff@gnu.org>  Tue, 16 Feb 2021 13:02:10 +0100
 
-taler-exchange (0.8.1-7) unstable; urgency=medium
+taler-donau (0.8.1-7) unstable; urgency=medium
 
-  * Avoid picking up libtalerexchange-dev as a dependency of taler-exchange.
+  * Avoid picking up libtalerdonau-dev as a dependency of taler-donau.
 
  -- Christian Grothoff <grothoff@gnu.org>  Mon, 15 Feb 2021 13:02:10 +0100
 
-taler-exchange (0.8.1-6) unstable; urgency=medium
+taler-donau (0.8.1-6) unstable; urgency=medium
 
   * Fixed a few memory leaks.
 
  -- Christian Grothoff <grothoff@gnu.org>  Mon, 15 Feb 2021 12:02:10 +0100
 
-taler-exchange (0.8.1-5) unstable; urgency=medium
+taler-donau (0.8.1-5) unstable; urgency=medium
 
   * Fixed a few bugs.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sat, 30 Jan 2021 12:02:10 +0100
 
-taler-exchange (0.8.1-4) unstable; urgency=medium
+taler-donau (0.8.1-4) unstable; urgency=medium
 
-  * Added setup subcommand to taler-exchange-offline.
-  * Fixed conflict between taler-auditor and libtaler exchange packages.
+  * Added setup subcommand to taler-donau-offline.
+  * Fixed conflict between taler-auditor and libtaler donau packages.
   * Fixed bad handling of non-C locales.
   * Updated documentation.
 
  -- Christian Grothoff <grothoff@gnu.org>  Wed, 27 Jan 2021 12:02:10 +0100
 
-taler-exchange (0.8.1-3) unstable; urgency=medium
+taler-donau (0.8.1-3) unstable; urgency=medium
 
   * Renamed helper/secmod binaries for consistency.
   * Protocol improvements, removing unnecessary struct members.
@@ -287,15 +287,15 @@ taler-exchange (0.8.1-3) unstable; urgency=medium
 
  -- Christian Grothoff <grothoff@gnu.org>  Thu, 21 Jan 2021 12:02:10 +0100
 
-taler-exchange (0.8.1-3) unstable; urgency=medium
+taler-donau (0.8.1-3) unstable; urgency=medium
 
-  * Fix taler-exchange.postrm crash (prevented uninstall).
+  * Fix taler-donau.postrm crash (prevented uninstall).
   * Split out taler-auditor package.
   * Setup user and systemd service for taler-auditor-httpd.
 
  -- Christian Grothoff <grothoff@gnu.org>  Sun, 03 Jan 2020 23:00:00 +0000
 
-taler-exchange (0.8.1-2) unstable; urgency=medium
+taler-donau (0.8.1-2) unstable; urgency=medium
 
   * Modify setup to not touch database (too complex anyway).
   * Fix build of taler-config.
@@ -303,13 +303,13 @@ taler-exchange (0.8.1-2) unstable; urgency=medium
 
  -- Christian Grothoff <grothoff@gnu.org>  Sat, 02 Jan 2020 23:00:00 +0000
 
-taler-exchange (0.8.1-1) unstable; urgency=medium
+taler-donau (0.8.1-1) unstable; urgency=medium
 
   * Fixing various minor issues with the package, in particular how systemd 
units are started.
 
  -- Christian Grothoff <grothoff@gnu.org>  Thu, 31 Dec 2020 23:00:00 +0000
 
-taler-exchange (0.8.1-0) unstable; urgency=medium
+taler-donau (0.8.1-0) unstable; urgency=medium
 
   * Initial Release.
 
diff --git a/debian/control b/debian/control
index 3ac37c8..d87b048 100644
--- a/debian/control
+++ b/debian/control
@@ -1,4 +1,4 @@
-Source: taler-exchange
+Source: taler-donau
 Section: net
 Priority: optional
 Maintainer: Christian Grothoff <grothoff@gnu.org>
@@ -26,11 +26,11 @@ Build-Depends:
  texinfo (>=5.2),
  zlib1g-dev
 Standards-Version: 4.5.0
-Vcs-Git: https://salsa.debian.org/debian/taler-exchange.git
-Vcs-browser: https://salsa.debian.org/debian/taler-exchange
+Vcs-Git: https://salsa.debian.org/debian/taler-donau.git
+Vcs-browser: https://salsa.debian.org/debian/taler-donau
 Homepage: https://taler.net/
 
-Package: libtalerexchange
+Package: libtalerdonau
 Architecture: any
 Pre-Depends:
  ${misc:Pre-Depends}
@@ -42,14 +42,14 @@ Depends:
 Recommends:
  python3-sphinx,
  python3-sphinx-rtd-theme
-Description: Libraries to talk to a GNU Taler exchange.
+Description: Libraries to talk to a GNU Taler donau.
   The package also contains various files fundamental
   to all GNU Taler installations, such as the
   taler-config configuration command-line tool,
   various base configuration files and associated
   documentation.
 
-Package: taler-exchange-database
+Package: taler-donau-database
 Architecture: any
 Pre-Depends:
  ${misc:Pre-Depends}
@@ -58,18 +58,18 @@ Depends:
  netbase,
  ${misc:Depends},
  ${shlibs:Depends}
-Description: Programs and libraries to manage a GNU Taler exchange database.
+Description: Programs and libraries to manage a GNU Taler donau database.
  This package contains only the code to setup the
- (Postgresql) database interaction (taler-exchange-dbinit
+ (Postgresql) database interaction (taler-donau-dbinit
  and associated resource files).
 
-Package: taler-exchange
+Package: taler-donau
 Architecture: any
 Pre-Depends:
  ${misc:Pre-Depends}
 Depends:
- libtalerexchange (= ${binary:Version}),
- taler-exchange-database (= ${binary:Version}),
+ libtalerdonau (= ${binary:Version}),
+ taler-donau-database (= ${binary:Version}),
  adduser,
  lsb-base,
  netbase,
@@ -77,7 +77,7 @@ Depends:
  ${misc:Depends},
  ${shlibs:Depends}
 Recommends:
-  taler-exchange-offline (= ${binary:Version}),
+  taler-donau-offline (= ${binary:Version}),
   apache2 | nginx | httpd,
   postgresql (>=13.0)
 Description: GNU's payment system operator.
@@ -85,45 +85,45 @@ Description: GNU's payment system operator.
   system from the GNU project. This package contains the
   core logic that must be run by the payment service
   provider or bank to offer payments to consumers and
-  merchants.  At least one exchange must be operated
+  charities.  At least one donau must be operated
   per currency.
-  In addition to the core logic, an exchange operator
+  In addition to the core logic, an donau operator
   must also have a system running the "offline" logic
-  which is packaged as taler-exchange-offline. It is
+  which is packaged as taler-donau-offline. It is
   recommended to keep the "offline" logic on a system
   that is never connected to the Internet. However, it
   is also possible to run the "offline" logic directly
   on the production system, especially for testing.
-  Finally, an exchange operator should also be prepared
+  Finally, an donau operator should also be prepared
   to run a taler-auditor.
 
-Package: taler-exchange-offline
+Package: taler-donau-offline
 Architecture: any
 Pre-Depends:
  ${misc:Pre-Depends}
 Depends:
- libtalerexchange (= ${binary:Version}),
+ libtalerdonau (= ${binary:Version}),
  adduser,
  lsb-base,
  netbase,
  ${misc:Depends},
  ${shlibs:Depends}
-Description: Tools for managing the GNU Taler exchange offline keys.
- A GNU Taler exchange uses an offline key to sign its online
+Description: Tools for managing the GNU Taler donau offline keys.
+ A GNU Taler donau uses an offline key to sign its online
  keys, fee structure, bank routing information and other meta
  data. The offline signing key is the root of the Taler PKI
- that is then embedded in consumer wallets and merchant backends.
+ that is then embedded in consumer wallets and charity backends.
  This package includes the tool to download material to sign
- from the exchange, create signatures, and upload the resulting
- signatures to the exchange.
+ from the donau, create signatures, and upload the resulting
+ signatures to the donau.
 
 Package: taler-auditor
 Architecture: any
 Pre-Depends:
  ${misc:Pre-Depends}
 Depends:
- libtalerexchange (= ${binary:Version}),
- taler-exchange-database (= ${binary:Version}),
+ libtalerdonau (= ${binary:Version}),
+ taler-donau-database (= ${binary:Version}),
  adduser,
  lsb-base,
  netbase,
@@ -133,23 +133,23 @@ Depends:
 Description: GNU's payment system auditor.
   GNU Taler is the privacy-preserving digital payment
   system from the GNU project. This package contains the
-  auditor logic. It verifies that the taler-exchange run
+  auditor logic. It verifies that the taler-donau run
   by a payment service provider is correctly performing
   its bank transactions and thus has the correct balance
-  in its escrow account.  Each exchange operator is
+  in its escrow account.  Each donau operator is
   expected to make use of one or more auditors as part
   of its regulatory compliance.
 
-Package: libtalerexchange-dev
+Package: libtalerdonau-dev
 Section: libdevel
 Architecture: any
 Depends:
- libtalerexchange (= ${binary:Version}),
+ libtalerdonau (= ${binary:Version}),
  libgnunet-dev (>=0.20),
  libgcrypt20-dev (>=1.8),
  libmicrohttpd-dev (>=0.9.71),
  ${misc:Depends},
  ${shlibs:Depends}
-Description: libraries to talk to a GNU Taler exchange (development)
+Description: libraries to talk to a GNU Taler donau (development)
  .
  This package contains the development files.
diff --git a/debian/copyright b/debian/copyright
index 555d608..cea7264 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -26,7 +26,7 @@ License: GPL-3+
  .
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  .
  You should have received a copy of the GNU General Public License
@@ -283,7 +283,7 @@ License: AGPL-3+
     b) Convey the object code in, or embodied in, a physical product
     (including a physical distribution medium), accompanied by a
     written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
+    long as you offer spare parts or donor support for that product
     model, to give anyone who possesses the object code either (1) a
     copy of the Corresponding Source for all the software in the
     product that is covered by this License, on a durable physical
@@ -628,7 +628,7 @@ License: AGPL-3+
  APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
  HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
  OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ THE IMPLIED WARRANTIES OF CHARITYABILITY AND FITNESS FOR A PARTICULAR
  PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
  IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
  ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
@@ -677,7 +677,7 @@ License: AGPL-3+
  .
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU Affero General Public License for more details.
  .
     You should have received a copy of the GNU Affero General Public License
diff --git a/debian/etc-libtalerexchange/taler/overrides.conf 
b/debian/etc-libtalerdonau/taler/overrides.conf
similarity index 100%
rename from debian/etc-libtalerexchange/taler/overrides.conf
rename to debian/etc-libtalerdonau/taler/overrides.conf
diff --git a/debian/etc-libtalerexchange/taler/taler.conf 
b/debian/etc-libtalerdonau/taler/taler.conf
similarity index 100%
rename from debian/etc-libtalerexchange/taler/taler.conf
rename to debian/etc-libtalerdonau/taler/taler.conf
diff --git a/debian/etc-taler-donau/apache2/sites-available/taler-exchange.conf 
b/debian/etc-taler-donau/apache2/sites-available/taler-exchange.conf
new file mode 100644
index 0000000..612a08f
--- /dev/null
+++ b/debian/etc-taler-donau/apache2/sites-available/taler-exchange.conf
@@ -0,0 +1,4 @@
+<Location "/taler-donau/">
+ProxyPass "unix:/run/taler/donau-httpd/donau-http.sock|http://example.com/";
+RequestHeader add "X-Forwarded-Proto" "https"
+</Location>
diff --git a/debian/etc-taler-exchange/nginx/sites-available/taler-exchange 
b/debian/etc-taler-donau/nginx/sites-available/taler-exchange
similarity index 55%
rename from debian/etc-taler-exchange/nginx/sites-available/taler-exchange
rename to debian/etc-taler-donau/nginx/sites-available/taler-exchange
index 9b61a32..4955a18 100644
--- a/debian/etc-taler-exchange/nginx/sites-available/taler-exchange
+++ b/debian/etc-taler-donau/nginx/sites-available/taler-exchange
@@ -4,11 +4,11 @@ server {
 
   server_name localhost;
 
-  access_log /var/log/nginx/exchange.log;
-  error_log /var/log/nginx/exchange.err;
+  access_log /var/log/nginx/donau.log;
+  error_log /var/log/nginx/donau.err;
 
-  location /taler-exchange/ {
-     proxy_pass http://unix:/run/taler/exchange-httpd/exchange-http.sock:/;
+  location /taler-donau/ {
+     proxy_pass http://unix:/run/taler/donau-httpd/donau-http.sock:/;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Host "localhost";
diff --git a/debian/etc-taler-exchange/taler/conf.d/exchange-business.conf 
b/debian/etc-taler-donau/taler/conf.d/exchange-business.conf
similarity index 77%
rename from debian/etc-taler-exchange/taler/conf.d/exchange-business.conf
rename to debian/etc-taler-donau/taler/conf.d/exchange-business.conf
index d5938f2..aa4a9ac 100644
--- a/debian/etc-taler-exchange/taler/conf.d/exchange-business.conf
+++ b/debian/etc-taler-donau/taler/conf.d/exchange-business.conf
@@ -1,14 +1,14 @@
-# Configuration for business-level aspects of the exchange.
+# Configuration for business-level aspects of the donau.
 
-[exchange]
+[donau]
 
 # Here you MUST add the master public key of the offline system
-# which you can get using `taler-exchange-offline setup`.
+# which you can get using `taler-donau-offline setup`.
 # This is just an example, your key will be different!
 # MASTER_PUBLIC_KEY = YE6Q6TR1EDB7FD0S68TGDZGF1P0GHJD2S0XVV8R2S62MYJ6HJ4ZG
 # MASTER_PUBLIC_KEY =
 
-# Publicly visible base URL of the exchange.
+# Publicly visible base URL of the donau.
 # BASE_URL = https://example.com/
 # BASE_URL =
 
@@ -31,8 +31,8 @@ ATTRIBUTE_ENCRYPTION_KEY = SET_ME_PLEASE
 SERVE = unix
 UNIXPATH_MODE = 666
 
-# Bank accounts used by the exchange should be specified here:
-[exchange-account-1]
+# Bank accounts used by the donau should be specified here:
+[donau-account-1]
 
 ENABLE_CREDIT = NO
 ENABLE_DEBIT = NO
@@ -44,7 +44,7 @@ PAYTO_URI =
 
 # Credentials to access the account are in a separate
 # config file with restricted permissions.
-@inline-secret@ exchange-accountcredentials-1 
../secrets/exchange-accountcredentials-1.secret.conf
+@inline-secret@ donau-accountcredentials-1 
../secrets/donau-accountcredentials-1.secret.conf
 
 
 
diff --git a/debian/etc-taler-exchange/taler/conf.d/exchange-coins.conf 
b/debian/etc-taler-donau/taler/conf.d/exchange-coins.conf
similarity index 90%
rename from debian/etc-taler-exchange/taler/conf.d/exchange-coins.conf
rename to debian/etc-taler-donau/taler/conf.d/exchange-coins.conf
index 8294525..c90283a 100644
--- a/debian/etc-taler-exchange/taler/conf.d/exchange-coins.conf
+++ b/debian/etc-taler-donau/taler/conf.d/exchange-coins.conf
@@ -1,6 +1,6 @@
 #
 # This configuration file specifies the various denominations offered by your
-# exchange.
+# donau.
 #
 # Each denomination must be specified in a sections starting with
 # "coin_".
@@ -18,7 +18,7 @@
 ## How long do users have to spend their coins?
 #DURATION_SPEND = 2 years
 
-## How long does the exchange keep the proofs around for legal disputes?
+## How long does the donau keep the proofs around for legal disputes?
 #DURATION_LEGAL = 6 years
 
 ## Fees charged. Note that for the lowest denomination, the
diff --git a/debian/etc-taler-exchange/taler/conf.d/exchange-system.conf 
b/debian/etc-taler-donau/taler/conf.d/exchange-system.conf
similarity index 52%
rename from debian/etc-taler-exchange/taler/conf.d/exchange-system.conf
rename to debian/etc-taler-donau/taler/conf.d/exchange-system.conf
index 4ad7e06..ee3d9a2 100644
--- a/debian/etc-taler-exchange/taler/conf.d/exchange-system.conf
+++ b/debian/etc-taler-donau/taler/conf.d/exchange-system.conf
@@ -1,10 +1,10 @@
-# Configuration settings for system parameters of the exchange.
+# Configuration settings for system parameters of the donau.
 
 # Read secret sections into configuration, but only
 # if we have permission to do so.
-@inline-secret@ exchangedb-postgres ../secrets/exchange-db.secret.conf
+@inline-secret@ donaudb-postgres ../secrets/donau-db.secret.conf
 
-[exchange]
+[donau]
 
 # Only supported database is Postgres right now.
 DATABASE = postgres
diff --git 
a/debian/etc-taler-exchange/taler/secrets/exchange-accountcredentials-1.secret.conf
 
b/debian/etc-taler-donau/taler/secrets/exchange-accountcredentials-1.secret.conf
similarity index 50%
rename from 
debian/etc-taler-exchange/taler/secrets/exchange-accountcredentials-1.secret.conf
rename to 
debian/etc-taler-donau/taler/secrets/exchange-accountcredentials-1.secret.conf
index 8c8d143..0d92a73 100644
--- 
a/debian/etc-taler-exchange/taler/secrets/exchange-accountcredentials-1.secret.conf
+++ 
b/debian/etc-taler-donau/taler/secrets/exchange-accountcredentials-1.secret.conf
@@ -1,14 +1,14 @@
 # This file contains the secret credentials
 # to access the Taler Wire Gateway API (usually
-# provided by LibEuFin) for the exchange accounts.
+# provided by LibEuFin) for the donau accounts.
 #
-# Each exchange-account-* section should have a matching
-# exchange-accountcredentials-* section here.
+# Each donau-account-* section should have a matching
+# donau-accountcredentials-* section here.
 #
 # Each of those sections must be imported via @inline-secret@,
-# usually in conf.d/exchange-business.conf.
+# usually in conf.d/donau-business.conf.
 
-[exchange-accountcredentials-1]
+[donau-accountcredentials-1]
 
 wire_gateway_auth_method = basic
 password =
diff --git a/debian/etc-taler-exchange/taler/secrets/exchange-db.secret.conf 
b/debian/etc-taler-donau/taler/secrets/exchange-db.secret.conf
similarity index 73%
rename from debian/etc-taler-exchange/taler/secrets/exchange-db.secret.conf
rename to debian/etc-taler-donau/taler/secrets/exchange-db.secret.conf
index a7a727b..b4eff0e 100644
--- a/debian/etc-taler-exchange/taler/secrets/exchange-db.secret.conf
+++ b/debian/etc-taler-donau/taler/secrets/exchange-db.secret.conf
@@ -1,6 +1,6 @@
-# Database configuration for the Taler exchange.
+# Database configuration for the Taler donau.
 
-[exchangedb-postgres]
+[donaudb-postgres]
 
 # Typically, there should only be a single line here, of the form:
 
diff --git 
a/debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf 
b/debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf
deleted file mode 100644
index 3ec14fe..0000000
--- a/debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-<Location "/taler-exchange/">
-ProxyPass 
"unix:/run/taler/exchange-httpd/exchange-http.sock|http://example.com/";
-RequestHeader add "X-Forwarded-Proto" "https"
-</Location>
diff --git a/debian/libtalerexchange-dev.install 
b/debian/libtalerdonau-dev.install
similarity index 82%
rename from debian/libtalerexchange-dev.install
rename to debian/libtalerdonau-dev.install
index 0654f72..606ca3d 100644
--- a/debian/libtalerexchange-dev.install
+++ b/debian/libtalerdonau-dev.install
@@ -1,8 +1,8 @@
 # Benchmarks, only install them for the dev package.
 usr/bin/taler-aggregator-benchmark
 usr/bin/taler-bank-benchmark
-usr/bin/taler-exchange-benchmark
-usr/bin/taler-exchange-kyc-tester
+usr/bin/taler-donau-benchmark
+usr/bin/taler-donau-kyc-tester
 usr/bin/taler-fakebank-run
 usr/bin/taler-unified-setup.sh
 
@@ -12,10 +12,10 @@ usr/bin/taler-bank-manage-testing
 usr/bin/taler-nexus-prepare
 
 # Man pages
-usr/share/man/man1/taler-exchange-kyc-tester*
+usr/share/man/man1/taler-donau-kyc-tester*
 usr/share/man/man1/taler-aggregator-benchmark*
 usr/share/man/man1/taler-bank-benchmark*
-usr/share/man/man1/taler-exchange-benchmark*
+usr/share/man/man1/taler-donau-benchmark*
 usr/share/man/man1/taler-unified-setup*
 
 
diff --git a/debian/libtalerexchange.dirs b/debian/libtalerdonau.dirs
similarity index 100%
rename from debian/libtalerexchange.dirs
rename to debian/libtalerdonau.dirs
diff --git a/debian/libtalerexchange.install b/debian/libtalerdonau.install
similarity index 88%
rename from debian/libtalerexchange.install
rename to debian/libtalerdonau.install
index 56b69e6..5d760ab 100644
--- a/debian/libtalerexchange.install
+++ b/debian/libtalerdonau.install
@@ -3,7 +3,7 @@ usr/lib/*/libtaler*.so.*
 # FIXME:  All this should eventually go into taler-base.
 usr/share/taler/config.d/paths.conf
 usr/share/taler/config.d/taler.conf
-debian/etc-libtalerexchange/* etc/
+debian/etc-libtalerdonau/* etc/
 usr/bin/taler-config
 usr/bin/taler-terms-generator
 usr/share/man/man5/taler.conf.5
diff --git a/debian/libtalerexchange.tmpfiles b/debian/libtalerdonau.tmpfiles
similarity index 100%
rename from debian/libtalerexchange.tmpfiles
rename to debian/libtalerdonau.tmpfiles
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
index 819ba49..352bc13 100644
--- a/debian/po/POTFILES.in
+++ b/debian/po/POTFILES.in
@@ -1 +1 @@
-[type: gettext/rfc822deb] taler-exchange.templates
+[type: gettext/rfc822deb] taler-donau.templates
diff --git a/debian/rules b/debian/rules
index aef4bf5..845bcee 100755
--- a/debian/rules
+++ b/debian/rules
@@ -36,16 +36,16 @@ override_dh_auto_clean:
 override_dh_installsystemd:
        # Need to specify units manually, since we have multiple
        # and dh_installsystemd by default only looks for "<package>.service".
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-httpd 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-aggregator 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-transfer 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-wirewatch 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-secmod-cs 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-secmod-eddsa 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-secmod-rsa 
--no-start --no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange-closer 
--no-start --no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-httpd --no-start 
--no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-aggregator 
--no-start --no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-transfer --no-start 
--no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-wirewatch --no-start 
--no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-secmod-cs --no-start 
--no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-secmod-eddsa 
--no-start --no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-secmod-rsa 
--no-start --no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau-closer --no-start 
--no-enable
        dh_installsystemd -ptaler-auditor --name=taler-auditor-httpd --no-start 
--no-enable
-       dh_installsystemd -ptaler-exchange --name=taler-exchange --no-start 
--no-enable
+       dh_installsystemd -ptaler-donau --name=taler-donau --no-start 
--no-enable
        # final invocation to generate daemon reload
        dh_installsystemd
 
@@ -53,14 +53,14 @@ override_dh_install:
        dh_install
 # With debhelper-compat=12, we still need to call this manually
        dh_installtmpfiles
-# Remove files already present in libtalerexchange from main taler-exchange 
package
-       cd debian/libtalerexchange-dev; find . -type f,l -exec rm -f 
../libtalerauditor/{} \;
-       cd debian/libtalerexchange-dev; find . -type f,l -exec rm -f 
../taler-exchange/{} \;
-       cd debian/libtalerexchange-dev; find . -type f,l -exec rm -f 
../taler-auditor/{} \;
-       cd debian/libtalerexchange-dev; find . -type f,l -exec rm -f 
../libtalerexchange/{} \;
-       cd debian/libtalerexchange-dev; find . -type f,l -exec rm -f 
../libtalerauditor/{} \;
+# Remove files already present in libtalerdonau from main taler-donau package
+       cd debian/libtalerdonau-dev; find . -type f,l -exec rm -f 
../libtalerauditor/{} \;
+       cd debian/libtalerdonau-dev; find . -type f,l -exec rm -f 
../taler-donau/{} \;
+       cd debian/libtalerdonau-dev; find . -type f,l -exec rm -f 
../taler-auditor/{} \;
+       cd debian/libtalerdonau-dev; find . -type f,l -exec rm -f 
../libtalerdonau/{} \;
+       cd debian/libtalerdonau-dev; find . -type f,l -exec rm -f 
../libtalerauditor/{} \;
        cd debian/taler-auditor; find . -type f,l -exec rm -f 
../libtalerauditor/{} \;
-       cd debian/taler-auditor; find . -type f,l -exec rm -f 
../libtalerexchange/{} \;
-       cd debian/taler-auditor; find . -type f,l -exec rm -f 
../taler-exchange/{} \;
-       cd debian/taler-exchange-database; find . -type f,l -exec rm -f 
../taler-exchange/{} \;
-       cd debian/libtalerexchange; find . -type f,l -exec rm -f 
../taler-exchange/{} \;
+       cd debian/taler-auditor; find . -type f,l -exec rm -f 
../libtalerdonau/{} \;
+       cd debian/taler-auditor; find . -type f,l -exec rm -f ../taler-donau/{} 
\;
+       cd debian/taler-donau-database; find . -type f,l -exec rm -f 
../taler-donau/{} \;
+       cd debian/libtalerdonau; find . -type f,l -exec rm -f ../taler-donau/{} 
\;
diff --git a/debian/taler-auditor.install b/debian/taler-auditor.install
index 82941fb..6b0685a 100644
--- a/debian/taler-auditor.install
+++ b/debian/taler-auditor.install
@@ -1,7 +1,7 @@
 usr/bin/taler-auditor
 usr/bin/taler-auditor-dbconfig
 usr/bin/taler-auditor-dbinit
-usr/bin/taler-auditor-exchange
+usr/bin/taler-auditor-donau
 usr/bin/taler-auditor-httpd
 usr/bin/taler-auditor-offline
 usr/bin/taler-auditor-sync
@@ -18,4 +18,4 @@ usr/share/taler/sql/auditor/*
 # Configuration
 debian/etc-taler-auditor/* etc/
 
-usr/share/taler/exchange/auditor-report.tex.j2
+usr/share/taler/donau/auditor-report.tex.j2
diff --git a/debian/taler-donau-database.install 
b/debian/taler-donau-database.install
new file mode 100644
index 0000000..406527d
--- /dev/null
+++ b/debian/taler-donau-database.install
@@ -0,0 +1,8 @@
+usr/bin/taler-donau-dbconfig
+usr/bin/taler-donau-dbinit
+usr/lib/*/taler/libtaler_plugin_donau*.so
+usr/share/man/man1/taler-donau-dbconfig.1
+usr/share/man/man1/taler-donau-dbinit.1
+usr/share/taler/sql/donau/*
+usr/share/taler/config.d/donaudb.conf
+usr/share/taler/config.d/donaudb-postgres.conf
diff --git a/debian/taler-donau-offline.install 
b/debian/taler-donau-offline.install
new file mode 100644
index 0000000..4edf5d0
--- /dev/null
+++ b/debian/taler-donau-offline.install
@@ -0,0 +1,2 @@
+usr/bin/taler-donau-offline
+usr/share/man/man1/taler-donau-offline*
diff --git a/debian/taler-exchange-offline.postinst 
b/debian/taler-donau-offline.postinst
similarity index 55%
rename from debian/taler-exchange-offline.postinst
rename to debian/taler-donau-offline.postinst
index 337bfa5..4fbb870 100644
--- a/debian/taler-exchange-offline.postinst
+++ b/debian/taler-donau-offline.postinst
@@ -7,18 +7,18 @@ set -e
 case "${1}" in
 configure)
 
-  if ! getent group taler-exchange-offline >/dev/null; then
-    addgroup --quiet taler-exchange-offline
+  if ! getent group taler-donau-offline >/dev/null; then
+    addgroup --quiet taler-donau-offline
   fi
 
-  if ! getent passwd taler-exchange-offline >/dev/null; then
+  if ! getent passwd taler-donau-offline >/dev/null; then
     adduser --quiet \
       --disabled-password \
       --system \
       --shell /bin/bash \
-      --home /home/taler-exchange-offline \
-      --ingroup taler-exchange-offline \
-      taler-exchange-offline
+      --home /home/taler-donau-offline \
+      --ingroup taler-donau-offline \
+      taler-donau-offline
   fi
 
   ;;
diff --git a/debian/taler-donau-offline.tmpfiles 
b/debian/taler-donau-offline.tmpfiles
new file mode 100644
index 0000000..67df339
--- /dev/null
+++ b/debian/taler-donau-offline.tmpfiles
@@ -0,0 +1,2 @@
+#Type Path        Mode UID  GID  Age Argument
+d /var/lib/taler/donau-offline 0700 taler-donau-offline taler-donau-offline  - 
-
diff --git a/debian/taler-donau.README.Debian b/debian/taler-donau.README.Debian
new file mode 100644
index 0000000..fb78fad
--- /dev/null
+++ b/debian/taler-donau.README.Debian
@@ -0,0 +1,34 @@
+taler-donau
+--------------
+
+Note that the configuration is incomplete, and that Debian cannot launch an
+donau with this minimal template. You must:
+
+* Configure the Postgres database for the donau, ideally including
+  remote replication of the database to the auditor.
+* Run `taler-donau-dbinit` (also after package upgrades).
+* Edit ``/etc/taler-secmod.conf`` to must setup the currency and denominations
+  details.
+* Edit `/etc/taler-wire.conf` to provide details about the bank account access.
+* Run `taler-donau-offline setup` on your offline system and add
+  the resulting master public key into the ``[donau]`` section of
+  ``/etc/taler-donau.conf`` under ``MASTER_PUBLIC_KEY``.
+
+
+None of these are done by the Debian package because we cannot provide the
+required complete configuration details.
+
+
+Once you have done this, you can use the following commands to start, stop or
+restart the Taler donau:
+
+  # systemctl start taler-donau-httpd.service
+  # systemctl stop taler-donau-httpd.service
+  # systemctl restart taler-donau-httpd.service
+
+To permanently the donau whenever the system boots, use:
+
+  # systemctl enable taler-donau-httpd
+
+
+ -- Christian Grothoff <grothoff@gnu.org>  Mon 28 Dec 2020 11:37:14 AM CET
diff --git a/debian/taler-exchange.docs b/debian/taler-donau.docs
similarity index 100%
rename from debian/taler-exchange.docs
rename to debian/taler-donau.docs
diff --git a/debian/taler-donau.install b/debian/taler-donau.install
new file mode 100644
index 0000000..adfe3b3
--- /dev/null
+++ b/debian/taler-donau.install
@@ -0,0 +1,39 @@
+usr/bin/taler-donau-aggregator
+usr/bin/taler-donau-closer
+usr/bin/taler-donau-drain
+usr/bin/taler-donau-expire
+usr/bin/taler-donau-httpd
+usr/bin/taler-donau-router
+usr/bin/taler-donau-secmod-cs
+usr/bin/taler-donau-secmod-eddsa
+usr/bin/taler-donau-secmod-rsa
+usr/bin/taler-donau-transfer
+usr/bin/taler-donau-wirewatch
+usr/bin/taler-donau-wire-gateway-client
+usr/lib/*/taler/libtaler_plugin_kyclogic_*.so
+usr/lib/*/taler/libtaler_extension_*.so
+usr/share/man/man1/taler-donau-aggregator*
+usr/share/man/man1/taler-donau-closer*
+usr/share/man/man1/taler-donau-drain*
+usr/share/man/man1/taler-donau-expire*
+usr/share/man/man1/taler-donau-httpd*
+usr/share/man/man1/taler-donau-router*
+usr/share/man/man1/taler-donau-secmod-eddsa*
+usr/share/man/man1/taler-donau-secmod-rsa*
+usr/share/man/man1/taler-donau-secmod-cs*
+usr/share/man/man1/taler-donau-transfer*
+usr/share/man/man1/taler-donau-wirewatch*
+usr/share/man/man1/taler-bank*
+usr/share/man/man1/taler-donau-wire-gateway-client*
+usr/share/info/taler-bank*
+usr/share/info/taler-donau*
+usr/share/taler/config.d/*
+usr/share/taler/donau/templates/*.must
+
+# configuration files in /etc/taler
+debian/etc-taler-donau/* etc/
+
+# Terms of service / privacy policy templates
+usr/share/taler/terms/*.rst
+# Translations of ToS/PP
+usr/share/locale/*/LC_MESSAGES/*.po
diff --git a/debian/taler-exchange.links b/debian/taler-donau.links
similarity index 100%
rename from debian/taler-exchange.links
rename to debian/taler-donau.links
diff --git a/debian/taler-exchange.lintan-overrides 
b/debian/taler-donau.lintan-overrides
similarity index 64%
rename from debian/taler-exchange.lintan-overrides
rename to debian/taler-donau.lintan-overrides
index b11557a..ec4e2fd 100644
--- a/debian/taler-exchange.lintan-overrides
+++ b/debian/taler-donau.lintan-overrides
@@ -1,3 +1,3 @@
 # internal libraries are not split out into a dedicated package to avoid
 # micropackaging.
-taler-exchange: package-name-doesnt-match-sonames
+taler-donau: package-name-doesnt-match-sonames
diff --git a/debian/taler-exchange.postinst b/debian/taler-donau.postinst
similarity index 75%
rename from debian/taler-exchange.postinst
rename to debian/taler-donau.postinst
index 6278dac..078e268 100644
--- a/debian/taler-exchange.postinst
+++ b/debian/taler-donau.postinst
@@ -5,15 +5,15 @@ set -e
 . /usr/share/debconf/confmodule
 
 TALER_HOME="/var/lib/taler"
-_GROUPNAME=taler-exchange-secmod
-_DBGROUPNAME=taler-exchange-db
-_EUSERNAME=taler-exchange-httpd
-_CLOSERUSERNAME=taler-exchange-closer
-_CSECUSERNAME=taler-exchange-secmod-cs
-_RSECUSERNAME=taler-exchange-secmod-rsa
-_ESECUSERNAME=taler-exchange-secmod-eddsa
-_AGGRUSERNAME=taler-exchange-aggregator
-_WIREUSERNAME=taler-exchange-wire
+_GROUPNAME=taler-donau-secmod
+_DBGROUPNAME=taler-donau-db
+_EUSERNAME=taler-donau-httpd
+_CLOSERUSERNAME=taler-donau-closer
+_CSECUSERNAME=taler-donau-secmod-cs
+_RSECUSERNAME=taler-donau-secmod-rsa
+_ESECUSERNAME=taler-donau-secmod-eddsa
+_AGGRUSERNAME=taler-donau-aggregator
+_WIREUSERNAME=taler-donau-wire
 
 case "${1}" in
 configure)
@@ -54,16 +54,16 @@ configure)
     adduser --quiet ${_AGGRUSERNAME} ${_DBGROUPNAME}
   fi
 
-  if ! dpkg-statoverride --list 
/etc/taler/secrets/exchange-accountcredentials-1.secret.conf >/dev/null 2>&1; 
then
+  if ! dpkg-statoverride --list 
/etc/taler/secrets/donau-accountcredentials-1.secret.conf >/dev/null 2>&1; then
     dpkg-statoverride --add --update \
       ${_WIREUSERNAME} root 640 \
-      /etc/taler/secrets/exchange-accountcredentials-1.secret.conf
+      /etc/taler/secrets/donau-accountcredentials-1.secret.conf
   fi
 
-  if ! dpkg-statoverride --list /etc/taler/secrets/exchange-db.secret.conf 
>/dev/null 2>&1; then
+  if ! dpkg-statoverride --list /etc/taler/secrets/donau-db.secret.conf 
>/dev/null 2>&1; then
     dpkg-statoverride --add --update \
       root ${_DBGROUPNAME} 640 \
-      /etc/taler/secrets/exchange-db.secret.conf
+      /etc/taler/secrets/donau-db.secret.conf
   fi
 
   ;;
diff --git a/debian/taler-exchange.postrm b/debian/taler-donau.postrm
similarity index 62%
rename from debian/taler-exchange.postrm
rename to debian/taler-donau.postrm
index 9edf548..6ee810f 100644
--- a/debian/taler-exchange.postrm
+++ b/debian/taler-donau.postrm
@@ -2,15 +2,15 @@
 
 set -e
 
-_GROUPNAME=taler-exchange-secmod
-_DBGROUPNAME=taler-exchange-db
-_EUSERNAME=taler-exchange-httpd
-_CLOSERUSERNAME=taler-exchange-closer
-_CSECUSERNAME=taler-exchange-secmod-cs
-_RSECUSERNAME=taler-exchange-secmod-rsa
-_ESECUSERNAME=taler-exchange-secmod-eddsa
-_AGGRUSERNAME=taler-exchange-aggregator
-_WIREUSERNAME=taler-exchange-wire
+_GROUPNAME=taler-donau-secmod
+_DBGROUPNAME=taler-donau-db
+_EUSERNAME=taler-donau-httpd
+_CLOSERUSERNAME=taler-donau-closer
+_CSECUSERNAME=taler-donau-secmod-cs
+_RSECUSERNAME=taler-donau-secmod-rsa
+_ESECUSERNAME=taler-donau-secmod-eddsa
+_AGGRUSERNAME=taler-donau-aggregator
+_WIREUSERNAME=taler-donau-wire
 
 
 if [ -f /usr/share/debconf/confmodule ]; then
@@ -19,11 +19,11 @@ fi
 
 case "${1}" in
 purge)
-    rm -rf /var/lib/taler/exchange-offline /var/lib/taler/exchange-secmod-*
+    rm -rf /var/lib/taler/donau-offline /var/lib/taler/donau-secmod-*
     dpkg-statoverride --remove \
-       /etc/taler/secrets/exchange-accountcredentials-1.secret.conf || true
+       /etc/taler/secrets/donau-accountcredentials-1.secret.conf || true
     dpkg-statoverride --remove \
-                      /etc/taler/secrets/exchange-db.secret.conf || true
+                      /etc/taler/secrets/donau-db.secret.conf || true
     deluser --quiet --system ${_CSECUSERNAME} || true
     deluser --quiet --system ${_RSECUSERNAME} || true
     deluser --quiet --system ${_ESECUSERNAME} || true
diff --git a/debian/taler-exchange.prerm b/debian/taler-donau.prerm
similarity index 100%
rename from debian/taler-exchange.prerm
rename to debian/taler-donau.prerm
diff --git a/debian/taler-donau.taler-donau-aggregator.service 
b/debian/taler-donau.taler-donau-aggregator.service
new file mode 100644
index 0000000..8ef8d33
--- /dev/null
+++ b/debian/taler-donau.taler-donau-aggregator.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=GNU Taler payment system donau aggregator service
+PartOf=taler-donau.target
+After=postgres.service
+
+[Service]
+User=taler-donau-aggregator
+Type=simple
+Restart=always
+RestartSec=1s
+ExecStart=/usr/bin/taler-donau-aggregator -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=yes
+PrivateDevices=yes
+ProtectSystem=full
+Slice=taler-donau.slice
+RuntimeMaxSec=3600s
diff --git a/debian/taler-donau.taler-donau-aggregator@.service 
b/debian/taler-donau.taler-donau-aggregator@.service
new file mode 100644
index 0000000..e971cce
--- /dev/null
+++ b/debian/taler-donau.taler-donau-aggregator@.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=GNU Taler payment system donau aggregator service
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-aggregator
+Type=simple
+Restart=always
+RestartSec=1s
+ExecStart=/usr/bin/taler-donau-aggregator -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=yes
+PrivateDevices=yes
+ProtectSystem=full
+Slice=taler-donau.slice
+RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange-wirewatch.service 
b/debian/taler-donau.taler-donau-closer.service
similarity index 50%
rename from debian/taler-exchange.taler-exchange-wirewatch.service
rename to debian/taler-donau.taler-donau-closer.service
index 7b74737..35c8b8f 100644
--- a/debian/taler-exchange.taler-exchange-wirewatch.service
+++ b/debian/taler-donau.taler-donau-closer.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange wirewatch service
+Description=GNU Taler payment system donau closer service
+PartOf=taler-donau.target
 After=network.target postgres.service
-PartOf=taler-exchange.target
 
 [Service]
-User=taler-exchange-wire
+User=taler-donau-closer
 Type=simple
 Restart=always
 RestartSec=1s
-RuntimeMaxSec=3600s
-ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-closer -c /etc/taler/taler.conf
 StandardOutput=journal
 StandardError=journal
 PrivateTmp=yes
 PrivateDevices=yes
 ProtectSystem=full
-Slice=taler-exchange.slice
+Slice=taler-donau.slice
+RuntimeMaxSec=3600s
diff --git a/debian/taler-donau.taler-donau-expire.service 
b/debian/taler-donau.taler-donau-expire.service
new file mode 100644
index 0000000..6f46389
--- /dev/null
+++ b/debian/taler-donau.taler-donau-expire.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=GNU Taler payment system donau expire service
+PartOf=taler-donau.target
+After=postgres.service
+
+[Service]
+User=taler-donau-expire
+Type=simple
+Restart=always
+RestartSec=1s
+ExecStart=/usr/bin/taler-donau-expire -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=yes
+PrivateDevices=yes
+ProtectSystem=full
+Slice=taler-donau.slice
+RuntimeMaxSec=3600s
diff --git a/debian/taler-donau.taler-donau-httpd.service 
b/debian/taler-donau.taler-donau-httpd.service
new file mode 100644
index 0000000..4ec86e9
--- /dev/null
+++ b/debian/taler-donau.taler-donau-httpd.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=GNU Taler payment system donau REST API
+AssertPathExists=/run/taler/donau-httpd
+Requires=taler-donau-httpd.socket taler-donau-secmod-cs.service 
taler-donau-secmod-rsa.service taler-donau-secmod-eddsa.service
+After=postgres.service network.target taler-donau-secmod-cs.service 
taler-donau-secmod-rsa.service taler-donau-secmod-eddsa.service
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-httpd
+Type=simple
+
+# Depending on the configuration, the service process kills itself and then
+# needs to be restarted. Thus no significant delay on restarts.
+Restart=always
+RestartSec=1ms
+
+# Disable the service if more than 5 restarts are encountered within 5s.
+# These are usually the systemd defaults, but can be overwritten, thus we set
+# them here explicitly, as the donau code assumes StartLimitInterval
+# to be >=5s.
+StartLimitBurst=5
+StartLimitInterval=5s
+
+ExecStart=/usr/bin/taler-donau-httpd -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=no
+PrivateDevices=yes
+ProtectSystem=full
+Slice=taler-donau.slice
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/taler-donau.taler-donau-httpd.socket 
b/debian/taler-donau.taler-donau-httpd.socket
new file mode 100644
index 0000000..4c871fc
--- /dev/null
+++ b/debian/taler-donau.taler-donau-httpd.socket
@@ -0,0 +1,14 @@
+[Unit]
+Description=Taler Donau Socket
+PartOf=taler-donau-httpd.service
+
+[Socket]
+ListenStream=/run/taler/donau-httpd/donau-http.sock
+Accept=no
+Service=taler-donau-httpd.service
+SocketUser=taler-donau-httpd
+SocketGroup=www-data
+SocketMode=0660
+
+[Install]
+WantedBy=sockets.target
diff --git a/debian/taler-donau.taler-donau-httpd@.service 
b/debian/taler-donau.taler-donau-httpd@.service
new file mode 100644
index 0000000..c7ec730
--- /dev/null
+++ b/debian/taler-donau.taler-donau-httpd@.service
@@ -0,0 +1,27 @@
+% This is a systemd service template.
+[Unit]
+Description=GNU Taler payment system donau REST API at %I
+AssertPathExists=/run/taler/donau-httpd
+Requires=taler-donau-httpd@%i.socket taler-donau-secmod-rsa.service 
taler-donau-secmod-eddsa.service
+After=postgres.service network.target taler-donau-secmod-rsa.service 
taler-donau-secmod-eddsa.service
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-httpd
+Type=simple
+# Depending on the configuration, the service suicides and then
+# needs to be restarted.
+Restart=always
+# Do not dally on restarts.
+RestartSec=1ms
+EnvironmentFile=/etc/environment
+ExecStart=/usr/bin/taler-donau-httpd -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=no
+PrivateDevices=yes
+ProtectSystem=full
+Slice=taler-donau.slice
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/taler-donau.taler-donau-httpd@.socket 
b/debian/taler-donau.taler-donau-httpd@.socket
new file mode 100644
index 0000000..76d5cb6
--- /dev/null
+++ b/debian/taler-donau.taler-donau-httpd@.socket
@@ -0,0 +1,14 @@
+[Unit]
+Description=Taler Donau Socket at %I
+PartOf=taler-donau-httpd@%i.service
+
+[Socket]
+ListenStream=80
+Accept=no
+Service=taler-donau-httpd@%i.service
+SocketUser=taler-donau-httpd
+SocketGroup=www-data
+SocketMode=0660
+
+[Install]
+WantedBy=sockets.target
diff --git a/debian/taler-donau.taler-donau-secmod-cs.service 
b/debian/taler-donau.taler-donau-secmod-cs.service
new file mode 100644
index 0000000..9a4d90f
--- /dev/null
+++ b/debian/taler-donau.taler-donau-secmod-cs.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=GNU Taler payment system donau CS security module
+AssertPathExists=/run/taler/donau-secmod-cs
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-secmod-cs
+Type=simple
+Restart=always
+RestartSec=100ms
+ExecStart=/usr/bin/taler-donau-secmod-cs -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=no
+PrivateDevices=yes
+ProtectSystem=full
+IPAddressDeny=any
+Slice=taler-donau.slice
diff --git a/debian/taler-donau.taler-donau-secmod-eddsa.service 
b/debian/taler-donau.taler-donau-secmod-eddsa.service
new file mode 100644
index 0000000..29fe967
--- /dev/null
+++ b/debian/taler-donau.taler-donau-secmod-eddsa.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=GNU Taler payment system donau EdDSA security module
+AssertPathExists=/run/taler/donau-secmod-eddsa
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-secmod-eddsa
+Type=simple
+Restart=always
+RestartSec=100ms
+ExecStart=/usr/bin/taler-donau-secmod-eddsa -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=no
+PrivateDevices=yes
+ProtectSystem=full
+IPAddressDeny=any
+Slice=taler-donau.slice
+
diff --git a/debian/taler-donau.taler-donau-secmod-rsa.service 
b/debian/taler-donau.taler-donau-secmod-rsa.service
new file mode 100644
index 0000000..2b7b3c4
--- /dev/null
+++ b/debian/taler-donau.taler-donau-secmod-rsa.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=GNU Taler payment system donau RSA security module
+AssertPathExists=/run/taler/donau-secmod-rsa
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-secmod-rsa
+Type=simple
+Restart=always
+RestartSec=100ms
+ExecStart=/usr/bin/taler-donau-secmod-rsa -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=no
+PrivateDevices=yes
+ProtectSystem=full
+IPAddressDeny=any
+Slice=taler-donau.slice
diff --git a/debian/taler-exchange.taler-exchange-transfer.service 
b/debian/taler-donau.taler-donau-transfer.service
similarity index 52%
rename from debian/taler-exchange.taler-exchange-transfer.service
rename to debian/taler-donau.taler-donau-transfer.service
index e26af20..b28e377 100644
--- a/debian/taler-exchange.taler-exchange-transfer.service
+++ b/debian/taler-donau.taler-donau-transfer.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=Taler Exchange Transfer Service
+Description=Taler Donau Transfer Service
 After=network.target postgres.service
-PartOf=taler-exchange.target
+PartOf=taler-donau.target
 
 [Service]
-User=taler-exchange-wire
+User=taler-donau-wire
 Type=simple
 Restart=always
 RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-transfer -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-transfer -c /etc/taler/taler.conf
 StandardOutput=journal
 StandardError=journal
 PrivateTmp=yes
 PrivateDevices=yes
 ProtectSystem=full
-Slice=taler-exchange.slice
+Slice=taler-donau.slice
 RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange-closer.service 
b/debian/taler-donau.taler-donau-wirewatch.service
similarity index 51%
rename from debian/taler-exchange.taler-exchange-closer.service
rename to debian/taler-donau.taler-donau-wirewatch.service
index 97a385c..2bafc96 100644
--- a/debian/taler-exchange.taler-exchange-closer.service
+++ b/debian/taler-donau.taler-donau-wirewatch.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange closer service
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau wirewatch service
 After=network.target postgres.service
+PartOf=taler-donau.target
 
 [Service]
-User=taler-exchange-closer
+User=taler-donau-wire
 Type=simple
 Restart=always
 RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-closer -c /etc/taler/taler.conf
+RuntimeMaxSec=3600s
+ExecStart=/usr/bin/taler-donau-wirewatch -c /etc/taler/taler.conf
 StandardOutput=journal
 StandardError=journal
 PrivateTmp=yes
 PrivateDevices=yes
 ProtectSystem=full
-Slice=taler-exchange.slice
-RuntimeMaxSec=3600s
+Slice=taler-donau.slice
diff --git a/debian/taler-donau.taler-donau-wirewatch@.service 
b/debian/taler-donau.taler-donau-wirewatch@.service
new file mode 100644
index 0000000..63554fd
--- /dev/null
+++ b/debian/taler-donau.taler-donau-wirewatch@.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=GNU Taler payment system donau wirewatch service
+After=network.target
+PartOf=taler-donau.target
+
+[Service]
+User=taler-donau-wire
+Type=simple
+Restart=always
+RestartSec=1s
+ExecStart=/usr/bin/taler-donau-wirewatch -c /etc/taler/taler.conf
+StandardOutput=journal
+StandardError=journal
+PrivateTmp=yes
+PrivateDevices=yes
+ProtectSystem=full
+Slice=taler-donau.slice
+RuntimeMaxSec=3600s
diff --git a/debian/taler-donau.taler-donau.slice 
b/debian/taler-donau.taler-donau.slice
new file mode 100644
index 0000000..6dede4d
--- /dev/null
+++ b/debian/taler-donau.taler-donau.slice
@@ -0,0 +1,7 @@
+[Unit]
+Description=Slice for GNU taler donau processes
+Before=slices.target
+
+[Slice]
+# Add settings that should affect all GNU Taler donau
+# components here.
diff --git a/debian/taler-donau.taler-donau.target 
b/debian/taler-donau.taler-donau.target
new file mode 100644
index 0000000..d6df16b
--- /dev/null
+++ b/debian/taler-donau.taler-donau.target
@@ -0,0 +1,13 @@
+[Unit]
+Description=GNU Taler donau
+After=postgres.service network.target
+
+Wants=taler-donau-httpd.service
+Wants=taler-donau-wirewatch.service
+Wants=taler-donau-aggregator.service
+Wants=taler-donau-closer.service
+Wants=taler-donau-expire.service
+Wants=taler-donau-transfer.service
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/taler-donau.tmpfiles b/debian/taler-donau.tmpfiles
new file mode 100644
index 0000000..52ed130
--- /dev/null
+++ b/debian/taler-donau.tmpfiles
@@ -0,0 +1,8 @@
+#Type Path        Mode UID  GID  Age Argument
+d /run/taler/donau-secmod-rsa 0755 taler-donau-secmod-rsa taler-donau-secmod  
- -
+d /run/taler/donau-secmod-cs 0755 taler-donau-secmod-cs taler-donau-secmod  - -
+d /run/taler/donau-secmod-eddsa 0755 taler-donau-secmod-eddsa 
taler-donau-secmod  - -
+d /run/taler/donau-httpd 0750 taler-donau-httpd www-data  - -
+d /var/lib/taler/donau-secmod-cs 0700 taler-donau-secmod-cs taler-donau-secmod 
 - -
+d /var/lib/taler/donau-secmod-rsa 0700 taler-donau-secmod-rsa 
taler-donau-secmod  - -
+d /var/lib/taler/donau-secmod-eddsa 0700 taler-donau-secmod-eddsa 
taler-donau-secmod  - -
diff --git a/debian/taler-exchange-database.install 
b/debian/taler-exchange-database.install
deleted file mode 100644
index da8b0dc..0000000
--- a/debian/taler-exchange-database.install
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/bin/taler-exchange-dbconfig
-usr/bin/taler-exchange-dbinit
-usr/lib/*/taler/libtaler_plugin_exchange*.so
-usr/share/man/man1/taler-exchange-dbconfig.1
-usr/share/man/man1/taler-exchange-dbinit.1
-usr/share/taler/sql/exchange/*
-usr/share/taler/config.d/exchangedb.conf
-usr/share/taler/config.d/exchangedb-postgres.conf
diff --git a/debian/taler-exchange-offline.install 
b/debian/taler-exchange-offline.install
deleted file mode 100644
index 617715d..0000000
--- a/debian/taler-exchange-offline.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/taler-exchange-offline
-usr/share/man/man1/taler-exchange-offline*
diff --git a/debian/taler-exchange-offline.tmpfiles 
b/debian/taler-exchange-offline.tmpfiles
deleted file mode 100644
index 5f9dcb0..0000000
--- a/debian/taler-exchange-offline.tmpfiles
+++ /dev/null
@@ -1,2 +0,0 @@
-#Type Path        Mode UID  GID  Age Argument
-d /var/lib/taler/exchange-offline 0700 taler-exchange-offline 
taler-exchange-offline  - -
diff --git a/debian/taler-exchange.README.Debian 
b/debian/taler-exchange.README.Debian
deleted file mode 100644
index cce5d9f..0000000
--- a/debian/taler-exchange.README.Debian
+++ /dev/null
@@ -1,34 +0,0 @@
-taler-exchange
---------------
-
-Note that the configuration is incomplete, and that Debian cannot launch an
-exchange with this minimal template. You must:
-
-* Configure the Postgres database for the exchange, ideally including
-  remote replication of the database to the auditor.
-* Run `taler-exchange-dbinit` (also after package upgrades).
-* Edit ``/etc/taler-secmod.conf`` to must setup the currency and denominations
-  details.
-* Edit `/etc/taler-wire.conf` to provide details about the bank account access.
-* Run `taler-exchange-offline setup` on your offline system and add
-  the resulting master public key into the ``[exchange]`` section of
-  ``/etc/taler-exchange.conf`` under ``MASTER_PUBLIC_KEY``.
-
-
-None of these are done by the Debian package because we cannot provide the
-required complete configuration details.
-
-
-Once you have done this, you can use the following commands to start, stop or
-restart the Taler exchange:
-
-  # systemctl start taler-exchange-httpd.service
-  # systemctl stop taler-exchange-httpd.service
-  # systemctl restart taler-exchange-httpd.service
-
-To permanently the exchange whenever the system boots, use:
-
-  # systemctl enable taler-exchange-httpd
-
-
- -- Christian Grothoff <grothoff@gnu.org>  Mon 28 Dec 2020 11:37:14 AM CET
diff --git a/debian/taler-exchange.install b/debian/taler-exchange.install
deleted file mode 100644
index 38b3d55..0000000
--- a/debian/taler-exchange.install
+++ /dev/null
@@ -1,39 +0,0 @@
-usr/bin/taler-exchange-aggregator
-usr/bin/taler-exchange-closer
-usr/bin/taler-exchange-drain
-usr/bin/taler-exchange-expire
-usr/bin/taler-exchange-httpd
-usr/bin/taler-exchange-router
-usr/bin/taler-exchange-secmod-cs
-usr/bin/taler-exchange-secmod-eddsa
-usr/bin/taler-exchange-secmod-rsa
-usr/bin/taler-exchange-transfer
-usr/bin/taler-exchange-wirewatch
-usr/bin/taler-exchange-wire-gateway-client
-usr/lib/*/taler/libtaler_plugin_kyclogic_*.so
-usr/lib/*/taler/libtaler_extension_*.so
-usr/share/man/man1/taler-exchange-aggregator*
-usr/share/man/man1/taler-exchange-closer*
-usr/share/man/man1/taler-exchange-drain*
-usr/share/man/man1/taler-exchange-expire*
-usr/share/man/man1/taler-exchange-httpd*
-usr/share/man/man1/taler-exchange-router*
-usr/share/man/man1/taler-exchange-secmod-eddsa*
-usr/share/man/man1/taler-exchange-secmod-rsa*
-usr/share/man/man1/taler-exchange-secmod-cs*
-usr/share/man/man1/taler-exchange-transfer*
-usr/share/man/man1/taler-exchange-wirewatch*
-usr/share/man/man1/taler-bank*
-usr/share/man/man1/taler-exchange-wire-gateway-client*
-usr/share/info/taler-bank*
-usr/share/info/taler-exchange*
-usr/share/taler/config.d/*
-usr/share/taler/exchange/templates/*.must
-
-# configuration files in /etc/taler
-debian/etc-taler-exchange/* etc/
-
-# Terms of service / privacy policy templates
-usr/share/taler/terms/*.rst
-# Translations of ToS/PP
-usr/share/locale/*/LC_MESSAGES/*.po
diff --git a/debian/taler-exchange.taler-exchange-aggregator.service 
b/debian/taler-exchange.taler-exchange-aggregator.service
deleted file mode 100644
index 246cad5..0000000
--- a/debian/taler-exchange.taler-exchange-aggregator.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange aggregator service
-PartOf=taler-exchange.target
-After=postgres.service
-
-[Service]
-User=taler-exchange-aggregator
-Type=simple
-Restart=always
-RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=yes
-PrivateDevices=yes
-ProtectSystem=full
-Slice=taler-exchange.slice
-RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange-aggregator@.service 
b/debian/taler-exchange.taler-exchange-aggregator@.service
deleted file mode 100644
index bfc44a9..0000000
--- a/debian/taler-exchange.taler-exchange-aggregator@.service
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange aggregator service
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-aggregator
-Type=simple
-Restart=always
-RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=yes
-PrivateDevices=yes
-ProtectSystem=full
-Slice=taler-exchange.slice
-RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange-expire.service 
b/debian/taler-exchange.taler-exchange-expire.service
deleted file mode 100644
index 250f210..0000000
--- a/debian/taler-exchange.taler-exchange-expire.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange expire service
-PartOf=taler-exchange.target
-After=postgres.service
-
-[Service]
-User=taler-exchange-expire
-Type=simple
-Restart=always
-RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-expire -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=yes
-PrivateDevices=yes
-ProtectSystem=full
-Slice=taler-exchange.slice
-RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange-httpd.service 
b/debian/taler-exchange.taler-exchange-httpd.service
deleted file mode 100644
index 3671bdc..0000000
--- a/debian/taler-exchange.taler-exchange-httpd.service
+++ /dev/null
@@ -1,33 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange REST API
-AssertPathExists=/run/taler/exchange-httpd
-Requires=taler-exchange-httpd.socket taler-exchange-secmod-cs.service 
taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service
-After=postgres.service network.target taler-exchange-secmod-cs.service 
taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-httpd
-Type=simple
-
-# Depending on the configuration, the service process kills itself and then
-# needs to be restarted. Thus no significant delay on restarts.
-Restart=always
-RestartSec=1ms
-
-# Disable the service if more than 5 restarts are encountered within 5s.
-# These are usually the systemd defaults, but can be overwritten, thus we set
-# them here explicitly, as the exchange code assumes StartLimitInterval
-# to be >=5s.
-StartLimitBurst=5
-StartLimitInterval=5s
-
-ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=no
-PrivateDevices=yes
-ProtectSystem=full
-Slice=taler-exchange.slice
-
-[Install]
-WantedBy=multi-user.target
diff --git a/debian/taler-exchange.taler-exchange-httpd.socket 
b/debian/taler-exchange.taler-exchange-httpd.socket
deleted file mode 100644
index adbfb93..0000000
--- a/debian/taler-exchange.taler-exchange-httpd.socket
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Taler Exchange Socket
-PartOf=taler-exchange-httpd.service
-
-[Socket]
-ListenStream=/run/taler/exchange-httpd/exchange-http.sock
-Accept=no
-Service=taler-exchange-httpd.service
-SocketUser=taler-exchange-httpd
-SocketGroup=www-data
-SocketMode=0660
-
-[Install]
-WantedBy=sockets.target
diff --git a/debian/taler-exchange.taler-exchange-httpd@.service 
b/debian/taler-exchange.taler-exchange-httpd@.service
deleted file mode 100644
index e024689..0000000
--- a/debian/taler-exchange.taler-exchange-httpd@.service
+++ /dev/null
@@ -1,27 +0,0 @@
-% This is a systemd service template.
-[Unit]
-Description=GNU Taler payment system exchange REST API at %I
-AssertPathExists=/run/taler/exchange-httpd
-Requires=taler-exchange-httpd@%i.socket taler-exchange-secmod-rsa.service 
taler-exchange-secmod-eddsa.service
-After=postgres.service network.target taler-exchange-secmod-rsa.service 
taler-exchange-secmod-eddsa.service
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-httpd
-Type=simple
-# Depending on the configuration, the service suicides and then
-# needs to be restarted.
-Restart=always
-# Do not dally on restarts.
-RestartSec=1ms
-EnvironmentFile=/etc/environment
-ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=no
-PrivateDevices=yes
-ProtectSystem=full
-Slice=taler-exchange.slice
-
-[Install]
-WantedBy=multi-user.target
diff --git a/debian/taler-exchange.taler-exchange-httpd@.socket 
b/debian/taler-exchange.taler-exchange-httpd@.socket
deleted file mode 100644
index e1d6b6b..0000000
--- a/debian/taler-exchange.taler-exchange-httpd@.socket
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Taler Exchange Socket at %I
-PartOf=taler-exchange-httpd@%i.service
-
-[Socket]
-ListenStream=80
-Accept=no
-Service=taler-exchange-httpd@%i.service
-SocketUser=taler-exchange-httpd
-SocketGroup=www-data
-SocketMode=0660
-
-[Install]
-WantedBy=sockets.target
diff --git a/debian/taler-exchange.taler-exchange-secmod-cs.service 
b/debian/taler-exchange.taler-exchange-secmod-cs.service
deleted file mode 100644
index 3b5e074..0000000
--- a/debian/taler-exchange.taler-exchange-secmod-cs.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange CS security module
-AssertPathExists=/run/taler/exchange-secmod-cs
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-secmod-cs
-Type=simple
-Restart=always
-RestartSec=100ms
-ExecStart=/usr/bin/taler-exchange-secmod-cs -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=no
-PrivateDevices=yes
-ProtectSystem=full
-IPAddressDeny=any
-Slice=taler-exchange.slice
diff --git a/debian/taler-exchange.taler-exchange-secmod-eddsa.service 
b/debian/taler-exchange.taler-exchange-secmod-eddsa.service
deleted file mode 100644
index e8fba17..0000000
--- a/debian/taler-exchange.taler-exchange-secmod-eddsa.service
+++ /dev/null
@@ -1,19 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange EdDSA security module
-AssertPathExists=/run/taler/exchange-secmod-eddsa
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-secmod-eddsa
-Type=simple
-Restart=always
-RestartSec=100ms
-ExecStart=/usr/bin/taler-exchange-secmod-eddsa -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=no
-PrivateDevices=yes
-ProtectSystem=full
-IPAddressDeny=any
-Slice=taler-exchange.slice
-
diff --git a/debian/taler-exchange.taler-exchange-secmod-rsa.service 
b/debian/taler-exchange.taler-exchange-secmod-rsa.service
deleted file mode 100644
index 10a9585..0000000
--- a/debian/taler-exchange.taler-exchange-secmod-rsa.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange RSA security module
-AssertPathExists=/run/taler/exchange-secmod-rsa
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-secmod-rsa
-Type=simple
-Restart=always
-RestartSec=100ms
-ExecStart=/usr/bin/taler-exchange-secmod-rsa -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=no
-PrivateDevices=yes
-ProtectSystem=full
-IPAddressDeny=any
-Slice=taler-exchange.slice
diff --git a/debian/taler-exchange.taler-exchange-wirewatch@.service 
b/debian/taler-exchange.taler-exchange-wirewatch@.service
deleted file mode 100644
index 85bb926..0000000
--- a/debian/taler-exchange.taler-exchange-wirewatch@.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=GNU Taler payment system exchange wirewatch service
-After=network.target
-PartOf=taler-exchange.target
-
-[Service]
-User=taler-exchange-wire
-Type=simple
-Restart=always
-RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf
-StandardOutput=journal
-StandardError=journal
-PrivateTmp=yes
-PrivateDevices=yes
-ProtectSystem=full
-Slice=taler-exchange.slice
-RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange.slice 
b/debian/taler-exchange.taler-exchange.slice
deleted file mode 100644
index b5bb71e..0000000
--- a/debian/taler-exchange.taler-exchange.slice
+++ /dev/null
@@ -1,7 +0,0 @@
-[Unit]
-Description=Slice for GNU taler exchange processes
-Before=slices.target
-
-[Slice]
-# Add settings that should affect all GNU Taler exchange
-# components here.
diff --git a/debian/taler-exchange.taler-exchange.target 
b/debian/taler-exchange.taler-exchange.target
deleted file mode 100644
index 65ec77c..0000000
--- a/debian/taler-exchange.taler-exchange.target
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=GNU Taler exchange
-After=postgres.service network.target
-
-Wants=taler-exchange-httpd.service
-Wants=taler-exchange-wirewatch.service
-Wants=taler-exchange-aggregator.service
-Wants=taler-exchange-closer.service
-Wants=taler-exchange-expire.service
-Wants=taler-exchange-transfer.service
-
-[Install]
-WantedBy=multi-user.target
diff --git a/debian/taler-exchange.tmpfiles b/debian/taler-exchange.tmpfiles
deleted file mode 100644
index c2a7965..0000000
--- a/debian/taler-exchange.tmpfiles
+++ /dev/null
@@ -1,8 +0,0 @@
-#Type Path        Mode UID  GID  Age Argument
-d /run/taler/exchange-secmod-rsa 0755 taler-exchange-secmod-rsa 
taler-exchange-secmod  - -
-d /run/taler/exchange-secmod-cs 0755 taler-exchange-secmod-cs 
taler-exchange-secmod  - -
-d /run/taler/exchange-secmod-eddsa 0755 taler-exchange-secmod-eddsa 
taler-exchange-secmod  - -
-d /run/taler/exchange-httpd 0750 taler-exchange-httpd www-data  - -
-d /var/lib/taler/exchange-secmod-cs 0700 taler-exchange-secmod-cs 
taler-exchange-secmod  - -
-d /var/lib/taler/exchange-secmod-rsa 0700 taler-exchange-secmod-rsa 
taler-exchange-secmod  - -
-d /var/lib/taler/exchange-secmod-eddsa 0700 taler-exchange-secmod-eddsa 
taler-exchange-secmod  - -
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
index 2a281b5..4f4b971 100644
--- a/debian/upstream/metadata
+++ b/debian/upstream/metadata
@@ -1,4 +1,4 @@
 Bug-Submit: https://bugs.taler.net/
 Documentation: https://docs.taler.net/
-Repository: git.taler.net/exchange.git
-Repository-Browse: https://git.taler.net/exchange.git
+Repository: git.taler.net/donau.git
+Repository-Browse: https://git.taler.net/donau.git
diff --git a/doc/.gitignore b/doc/.gitignore
index f7b3a16..b7622c9 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -10,20 +10,20 @@
 version.texi
 texinfo.tex
 stamp-vti
-taler-exchange.info
+taler-donau.info
 mdate-sh
-taler-exchange.vr
-taler-exchange.tp
-taler-exchange.toc
-taler-exchange.pg
-taler-exchange.pdf
-taler-exchange.log
-taler-exchange.ky
-taler-exchange.info
-taler-exchange.html
-taler-exchange.fn
-taler-exchange.cp
-taler-exchange.auxtaler-exchange.cps
+taler-donau.vr
+taler-donau.tp
+taler-donau.toc
+taler-donau.pg
+taler-donau.pdf
+taler-donau.log
+taler-donau.ky
+taler-donau.info
+taler-donau.html
+taler-donau.fn
+taler-donau.cp
+taler-donau.auxtaler-donau.cps
 cbdc-es/cbdc-es.pdf
 cbdc-it/cbdc-it.pdf
 audit/response-202109.pdf
diff --git a/doc/Makefile.am b/doc/Makefile.am
index b1dd349..6ff7cbc 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -12,31 +12,31 @@ man_MANS = \
   prebuilt/man/taler-aggregator-benchmark.1   \
   prebuilt/man/taler-auditor.1             \
   prebuilt/man/taler-auditor-dbinit.1      \
-  prebuilt/man/taler-auditor-exchange.1     \
+  prebuilt/man/taler-auditor-donau.1     \
   prebuilt/man/taler-auditor-httpd.1       \
   prebuilt/man/taler-auditor-offline.1    \
   prebuilt/man/taler-auditor-sign.1       \
   prebuilt/man/taler-auditor-sync.1       \
   prebuilt/man/taler-bank-benchmark.1   \
   prebuilt/man/taler-bank-transfer.1   \
-  prebuilt/man/taler-exchange-aggregator.1 \
-  prebuilt/man/taler-exchange-benchmark.1  \
-  prebuilt/man/taler-exchange-closer.1     \
-  prebuilt/man/taler-exchange-dbconfig.1  \
-  prebuilt/man/taler-exchange-dbinit.1  \
-  prebuilt/man/taler-exchange-drain.1  \
-  prebuilt/man/taler-exchange-expire.1  \
-  prebuilt/man/taler-exchange-httpd.1       \
-  prebuilt/man/taler-exchange-kyc-aml-pep-trigger.1 \
-  prebuilt/man/taler-exchange-kyc-tester.1       \
-  prebuilt/man/taler-exchange-offline.1    \
-  prebuilt/man/taler-exchange-router.1\
-  prebuilt/man/taler-exchange-secmod-cs.1\
-  prebuilt/man/taler-exchange-secmod-eddsa.1\
-  prebuilt/man/taler-exchange-secmod-rsa.1 \
-  prebuilt/man/taler-exchange-transfer.1\
-  prebuilt/man/taler-exchange-wire-gateway-client.1\
-  prebuilt/man/taler-exchange-wirewatch.1   \
+  prebuilt/man/taler-donau-aggregator.1 \
+  prebuilt/man/taler-donau-benchmark.1  \
+  prebuilt/man/taler-donau-closer.1     \
+  prebuilt/man/taler-donau-dbconfig.1  \
+  prebuilt/man/taler-donau-dbinit.1  \
+  prebuilt/man/taler-donau-drain.1  \
+  prebuilt/man/taler-donau-expire.1  \
+  prebuilt/man/taler-donau-httpd.1       \
+  prebuilt/man/taler-donau-kyc-aml-pep-trigger.1 \
+  prebuilt/man/taler-donau-kyc-tester.1       \
+  prebuilt/man/taler-donau-offline.1    \
+  prebuilt/man/taler-donau-router.1\
+  prebuilt/man/taler-donau-secmod-cs.1\
+  prebuilt/man/taler-donau-secmod-eddsa.1\
+  prebuilt/man/taler-donau-secmod-rsa.1 \
+  prebuilt/man/taler-donau-transfer.1\
+  prebuilt/man/taler-donau-wire-gateway-client.1\
+  prebuilt/man/taler-donau-wirewatch.1   \
   prebuilt/man/taler-helper-auditor-aggregation.1 \
   prebuilt/man/taler-helper-auditor-coins.1\
   prebuilt/man/taler-helper-auditor-deposits.1\
@@ -50,7 +50,7 @@ info_TEXINFOS = \
   prebuilt/texinfo/taler-auditor.texi \
   prebuilt/texinfo/taler-bank.texi \
   prebuilt/texinfo/taler-developer-manual.texi \
-  prebuilt/texinfo/taler-exchange.texi
+  prebuilt/texinfo/taler-donau.texi
 
 
 EXTRA_DIST = \
@@ -61,14 +61,14 @@ EXTRA_DIST = \
   prebuilt/texinfo/taler-auditor-figures/replication.png  \
   prebuilt/texinfo/taler-bank-figures/arch-api.png  \
   prebuilt/texinfo/taler-bank-figures/auditor-db.png       \
-  prebuilt/texinfo/taler-bank-figures/exchange-db.png \
-  prebuilt/texinfo/taler-bank-figures/merchant-db.png \
+  prebuilt/texinfo/taler-bank-figures/donau-db.png \
+  prebuilt/texinfo/taler-bank-figures/charity-db.png \
   prebuilt/texinfo/taler-bank-figures/replication.png \
   prebuilt/texinfo/taler-developer-manual-figures/arch-api.png \
   prebuilt/texinfo/taler-developer-manual-figures/auditor-db.png \
-  prebuilt/texinfo/taler-developer-manual-figures/exchange-db.png \
-  prebuilt/texinfo/taler-developer-manual-figures/merchant-db.png \
+  prebuilt/texinfo/taler-developer-manual-figures/donau-db.png \
+  prebuilt/texinfo/taler-developer-manual-figures/charity-db.png \
   prebuilt/texinfo/taler-developer-manual-figures/replication.png \
-  prebuilt/texinfo/taler-exchange-figures/auditor-db.png \
-  prebuilt/texinfo/taler-exchange-figures/exchange-db.png\
-  prebuilt/texinfo/taler-exchange-figures/replication.png
+  prebuilt/texinfo/taler-donau-figures/auditor-db.png \
+  prebuilt/texinfo/taler-donau-figures/donau-db.png\
+  prebuilt/texinfo/taler-donau-figures/replication.png
diff --git a/doc/doxygen/.gitignore b/doc/doxygen/.gitignore
index 145a3fd..21cbece 100644
--- a/doc/doxygen/.gitignore
+++ b/doc/doxygen/.gitignore
@@ -1,2 +1,2 @@
 html/
-taler-exchange.tag
+taler-donau.tag
diff --git a/doc/doxygen/Makefile.in b/doc/doxygen/Makefile.in
index 582dba3..973790b 100644
--- a/doc/doxygen/Makefile.in
+++ b/doc/doxygen/Makefile.in
@@ -9,7 +9,7 @@
 
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# even the implied warranty of CHARITYABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
diff --git a/doc/doxygen/taler.doxy b/doc/doxygen/taler.doxy
index a9a2bfe..38c0dfe 100644
--- a/doc/doxygen/taler.doxy
+++ b/doc/doxygen/taler.doxy
@@ -41,7 +41,7 @@ DOXYFILE_ENCODING      = UTF-8
 # title of most generated pages and in a few other places.
 # The default value is: My Project.
 
-PROJECT_NAME           = "GNU Taler: Exchange"
+PROJECT_NAME           = "GNU Taler: Donau"
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
This
 # could be handy for archiving the generated documentation or if some version
@@ -1411,7 +1411,7 @@ DOCSET_FEEDNAME        = "GNU Taler Source Documentation"
 # The default value is: org.doxygen.Project.
 # This tag requires that the tag GENERATE_DOCSET is set to YES.
 
-DOCSET_BUNDLE_ID       = net.taler.exchange
+DOCSET_BUNDLE_ID       = net.taler.donau
 
 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
 # the documentation publisher. This should be a reverse domain-name style
@@ -2336,7 +2336,7 @@ TAGFILES               = ../../contrib/gnunet.tag \
 # tag file that is based on the input files it reads. See section "Linking to
 # external documentation" for more information about the usage of tag files.
 
-GENERATE_TAGFILE       = taler-exchange.tag
+GENERATE_TAGFILE       = taler-donau.tag
 
 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in
 # the class index. If set to NO, only the inherited external classes will be
diff --git a/doc/flows/Makefile b/doc/flows/Makefile
new file mode 100644
index 0000000..c092810
--- /dev/null
+++ b/doc/flows/Makefile
@@ -0,0 +1,3 @@
+all:
+       pdflatex main.tex
+       pdflatex main.tex
\ No newline at end of file
diff --git a/doc/protocol/overview.tex b/doc/flows/main.tex
similarity index 100%
rename from doc/protocol/overview.tex
rename to doc/flows/main.tex
diff --git a/doc/protocol/.gitignore b/doc/protocol/.gitignore
deleted file mode 100644
index 6688ce4..0000000
--- a/doc/protocol/.gitignore
+++ /dev/null
@@ -1,39 +0,0 @@
-*.pdf
-
-## Core latex/pdflatex auxiliary files:
-*.aux
-*.lof
-*.log
-*.lot
-*.fls
-*.out
-*.toc
-*.fmt
-*.fot
-*.cb
-*.cb2
-.*.lb
-
-## Bibliography auxiliary files (bibtex/biblatex/biber):
-*.bbl
-*.bcf
-*.blg
-*-blx.aux
-*-blx.bib
-*.run.xml
-
-# beamer
-*.nav
-*.pre
-*.snm
-*.vrb
-
-# hyperref
-*.brf
-
-# pax
-*.pax
-
-*.idx
-*.ilg
-*.ind
diff --git a/doc/protocol/Makefile b/doc/protocol/Makefile
deleted file mode 100644
index 46b8c8f..0000000
--- a/doc/protocol/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-SOURCES = $(wildcard *.tex)
-BASENAME = $(patsubst %.tex,%,$(SOURCES))
-
-.PHONY: pdf default open clean
-
-pdf default:
-       pdflatex $(SOURCES)
-
-open: pdf
-       zathura --fork $(BASENAME).pdf
-
-clean:
-       rm -f *.nav *.snm *.toc *.pdf *.log *.aux *.out *.dvi *.bbl *.blg
diff --git a/m4/libgcrypt.m4 b/m4/libgcrypt.m4
index 9a29eb5..699cadb 100644
--- a/m4/libgcrypt.m4
+++ b/m4/libgcrypt.m4
@@ -7,7 +7,7 @@ dnl modifications, as long as this notice is preserved.
 dnl
 dnl This file is distributed in the hope that it will be useful, but
 dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+dnl implied warranty of CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
 dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION,
diff --git a/m4/mhd.m4 b/m4/mhd.m4
index 40e5b46..6ba87a8 100644
--- a/m4/mhd.m4
+++ b/m4/mhd.m4
@@ -8,7 +8,7 @@
 #  Foundation; either version 3, or (at your option) any later version.
 #
 #  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 #  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
 #  You should have received a copy of the GNU General Public License along with
diff --git a/po/taler-exchange.pot b/po/taler-donau.pot
similarity index 86%
rename from po/taler-exchange.pot
rename to po/taler-donau.pot
index 6d05be5..514123c 100644
--- a/po/taler-exchange.pot
+++ b/po/taler-donau.pot
@@ -1,12 +1,12 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR Taler Systems SA
-# This file is distributed under the same license as the GNU taler-exchange 
package.
+# This file is distributed under the same license as the GNU taler-donau 
package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU taler-exchange 0.9.2\n"
+"Project-Id-Version: GNU taler-donau 0.9.2\n"
 "Report-Msgid-Bugs-To: taler@gnu.org\n"
 "POT-Creation-Date: 2023-02-21 16:40+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
@@ -188,7 +188,7 @@ msgid "The backend could not expand the template to 
generate an HTML reply."
 msgstr ""
 
 #: src/util/taler_error_codes.c:278
-msgid "Exchange is badly configured and thus cannot operate."
+msgid "Donau is badly configured and thus cannot operate."
 msgstr ""
 
 #: src/util/taler_error_codes.c:284
@@ -208,13 +208,13 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:302
 msgid ""
-"The public key of given to a \"/coins/\" endpoint of the exchange was "
+"The public key of given to a \"/coins/\" endpoint of the donau was "
 "malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:308
 msgid ""
-"The exchange is not aware of the denomination key the wallet requested for "
+"The donau is not aware of the denomination key the wallet requested for "
 "the operation."
 msgstr ""
 
@@ -224,8 +224,8 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:320
 msgid ""
-"The exchange failed to perform the operation as it could not find the "
-"private keys. This is a problem with the exchange setup, not with the "
+"The donau failed to perform the operation as it could not find the "
+"private keys. This is a problem with the donau setup, not with the "
 "client's request."
 msgstr ""
 
@@ -245,7 +245,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:344
 msgid ""
-"An operation where the exchange interacted with a security module timed out."
+"An operation where the donau interacted with a security module timed out."
 msgstr ""
 
 #: src/util/taler_error_codes.c:350
@@ -257,13 +257,13 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:356
 msgid ""
-"The exchange had an internal error reconstructing the transaction history of "
+"The donau had an internal error reconstructing the transaction history of "
 "the coin that was being processed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:362
 msgid ""
-"The exchange failed to obtain the transaction history of the given coin from "
+"The donau failed to obtain the transaction history of the given coin from "
 "the database while generating an insufficient funds errors."
 msgstr ""
 
@@ -284,7 +284,7 @@ msgstr ""
 #: src/util/taler_error_codes.c:386
 msgid ""
 "The number of denominations specified in the request exceeds the limit of "
-"the exchange."
+"the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:392
@@ -300,11 +300,11 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:404
-msgid "The exchange was not properly configured with global fees."
+msgid "The donau was not properly configured with global fees."
 msgstr ""
 
 #: src/util/taler_error_codes.c:410
-msgid "The exchange was not properly configured with wire fees."
+msgid "The donau was not properly configured with wire fees."
 msgstr ""
 
 #: src/util/taler_error_codes.c:416
@@ -321,12 +321,12 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:434
 msgid ""
-"The exchange has no information about the \"reserve_pub\" that was given."
+"The donau has no information about the \"reserve_pub\" that was given."
 msgstr ""
 
 #: src/util/taler_error_codes.c:440
 msgid ""
-"The exchange is not allowed to proceed with the operation until the client "
+"The donau is not allowed to proceed with the operation until the client "
 "has satisfied a KYC check."
 msgstr ""
 
@@ -339,7 +339,7 @@ msgstr ""
 #: src/util/taler_error_codes.c:452
 msgid ""
 "The provided attestation for the minimum age couldn't be verified by the "
-"exchange."
+"donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:458
@@ -361,19 +361,19 @@ msgstr ""
 #: src/util/taler_error_codes.c:482
 msgid ""
 "The requested operation is denied pending the resolution of an anti-money "
-"laundering investigation by the exchange operator. This is a manual process, "
+"laundering investigation by the donau operator. This is a manual process, "
 "please wait and retry later."
 msgstr ""
 
 #: src/util/taler_error_codes.c:488
 msgid ""
 "The requested operation is denied as the account was frozen on suspicion of "
-"money laundering. Please contact the exchange operator."
+"money laundering. Please contact the donau operator."
 msgstr ""
 
 #: src/util/taler_error_codes.c:494
 msgid ""
-"The exchange did not find information about the specified transaction in the "
+"The donau did not find information about the specified transaction in the "
 "database."
 msgstr ""
 
@@ -382,7 +382,7 @@ msgid "The wire hash of given to a \"/deposits/\" handler 
was malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:506
-msgid "The merchant key of given to a \"/deposits/\" handler was malformed."
+msgid "The charity key of given to a \"/deposits/\" handler was malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:512
@@ -397,11 +397,11 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:524
 msgid ""
-"The signature returned by the exchange in a /deposits/ request was malformed."
+"The signature returned by the donau in a /deposits/ request was malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:530 src/util/taler_error_codes.c:860
-msgid "The signature of the merchant is invalid."
+msgid "The signature of the charity is invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:536
@@ -428,11 +428,11 @@ msgstr ""
 msgid ""
 "The amount to withdraw together with the fee exceeds the numeric range for "
 "Taler amounts.  This is not a client failure, as the coin value and fees "
-"come from the exchange's configuration."
+"come from the donau's configuration."
 msgstr ""
 
 #: src/util/taler_error_codes.c:560
-msgid "The exchange failed to create the signature using the denomination key."
+msgid "The donau failed to create the signature using the denomination key."
 msgstr ""
 
 #: src/util/taler_error_codes.c:566
@@ -476,7 +476,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:614
 msgid ""
-"The same coin was already deposited for the same merchant and contract with "
+"The same coin was already deposited for the same charity and contract with "
 "other details."
 msgstr ""
 
@@ -496,9 +496,9 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:638
 msgid ""
-"The exchange failed to canonicalize and hash the given wire format. For "
-"example, the merchant failed to provide the \"salt\" or a valid payto:// URI "
-"in the wire details.  Note that while the exchange will do some basic sanity "
+"The donau failed to canonicalize and hash the given wire format. For "
+"example, the charity failed to provide the \"salt\" or a valid payto:// URI "
+"in the wire details.  Note that while the donau will do some basic sanity "
 "checking on the wire details, it cannot warrant that the banking system will "
 "ultimately be able to route to the specified address, even if this check "
 "passed."
@@ -511,7 +511,7 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:650
-msgid "The signature provided by the exchange is not valid."
+msgid "The signature provided by the donau is not valid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:656
@@ -527,7 +527,7 @@ msgstr ""
 #: src/util/taler_error_codes.c:668
 msgid ""
 "The reserve balance, status or history was requested for a reserve which is "
-"not known to the exchange."
+"not known to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:674
@@ -540,7 +540,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:686
 msgid ""
-"The exchange encountered melt fees exceeding the melted coin's contribution."
+"The donau encountered melt fees exceeding the melted coin's contribution."
 msgstr ""
 
 #: src/util/taler_error_codes.c:692
@@ -555,7 +555,7 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:704
-msgid "The signature returned by the exchange in a melt request was malformed."
+msgid "The signature returned by the donau in a melt request was malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:710
@@ -570,7 +570,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:722
 msgid ""
-"The exchange is unaware of the refresh session specified in the request."
+"The donau is unaware of the refresh session specified in the request."
 msgstr ""
 
 #: src/util/taler_error_codes.c:728
@@ -587,13 +587,13 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:740
 msgid ""
-"The exchange encountered a numeric overflow totaling up the cost for the "
+"The donau encountered a numeric overflow totaling up the cost for the "
 "refresh operation."
 msgstr ""
 
 #: src/util/taler_error_codes.c:746
 msgid ""
-"The exchange's cost calculation shows that the melt amount is below the "
+"The donau's cost calculation shows that the melt amount is below the "
 "costs of the transaction."
 msgstr ""
 
@@ -622,7 +622,7 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:782
-msgid "The coin specified in the link request is unknown to the exchange."
+msgid "The coin specified in the link request is unknown to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:788
@@ -631,19 +631,19 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:794
 msgid ""
-"The exchange did not find information about the specified wire transfer "
+"The donau did not find information about the specified wire transfer "
 "identifier in the database."
 msgstr ""
 
 #: src/util/taler_error_codes.c:800
 msgid ""
-"The exchange did not find information about the wire transfer fees it "
+"The donau did not find information about the wire transfer fees it "
 "charged."
 msgstr ""
 
 #: src/util/taler_error_codes.c:806
 msgid ""
-"The exchange found a wire fee that was above the total transfer value (and "
+"The donau found a wire fee that was above the total transfer value (and "
 "thus could not have been charged)."
 msgstr ""
 
@@ -652,12 +652,12 @@ msgid "The wait target of the URL was not in the set of 
expected values."
 msgstr ""
 
 #: src/util/taler_error_codes.c:818
-msgid "The signature on the purse status returned by the exchange was invalid."
+msgid "The signature on the purse status returned by the donau was invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:824
 msgid ""
-"The exchange knows literally nothing about the coin we were asked to refund. "
+"The donau knows literally nothing about the coin we were asked to refund. "
 "But without a transaction history, we cannot issue a refund. This is kind-of "
 "OK, the owner should just refresh it directly without executing the refund."
 msgstr ""
@@ -671,22 +671,22 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:836
 msgid ""
-"The exchange knows about the coin we were asked to refund, but not about the "
+"The donau knows about the coin we were asked to refund, but not about the "
 "specific /deposit operation.  Hence, we cannot issue a refund (as we do not "
-"know if this merchant public key is authorized to do a refund)."
+"know if this charity public key is authorized to do a refund)."
 msgstr ""
 
 #: src/util/taler_error_codes.c:842
 msgid ""
-"The exchange can no longer refund the customer/coin as the money was already "
-"transferred (paid out) to the merchant. (It should be past the refund "
+"The donau can no longer refund the donor/coin as the money was already "
+"transferred (paid out) to the charity. (It should be past the refund "
 "deadline.)"
 msgstr ""
 
 #: src/util/taler_error_codes.c:848
 msgid ""
 "The refund fee specified for the request is lower than the refund fee "
-"charged by the exchange for the given denomination key of the refunded coin."
+"charged by the donau for the given denomination key of the refunded coin."
 msgstr ""
 
 #: src/util/taler_error_codes.c:854
@@ -696,16 +696,16 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:866
-msgid "Merchant backend failed to create the refund confirmation signature."
+msgid "Charity backend failed to create the refund confirmation signature."
 msgstr ""
 
 #: src/util/taler_error_codes.c:872
 msgid ""
-"The signature returned by the exchange in a refund request was malformed."
+"The signature returned by the donau in a refund request was malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:878
-msgid "The failure proof returned by the exchange is incorrect."
+msgid "The failure proof returned by the donau is incorrect."
 msgstr ""
 
 #: src/util/taler_error_codes.c:884
@@ -720,7 +720,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:896
 msgid ""
-"The exchange could not find the corresponding withdraw operation. The "
+"The donau could not find the corresponding withdraw operation. The "
 "request is denied."
 msgstr ""
 
@@ -729,7 +729,7 @@ msgid "The coin's remaining balance is zero.  The request 
is denied."
 msgstr ""
 
 #: src/util/taler_error_codes.c:908 src/util/taler_error_codes.c:938
-msgid "The exchange failed to reproduce the coin's blinding."
+msgid "The donau failed to reproduce the coin's blinding."
 msgstr ""
 
 #: src/util/taler_error_codes.c:920 src/util/taler_error_codes.c:944
@@ -738,14 +738,14 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:932
 msgid ""
-"The exchange could not find the corresponding melt operation. The request is "
+"The donau could not find the corresponding melt operation. The request is "
 "denied."
 msgstr ""
 
 #: src/util/taler_error_codes.c:950
 msgid ""
-"This exchange does not allow clients to request /keys for times other than "
-"the current (exchange) time."
+"This donau does not allow clients to request /keys for times other than "
+"the current (donau) time."
 msgstr ""
 
 #: src/util/taler_error_codes.c:956
@@ -754,20 +754,20 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:962
 msgid ""
-"No bank accounts are enabled for the exchange. The administrator should "
-"enable-account using the taler-exchange-offline tool."
+"No bank accounts are enabled for the donau. The administrator should "
+"enable-account using the taler-donau-offline tool."
 msgstr ""
 
 #: src/util/taler_error_codes.c:968
 msgid ""
-"The payto:// URI stored in the exchange database for its bank account is "
+"The payto:// URI stored in the donau database for its bank account is "
 "malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:974
 msgid ""
-"No wire fees are configured for an enabled wire method of the exchange. The "
-"administrator must set the wire-fee using the taler-exchange-offline tool."
+"No wire fees are configured for an enabled wire method of the donau. The "
+"administrator must set the wire-fee using the taler-donau-offline tool."
 msgstr ""
 
 #: src/util/taler_error_codes.c:980
@@ -785,7 +785,7 @@ msgstr ""
 #: src/util/taler_error_codes.c:998
 msgid ""
 "The purse fee specified for the request is lower than the purse fee charged "
-"by the exchange at this time."
+"by the donau at this time."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1004
@@ -800,7 +800,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1016
 msgid ""
-"The exchange failed to talk to the process responsible for its private "
+"The donau failed to talk to the process responsible for its private "
 "denomination keys."
 msgstr ""
 
@@ -815,12 +815,12 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:1034
-msgid "The signature of the exchange on the reply was invalid."
+msgid "The signature of the donau on the reply was invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1040
 msgid ""
-"The exchange failed to talk to the process responsible for its private "
+"The donau failed to talk to the process responsible for its private "
 "signing keys."
 msgstr ""
 
@@ -859,7 +859,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1100
 msgid ""
-"The exchange does not know an origin account to which the remaining reserve "
+"The donau does not know an origin account to which the remaining reserve "
 "balance could be wired to, and the wallet failed to provide one."
 msgstr ""
 
@@ -869,12 +869,12 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1112
 msgid ""
-"The auditor that was supposed to be disabled is unknown to this exchange."
+"The auditor that was supposed to be disabled is unknown to this donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1118 src/util/taler_error_codes.c:1148
 msgid ""
-"The exchange has a more recently signed conflicting instruction and is thus "
+"The donau has a more recently signed conflicting instruction and is thus "
 "refusing the current change (replay detected)."
 msgstr ""
 
@@ -895,7 +895,7 @@ msgid "The signature to revoke the online signing key does 
not validate."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1154
-msgid "The signingkey specified is unknown to the exchange."
+msgid "The signingkey specified is unknown to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1160
@@ -911,7 +911,7 @@ msgid "The signature to disable the wire account does not 
validate."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1178
-msgid "The wire account to be disabled is unknown to the exchange."
+msgid "The wire account to be disabled is unknown to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1184
@@ -957,7 +957,7 @@ msgstr ""
 #: src/util/taler_error_codes.c:1244
 msgid ""
 "There AML decision would impose an AML check of a type that is not provided "
-"by any KYC provider known to the exchange."
+"by any KYC provider known to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1250
@@ -967,7 +967,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1256
 msgid ""
-"A more recent decision about the AML officer status is known to the exchange."
+"A more recent decision about the AML officer status is known to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1262
@@ -999,7 +999,7 @@ msgid "The signature over the encrypted contract is 
invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1304 src/util/taler_error_codes.c:1346
-msgid "The signature from the exchange over the confirmation is invalid."
+msgid "The signature from the donau over the confirmation is invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1310
@@ -1030,7 +1030,7 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:1352
-msgid "The exchange of the target account is not a partner of this exchange."
+msgid "The donau of the target account is not a partner of this donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1358
@@ -1038,7 +1038,7 @@ msgid "The signature affirming the new partner is 
invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1364
-msgid "Conflicting data for the partner already exists with the exchange."
+msgid "Conflicting data for the partner already exists with the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1370
@@ -1046,11 +1046,11 @@ msgid "The auditor signature over the denomination meta 
data is invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1376
-msgid "The auditor that was specified is unknown to this exchange."
+msgid "The auditor that was specified is unknown to this donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1382
-msgid "The auditor that was specified is no longer used by this exchange."
+msgid "The auditor that was specified is no longer used by this donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1388
@@ -1059,7 +1059,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1394
 msgid ""
-"The exchange received an unexpected malformed response from its KYC backend."
+"The donau received an unexpected malformed response from its KYC backend."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1400
@@ -1071,7 +1071,7 @@ msgid "The backend signaled an authorization failure."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1412
-msgid "The exchange is unaware of having made an the authorization request."
+msgid "The donau is unaware of having made an the authorization request."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1418
@@ -1079,12 +1079,12 @@ msgid "The payto-URI hash did not match. Hence the 
request was denied."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1424
-msgid "The request used a logic specifier that is not known to the exchange."
+msgid "The request used a logic specifier that is not known to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1430
 msgid ""
-"The request requires a logic which is no longer configured at the exchange."
+"The request requires a logic which is no longer configured at the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1436
@@ -1093,14 +1093,14 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1442
 msgid ""
-"The exchange could not process the request with its KYC provider because the "
+"The donau could not process the request with its KYC provider because the "
 "provider refused access to the service. This indicates some configuration "
-"issue at the Taler exchange operator."
+"issue at the Taler donau operator."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1448
 msgid ""
-"There was a timeout in the interaction between the exchange and the KYC "
+"There was a timeout in the interaction between the donau and the KYC "
 "provider. The most likely cause is some networking problem. Trying again "
 "later might succeed."
 msgstr ""
@@ -1108,12 +1108,12 @@ msgstr ""
 #: src/util/taler_error_codes.c:1454
 msgid ""
 "The KYC provider responded with a status that was completely unexpected by "
-"the KYC logic of the exchange."
+"the KYC logic of the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1460
 msgid ""
-"The rate limit of the exchange at the KYC provider has been exceeded. Trying "
+"The rate limit of the donau at the KYC provider has been exceeded. Trying "
 "much later might work."
 msgstr ""
 
@@ -1125,11 +1125,11 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1472
 msgid ""
-"The exchange does not know a contract under the given contract public key."
+"The donau does not know a contract under the given contract public key."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1478
-msgid "The URL does not encode a valid exchange public key in its path."
+msgid "The URL does not encode a valid donau public key in its path."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1484
@@ -1150,7 +1150,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1514
 msgid ""
-"The backend could not find the merchant instance specified in the request."
+"The backend could not find the charity instance specified in the request."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1520
@@ -1161,7 +1161,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1526
 msgid ""
-"The merchant was unable to obtain a valid answer to /wire from the exchange."
+"The charity was unable to obtain a valid answer to /wire from the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1532
@@ -1179,7 +1179,7 @@ msgid "The tip ID is unknown.  This could happen if the 
tip has expired."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1550
-msgid "The contract obtained from the merchant backend was malformed."
+msgid "The contract obtained from the charity backend was malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1556
@@ -1188,32 +1188,32 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1562
 msgid ""
-"The exchange failed to provide a valid response to the merchant's /keys "
+"The donau failed to provide a valid response to the charity's /keys "
 "request."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1568
-msgid "The exchange failed to respond to the merchant on time."
+msgid "The donau failed to respond to the charity on time."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1574
-msgid "The merchant failed to talk to the exchange."
+msgid "The charity failed to talk to the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1580
-msgid "The exchange returned a maformed response."
+msgid "The donau returned a maformed response."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1586
-msgid "The exchange returned an unexpected response status."
+msgid "The donau returned an unexpected response status."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1592
-msgid "The merchant refused the request due to lack of authorization."
+msgid "The charity refused the request due to lack of authorization."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1598
-msgid "The merchant instance specified in the request was deleted."
+msgid "The charity instance specified in the request was deleted."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1604
@@ -1236,19 +1236,19 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1628
 msgid ""
-"The exchange failed to provide a valid answer to the tracking request, thus "
+"The donau failed to provide a valid answer to the tracking request, thus "
 "those details are not in the response."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1634
 msgid ""
-"The merchant backend failed to construct the request for tracking to the "
-"exchange, thus tracking details are not in the response."
+"The charity backend failed to construct the request for tracking to the "
+"donau, thus tracking details are not in the response."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1640
 msgid ""
-"The merchant backend failed trying to contact the exchange for tracking "
+"The charity backend failed trying to contact the donau for tracking "
 "details, thus those details are not in the response."
 msgstr ""
 
@@ -1265,20 +1265,20 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1658
 msgid ""
-"The exchange responded saying that funds were insufficient (for example, due "
+"The donau responded saying that funds were insufficient (for example, due "
 "to double-spending)."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1664
 msgid ""
 "The denomination key used for payment is not listed among the denomination "
-"keys of the exchange."
+"keys of the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1670
 msgid ""
 "The denomination key used for payment is not audited by an auditor approved "
-"by the merchant."
+"by the charity."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1676
@@ -1310,8 +1310,8 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1706
 msgid ""
-"When we tried to find information about the exchange to issue the deposit, "
-"we failed.  This usually only happens if the merchant backend is somehow "
+"When we tried to find information about the donau to issue the deposit, "
+"we failed.  This usually only happens if the charity backend is somehow "
 "unable to get its own HTTP client logic to work."
 msgstr ""
 
@@ -1329,13 +1329,13 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1730
 msgid ""
-"The \"merchant\" field is missing in the proposal data. This is an internal "
-"error as the proposal is from the merchant's own database at this point."
+"The \"charity\" field is missing in the proposal data. This is an internal "
+"error as the proposal is from the charity's own database at this point."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1736
 msgid ""
-"Failed to locate merchant's account information matching the wire hash given "
+"Failed to locate charity's account information matching the wire hash given "
 "in the proposal."
 msgstr ""
 
@@ -1345,7 +1345,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1748
 msgid ""
-"The exchange of the deposited coin charges a wire fee that could not be "
+"The donau of the deposited coin charges a wire fee that could not be "
 "added to the total (total amount too high)."
 msgstr ""
 
@@ -1367,7 +1367,7 @@ msgid "Legacy stuff. Remove me with protocol v1."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1772
-msgid "The payment failed at the exchange."
+msgid "The payment failed at the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1778
@@ -1402,19 +1402,19 @@ msgid "The contract hash does not match the given order 
ID."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1808
-msgid "The signature of the merchant is not valid for the given contract hash."
+msgid "The signature of the charity is not valid for the given contract hash."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1814
-msgid "The merchant failed to send the exchange the refund request."
+msgid "The charity failed to send the donau the refund request."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1820
-msgid "The merchant failed to find the exchange to process the lookup."
+msgid "The charity failed to find the donau to process the lookup."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1826
-msgid "The merchant could not find the contract."
+msgid "The charity could not find the contract."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1832
@@ -1446,15 +1446,15 @@ msgid "The backend failed to sign the refund request."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1874
-msgid "The client failed to unblind the signature returned by the merchant."
+msgid "The client failed to unblind the signature returned by the charity."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1880
-msgid "The exchange returned a failure code for the withdraw operation."
+msgid "The donau returned a failure code for the withdraw operation."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1886
-msgid "The merchant failed to add up the amounts to compute the pick up value."
+msgid "The charity failed to add up the amounts to compute the pick up value."
 msgstr ""
 
 #: src/util/taler_error_codes.c:1892
@@ -1468,7 +1468,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:1904
 msgid ""
-"The merchant did not find the specified denomination key in the exchange's "
+"The charity did not find the specified denomination key in the donau's "
 "key set."
 msgstr ""
 
@@ -1557,7 +1557,7 @@ msgid ""
 msgstr ""
 
 #: src/util/taler_error_codes.c:2006
-msgid "The exchange says it does not know this transfer."
+msgid "The donau says it does not know this transfer."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2012
@@ -1567,18 +1567,18 @@ msgstr ""
 #: src/util/taler_error_codes.c:2018
 msgid ""
 "The amount transferred differs between what was submitted and what the "
-"exchange claimed."
+"donau claimed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2024
 msgid ""
-"The exchange gave conflicting information about a coin which has been wire "
+"The donau gave conflicting information about a coin which has been wire "
 "transferred."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2030
 msgid ""
-"The exchange charged a different wire fee than what it originally "
+"The donau charged a different wire fee than what it originally "
 "advertised, and it is higher."
 msgstr ""
 
@@ -1602,31 +1602,31 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2054
 msgid ""
-"The merchant backend cannot create an instance under the given identifier as "
+"The charity backend cannot create an instance under the given identifier as "
 "one already exists. Use PATCH to modify the existing entry."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2060
 msgid ""
-"The merchant backend cannot create an instance because the authentication "
+"The charity backend cannot create an instance because the authentication "
 "configuration field is malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2066
 msgid ""
-"The merchant backend cannot update an instance's authentication settings "
+"The charity backend cannot update an instance's authentication settings "
 "because the provided authentication settings are malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2072
 msgid ""
-"The merchant backend cannot create an instance under the given identifier, "
+"The charity backend cannot create an instance under the given identifier, "
 "the previous one was deleted but must be purged first."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2078
 msgid ""
-"The merchant backend cannot update an instance under the given identifier, "
+"The charity backend cannot update an instance under the given identifier, "
 "the previous one was deleted but must be purged first."
 msgstr ""
 
@@ -1668,7 +1668,7 @@ msgid "The deletion request is for a product that is 
locked."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2126
-msgid "The requested wire method is not supported by the exchange."
+msgid "The requested wire method is not supported by the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2132
@@ -1687,7 +1687,7 @@ msgstr ""
 msgid ""
 "The backend knows the instance that was supposed to support the tip, and it "
 "was configured for tipping. However, the funds remaining are insufficient to "
-"cover the tip, and the merchant should top up the reserve."
+"cover the tip, and the charity should top up the reserve."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2156
@@ -1696,7 +1696,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2162
 msgid ""
-"The merchant backend encountered a failure in computing the deposit total."
+"The charity backend encountered a failure in computing the deposit total."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2168
@@ -1736,12 +1736,12 @@ msgid "The webhook serial elready exists."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2210
-msgid "The signature from the exchange on the deposit confirmation is invalid."
+msgid "The signature from the donau on the deposit confirmation is invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2216
 msgid ""
-"The exchange key used for the signature on the deposit confirmation was "
+"The donau key used for the signature on the deposit confirmation was "
 "revoked."
 msgstr ""
 
@@ -1919,8 +1919,8 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2426
 msgid ""
-"The wallet does not implement a version of the exchange protocol that is "
-"compatible with the protocol version of the exchange."
+"The wallet does not implement a version of the donau protocol that is "
+"compatible with the protocol version of the donau."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2432
@@ -1952,8 +1952,8 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2462
 msgid ""
-"The denominations offered by the exchange are insufficient.  Likely the "
-"exchange is badly configured or not maintained."
+"The denominations offered by the donau are insufficient.  Likely the "
+"donau is badly configured or not maintained."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2468
@@ -1966,13 +1966,13 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2480
 msgid ""
-"The signature on a coin by the exchange's denomination key is invalid after "
+"The signature on a coin by the donau's denomination key is invalid after "
 "unblinding it."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2486
 msgid ""
-"The exchange does not know about the reserve (yet), and thus withdrawal "
+"The donau does not know about the reserve (yet), and thus withdrawal "
 "can't progress."
 msgstr ""
 
@@ -1997,13 +1997,13 @@ msgstr ""
 #: src/util/taler_error_codes.c:2516
 msgid ""
 "A group of withdrawal operations (typically for the same reserve at the same "
-"exchange) has errors and will be tried again later."
+"donau) has errors and will be tried again later."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2522
 msgid ""
-"The signature on a coin by the exchange's denomination key (obtained through "
-"the merchant via tipping) is invalid after unblinding it."
+"The signature on a coin by the donau's denomination key (obtained through "
+"the charity via tipping) is invalid after unblinding it."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2528
@@ -2014,17 +2014,17 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2534
 msgid ""
-"The wallet processed a taler://pay URI, but the merchant base URL in the "
-"downloaded contract terms does not match the merchant base URL derived from "
+"The wallet processed a taler://pay URI, but the charity base URL in the "
+"downloaded contract terms does not match the charity base URL derived from "
 "the URI."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2540
-msgid "The merchant's signature on the contract terms is invalid."
+msgid "The charity's signature on the contract terms is invalid."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2546
-msgid "The contract terms given by the merchant are malformed."
+msgid "The contract terms given by the charity are malformed."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2552
@@ -2033,7 +2033,7 @@ msgstr ""
 
 #: src/util/taler_error_codes.c:2558
 msgid ""
-"A payment was attempted, but the merchant had an internal server error (5xx)."
+"A payment was attempted, but the charity had an internal server error (5xx)."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2564
@@ -2132,7 +2132,7 @@ msgid "The backend forgot the order we asked the client 
to pay for"
 msgstr ""
 
 #: src/util/taler_error_codes.c:2708
-msgid "The backend itself reported a bad exchange interaction."
+msgid "The backend itself reported a bad donau interaction."
 msgstr ""
 
 #: src/util/taler_error_codes.c:2714
diff --git a/src/Makefile.am b/src/Makefile.am
index e10ecf8..107b378 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -25,13 +25,13 @@ SUBDIRS = \
   mhd \
   templating \
   bank-lib \
-  exchangedb \
+  donaudb \
   kyclogic \
-  exchange \
+  donau \
   auditordb \
   auditor \
   lib \
-  exchange-tools \
+  donau-tools \
   extensions/age_restriction \
   testing \
   benchmark
diff --git a/src/exchange-tools/.gitignore b/src/donau-tools/.gitignore
similarity index 64%
rename from src/exchange-tools/.gitignore
rename to src/donau-tools/.gitignore
index 69279d7..630c705 100644
--- a/src/exchange-tools/.gitignore
+++ b/src/donau-tools/.gitignore
@@ -1,3 +1,3 @@
-taler-exchange-offline
+taler-donau-offline
 taler-auditor-offline
 taler-crypto-worker
diff --git a/src/exchange-tools/Makefile.am b/src/donau-tools/Makefile.am
similarity index 73%
rename from src/exchange-tools/Makefile.am
rename to src/donau-tools/Makefile.am
index 9555445..9545d7b 100644
--- a/src/exchange-tools/Makefile.am
+++ b/src/donau-tools/Makefile.am
@@ -5,7 +5,7 @@ pkgcfgdir = $(prefix)/share/taler/config.d/
 
 pkgcfg_DATA = \
   coins.conf \
-  exchange-offline.conf
+  donau-offline.conf
 
 if USE_COVERAGE
   AM_CFLAGS = --coverage -O0
@@ -14,14 +14,14 @@ endif
 
 bin_PROGRAMS = \
   taler-auditor-offline \
-  taler-exchange-offline \
-  taler-exchange-dbinit
+  taler-donau-offline \
+  taler-donau-dbinit
 
-taler_exchange_offline_SOURCES = \
-  taler-exchange-offline.c
-taler_exchange_offline_LDADD = \
+taler_donau_offline_SOURCES = \
+  taler-donau-offline.c
+taler_donau_offline_LDADD = \
   $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/extensions/libtalerextensions.la \
@@ -35,7 +35,7 @@ taler_auditor_offline_SOURCES = \
   taler-auditor-offline.c
 taler_auditor_offline_LDADD = \
   $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/extensions/libtalerextensions.la \
@@ -45,16 +45,16 @@ taler_auditor_offline_LDADD = \
   -lgnunetutil \
   $(XLIB)
 
-taler_exchange_dbinit_SOURCES = \
-  taler-exchange-dbinit.c
-taler_exchange_dbinit_LDADD = \
+taler_donau_dbinit_SOURCES = \
+  taler-donau-dbinit.c
+taler_donau_dbinit_LDADD = \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -lgnunetutil \
   $(XLIB)
-taler_exchange_dbinit_CPPFLAGS = \
+taler_donau_dbinit_CPPFLAGS = \
   -I$(top_srcdir)/src/include \
   -I$(top_srcdir)/src/pq/ \
   $(POSTGRESQL_CPPFLAGS)
diff --git a/src/exchange-tools/coins.conf b/src/donau-tools/coins.conf
similarity index 100%
rename from src/exchange-tools/coins.conf
rename to src/donau-tools/coins.conf
diff --git a/src/exchange-tools/exchange-offline.conf 
b/src/donau-tools/donau-offline.conf
similarity index 50%
rename from src/exchange-tools/exchange-offline.conf
rename to src/donau-tools/donau-offline.conf
index 020eb34..bdc68e1 100644
--- a/src/exchange-tools/exchange-offline.conf
+++ b/src/donau-tools/donau-offline.conf
@@ -1,12 +1,12 @@
 # This file is in the public domain.
 #
-[exchange-offline]
+[donau-offline]
 
-# Where do we store the offline master private key of the exchange?
-MASTER_PRIV_FILE = ${TALER_DATA_HOME}exchange-offline/master.priv
+# Where do we store the offline master private key of the donau?
+MASTER_PRIV_FILE = ${TALER_DATA_HOME}donau-offline/master.priv
 
 # Where do we store the TOFU key material?
-SECM_TOFU_FILE = ${TALER_DATA_HOME}exchange-offline/secm_tofus.pub
+SECM_TOFU_FILE = ${TALER_DATA_HOME}donau-offline/secm_tofus.pub
 
 # Base32-encoded public key of the RSA helper.
 # SECM_DENOM_PUBKEY =
diff --git a/src/exchange-tools/taler-exchange-dbinit.c 
b/src/donau-tools/taler-donau-dbinit.c
similarity index 89%
rename from src/exchange-tools/taler-exchange-dbinit.c
rename to src/donau-tools/taler-donau-dbinit.c
index d2cd22c..250cc7c 100644
--- a/src/exchange-tools/taler-exchange-dbinit.c
+++ b/src/donau-tools/taler-donau-dbinit.c
@@ -7,21 +7,21 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchange-tools/taler-exchange-dbinit.c
- * @brief Create tables for the exchange database.
+ * @file donau-tools/taler-donau-dbinit.c
+ * @brief Create tables for the donau database.
  * @author Florian Dold
  * @author Christian Grothoff
  */
 #include "platform.h"
 #include <gnunet/gnunet_util_lib.h>
-#include "taler_exchangedb_lib.h"
+#include "taler_donaudb_lib.h"
 
 
 /**
@@ -68,14 +68,14 @@ run (void *cls,
      const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
-  struct TALER_EXCHANGEDB_Plugin *plugin;
+  struct TALER_DONAUDB_Plugin *plugin;
 
   (void) cls;
   (void) args;
   (void) cfgfile;
 
   if (NULL ==
-      (plugin = TALER_EXCHANGEDB_plugin_load (cfg)))
+      (plugin = TALER_DONAUDB_plugin_load (cfg)))
   {
     fprintf (stderr,
              "Failed to initialize database plugin.\n");
@@ -98,7 +98,7 @@ run (void *cls,
   {
     fprintf (stderr,
              "Failed to initialize database.\n");
-    TALER_EXCHANGEDB_plugin_unload (plugin);
+    TALER_DONAUDB_plugin_unload (plugin);
     plugin = NULL;
     global_ret = EXIT_NOPERMISSION;
     return;
@@ -110,7 +110,7 @@ run (void *cls,
     {
       fprintf (stderr,
                "Failed to prepare database.\n");
-      TALER_EXCHANGEDB_plugin_unload (plugin);
+      TALER_DONAUDB_plugin_unload (plugin);
       plugin = NULL;
       global_ret = EXIT_NOPERMISSION;
       return;
@@ -133,14 +133,14 @@ run (void *cls,
       }
     }
   }
-  TALER_EXCHANGEDB_plugin_unload (plugin);
+  TALER_DONAUDB_plugin_unload (plugin);
   plugin = NULL;
 }
 
 
 /**
  * The main function of the database initialization tool.
- * Used to initialize the Taler Exchange's database.
+ * Used to initialize the Taler Donau's database.
  *
  * @param argc number of arguments from the command line
  * @param argv command line arguments
@@ -186,8 +186,8 @@ main (int argc,
   TALER_OS_init ();
   ret = GNUNET_PROGRAM_run (
     argc, argv,
-    "taler-exchange-dbinit",
-    gettext_noop ("Initialize Taler exchange database"),
+    "taler-donau-dbinit",
+    gettext_noop ("Initialize Taler donau database"),
     options,
     &run, NULL);
   GNUNET_free_nz ((void *) argv);
@@ -199,4 +199,4 @@ main (int argc,
 }
 
 
-/* end of taler-exchange-dbinit.c */
+/* end of taler-donau-dbinit.c */
diff --git a/src/exchange-tools/taler-exchange-offline.c 
b/src/donau-tools/taler-donau-offline.c
similarity index 91%
rename from src/exchange-tools/taler-exchange-offline.c
rename to src/donau-tools/taler-donau-offline.c
index fed2943..9ae4497 100644
--- a/src/exchange-tools/taler-exchange-offline.c
+++ b/src/donau-tools/taler-donau-offline.c
@@ -7,22 +7,22 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file taler-exchange-offline.c
- * @brief Support for operations involving the exchange's offline master key.
+ * @file taler-donau-offline.c
+ * @brief Support for operations involving the donau's offline master key.
  * @author Christian Grothoff
  */
 #include <platform.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_util_lib.h>
 #include "taler_json_lib.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_extensions.h"
 #include <regex.h>
 
@@ -32,97 +32,97 @@
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_INPUT_KEYS "exchange-input-keys-0"
+#define OP_INPUT_KEYS "donau-input-keys-0"
 
 /**
  * Name of the operation to 'disable auditor'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_DISABLE_AUDITOR "exchange-disable-auditor-0"
+#define OP_DISABLE_AUDITOR "donau-disable-auditor-0"
 
 /**
  * Name of the operation to 'enable auditor'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_ENABLE_AUDITOR "exchange-enable-auditor-0"
+#define OP_ENABLE_AUDITOR "donau-enable-auditor-0"
 
 /**
  * Name of the operation to 'enable wire'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_ENABLE_WIRE "exchange-enable-wire-0"
+#define OP_ENABLE_WIRE "donau-enable-wire-0"
 
 /**
  * Name of the operation to 'disable wire'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_DISABLE_WIRE "exchange-disable-wire-0"
+#define OP_DISABLE_WIRE "donau-disable-wire-0"
 
 /**
  * Name of the operation to set a 'wire-fee'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_SET_WIRE_FEE "exchange-set-wire-fee-0"
+#define OP_SET_WIRE_FEE "donau-set-wire-fee-0"
 
 /**
  * Name of the operation to set a 'global-fee'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_SET_GLOBAL_FEE "exchange-set-global-fee-0"
+#define OP_SET_GLOBAL_FEE "donau-set-global-fee-0"
 
 /**
  * Name of the operation to 'upload' key signatures
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_UPLOAD_SIGS "exchange-upload-sigs-0"
+#define OP_UPLOAD_SIGS "donau-upload-sigs-0"
 
 /**
  * Name of the operation to 'revoke-denomination' key
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_REVOKE_DENOMINATION "exchange-revoke-denomination-0"
+#define OP_REVOKE_DENOMINATION "donau-revoke-denomination-0"
 
 /**
  * Name of the operation to 'revoke-signkey'
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_REVOKE_SIGNKEY "exchange-revoke-signkey-0"
+#define OP_REVOKE_SIGNKEY "donau-revoke-signkey-0"
 
 /**
  * Show the offline signing key.
  * The last component --by convention-- identifies the protocol version
  * and should be incremented whenever the JSON format of the 'argument' 
changes.
  */
-#define OP_SETUP "exchange-setup-0"
+#define OP_SETUP "donau-setup-0"
 
 /**
  * sign the enabled and configured extensions.
  */
-#define OP_EXTENSIONS "exchange-extensions-0"
+#define OP_EXTENSIONS "donau-extensions-0"
 
 /**
  * Generate message to drain profits.
  */
-#define OP_DRAIN_PROFITS "exchange-drain-profits-0"
+#define OP_DRAIN_PROFITS "donau-drain-profits-0"
 
 /**
  * Setup AML staff.
  */
-#define OP_UPDATE_AML_STAFF "exchange-add-aml-staff-0"
+#define OP_UPDATE_AML_STAFF "donau-add-aml-staff-0"
 
 /**
- * Setup partner exchange for wad transfers.
+ * Setup partner donau for wad transfers.
  */
-#define OP_ADD_PARTNER "exchange-add-partner-0"
+#define OP_ADD_PARTNER "donau-add-partner-0"
 
 /**
  * Our private key, initialized in #load_offline_key().
@@ -145,7 +145,7 @@ static struct GNUNET_CURL_Context *ctx;
 static struct GNUNET_CURL_RescheduleContext *rc;
 
 /**
- * Handle to the exchange's configuration
+ * Handle to the donau's configuration
  */
 static const struct GNUNET_CONFIGURATION_Handle *kcfg;
 
@@ -176,10 +176,10 @@ static json_t *out;
 static char *currency;
 
 /**
- * URL of the exchange we are interacting with
+ * URL of the donau we are interacting with
  * as per our configuration.
  */
-static char *CFG_exchange_url;
+static char *CFG_donau_url;
 
 /**
  * A subcommand supported by this program.
@@ -224,7 +224,7 @@ struct DenomRevocationRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementRevokeDenominationKeyHandle *h;
+  struct TALER_DONAU_ManagementRevokeDenominationKeyHandle *h;
 
   /**
    * Array index of the associated command.
@@ -252,7 +252,7 @@ struct SignkeyRevocationRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementRevokeSigningKeyHandle *h;
+  struct TALER_DONAU_ManagementRevokeSigningKeyHandle *h;
 
   /**
    * Array index of the associated command.
@@ -280,7 +280,7 @@ struct AuditorAddRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementAuditorEnableHandle *h;
+  struct TALER_DONAU_ManagementAuditorEnableHandle *h;
 
   /**
    * Array index of the associated command.
@@ -308,7 +308,7 @@ struct AuditorDelRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementAuditorDisableHandle *h;
+  struct TALER_DONAU_ManagementAuditorDisableHandle *h;
 
   /**
    * Array index of the associated command.
@@ -336,7 +336,7 @@ struct WireAddRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementWireEnableHandle *h;
+  struct TALER_DONAU_ManagementWireEnableHandle *h;
 
   /**
    * Array index of the associated command.
@@ -364,7 +364,7 @@ struct WireDelRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementWireDisableHandle *h;
+  struct TALER_DONAU_ManagementWireDisableHandle *h;
 
   /**
    * Array index of the associated command.
@@ -392,7 +392,7 @@ struct WireFeeRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementSetWireFeeHandle *h;
+  struct TALER_DONAU_ManagementSetWireFeeHandle *h;
 
   /**
    * Array index of the associated command.
@@ -420,7 +420,7 @@ struct DrainProfitsRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementDrainProfitsHandle *h;
+  struct TALER_DONAU_ManagementDrainProfitsHandle *h;
 
   /**
    * Array index of the associated command.
@@ -448,7 +448,7 @@ struct GlobalFeeRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementSetGlobalFeeHandle *h;
+  struct TALER_DONAU_ManagementSetGlobalFeeHandle *h;
 
   /**
    * Array index of the associated command.
@@ -475,7 +475,7 @@ struct UploadKeysRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementPostKeysHandle *h;
+  struct TALER_DONAU_ManagementPostKeysHandle *h;
 
   /**
    * Operation index.
@@ -501,7 +501,7 @@ struct UploadExtensionsRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementPostExtensionsHandle *h;
+  struct TALER_DONAU_ManagementPostExtensionsHandle *h;
 
   /**
    * Operation index.
@@ -529,7 +529,7 @@ struct AmlStaffRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementUpdateAmlOfficer *h;
+  struct TALER_DONAU_ManagementUpdateAmlOfficer *h;
 
   /**
    * Array index of the associated command.
@@ -557,7 +557,7 @@ struct PartnerAddRequest
   /**
    * Operation handle.
    */
-  struct TALER_EXCHANGE_ManagementAddPartner *h;
+  struct TALER_DONAU_ManagementAddPartner *h;
 
   /**
    * Array index of the associated command.
@@ -574,7 +574,7 @@ static struct GNUNET_SCHEDULER_Task *nxt;
 /**
  * Handle for #do_download.
  */
-static struct TALER_EXCHANGE_ManagementGetKeysHandle *mgkh;
+static struct TALER_DONAU_ManagementGetKeysHandle *mgkh;
 
 
 /**
@@ -726,7 +726,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete AML staff update #%u\n",
                   (unsigned int) asr->idx);
-      TALER_EXCHANGE_management_update_aml_officer_cancel (asr->h);
+      TALER_DONAU_management_update_aml_officer_cancel (asr->h);
       GNUNET_CONTAINER_DLL_remove (asr_head,
                                    asr_tail,
                                    asr);
@@ -741,7 +741,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete partner add request #%u\n",
                   (unsigned int) par->idx);
-      TALER_EXCHANGE_management_add_partner_cancel (par->h);
+      TALER_DONAU_management_add_partner_cancel (par->h);
       GNUNET_CONTAINER_DLL_remove (par_head,
                                    par_tail,
                                    par);
@@ -756,7 +756,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete denomination revocation #%u\n",
                   (unsigned int) drr->idx);
-      TALER_EXCHANGE_management_revoke_denomination_key_cancel (drr->h);
+      TALER_DONAU_management_revoke_denomination_key_cancel (drr->h);
       GNUNET_CONTAINER_DLL_remove (drr_head,
                                    drr_tail,
                                    drr);
@@ -771,7 +771,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete signkey revocation #%u\n",
                   (unsigned int) srr->idx);
-      TALER_EXCHANGE_management_revoke_signing_key_cancel (srr->h);
+      TALER_DONAU_management_revoke_signing_key_cancel (srr->h);
       GNUNET_CONTAINER_DLL_remove (srr_head,
                                    srr_tail,
                                    srr);
@@ -787,7 +787,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete auditor add #%u\n",
                   (unsigned int) aar->idx);
-      TALER_EXCHANGE_management_enable_auditor_cancel (aar->h);
+      TALER_DONAU_management_enable_auditor_cancel (aar->h);
       GNUNET_CONTAINER_DLL_remove (aar_head,
                                    aar_tail,
                                    aar);
@@ -802,7 +802,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete auditor del #%u\n",
                   (unsigned int) adr->idx);
-      TALER_EXCHANGE_management_disable_auditor_cancel (adr->h);
+      TALER_DONAU_management_disable_auditor_cancel (adr->h);
       GNUNET_CONTAINER_DLL_remove (adr_head,
                                    adr_tail,
                                    adr);
@@ -817,7 +817,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete wire add #%u\n",
                   (unsigned int) war->idx);
-      TALER_EXCHANGE_management_enable_wire_cancel (war->h);
+      TALER_DONAU_management_enable_wire_cancel (war->h);
       GNUNET_CONTAINER_DLL_remove (war_head,
                                    war_tail,
                                    war);
@@ -832,7 +832,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete wire del #%u\n",
                   (unsigned int) wdr->idx);
-      TALER_EXCHANGE_management_disable_wire_cancel (wdr->h);
+      TALER_DONAU_management_disable_wire_cancel (wdr->h);
       GNUNET_CONTAINER_DLL_remove (wdr_head,
                                    wdr_tail,
                                    wdr);
@@ -847,7 +847,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete wire fee #%u\n",
                   (unsigned int) wfr->idx);
-      TALER_EXCHANGE_management_set_wire_fees_cancel (wfr->h);
+      TALER_DONAU_management_set_wire_fees_cancel (wfr->h);
       GNUNET_CONTAINER_DLL_remove (wfr_head,
                                    wfr_tail,
                                    wfr);
@@ -862,7 +862,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete global fee #%u\n",
                   (unsigned int) gfr->idx);
-      TALER_EXCHANGE_management_set_global_fees_cancel (gfr->h);
+      TALER_DONAU_management_set_global_fees_cancel (gfr->h);
       GNUNET_CONTAINER_DLL_remove (gfr_head,
                                    gfr_tail,
                                    gfr);
@@ -877,7 +877,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete key signature upload #%u\n",
                   (unsigned int) ukr->idx);
-      TALER_EXCHANGE_post_management_keys_cancel (ukr->h);
+      TALER_DONAU_post_management_keys_cancel (ukr->h);
       GNUNET_CONTAINER_DLL_remove (ukr_head,
                                    ukr_tail,
                                    ukr);
@@ -892,7 +892,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete extensions signature upload #%u\n",
                   (unsigned int) uer->idx);
-      TALER_EXCHANGE_management_post_extensions_cancel (uer->h);
+      TALER_DONAU_management_post_extensions_cancel (uer->h);
       GNUNET_CONTAINER_DLL_remove (uer_head,
                                    uer_tail,
                                    uer);
@@ -908,7 +908,7 @@ do_shutdown (void *cls)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Aborting incomplete drain profits request #%u\n",
                   (unsigned int) dpr->idx);
-      TALER_EXCHANGE_management_drain_profits_cancel (dpr->h);
+      TALER_DONAU_management_drain_profits_cancel (dpr->h);
       GNUNET_CONTAINER_DLL_remove (dpr_head,
                                    dpr_tail,
                                    dpr);
@@ -938,7 +938,7 @@ do_shutdown (void *cls)
   }
   if (NULL != mgkh)
   {
-    TALER_EXCHANGE_get_management_keys_cancel (mgkh);
+    TALER_DONAU_get_management_keys_cancel (mgkh);
     mgkh = NULL;
   }
   if (NULL != ctx)
@@ -1050,11 +1050,11 @@ struct UploadHandler
   /**
    * Function implementing an upload.
    *
-   * @param exchange_url URL of the exchange
+   * @param donau_url URL of the donau
    * @param idx index of the operation we are performing
    * @param value arguments to drive the upload.
    */
-  void (*cb)(const char *exchange_url,
+  void (*cb)(const char *donau_url,
              size_t idx,
              const json_t *value);
 
@@ -1078,12 +1078,12 @@ load_offline_key (int do_create)
     return GNUNET_OK;
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_filename (kcfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "MASTER_PRIV_FILE",
                                                &fn))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange-offline",
+                               "donau-offline",
                                "MASTER_PRIV_FILE");
     test_shutdown ();
     return GNUNET_SYSERR;
@@ -1091,7 +1091,7 @@ load_offline_key (int do_create)
   if (GNUNET_YES !=
       GNUNET_DISK_file_test (fn))
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                "Exchange master private key `%s' does not exist yet, creating 
it!\n",
+                "Donau master private key `%s' does not exist yet, creating 
it!\n",
                 fn);
   ret = GNUNET_CRYPTO_eddsa_key_from_file (fn,
                                            do_create,
@@ -1126,10 +1126,10 @@ load_offline_key (int do_create)
 static void
 denom_revocation_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementRevokeDenominationResponse *dr)
+  const struct TALER_DONAU_ManagementRevokeDenominationResponse *dr)
 {
   struct DenomRevocationRequest *drr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &dr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &dr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1152,12 +1152,12 @@ denom_revocation_cb (
 /**
  * Upload denomination revocation request data.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_denom_revocation (const char *exchange_url,
+upload_denom_revocation (const char *donau_url,
                          size_t idx,
                          const json_t *value)
 {
@@ -1195,8 +1195,8 @@ upload_denom_revocation (const char *exchange_url,
   drr = GNUNET_new (struct DenomRevocationRequest);
   drr->idx = idx;
   drr->h =
-    TALER_EXCHANGE_management_revoke_denomination_key (ctx,
-                                                       exchange_url,
+    TALER_DONAU_management_revoke_denomination_key (ctx,
+                                                       donau_url,
                                                        &h_denom_pub,
                                                        &master_sig,
                                                        &denom_revocation_cb,
@@ -1216,10 +1216,10 @@ upload_denom_revocation (const char *exchange_url,
 static void
 signkey_revocation_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementRevokeSigningKeyResponse *sr)
+  const struct TALER_DONAU_ManagementRevokeSigningKeyResponse *sr)
 {
   struct SignkeyRevocationRequest *srr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &sr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &sr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1242,23 +1242,23 @@ signkey_revocation_cb (
 /**
  * Upload signkey revocation request data.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_signkey_revocation (const char *exchange_url,
+upload_signkey_revocation (const char *donau_url,
                            size_t idx,
                            const json_t *value)
 {
   struct TALER_MasterSignatureP master_sig;
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
   struct SignkeyRevocationRequest *srr;
   const char *err_name;
   unsigned int err_line;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &donau_pub),
     GNUNET_JSON_spec_fixed_auto ("master_sig",
                                  &master_sig),
     GNUNET_JSON_spec_end ()
@@ -1285,9 +1285,9 @@ upload_signkey_revocation (const char *exchange_url,
   srr = GNUNET_new (struct SignkeyRevocationRequest);
   srr->idx = idx;
   srr->h =
-    TALER_EXCHANGE_management_revoke_signing_key (ctx,
-                                                  exchange_url,
-                                                  &exchange_pub,
+    TALER_DONAU_management_revoke_signing_key (ctx,
+                                                  donau_url,
+                                                  &donau_pub,
                                                   &master_sig,
                                                   &signkey_revocation_cb,
                                                   srr);
@@ -1306,10 +1306,10 @@ upload_signkey_revocation (const char *exchange_url,
 static void
 auditor_add_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementAuditorEnableResponse *mer)
+  const struct TALER_DONAU_ManagementAuditorEnableResponse *mer)
 {
   struct AuditorAddRequest *aar = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &mer->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &mer->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1332,12 +1332,12 @@ auditor_add_cb (
 /**
  * Upload auditor add data.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_auditor_add (const char *exchange_url,
+upload_auditor_add (const char *donau_url,
                     size_t idx,
                     const json_t *value)
 {
@@ -1384,8 +1384,8 @@ upload_auditor_add (const char *exchange_url,
   aar = GNUNET_new (struct AuditorAddRequest);
   aar->idx = idx;
   aar->h =
-    TALER_EXCHANGE_management_enable_auditor (ctx,
-                                              exchange_url,
+    TALER_DONAU_management_enable_auditor (ctx,
+                                              donau_url,
                                               &auditor_pub,
                                               auditor_url,
                                               auditor_name,
@@ -1408,10 +1408,10 @@ upload_auditor_add (const char *exchange_url,
 static void
 auditor_del_cb (void *cls,
                 const struct
-                TALER_EXCHANGE_ManagementAuditorDisableResponse *mdr)
+                TALER_DONAU_ManagementAuditorDisableResponse *mdr)
 {
   struct AuditorDelRequest *adr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &mdr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &mdr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1434,12 +1434,12 @@ auditor_del_cb (void *cls,
 /**
  * Upload auditor del data.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_auditor_del (const char *exchange_url,
+upload_auditor_del (const char *donau_url,
                     size_t idx,
                     const json_t *value)
 {
@@ -1480,8 +1480,8 @@ upload_auditor_del (const char *exchange_url,
   adr = GNUNET_new (struct AuditorDelRequest);
   adr->idx = idx;
   adr->h =
-    TALER_EXCHANGE_management_disable_auditor (ctx,
-                                               exchange_url,
+    TALER_DONAU_management_disable_auditor (ctx,
+                                               donau_url,
                                                &auditor_pub,
                                                end_time,
                                                &master_sig,
@@ -1501,10 +1501,10 @@ upload_auditor_del (const char *exchange_url,
  */
 static void
 wire_add_cb (void *cls,
-             const struct TALER_EXCHANGE_ManagementWireEnableResponse *wer)
+             const struct TALER_DONAU_ManagementWireEnableResponse *wer)
 {
   struct WireAddRequest *war = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &wer->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &wer->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1527,12 +1527,12 @@ wire_add_cb (void *cls,
 /**
  * Upload wire add data.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_wire_add (const char *exchange_url,
+upload_wire_add (const char *donau_url,
                  size_t idx,
                  const json_t *value)
 {
@@ -1616,8 +1616,8 @@ upload_wire_add (const char *exchange_url,
   war = GNUNET_new (struct WireAddRequest);
   war->idx = idx;
   war->h =
-    TALER_EXCHANGE_management_enable_wire (ctx,
-                                           exchange_url,
+    TALER_DONAU_management_enable_wire (ctx,
+                                           donau_url,
                                            payto_uri,
                                            conversion_url,
                                            debit_restrictions,
@@ -1641,10 +1641,10 @@ upload_wire_add (const char *exchange_url,
  */
 static void
 wire_del_cb (void *cls,
-             const struct TALER_EXCHANGE_ManagementWireDisableResponse *wdres)
+             const struct TALER_DONAU_ManagementWireDisableResponse *wdres)
 {
   struct WireDelRequest *wdr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &wdres->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &wdres->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1667,12 +1667,12 @@ wire_del_cb (void *cls,
 /**
  * Upload wire del data.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_wire_del (const char *exchange_url,
+upload_wire_del (const char *donau_url,
                  size_t idx,
                  const json_t *value)
 {
@@ -1713,8 +1713,8 @@ upload_wire_del (const char *exchange_url,
   wdr = GNUNET_new (struct WireDelRequest);
   wdr->idx = idx;
   wdr->h =
-    TALER_EXCHANGE_management_disable_wire (ctx,
-                                            exchange_url,
+    TALER_DONAU_management_disable_wire (ctx,
+                                            donau_url,
                                             payto_uri,
                                             end_time,
                                             &master_sig,
@@ -1735,10 +1735,10 @@ upload_wire_del (const char *exchange_url,
 static void
 wire_fee_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementSetWireFeeResponse *swr)
+  const struct TALER_DONAU_ManagementSetWireFeeResponse *swr)
 {
   struct WireFeeRequest *wfr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &swr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &swr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1761,12 +1761,12 @@ wire_fee_cb (
 /**
  * Upload wire fee.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_wire_fee (const char *exchange_url,
+upload_wire_fee (const char *donau_url,
                  size_t idx,
                  const json_t *value)
 {
@@ -1817,8 +1817,8 @@ upload_wire_fee (const char *exchange_url,
   wfr = GNUNET_new (struct WireFeeRequest);
   wfr->idx = idx;
   wfr->h =
-    TALER_EXCHANGE_management_set_wire_fees (ctx,
-                                             exchange_url,
+    TALER_DONAU_management_set_wire_fees (ctx,
+                                             donau_url,
                                              wire_method,
                                              start_time,
                                              end_time,
@@ -1841,10 +1841,10 @@ upload_wire_fee (const char *exchange_url,
 static void
 global_fee_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementSetGlobalFeeResponse *gr)
+  const struct TALER_DONAU_ManagementSetGlobalFeeResponse *gr)
 {
   struct GlobalFeeRequest *gfr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &gr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &gr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1867,12 +1867,12 @@ global_fee_cb (
 /**
  * Upload global fee.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for denomination revocation
  */
 static void
-upload_global_fee (const char *exchange_url,
+upload_global_fee (const char *donau_url,
                    size_t idx,
                    const json_t *value)
 {
@@ -1932,8 +1932,8 @@ upload_global_fee (const char *exchange_url,
   gfr = GNUNET_new (struct GlobalFeeRequest);
   gfr->idx = idx;
   gfr->h =
-    TALER_EXCHANGE_management_set_global_fees (ctx,
-                                               exchange_url,
+    TALER_DONAU_management_set_global_fees (ctx,
+                                               donau_url,
                                                start_time,
                                                end_time,
                                                &fees,
@@ -1958,10 +1958,10 @@ upload_global_fee (const char *exchange_url,
 static void
 drain_profits_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementDrainResponse *mdr)
+  const struct TALER_DONAU_ManagementDrainResponse *mdr)
 {
   struct DrainProfitsRequest *dpr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &mdr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &mdr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -1984,12 +1984,12 @@ drain_profits_cb (
 /**
  * Upload drain profit action.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for drain profits
  */
 static void
-upload_drain (const char *exchange_url,
+upload_drain (const char *donau_url,
               size_t idx,
               const json_t *value)
 {
@@ -2040,8 +2040,8 @@ upload_drain (const char *exchange_url,
   dpr = GNUNET_new (struct DrainProfitsRequest);
   dpr->idx = idx;
   dpr->h =
-    TALER_EXCHANGE_management_drain_profits (ctx,
-                                             exchange_url,
+    TALER_DONAU_management_drain_profits (ctx,
+                                             donau_url,
                                              &wtid,
                                              &amount,
                                              date,
@@ -2065,10 +2065,10 @@ upload_drain (const char *exchange_url,
 static void
 keys_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementPostKeysResponse *mr)
+  const struct TALER_DONAU_ManagementPostKeysResponse *mr)
 {
   struct UploadKeysRequest *ukr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &mr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &mr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -2091,16 +2091,16 @@ keys_cb (
 /**
  * Upload (denomination and signing) key master signatures.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for POSTing keys
  */
 static void
-upload_keys (const char *exchange_url,
+upload_keys (const char *donau_url,
              size_t idx,
              const json_t *value)
 {
-  struct TALER_EXCHANGE_ManagementPostKeysData pkd;
+  struct TALER_DONAU_ManagementPostKeysData pkd;
   struct UploadKeysRequest *ukr;
   const char *err_name;
   unsigned int err_line;
@@ -2140,18 +2140,18 @@ upload_keys (const char *exchange_url,
               pkd.num_sign_sigs);
   pkd.sign_sigs = GNUNET_new_array (
     pkd.num_sign_sigs,
-    struct TALER_EXCHANGE_SigningKeySignature);
+    struct TALER_DONAU_SigningKeySignature);
   pkd.denom_sigs = GNUNET_new_array (
     pkd.num_denom_sigs,
-    struct TALER_EXCHANGE_DenominationKeySignature);
+    struct TALER_DONAU_DenominationKeySignature);
   for (unsigned int i = 0; i<pkd.num_sign_sigs; i++)
   {
-    struct TALER_EXCHANGE_SigningKeySignature *ss = &pkd.sign_sigs[i];
+    struct TALER_DONAU_SigningKeySignature *ss = &pkd.sign_sigs[i];
     json_t *val = json_array_get (signkey_sigs,
                                   i);
     struct GNUNET_JSON_Specification spec[] = {
-      GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                   &ss->exchange_pub),
+      GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                   &ss->donau_pub),
       GNUNET_JSON_spec_fixed_auto ("master_sig",
                                    &ss->master_sig),
       GNUNET_JSON_spec_end ()
@@ -2176,7 +2176,7 @@ upload_keys (const char *exchange_url,
   }
   for (unsigned int i = 0; i<pkd.num_denom_sigs; i++)
   {
-    struct TALER_EXCHANGE_DenominationKeySignature *ds = &pkd.denom_sigs[i];
+    struct TALER_DONAU_DenominationKeySignature *ds = &pkd.denom_sigs[i];
     json_t *val = json_array_get (denom_sigs,
                                   i);
     struct GNUNET_JSON_Specification spec[] = {
@@ -2210,8 +2210,8 @@ upload_keys (const char *exchange_url,
     ukr = GNUNET_new (struct UploadKeysRequest);
     ukr->idx = idx;
     ukr->h =
-      TALER_EXCHANGE_post_management_keys (ctx,
-                                           exchange_url,
+      TALER_DONAU_post_management_keys (ctx,
+                                           donau_url,
                                            &pkd,
                                            &keys_cb,
                                            ukr);
@@ -2238,10 +2238,10 @@ upload_keys (const char *exchange_url,
 static void
 extensions_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementPostExtensionsResponse *er)
+  const struct TALER_DONAU_ManagementPostExtensionsResponse *er)
 {
   struct UploadExtensionsRequest *uer = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &er->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &er->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -2264,12 +2264,12 @@ extensions_cb (
 /**
  * Upload extension configuration
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for POSTing configurations of extensions
  */
 static void
-upload_extensions (const char *exchange_url,
+upload_extensions (const char *donau_url,
                    size_t idx,
                    const json_t *value)
 {
@@ -2324,7 +2324,7 @@ upload_extensions (const char *exchange_url,
         load_offline_key (GNUNET_NO))
       return;
 
-    if (GNUNET_OK != TALER_exchange_offline_extension_manifests_hash_verify (
+    if (GNUNET_OK != TALER_donau_offline_extension_manifests_hash_verify (
           &h_manifests,
           &master_pub,
           &sig))
@@ -2339,7 +2339,7 @@ upload_extensions (const char *exchange_url,
 
   /* 3. Upload the extensions */
   {
-    struct TALER_EXCHANGE_ManagementPostExtensionsData ped = {
+    struct TALER_DONAU_ManagementPostExtensionsData ped = {
       .extensions = extensions,
       .extensions_sig = sig,
     };
@@ -2347,9 +2347,9 @@ upload_extensions (const char *exchange_url,
       = GNUNET_new (struct UploadExtensionsRequest);
 
     uer->idx = idx;
-    uer->h = TALER_EXCHANGE_management_post_extensions (
+    uer->h = TALER_DONAU_management_post_extensions (
       ctx,
-      exchange_url,
+      donau_url,
       &ped,
       &extensions_cb,
       uer);
@@ -2369,10 +2369,10 @@ upload_extensions (const char *exchange_url,
 static void
 add_partner_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementAddPartnerResponse *apr)
+  const struct TALER_DONAU_ManagementAddPartnerResponse *apr)
 {
   struct PartnerAddRequest *par = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &apr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &apr->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -2395,12 +2395,12 @@ add_partner_cb (
 /**
  * Add partner action.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for add partner
  */
 static void
-add_partner (const char *exchange_url,
+add_partner (const char *donau_url,
              size_t idx,
              const json_t *value)
 {
@@ -2454,8 +2454,8 @@ add_partner (const char *exchange_url,
   par = GNUNET_new (struct PartnerAddRequest);
   par->idx = idx;
   par->h =
-    TALER_EXCHANGE_management_add_partner (ctx,
-                                           exchange_url,
+    TALER_DONAU_management_add_partner (ctx,
+                                           donau_url,
                                            &partner_pub,
                                            start_date,
                                            end_date,
@@ -2480,10 +2480,10 @@ add_partner (const char *exchange_url,
 static void
 update_aml_officer_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementUpdateAmlOfficerResponse *ar)
+  const struct TALER_DONAU_ManagementUpdateAmlOfficerResponse *ar)
 {
   struct AmlStaffRequest *asr = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &ar->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &ar->hr;
 
   if (MHD_HTTP_NO_CONTENT != hr->http_status)
   {
@@ -2506,12 +2506,12 @@ update_aml_officer_cb (
 /**
  * Upload AML staff action.
  *
- * @param exchange_url base URL of the exchange
+ * @param donau_url base URL of the donau
  * @param idx index of the operation we are performing (for logging)
  * @param value arguments for AML staff change
  */
 static void
-update_aml_staff (const char *exchange_url,
+update_aml_staff (const char *donau_url,
                   size_t idx,
                   const json_t *value)
 {
@@ -2561,8 +2561,8 @@ update_aml_staff (const char *exchange_url,
   asr = GNUNET_new (struct AmlStaffRequest);
   asr->idx = idx;
   asr->h =
-    TALER_EXCHANGE_management_update_aml_officer (ctx,
-                                                  exchange_url,
+    TALER_DONAU_management_update_aml_officer (ctx,
+                                                  donau_url,
                                                   &officer_pub,
                                                   officer_name,
                                                   change_date,
@@ -2580,10 +2580,10 @@ update_aml_staff (const char *exchange_url,
 /**
  * Perform uploads based on the JSON in #out.
  *
- * @param exchange_url base URL of the exchange to use
+ * @param donau_url base URL of the donau to use
  */
 static void
-trigger_upload (const char *exchange_url)
+trigger_upload (const char *donau_url)
 {
   struct UploadHandler uhs[] = {
     {
@@ -2669,7 +2669,7 @@ trigger_upload (const char *exchange_url)
       {
 
         found = true;
-        uhs[i].cb (exchange_url,
+        uhs[i].cb (donau_url,
                    index,
                    value);
         break;
@@ -2689,7 +2689,7 @@ trigger_upload (const char *exchange_url)
 
 
 /**
- * Upload operation result (signatures) to exchange.
+ * Upload operation result (signatures) to donau.
  *
  * @param args the array of command-line arguments to process next
  */
@@ -2733,21 +2733,21 @@ do_upload (char *const *args)
     global_ret = EXIT_FAILURE;
     return;
   }
-  if ( (NULL == CFG_exchange_url) &&
+  if ( (NULL == CFG_donau_url) &&
        (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_string (kcfg,
-                                               "exchange",
+                                               "donau",
                                                "BASE_URL",
-                                               &CFG_exchange_url)) )
+                                               &CFG_donau_url)) )
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL");
     global_ret = EXIT_NOTCONFIGURED;
     test_shutdown ();
     return;
   }
-  trigger_upload (CFG_exchange_url);
+  trigger_upload (CFG_donau_url);
   json_decref (out);
   out = NULL;
 }
@@ -2789,7 +2789,7 @@ do_revoke_denomination_key (char *const *args)
   if (GNUNET_OK !=
       load_offline_key (GNUNET_NO))
     return;
-  TALER_exchange_offline_denomination_revoke_sign (&h_denom_pub,
+  TALER_donau_offline_denomination_revoke_sign (&h_denom_pub,
                                                    &master_priv,
                                                    &master_sig);
   output_operation (OP_REVOKE_DENOMINATION,
@@ -2811,7 +2811,7 @@ do_revoke_denomination_key (char *const *args)
 static void
 do_revoke_signkey (char *const *args)
 {
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
   struct TALER_MasterSignatureP master_sig;
 
   if (NULL != in)
@@ -2826,11 +2826,11 @@ do_revoke_signkey (char *const *args)
        (GNUNET_OK !=
         GNUNET_STRINGS_string_to_data (args[0],
                                        strlen (args[0]),
-                                       &exchange_pub,
-                                       sizeof (exchange_pub))) )
+                                       &donau_pub,
+                                       sizeof (donau_pub))) )
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "You must specify an exchange signing key with this 
subcommand\n");
+                "You must specify an donau signing key with this 
subcommand\n");
     test_shutdown ();
     global_ret = EXIT_INVALIDARGUMENT;
     return;
@@ -2838,13 +2838,13 @@ do_revoke_signkey (char *const *args)
   if (GNUNET_OK !=
       load_offline_key (GNUNET_NO))
     return;
-  TALER_exchange_offline_signkey_revoke_sign (&exchange_pub,
+  TALER_donau_offline_signkey_revoke_sign (&donau_pub,
                                               &master_priv,
                                               &master_sig);
   output_operation (OP_REVOKE_SIGNKEY,
                     GNUNET_JSON_PACK (
-                      GNUNET_JSON_pack_data_auto ("exchange_pub",
-                                                  &exchange_pub),
+                      GNUNET_JSON_pack_data_auto ("donau_pub",
+                                                  &donau_pub),
                       GNUNET_JSON_pack_data_auto ("master_sig",
                                                   &master_sig)));
   next (args + 1);
@@ -2903,7 +2903,7 @@ do_add_auditor (char *const *args)
       load_offline_key (GNUNET_NO))
     return;
   now = GNUNET_TIME_timestamp_get ();
-  TALER_exchange_offline_auditor_add_sign (&auditor_pub,
+  TALER_donau_offline_auditor_add_sign (&auditor_pub,
                                            args[1],
                                            now,
                                            &master_priv,
@@ -2962,7 +2962,7 @@ do_del_auditor (char *const *args)
       load_offline_key (GNUNET_NO))
     return;
   now = GNUNET_TIME_timestamp_get ();
-  TALER_exchange_offline_auditor_del_sign (&auditor_pub,
+  TALER_donau_offline_auditor_del_sign (&auditor_pub,
                                            now,
                                            &master_priv,
                                            &master_sig);
@@ -3198,14 +3198,14 @@ do_add_wire (char *const *args)
     }
     break;
   }
-  TALER_exchange_offline_wire_add_sign (args[0],
+  TALER_donau_offline_wire_add_sign (args[0],
                                         conversion_url,
                                         debit_restrictions,
                                         credit_restrictions,
                                         now,
                                         &master_priv,
                                         &master_sig_add);
-  TALER_exchange_wire_signature_make (args[0],
+  TALER_donau_wire_signature_make (args[0],
                                       conversion_url,
                                       debit_restrictions,
                                       credit_restrictions,
@@ -3264,7 +3264,7 @@ do_del_wire (char *const *args)
       load_offline_key (GNUNET_NO))
     return;
   now = GNUNET_TIME_timestamp_get ();
-  TALER_exchange_offline_wire_del_sign (args[0],
+  TALER_donau_offline_wire_del_sign (args[0],
                                         now,
                                         &master_priv,
                                         &master_sig);
@@ -3339,7 +3339,7 @@ do_set_wire_fee (char *const *args)
   end_time = GNUNET_TIME_absolute_to_timestamp (
     GNUNET_TIME_year_to_time (year + 1));
 
-  TALER_exchange_offline_wire_fee_sign (args[1],
+  TALER_donau_offline_wire_fee_sign (args[1],
                                         start_time,
                                         end_time,
                                         &fees,
@@ -3470,7 +3470,7 @@ do_set_global_fee (char *const *args)
   end_time = GNUNET_TIME_absolute_to_timestamp (
     GNUNET_TIME_year_to_time (year + 1));
 
-  TALER_exchange_offline_global_fee_sign (start_time,
+  TALER_donau_offline_global_fee_sign (start_time,
                                           end_time,
                                           &fees,
                                           purse_timeout,
@@ -3503,8 +3503,8 @@ do_set_global_fee (char *const *args)
 
 
 /**
- * Drain profits from exchange's escrow account to
- * regular exchange account.
+ * Drain profits from donau's escrow account to
+ * regular donau account.
  *
  * @param args the array of command-line arguments to process next;
  *        args[0] must be the amount,
@@ -3585,7 +3585,7 @@ do_drain (char *const *args)
                               &wtid,
                               sizeof (wtid));
   date = GNUNET_TIME_timestamp_get ();
-  TALER_exchange_offline_profit_drain_sign (&wtid,
+  TALER_donau_offline_profit_drain_sign (&wtid,
                                             date,
                                             &amount,
                                             account_section,
@@ -3714,7 +3714,7 @@ do_add_partner (char *const *args)
   if (GNUNET_OK !=
       load_offline_key (GNUNET_NO))
     return;
-  TALER_exchange_offline_partner_details_sign (&partner_pub,
+  TALER_donau_offline_partner_details_sign (&partner_pub,
                                                start_date,
                                                end_date,
                                                wad_frequency,
@@ -3812,7 +3812,7 @@ do_set_aml_staff (bool is_active,
   if (GNUNET_OK !=
       load_offline_key (GNUNET_NO))
     return;
-  TALER_exchange_offline_aml_officer_status_sign (&officer_pub,
+  TALER_donau_offline_aml_officer_status_sign (&officer_pub,
                                                   officer_name,
                                                   now,
                                                   is_active,
@@ -3875,10 +3875,10 @@ enable_aml_staff (char *const *args)
  */
 static void
 download_cb (void *cls,
-             const struct TALER_EXCHANGE_ManagementGetKeysResponse *mgr)
+             const struct TALER_DONAU_ManagementGetKeysResponse *mgr)
 {
   char *const *args = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &mgr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &mgr->hr;
 
   mgkh = NULL;
   switch (hr->http_status)
@@ -3889,14 +3889,14 @@ download_cb (void *cls,
     if (0 != hr->http_status)
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Failed to download keys from `%s': %s (HTTP status: 
%u/%u)\n",
-                  CFG_exchange_url,
+                  CFG_donau_url,
                   hr->hint,
                   hr->http_status,
                   (unsigned int) hr->ec);
     else
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Failed to download keys from `%s' (no HTTP response)\n",
-                  CFG_exchange_url);
+                  CFG_donau_url);
     test_shutdown ();
     global_ret = EXIT_FAILURE;
     return;
@@ -3926,22 +3926,22 @@ download_cb (void *cls,
 static void
 do_download (char *const *args)
 {
-  if ( (NULL == CFG_exchange_url) &&
+  if ( (NULL == CFG_donau_url) &&
        (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_string (kcfg,
-                                               "exchange",
+                                               "donau",
                                                "BASE_URL",
-                                               &CFG_exchange_url)) )
+                                               &CFG_donau_url)) )
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL");
     test_shutdown ();
     global_ret = EXIT_NOTCONFIGURED;
     return;
   }
-  mgkh = TALER_EXCHANGE_get_management_keys (ctx,
-                                             CFG_exchange_url,
+  mgkh = TALER_DONAU_get_management_keys (ctx,
+                                             CFG_donau_url,
                                              &download_cb,
                                              (void *) args);
 }
@@ -3965,12 +3965,12 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_filename (kcfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "SECM_TOFU_FILE",
                                                &fn))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange-offline",
+                               "donau-offline",
                                "SECM_TOFU_FILE");
     return GNUNET_SYSERR;
   }
@@ -4012,7 +4012,7 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
     /* check against SECMOD-keys pinned in configuration */
     if (GNUNET_OK ==
         GNUNET_CONFIGURATION_get_value_string (kcfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "SECM_ESIGN_PUBKEY",
                                                &key))
     {
@@ -4025,7 +4025,7 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
                                          sizeof (k)))
       {
         GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
-                                   "exchange-offline",
+                                   "donau-offline",
                                    "SECM_ESIGN_PUBKEY",
                                    "key malformed");
         GNUNET_free (key);
@@ -4045,7 +4045,7 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
     }
     if (GNUNET_OK ==
         GNUNET_CONFIGURATION_get_value_string (kcfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "SECM_DENOM_PUBKEY",
                                                &key))
     {
@@ -4058,7 +4058,7 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
                                          sizeof (k)))
       {
         GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
-                                   "exchange-offline",
+                                   "donau-offline",
                                    "SECM_DENOM_PUBKEY",
                                    "key malformed");
         GNUNET_free (key);
@@ -4078,7 +4078,7 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
     }
     if (GNUNET_OK ==
         GNUNET_CONFIGURATION_get_value_string (kcfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "SECM_DENOM_CS_PUBKEY",
                                                &key))
     {
@@ -4091,7 +4091,7 @@ tofu_check (const struct 
TALER_SecurityModulePublicKeySetP *secmset)
                                          sizeof (k)))
       {
         GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
-                                   "exchange-offline",
+                                   "donau-offline",
                                    "SECM_DENOM_CS_PUBKEY",
                                    "key malformed");
         GNUNET_free (key);
@@ -4154,7 +4154,7 @@ show_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
   json_array_foreach (signkeys, index, value) {
     const char *err_name;
     unsigned int err_line;
-    struct TALER_ExchangePublicKeyP exchange_pub;
+    struct TALER_DonauPublicKeyP donau_pub;
     struct TALER_SecurityModuleSignatureP secm_sig;
     struct GNUNET_TIME_Timestamp start_time;
     struct GNUNET_TIME_Timestamp sign_end;
@@ -4168,7 +4168,7 @@ show_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
       GNUNET_JSON_spec_timestamp ("stamp_end",
                                   &legal_end),
       GNUNET_JSON_spec_fixed_auto ("key",
-                                   &exchange_pub),
+                                   &donau_pub),
       GNUNET_JSON_spec_fixed_auto ("signkey_secmod_sig",
                                    &secm_sig),
       GNUNET_JSON_spec_end ()
@@ -4195,7 +4195,7 @@ show_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
     duration = GNUNET_TIME_absolute_get_difference (start_time.abs_time,
                                                     sign_end.abs_time);
     if (GNUNET_OK !=
-        TALER_exchange_secmod_eddsa_verify (&exchange_pub,
+        TALER_donau_secmod_eddsa_verify (&donau_pub,
                                             start_time,
                                             duration,
                                             secm_pub,
@@ -4203,7 +4203,7 @@ show_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Invalid security module signature for signing key %s 
(aborting)\n",
-                  TALER_B2S (&exchange_pub));
+                  TALER_B2S (&donau_pub));
       global_ret = EXIT_FAILURE;
       test_shutdown ();
       return GNUNET_SYSERR;
@@ -4213,8 +4213,8 @@ show_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
 
       legal_end_s = GNUNET_strdup (
         GNUNET_TIME_timestamp2s (legal_end));
-      printf ("EXCHANGE-KEY %s starting at %s (used for: %s, legal end: %s)\n",
-              TALER_B2S (&exchange_pub),
+      printf ("DONAU-KEY %s starting at %s (used for: %s, legal end: %s)\n",
+              TALER_B2S (&donau_pub),
               GNUNET_TIME_timestamp2s (start_time),
               GNUNET_TIME_relative2s (duration,
                                       false),
@@ -4313,7 +4313,7 @@ show_denomkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub_rsa,
 
         TALER_rsa_pub_hash (denom_pub.details.rsa_public_key,
                             &h_rsa);
-        ok = TALER_exchange_secmod_rsa_verify (&h_rsa,
+        ok = TALER_donau_secmod_rsa_verify (&h_rsa,
                                                section_name,
                                                stamp_start,
                                                duration,
@@ -4327,7 +4327,7 @@ show_denomkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub_rsa,
 
         TALER_cs_pub_hash (&denom_pub.details.cs_public_key,
                            &h_cs);
-        ok = TALER_exchange_secmod_cs_verify (&h_cs,
+        ok = TALER_donau_secmod_cs_verify (&h_cs,
                                               section_name,
                                               stamp_start,
                                               duration,
@@ -4397,7 +4397,7 @@ show_denomkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub_rsa,
 
 
 /**
- * Parse the input of exchange keys for the 'show' and 'sign' commands.
+ * Parse the input of donau keys for the 'show' and 'sign' commands.
  *
  * @param command_name name of the command, for logging
  * @return NULL on error, otherwise the keys details to be free'd by caller
@@ -4533,7 +4533,7 @@ do_show (char *const *args)
                      &mpub))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Fatal: exchange uses different master key!\n");
+                "Fatal: donau uses different master key!\n");
     global_ret = EXIT_FAILURE;
     test_shutdown ();
     json_decref (keys);
@@ -4584,7 +4584,7 @@ sign_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
   json_array_foreach (signkeys, index, value) {
     const char *err_name;
     unsigned int err_line;
-    struct TALER_ExchangePublicKeyP exchange_pub;
+    struct TALER_DonauPublicKeyP donau_pub;
     struct TALER_SecurityModuleSignatureP secm_sig;
     struct GNUNET_TIME_Timestamp start_time;
     struct GNUNET_TIME_Timestamp sign_end;
@@ -4598,7 +4598,7 @@ sign_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
       GNUNET_JSON_spec_timestamp ("stamp_end",
                                   &legal_end),
       GNUNET_JSON_spec_fixed_auto ("key",
-                                   &exchange_pub),
+                                   &donau_pub),
       GNUNET_JSON_spec_fixed_auto ("signkey_secmod_sig",
                                    &secm_sig),
       GNUNET_JSON_spec_end ()
@@ -4626,7 +4626,7 @@ sign_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
     duration = GNUNET_TIME_absolute_get_difference (start_time.abs_time,
                                                     sign_end.abs_time);
     if (GNUNET_OK !=
-        TALER_exchange_secmod_eddsa_verify (&exchange_pub,
+        TALER_donau_secmod_eddsa_verify (&donau_pub,
                                             start_time,
                                             duration,
                                             secm_pub,
@@ -4634,7 +4634,7 @@ sign_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Invalid security module signature for signing key %s 
(aborting)\n",
-                  TALER_B2S (&exchange_pub));
+                  TALER_B2S (&donau_pub));
       global_ret = EXIT_FAILURE;
       test_shutdown ();
       GNUNET_JSON_parse_free (spec);
@@ -4643,7 +4643,7 @@ sign_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
     {
       struct TALER_MasterSignatureP master_sig;
 
-      TALER_exchange_offline_signkey_validity_sign (&exchange_pub,
+      TALER_donau_offline_signkey_validity_sign (&donau_pub,
                                                     start_time,
                                                     sign_end,
                                                     legal_end,
@@ -4653,8 +4653,8 @@ sign_signkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub,
                      json_array_append_new (
                        result,
                        GNUNET_JSON_PACK (
-                         GNUNET_JSON_pack_data_auto ("exchange_pub",
-                                                     &exchange_pub),
+                         GNUNET_JSON_pack_data_auto ("donau_pub",
+                                                     &donau_pub),
                          GNUNET_JSON_pack_data_auto ("master_sig",
                                                      &master_sig))));
     }
@@ -4794,7 +4794,7 @@ sign_denomkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub_rsa,
         TALER_rsa_pub_hash (denom_pub.details.rsa_public_key,
                             &h_rsa);
         if (GNUNET_OK !=
-            TALER_exchange_secmod_rsa_verify (&h_rsa,
+            TALER_donau_secmod_rsa_verify (&h_rsa,
                                               section_name,
                                               stamp_start,
                                               duration,
@@ -4818,7 +4818,7 @@ sign_denomkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub_rsa,
         TALER_cs_pub_hash (&denom_pub.details.cs_public_key,
                            &h_cs);
         if (GNUNET_OK !=
-            TALER_exchange_secmod_cs_verify (&h_cs,
+            TALER_donau_secmod_cs_verify (&h_cs,
                                              section_name,
                                              stamp_start,
                                              duration,
@@ -4845,7 +4845,7 @@ sign_denomkeys (const struct 
TALER_SecurityModulePublicKeyP *secm_pub_rsa,
     {
       struct TALER_MasterSignatureP master_sig;
 
-      TALER_exchange_offline_denom_validity_sign (&h_denom_pub,
+      TALER_donau_offline_denom_validity_sign (&h_denom_pub,
                                                   stamp_start,
                                                   stamp_expire_withdraw,
                                                   stamp_expire_deposit,
@@ -4932,7 +4932,7 @@ do_sign (char *const *args)
                      &mpub))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Fatal: exchange uses different master key!\n");
+                "Fatal: donau uses different master key!\n");
     global_ret = EXIT_FAILURE;
     test_shutdown ();
     json_decref (keys);
@@ -5002,7 +5002,7 @@ do_setup (char *const *args)
   {
     output_operation (OP_SETUP,
                       GNUNET_JSON_PACK (
-                        GNUNET_JSON_pack_data_auto ("exchange_offline_pub",
+                        GNUNET_JSON_pack_data_auto ("donau_offline_pub",
                                                     &master_pub)));
   }
 
@@ -5112,7 +5112,7 @@ do_extensions_sign (char *const *args)
     return;
   }
 
-  TALER_exchange_offline_extension_manifests_hash_sign (&h_manifests,
+  TALER_donau_offline_extension_manifests_hash_sign (&h_manifests,
                                                         &master_priv,
                                                         &sig);
   obj = GNUNET_JSON_PACK (
@@ -5186,7 +5186,7 @@ do_work_extensions (char *const *args)
     {
       .name = "sign",
       .help =
-        "sign the configuration of the extensions and publish it with the 
exchange",
+        "sign the configuration of the extensions and publish it with the 
donau",
       .cb = &do_extensions_sign
     },
     {
@@ -5221,13 +5221,13 @@ work (void *cls)
     {
       .name = "download",
       .help =
-        "obtain future public keys from exchange (to be performed online!)",
+        "obtain future public keys from donau (to be performed online!)",
       .cb = &do_download
     },
     {
       .name = "show",
       .help =
-        "display future public keys from exchange for human review (pass '-' 
as argument to disable consuming input)",
+        "display future public keys from donau for human review (pass '-' as 
argument to disable consuming input)",
       .cb = &do_show
     },
     {
@@ -5244,31 +5244,31 @@ work (void *cls)
     {
       .name = "revoke-signkey",
       .help =
-        "revoke exchange online signing key (public key must be given as 
argument)",
+        "revoke donau online signing key (public key must be given as 
argument)",
       .cb = &do_revoke_signkey
     },
     {
       .name = "enable-auditor",
       .help =
-        "enable auditor for the exchange (auditor-public key, auditor-URI and 
auditor-name must be given as arguments)",
+        "enable auditor for the donau (auditor-public key, auditor-URI and 
auditor-name must be given as arguments)",
       .cb = &do_add_auditor
     },
     {
       .name = "disable-auditor",
       .help =
-        "disable auditor at the exchange (auditor-public key must be given as 
argument)",
+        "disable auditor at the donau (auditor-public key must be given as 
argument)",
       .cb = &do_del_auditor
     },
     {
       .name = "enable-account",
       .help =
-        "enable wire account of the exchange (payto-URI must be given as 
argument; for optional argument see man page)",
+        "enable wire account of the donau (payto-URI must be given as 
argument; for optional argument see man page)",
       .cb = &do_add_wire
     },
     {
       .name = "disable-account",
       .help =
-        "disable wire account of the exchange (payto-URI must be given as 
argument)",
+        "disable wire account of the donau (payto-URI must be given as 
argument)",
       .cb = &do_del_wire
     },
     {
@@ -5286,13 +5286,13 @@ work (void *cls)
     {
       .name = "drain",
       .help =
-        "drain profits from exchange escrow account to regular exchange 
operator account (amount, debit account configuration section and credit 
account payto://-URI must be given as arguments)",
+        "drain profits from donau escrow account to regular donau operator 
account (amount, debit account configuration section and credit account 
payto://-URI must be given as arguments)",
       .cb = &do_drain
     },
     {
       .name = "add-partner",
       .help =
-        "add partner exchange for P2P wad transfers (partner master public 
key, partner base URL, wad fee, wad frequency and validity year must be given 
as arguments)",
+        "add partner donau for P2P wad transfers (partner master public key, 
partner base URL, wad fee, wad frequency and validity year must be given as 
arguments)",
       .cb = &do_add_partner
     },
     {
@@ -5310,7 +5310,7 @@ work (void *cls)
     {
       .name = "upload",
       .help =
-        "upload operation result to exchange (to be performed online!)",
+        "upload operation result to donau (to be performed online!)",
       .cb = &do_upload
     },
     {
@@ -5382,10 +5382,10 @@ run (void *cls,
 
 
 /**
- * The main function of the taler-exchange-offline tool.  This tool is used to
- * create the signing and denomination keys for the exchange.  It uses the
+ * The main function of the taler-donau-offline tool.  This tool is used to
+ * create the signing and denomination keys for the donau.  It uses the
  * long-term offline private key and generates signatures with it. It also
- * supports online operations with the exchange to download its input data and
+ * supports online operations with the donau to download its input data and
  * to upload its results. Those online operations should be performed on
  * another machine in production!
  *
@@ -5413,8 +5413,8 @@ main (int argc,
   TALER_OS_init ();
   ret = GNUNET_PROGRAM_run (
     argc, argv,
-    "taler-exchange-offline",
-    gettext_noop ("Operations for offline signing for a Taler exchange"),
+    "taler-donau-offline",
+    gettext_noop ("Operations for offline signing for a Taler donau"),
     options,
     &run, NULL);
   GNUNET_free_nz ((void *) argv);
@@ -5426,4 +5426,4 @@ main (int argc,
 }
 
 
-/* end of taler-exchange-offline.c */
+/* end of taler-donau-offline.c */
diff --git a/src/donau/.gitignore b/src/donau/.gitignore
new file mode 100644
index 0000000..1e98805
--- /dev/null
+++ b/src/donau/.gitignore
@@ -0,0 +1,13 @@
+taler-donau-dbinit
+taler-donau-keycheck
+taler-donau-keyup
+taler-donau-pursemod
+taler-donau-reservemod
+taler-donau-httpd
+taler-donau-wirewatch
+test_taler_donau_wirewatch-postgres
+test_taler_donau_httpd_home/.config/taler/account-1.json
+taler-donau-closer
+taler-donau-transfer
+taler-donau-router
+taler-donau-expire
diff --git a/src/donau/Makefile.am b/src/donau/Makefile.am
new file mode 100644
index 0000000..a6f5bae
--- /dev/null
+++ b/src/donau/Makefile.am
@@ -0,0 +1,232 @@
+# This Makefile.am is in the public domain
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/src/include \
+ $(LIBGCRYPT_CFLAGS) \
+ $(POSTGRESQL_CPPFLAGS)
+
+if USE_COVERAGE
+  AM_CFLAGS = --coverage -O0
+  XLIB = -lgcov
+endif
+
+pkgcfgdir = $(prefix)/share/taler/config.d/
+
+pkgcfg_DATA = \
+  donau.conf
+
+# Programs
+bin_SCRIPTS = \
+  taler-donau-kyc-aml-pep-trigger.sh
+
+bin_PROGRAMS = \
+  taler-donau-aggregator \
+  taler-donau-closer \
+  taler-donau-drain \
+  taler-donau-expire \
+  taler-donau-httpd \
+  taler-donau-router \
+  taler-donau-transfer \
+  taler-donau-wirewatch
+
+taler_donau_aggregator_SOURCES = \
+  taler-donau-aggregator.c
+taler_donau_aggregator_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/kyclogic/libtalerkyclogic.la \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+
+taler_donau_closer_SOURCES = \
+  taler-donau-closer.c
+taler_donau_closer_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+taler_donau_drain_SOURCES = \
+  taler-donau-drain.c
+taler_donau_drain_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+taler_donau_expire_SOURCES = \
+  taler-donau-expire.c
+taler_donau_expire_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+taler_donau_router_SOURCES = \
+  taler-donau-router.c
+taler_donau_router_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+taler_donau_transfer_SOURCES = \
+  taler-donau-transfer.c
+taler_donau_transfer_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+taler_donau_wirewatch_SOURCES = \
+  taler-donau-wirewatch.c
+taler_donau_wirewatch_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  -ljansson \
+  -lgnunetcurl \
+  -lgnunetutil \
+  $(XLIB)
+
+
+taler_donau_httpd_SOURCES = \
+  taler-donau-httpd.c taler-donau-httpd.h \
+  taler-donau-httpd_auditors.c taler-donau-httpd_auditors.h \
+  taler-donau-httpd_aml-decision.c taler-donau-httpd_aml-decision.h \
+  taler-donau-httpd_aml-decision-get.c \
+  taler-donau-httpd_aml-decisions-get.c \
+  taler-donau-httpd_batch-deposit.c taler-donau-httpd_batch-deposit.h \
+  taler-donau-httpd_batch-withdraw.c taler-donau-httpd_batch-withdraw.h \
+  taler-donau-httpd_age-withdraw.c taler-donau-httpd_age-withdraw.h \
+  taler-donau-httpd_age-withdraw_reveal.c 
taler-donau-httpd_age-withdraw_reveal.h \
+  taler-donau-httpd_common_deposit.c taler-donau-httpd_common_deposit.h \
+  taler-donau-httpd_common_kyc.c taler-donau-httpd_common_kyc.h \
+  taler-donau-httpd_config.c taler-donau-httpd_config.h \
+  taler-donau-httpd_contract.c taler-donau-httpd_contract.h \
+  taler-donau-httpd_csr.c taler-donau-httpd_csr.h \
+  taler-donau-httpd_db.c taler-donau-httpd_db.h \
+  taler-donau-httpd_deposits_get.c taler-donau-httpd_deposits_get.h \
+  taler-donau-httpd_extensions.c taler-donau-httpd_extensions.h \
+  taler-donau-httpd_keys.c taler-donau-httpd_keys.h \
+  taler-donau-httpd_kyc-check.c taler-donau-httpd_kyc-check.h \
+  taler-donau-httpd_kyc-proof.c taler-donau-httpd_kyc-proof.h \
+  taler-donau-httpd_kyc-wallet.c taler-donau-httpd_kyc-wallet.h \
+  taler-donau-httpd_kyc-webhook.c taler-donau-httpd_kyc-webhook.h \
+  taler-donau-httpd_link.c taler-donau-httpd_link.h \
+  taler-donau-httpd_management.h \
+  taler-donau-httpd_management_aml-officers.c \
+  taler-donau-httpd_management_auditors.c \
+  taler-donau-httpd_management_auditors_AP_disable.c \
+  taler-donau-httpd_management_denominations_HDP_revoke.c \
+  taler-donau-httpd_management_drain.c \
+  taler-donau-httpd_management_extensions.c \
+  taler-donau-httpd_management_global_fees.c \
+  taler-donau-httpd_management_partners.c \
+  taler-donau-httpd_management_post_keys.c \
+  taler-donau-httpd_management_signkey_EP_revoke.c \
+  taler-donau-httpd_management_wire_enable.c \
+  taler-donau-httpd_management_wire_disable.c \
+  taler-donau-httpd_management_wire_fees.c \
+  taler-donau-httpd_melt.c taler-donau-httpd_melt.h \
+  taler-donau-httpd_metrics.c taler-donau-httpd_metrics.h \
+  taler-donau-httpd_mhd.c taler-donau-httpd_mhd.h \
+  taler-donau-httpd_purses_create.c taler-donau-httpd_purses_create.h \
+  taler-donau-httpd_purses_deposit.c taler-donau-httpd_purses_deposit.h \
+  taler-donau-httpd_purses_delete.c taler-donau-httpd_purses_delete.h \
+  taler-donau-httpd_purses_get.c taler-donau-httpd_purses_get.h \
+  taler-donau-httpd_purses_merge.c taler-donau-httpd_purses_merge.h \
+  taler-donau-httpd_recoup.c taler-donau-httpd_recoup.h \
+  taler-donau-httpd_recoup-refresh.c taler-donau-httpd_recoup-refresh.h \
+  taler-donau-httpd_refreshes_reveal.c taler-donau-httpd_refreshes_reveal.h \
+  taler-donau-httpd_refund.c taler-donau-httpd_refund.h \
+  taler-donau-httpd_reserves_attest.c taler-donau-httpd_reserves_attest.h \
+  taler-donau-httpd_reserves_close.c taler-donau-httpd_reserves_close.h \
+  taler-donau-httpd_reserves_get.c taler-donau-httpd_reserves_get.h \
+  taler-donau-httpd_reserves_get_attest.c 
taler-donau-httpd_reserves_get_attest.h \
+  taler-donau-httpd_reserves_history.c taler-donau-httpd_reserves_history.h \
+  taler-donau-httpd_reserves_open.c taler-donau-httpd_reserves_open.h \
+  taler-donau-httpd_reserves_purse.c taler-donau-httpd_reserves_purse.h \
+  taler-donau-httpd_reserves_status.c taler-donau-httpd_reserves_status.h \
+  taler-donau-httpd_responses.c taler-donau-httpd_responses.h \
+  taler-donau-httpd_terms.c taler-donau-httpd_terms.h \
+  taler-donau-httpd_transfers_get.c taler-donau-httpd_transfers_get.h \
+  taler-donau-httpd_withdraw.c taler-donau-httpd_withdraw.h
+
+taler_donau_httpd_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/mhd/libtalermhd.la \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
+  $(top_builddir)/src/templating/libtalertemplating.la \
+  $(top_builddir)/src/kyclogic/libtalerkyclogic.la \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/extensions/libtalerextensions.la \
+  -lmicrohttpd \
+  -lgnunetcurl \
+  -lgnunetutil \
+  -lgnunetjson \
+  -ljansson \
+  -lcurl \
+  -lz \
+  $(XLIB)
+
+# Testcases
+
+AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export 
PATH=$${TALER_PREFIX:-@prefix@}/bin:$$PATH;
+
+check_SCRIPTS = \
+  test_taler_donau_httpd.sh
+if HAVE_EXPENSIVE_TESTS
+check_SCRIPTS += \
+  test_taler_donau_httpd_afl.sh
+endif
+
+.NOTPARALLEL:
+TESTS = \
+  $(check_SCRIPTS)
+
+# Distribution
+
+EXTRA_DIST = \
+  
test_taler_donau_httpd_home/.local/share/taler/donau/offline-keys/master.priv \
+  test_taler_donau_httpd.conf \
+  test_taler_donau_unix.conf \
+  test_taler_donau_httpd.get \
+  test_taler_donau_httpd.post \
+  donau.conf \
+  $(bin_SCRIPTS) \
+  $(check_SCRIPTS)
diff --git a/src/exchange/exchange.conf b/src/donau/donau.conf
similarity index 86%
rename from src/exchange/exchange.conf
rename to src/donau/donau.conf
index f7387ce..12ee7ab 100644
--- a/src/exchange/exchange.conf
+++ b/src/donau/donau.conf
@@ -1,8 +1,8 @@
 # This file is in the public domain.
 #
-[exchange]
+[donau]
 
-# Master public key used to sign the exchange's various keys
+# Master public key used to sign the donau's various keys
 # This must be adjusted to your actual installation.
 # MASTER_PUBLIC_KEY = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG
 
@@ -39,7 +39,7 @@ ENABLE_REWARDS = YES
 # Used to artificially reduce caching (addresses #5747).
 MAX_KEYS_CACHING = forever
 
-# After how many requests should the exchange auto-restart
+# After how many requests should the donau auto-restart
 # (to address potential issues with memory fragmentation)?
 # If this option is not specified, auto-restarting is disabled.
 # MAX_REQUESTS = 100000
@@ -53,13 +53,13 @@ SERVE = tcp
 
 # Unix domain socket to listen on,
 # only effective with "SERVE = unix"
-UNIXPATH = ${TALER_RUNTIME_DIR}/exchange-httpd/exchange-http.sock
+UNIXPATH = ${TALER_RUNTIME_DIR}/donau-httpd/donau-http.sock
 UNIXPATH_MODE = 660
 
-# HTTP port the exchange listens to
+# HTTP port the donau listens to
 PORT = 8081
 
-# Base URL of the exchange (public-facing).  Due to reverse proxies,
+# Base URL of the donau (public-facing).  Due to reverse proxies,
 # this may or may not match our port or hostname at all and can thus
 # not be determined automatically. Note that a globally reachable name
 # is required, so 'localhost' will not work except for testing.
@@ -70,7 +70,7 @@ BASE_URL = http://localhost:8081/
 # How long should the aggregator sleep if it has nothing to do?
 AGGREGATOR_IDLE_SLEEP_INTERVAL = 60 s
 
-# What type of asset is the exchange managing? Used to adjust
+# What type of asset is the donau managing? Used to adjust
 # the user-interface of the wallet.
 # Possibilities include: "fiat", "regional" and "crypto".
 # In the future (and already permitted but not yet supported by wallets)
@@ -82,7 +82,7 @@ ASSET_TYPE = "fiat"
 ROUTER_IDLE_SLEEP_INTERVAL = 60 s
 
 # How big is an individual shard to be processed
-# by taler-exchange-expire (in time).  It may take
+# by taler-donau-expire (in time).  It may take
 # this much time for an expired purse to be really
 # cleaned up and the coins refunded.
 EXPIRE_SHARD_SIZE = 1 h
@@ -100,9 +100,9 @@ CLOSER_IDLE_SLEEP_INTERVAL = 60 s
 # When changing this value, you MUST stop all
 # aggregators and manually run
 #
-# $ taler-exchange-dbinit -s
+# $ taler-donau-dbinit -s
 #
-# against the exchange's database. Otherwise, the
+# against the donau's database. Otherwise, the
 # aggregation logic will break badly!
 AGGREGATOR_SHARD_SIZE = 2147483648
 
@@ -111,9 +111,9 @@ AGGREGATOR_SHARD_SIZE = 2147483648
 # When changing this value, you MUST stop all
 # aggregators and manually run
 #
-# $ taler-exchange-dbinit -s
+# $ taler-donau-dbinit -s
 #
-# against the exchange's database. Otherwise, the
+# against the donau's database. Otherwise, the
 # aggregation logic will break badly!
 ROUTER_SHARD_SIZE = 2147483648
 
@@ -129,10 +129,10 @@ SIGNKEY_LEGAL_DURATION = 2 years
 TERMS_DIR = $DATADIR/terms/
 
 # Etag / filename for the terms of service.
-TERMS_ETAG = exchange-tos-v0
+TERMS_ETAG = donau-tos-v0
 
 # Directory with our privacy policy.
 PRIVACY_DIR = $DATADIR/terms/
 
 # Etag / filename for the privacy policy.
-PRIVACY_ETAG = exchange-pp-v0
+PRIVACY_ETAG = donau-pp-v0
diff --git a/src/exchange/taler-exchange-httpd.c b/src/donau/taler-donau-httpd.c
similarity index 92%
rename from src/exchange/taler-exchange-httpd.c
rename to src/donau/taler-donau-httpd.c
index 149c60c..d211074 100644
--- a/src/exchange/taler-exchange-httpd.c
+++ b/src/donau/taler-donau-httpd.c
@@ -7,15 +7,15 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
    You should have received a copy of the GNU Affero General Public License 
along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file taler-exchange-httpd.c
- * @brief Serve the HTTP interface of the exchange
+ * @file taler-donau-httpd.c
+ * @brief Serve the HTTP interface of the donau
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
@@ -30,48 +30,48 @@
 #include "taler_kyclogic_lib.h"
 #include "taler_templating_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_age-withdraw.h"
-#include "taler-exchange-httpd_age-withdraw_reveal.h"
-#include "taler-exchange-httpd_aml-decision.h"
-#include "taler-exchange-httpd_auditors.h"
-#include "taler-exchange-httpd_batch-deposit.h"
-#include "taler-exchange-httpd_batch-withdraw.h"
-#include "taler-exchange-httpd_config.h"
-#include "taler-exchange-httpd_contract.h"
-#include "taler-exchange-httpd_csr.h"
-#include "taler-exchange-httpd_deposits_get.h"
-#include "taler-exchange-httpd_extensions.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_kyc-check.h"
-#include "taler-exchange-httpd_kyc-proof.h"
-#include "taler-exchange-httpd_kyc-wallet.h"
-#include "taler-exchange-httpd_link.h"
-#include "taler-exchange-httpd_management.h"
-#include "taler-exchange-httpd_melt.h"
-#include "taler-exchange-httpd_metrics.h"
-#include "taler-exchange-httpd_mhd.h"
-#include "taler-exchange-httpd_purses_create.h"
-#include "taler-exchange-httpd_purses_deposit.h"
-#include "taler-exchange-httpd_purses_get.h"
-#include "taler-exchange-httpd_purses_delete.h"
-#include "taler-exchange-httpd_purses_merge.h"
-#include "taler-exchange-httpd_recoup.h"
-#include "taler-exchange-httpd_recoup-refresh.h"
-#include "taler-exchange-httpd_refreshes_reveal.h"
-#include "taler-exchange-httpd_refund.h"
-#include "taler-exchange-httpd_reserves_attest.h"
-#include "taler-exchange-httpd_reserves_close.h"
-#include "taler-exchange-httpd_reserves_get.h"
-#include "taler-exchange-httpd_reserves_get_attest.h"
-#include "taler-exchange-httpd_reserves_history.h"
-#include "taler-exchange-httpd_reserves_open.h"
-#include "taler-exchange-httpd_reserves_purse.h"
-#include "taler-exchange-httpd_reserves_status.h"
-#include "taler-exchange-httpd_terms.h"
-#include "taler-exchange-httpd_transfers_get.h"
-#include "taler-exchange-httpd_withdraw.h"
-#include "taler_exchangedb_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler-donau-httpd_age-withdraw.h"
+#include "taler-donau-httpd_age-withdraw_reveal.h"
+#include "taler-donau-httpd_aml-decision.h"
+#include "taler-donau-httpd_auditors.h"
+#include "taler-donau-httpd_batch-deposit.h"
+#include "taler-donau-httpd_batch-withdraw.h"
+#include "taler-donau-httpd_config.h"
+#include "taler-donau-httpd_contract.h"
+#include "taler-donau-httpd_csr.h"
+#include "taler-donau-httpd_deposits_get.h"
+#include "taler-donau-httpd_extensions.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_kyc-check.h"
+#include "taler-donau-httpd_kyc-proof.h"
+#include "taler-donau-httpd_kyc-wallet.h"
+#include "taler-donau-httpd_link.h"
+#include "taler-donau-httpd_management.h"
+#include "taler-donau-httpd_melt.h"
+#include "taler-donau-httpd_metrics.h"
+#include "taler-donau-httpd_mhd.h"
+#include "taler-donau-httpd_purses_create.h"
+#include "taler-donau-httpd_purses_deposit.h"
+#include "taler-donau-httpd_purses_get.h"
+#include "taler-donau-httpd_purses_delete.h"
+#include "taler-donau-httpd_purses_merge.h"
+#include "taler-donau-httpd_recoup.h"
+#include "taler-donau-httpd_recoup-refresh.h"
+#include "taler-donau-httpd_refreshes_reveal.h"
+#include "taler-donau-httpd_refund.h"
+#include "taler-donau-httpd_reserves_attest.h"
+#include "taler-donau-httpd_reserves_close.h"
+#include "taler-donau-httpd_reserves_get.h"
+#include "taler-donau-httpd_reserves_get_attest.h"
+#include "taler-donau-httpd_reserves_history.h"
+#include "taler-donau-httpd_reserves_open.h"
+#include "taler-donau-httpd_reserves_purse.h"
+#include "taler-donau-httpd_reserves_status.h"
+#include "taler-donau-httpd_terms.h"
+#include "taler-donau-httpd_transfers_get.h"
+#include "taler-donau-httpd_withdraw.h"
+#include "taler_donaudb_lib.h"
+#include "taler_donaudb_plugin.h"
 #include "taler_extensions.h"
 #include <gnunet/gnunet_mhd_compat.h>
 
@@ -105,7 +105,7 @@ int TEH_allow_keys_timetravel;
 static int allow_address_reuse;
 
 /**
- * The exchange's configuration (global)
+ * The donau's configuration (global)
  */
 const struct GNUNET_CONFIGURATION_Handle *TEH_cfg;
 
@@ -134,7 +134,7 @@ struct GNUNET_TIME_Relative TEH_reserve_closing_delay;
 
 /**
  * Master public key (according to the
- * configuration in the exchange directory).  (global)
+ * configuration in the donau directory).  (global)
  */
 struct TALER_MasterPublicKeyP TEH_master_public_key;
 
@@ -146,7 +146,7 @@ struct TALER_AttributeEncryptionKeyP TEH_attribute_key;
 /**
  * Our DB plugin.  (global)
  */
-struct TALER_EXCHANGEDB_Plugin *TEH_plugin;
+struct TALER_DONAUDB_Plugin *TEH_plugin;
 
 /**
  * Absolute STEFAN parameter.
@@ -219,7 +219,7 @@ bool TEH_suicide;
 
 /**
  * Signature of the configuration of all enabled extensions,
- * signed by the exchange's offline master key with purpose
+ * signed by the donau's offline master key with purpose
  * TALER_SIGNATURE_MASTER_EXTENSION.
  */
 struct TALER_MasterSignatureP TEH_extensions_sig;
@@ -261,7 +261,7 @@ struct GNUNET_CURL_Context *TEH_curl_ctx;
  * Context for integrating #TEH_curl_ctx with the
  * GNUnet event loop.
  */
-static struct GNUNET_CURL_RescheduleContext *exchange_curl_rc;
+static struct GNUNET_CURL_RescheduleContext *donau_curl_rc;
 
 /**
  * Signature of functions that handle operations on coins.
@@ -290,7 +290,7 @@ r404 (struct MHD_Connection *connection,
 {
   return TALER_MHD_reply_with_error (connection,
                                      MHD_HTTP_NOT_FOUND,
-                                     
TALER_EC_EXCHANGE_GENERIC_OPERATION_UNKNOWN,
+                                     TALER_EC_DONAU_GENERIC_OPERATION_UNKNOWN,
                                      details);
 }
 
@@ -354,7 +354,7 @@ handle_post_coins (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_GENERIC_COINS_INVALID_COIN_PUB,
+                                       
TALER_EC_DONAU_GENERIC_COINS_INVALID_COIN_PUB,
                                        args[0]);
   }
   for (unsigned int i = 0; NULL != h[i].op; i++)
@@ -430,7 +430,7 @@ handle_post_aml (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED,
+                                       
TALER_EC_DONAU_GENERIC_AML_OFFICER_PUB_MALFORMED,
                                        args[0]);
   }
   for (unsigned int i = 0; NULL != h[i].op; i++)
@@ -505,7 +505,7 @@ handle_get_aml (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED,
+                                       
TALER_EC_DONAU_GENERIC_AML_OFFICER_PUB_MALFORMED,
                                        "argument missing");
   }
   if (GNUNET_OK !=
@@ -517,7 +517,7 @@ handle_get_aml (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED,
+                                       
TALER_EC_DONAU_GENERIC_AML_OFFICER_PUB_MALFORMED,
                                        args[0]);
   }
   if (NULL == args[1])
@@ -525,7 +525,7 @@ handle_get_aml (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_NOT_FOUND,
-                                       
TALER_EC_EXCHANGE_GENERIC_WRONG_NUMBER_OF_SEGMENTS,
+                                       
TALER_EC_DONAU_GENERIC_WRONG_NUMBER_OF_SEGMENTS,
                                        "AML GET operations must specify an 
operation identifier");
   }
   {
@@ -548,7 +548,7 @@ handle_get_aml (struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID,
+                                         
TALER_EC_DONAU_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID,
                                          sig_hdr);
     }
     TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_EDDSA]++;
@@ -571,7 +571,7 @@ handle_get_aml (struct TEH_RequestContext *rc,
     case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_FORBIDDEN,
-                                         
TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED,
+                                         
TALER_EC_DONAU_GENERIC_AML_OFFICER_ACCESS_DENIED,
                                          NULL);
     case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
       break;
@@ -800,7 +800,7 @@ handle_post_purses (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_GENERIC_PURSE_PUB_MALFORMED,
+                                       
TALER_EC_DONAU_GENERIC_PURSE_PUB_MALFORMED,
                                        args[0]);
   }
   for (unsigned int i = 0; NULL != h[i].op; i++)
@@ -829,7 +829,7 @@ check_suicide (void)
   if (req_max != cnt)
     return;
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "Restarting exchange service after %llu requests\n",
+              "Restarting donau service after %llu requests\n",
               cnt);
   /* Stop accepting new connections */
   fd = MHD_quiesce_daemon (mhd);
@@ -1030,7 +1030,7 @@ proceed_with_handler (struct TEH_RequestContext *rc,
       json_decref (root);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_NOT_FOUND,
-                                         
TALER_EC_EXCHANGE_GENERIC_WRONG_NUMBER_OF_SEGMENTS,
+                                         
TALER_EC_DONAU_GENERIC_WRONG_NUMBER_OF_SEGMENTS,
                                          emsg);
     }
     GNUNET_assert (NULL == args[i - 1]);
@@ -1174,7 +1174,7 @@ handle_post_management (struct TEH_RequestContext *rc,
   if (0 == strcmp (args[0],
                    "signkeys"))
   {
-    struct TALER_ExchangePublicKeyP exchange_pub;
+    struct TALER_DonauPublicKeyP donau_pub;
 
     if ( (NULL == args[0]) ||
          (NULL == args[1]) ||
@@ -1187,8 +1187,8 @@ handle_post_management (struct TEH_RequestContext *rc,
     if (GNUNET_OK !=
         GNUNET_STRINGS_string_to_data (args[1],
                                        strlen (args[1]),
-                                       &exchange_pub,
-                                       sizeof (exchange_pub)))
+                                       &donau_pub,
+                                       sizeof (donau_pub)))
     {
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
@@ -1197,7 +1197,7 @@ handle_post_management (struct TEH_RequestContext *rc,
                                          args[1]);
     }
     return TEH_handler_management_signkeys_EP_revoke (rc->connection,
-                                                      &exchange_pub,
+                                                      &donau_pub,
                                                       root);
   }
   /* FIXME-STYLE: all of the following can likely be nicely combined
@@ -1430,7 +1430,7 @@ handle_mhd_request (void *cls,
       .handler.get = TEH_handler_static_response,
       .mime_type = "text/plain",
       .data =
-        "Hello, I'm the Taler exchange. This HTTP server is not for humans.\n",
+        "Hello, I'm the Taler donau. This HTTP server is not for humans.\n",
       .response_code = MHD_HTTP_OK
     },
     /* AGPL licensing page, redirect to source. As per the AGPL-license, every
@@ -1471,7 +1471,7 @@ handle_mhd_request (void *cls,
       .method = MHD_HTTP_METHOD_GET,
       .handler.get = &TEH_handler_privacy
     },
-    /* Return key material and fundamental properties for this exchange */
+    /* Return key material and fundamental properties for this donau */
     {
       .url = "keys",
       .method = MHD_HTTP_METHOD_GET,
@@ -1867,13 +1867,13 @@ handle_mhd_request (void *cls,
 
 
 /**
- * Load configuration parameters for the exchange
+ * Load configuration parameters for the donau
  * server into the corresponding global variables.
  *
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-exchange_serve_process_config (void)
+donau_serve_process_config (void)
 {
   if (GNUNET_OK !=
       TALER_KYCLOGIC_kyc_init (TEH_cfg))
@@ -1882,7 +1882,7 @@ exchange_serve_process_config (void)
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_number (TEH_cfg,
-                                             "exchange",
+                                             "donau",
                                              "MAX_REQUESTS",
                                              &req_max))
   {
@@ -1890,12 +1890,12 @@ exchange_serve_process_config (void)
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_time (TEH_cfg,
-                                           "exchangedb",
+                                           "donaudb",
                                            "IDLE_RESERVE_EXPIRATION_TIME",
                                            &TEH_reserve_closing_delay))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchangedb",
+                               "donaudb",
                                "IDLE_RESERVE_EXPIRATION_TIME");
     /* use default */
     TEH_reserve_closing_delay
@@ -1905,24 +1905,24 @@ exchange_serve_process_config (void)
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_time (TEH_cfg,
-                                           "exchange",
+                                           "donau",
                                            "MAX_KEYS_CACHING",
                                            &TEH_max_keys_caching))
   {
     GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "MAX_KEYS_CACHING",
                                "valid relative time expected");
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (TEH_cfg,
-                                             "exchange",
+                                             "donau",
                                              "KYC_AML_TRIGGER",
                                              &TEH_kyc_aml_trigger))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "KYC_AML_TRIGGER");
     return GNUNET_SYSERR;
   }
@@ -1940,7 +1940,7 @@ exchange_serve_process_config (void)
 
     if (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_number (TEH_cfg,
-                                               "exchange",
+                                               "donau",
                                                "CURRENCY_FRACTION_DIGITS",
                                                &cfd))
       cfd = 0;
@@ -1956,17 +1956,17 @@ exchange_serve_process_config (void)
   }
   if (GNUNET_OK !=
       TALER_config_get_amount (TEH_cfg,
-                               "exchange",
+                               "donau",
                                "AML_THRESHOLD",
                                &TEH_aml_threshold))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Need amount in section `exchange' under `AML_THRESHOLD'\n");
+                "Need amount in section `donau' under `AML_THRESHOLD'\n");
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
       TALER_config_get_amount (TEH_cfg,
-                               "exchange",
+                               "donau",
                                "STEFAN_ABS",
                                &TEH_stefan_abs))
   {
@@ -1976,7 +1976,7 @@ exchange_serve_process_config (void)
   }
   if (GNUNET_OK !=
       TALER_config_get_amount (TEH_cfg,
-                               "exchange",
+                               "donau",
                                "STEFAN_LOG",
                                &TEH_stefan_log))
   {
@@ -1986,7 +1986,7 @@ exchange_serve_process_config (void)
   }
   if (GNUNET_OK !=
       TALER_config_get_amount (TEH_cfg,
-                               "exchange",
+                               "donau",
                                "STEFAN_LIN",
                                &TEH_stefan_lin))
   {
@@ -1999,35 +1999,35 @@ exchange_serve_process_config (void)
                    TEH_aml_threshold.currency))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Amount in section `exchange' under `AML_THRESHOLD' uses the 
wrong currency!\n");
+                "Amount in section `donau' under `AML_THRESHOLD' uses the 
wrong currency!\n");
     return GNUNET_SYSERR;
   }
   TEH_enable_rewards
     = GNUNET_CONFIGURATION_get_value_yesno (
         TEH_cfg,
-        "exchange",
+        "donau",
         "ENABLE_REWARDS");
   if (GNUNET_SYSERR == TEH_enable_rewards)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Need YES or NO in section `exchange' under 
`ENABLE_REWARDS'\n");
+                "Need YES or NO in section `donau' under `ENABLE_REWARDS'\n");
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (TEH_cfg,
-                                             "exchange",
+                                             "donau",
                                              "BASE_URL",
                                              &TEH_base_url))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL");
     return GNUNET_SYSERR;
   }
   if (! TALER_url_valid_charset (TEH_base_url))
   {
     GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL",
                                "invalid URL");
     return GNUNET_SYSERR;
@@ -2038,12 +2038,12 @@ exchange_serve_process_config (void)
 
     if (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_string (TEH_cfg,
-                                               "exchange",
+                                               "donau",
                                                "MASTER_PUBLIC_KEY",
                                                &master_public_key_str))
     {
       GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                                 "exchange",
+                                 "donau",
                                  "MASTER_PUBLIC_KEY");
       return GNUNET_SYSERR;
     }
@@ -2055,14 +2055,14 @@ exchange_serve_process_config (void)
                                                     eddsa_pub))
     {
       GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
-                                 "exchange",
+                                 "donau",
                                  "MASTER_PUBLIC_KEY",
                                  "invalid base32 encoding for a master public 
key");
       GNUNET_free (master_public_key_str);
       return GNUNET_SYSERR;
     }
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                "Launching exchange with public key `%s'...\n",
+                "Launching donau with public key `%s'...\n",
                 master_public_key_str);
     GNUNET_free (master_public_key_str);
   }
@@ -2072,12 +2072,12 @@ exchange_serve_process_config (void)
 
     if (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_string (TEH_cfg,
-                                               "exchange",
+                                               "donau",
                                                "ATTRIBUTE_ENCRYPTION_KEY",
                                                &attr_enc_key_str))
     {
       GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                                 "exchange",
+                                 "donau",
                                  "ATTRIBUTE_ENCRYPTION_KEY");
       return GNUNET_SYSERR;
     }
@@ -2089,7 +2089,7 @@ exchange_serve_process_config (void)
 
   for (unsigned int i = 0; i<MAX_DB_RETRIES; i++)
   {
-    TEH_plugin = TALER_EXCHANGEDB_plugin_load (TEH_cfg);
+    TEH_plugin = TALER_DONAUDB_plugin_load (TEH_cfg);
     if (NULL != TEH_plugin)
       break;
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -2124,7 +2124,7 @@ write_stats (void)
   if (NULL == benchmark_dir)
     return;
   GNUNET_asprintf (&s,
-                   "%s/taler-exchange-%llu.txt",
+                   "%s/taler-donau-%llu.txt",
                    benchmark_dir,
                    (unsigned long long) pid);
   fh = GNUNET_DISK_file_open (s,
@@ -2142,7 +2142,7 @@ write_stats (void)
                  getrusage (RUSAGE_SELF,
                             &usage));
   GNUNET_asprintf (&s,
-                   "time_exchange sys %llu user %llu\n",
+                   "time_donau sys %llu user %llu\n",
                    (unsigned long long) (usage.ru_stime.tv_sec * 1000 * 1000
                                          + usage.ru_stime.tv_usec),
                    (unsigned long long) (usage.ru_utime.tv_sec * 1000 * 1000
@@ -2233,7 +2233,7 @@ run_fake_client (void)
 
 
 /**
- * Run the exchange to serve a single request only, without threads.
+ * Run the donau to serve a single request only, without threads.
  *
  * @return #GNUNET_OK on success
  */
@@ -2348,7 +2348,7 @@ do_shutdown (void *cls)
   TEH_keys_finished ();
   if (NULL != TEH_plugin)
   {
-    TALER_EXCHANGEDB_plugin_unload (TEH_plugin);
+    TALER_DONAUDB_plugin_unload (TEH_plugin);
     TEH_plugin = NULL;
   }
   if (NULL != TEH_curl_ctx)
@@ -2356,10 +2356,10 @@ do_shutdown (void *cls)
     GNUNET_CURL_fini (TEH_curl_ctx);
     TEH_curl_ctx = NULL;
   }
-  if (NULL != exchange_curl_rc)
+  if (NULL != donau_curl_rc)
   {
-    GNUNET_CURL_gnunet_rc_destroy (exchange_curl_rc);
-    exchange_curl_rc = NULL;
+    GNUNET_CURL_gnunet_rc_destroy (donau_curl_rc);
+    donau_curl_rc = NULL;
   }
   TALER_TEMPLATING_done ();
 }
@@ -2393,14 +2393,14 @@ run (void *cls,
   TEH_cfg = config;
 
   if (GNUNET_OK !=
-      exchange_serve_process_config ())
+      donau_serve_process_config ())
   {
     global_ret = EXIT_NOTCONFIGURED;
     GNUNET_SCHEDULER_shutdown ();
     return;
   }
   if (GNUNET_OK !=
-      TALER_TEMPLATING_init ("exchange"))
+      TALER_TEMPLATING_init ("donau"))
   {
     global_ret = EXIT_FAILURE;
     GNUNET_SCHEDULER_shutdown ();
@@ -2438,7 +2438,7 @@ run (void *cls,
   TEH_load_terms (TEH_cfg);
   TEH_curl_ctx
     = GNUNET_CURL_init (&GNUNET_CURL_gnunet_scheduler_reschedule,
-                        &exchange_curl_rc);
+                        &donau_curl_rc);
   if (NULL == TEH_curl_ctx)
   {
     GNUNET_break (0);
@@ -2446,11 +2446,11 @@ run (void *cls,
     GNUNET_SCHEDULER_shutdown ();
     return;
   }
-  exchange_curl_rc = GNUNET_CURL_gnunet_rc_create (TEH_curl_ctx);
+  donau_curl_rc = GNUNET_CURL_gnunet_rc_create (TEH_curl_ctx);
   GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
                                  NULL);
   fh = TALER_MHD_bind (TEH_cfg,
-                       "exchange",
+                       "donau",
                        &serve_port);
   if ( (0 == serve_port) &&
        (-1 == fh) )
@@ -2504,7 +2504,7 @@ run (void *cls,
 
 
 /**
- * The main function of the taler-exchange-httpd server ("the exchange").
+ * The main function of the taler-donau-httpd server ("the donau").
  *
  * @param argc number of arguments from the command line
  * @param argv command line arguments
@@ -2546,15 +2546,15 @@ main (int argc,
                                    &input_filename),
 #endif
     GNUNET_GETOPT_option_help (
-      "HTTP server providing a RESTful API to access a Taler exchange"),
+      "HTTP server providing a RESTful API to access a Taler donau"),
     GNUNET_GETOPT_OPTION_END
   };
   enum GNUNET_GenericReturnValue ret;
 
   TALER_OS_init ();
   ret = GNUNET_PROGRAM_run (argc, argv,
-                            "taler-exchange-httpd",
-                            "Taler exchange HTTP service",
+                            "taler-donau-httpd",
+                            "Taler donau HTTP service",
                             options,
                             &run, NULL);
   if (GNUNET_SYSERR == ret)
@@ -2565,4 +2565,4 @@ main (int argc,
 }
 
 
-/* end of taler-exchange-httpd.c */
+/* end of taler-donau-httpd.c */
diff --git a/src/exchange/taler-exchange-httpd.h b/src/donau/taler-donau-httpd.h
similarity index 93%
rename from src/exchange/taler-exchange-httpd.h
rename to src/donau/taler-donau-httpd.h
index 9e18f9e..397c2c2 100644
--- a/src/exchange/taler-exchange-httpd.h
+++ b/src/donau/taler-donau-httpd.h
@@ -7,21 +7,21 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd.h
- * @brief Global declarations for the exchange
+ * @file taler-donau-httpd.h
+ * @brief Global declarations for the donau
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_H
-#define TALER_EXCHANGE_HTTPD_H
+#ifndef TALER_DONAU_HTTPD_H
+#define TALER_DONAU_HTTPD_H
 
 #include <microhttpd.h>
 #include "taler_json_lib.h"
@@ -42,14 +42,14 @@ extern struct GNUNET_TIME_Relative TEH_max_keys_caching;
 extern struct GNUNET_TIME_Relative TEH_reserve_closing_delay;
 
 /**
- * The exchange's configuration.
+ * The donau's configuration.
  */
 extern const struct GNUNET_CONFIGURATION_Handle *TEH_cfg;
 
 /**
- * Main directory with exchange data.
+ * Main directory with donau data.
  */
-extern char *TEH_exchange_directory;
+extern char *TEH_donau_directory;
 
 /**
  * -I command-line flag given?
@@ -83,7 +83,7 @@ extern bool TEH_suicide;
 
 /**
  * Master public key (according to the
- * configuration in the exchange directory).
+ * configuration in the donau directory).
  */
 extern struct TALER_MasterPublicKeyP TEH_master_public_key;
 
@@ -95,7 +95,7 @@ extern struct TALER_AttributeEncryptionKeyP TEH_attribute_key;
 /**
  * Our DB plugin.
  */
-extern struct TALER_EXCHANGEDB_Plugin *TEH_plugin;
+extern struct TALER_DONAUDB_Plugin *TEH_plugin;
 
 /**
  * Absolute STEFAN parameter.
@@ -163,7 +163,7 @@ struct TEH_RequestHandler;
 
 
 /**
- * @brief Context in which the exchange is processing
+ * @brief Context in which the donau is processing
  *        all requests
  */
 struct TEH_RequestContext
diff --git a/src/exchange/taler-exchange-httpd_batch-deposit.c 
b/src/donau/taler-donau-httpd_batch-deposit.c
similarity index 87%
rename from src/exchange/taler-exchange-httpd_batch-deposit.c
rename to src/donau/taler-donau-httpd_batch-deposit.c
index 6bf70ef..e982bd9 100644
--- a/src/exchange/taler-exchange-httpd_batch-deposit.c
+++ b/src/donau/taler-donau-httpd_batch-deposit.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_batch-deposit.c
+ * @file taler-donau-httpd_batch-deposit.c
  * @brief Handle /batch-deposit requests; parses the POST and JSON and
  *        verifies the coin signatures before handing things off
  *        to the database.
@@ -30,10 +30,10 @@
 #include <pthread.h>
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_batch-deposit.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler_exchangedb_lib.h"
-#include "taler-exchange-httpd_keys.h"
+#include "taler-donau-httpd_batch-deposit.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler_donaudb_lib.h"
+#include "taler-donau-httpd_keys.h"
 
 
 /**
@@ -52,12 +52,12 @@ struct BatchDepositContext
    * Possibly updated by the transaction if the
    * request is idempotent (was repeated).
    */
-  struct GNUNET_TIME_Timestamp exchange_timestamp;
+  struct GNUNET_TIME_Timestamp donau_timestamp;
 
   /**
    * Details about the batch deposit operation.
    */
-  struct TALER_EXCHANGEDB_BatchDeposit bd;
+  struct TALER_DONAUDB_BatchDeposit bd;
 
   /**
    * Additional details for policy extension relevant for this
@@ -66,9 +66,9 @@ struct BatchDepositContext
   json_t *policy_json;
 
   /**
-   * Hash over the merchant's payto://-URI with the wire salt.
+   * Hash over the charity's payto://-URI with the wire salt.
    */
-  struct TALER_MerchantWireHashP h_wire;
+  struct TALER_CharityWireHashP h_wire;
 
   /**
    * If @e policy_json was present, the corresponding policy extension
@@ -94,7 +94,7 @@ struct BatchDepositContext
 /**
  * Send confirmation of batch deposit success to client.  This function will
  * create a signed message affirming the given information and return it to
- * the client.  By this, the exchange affirms that the coins had sufficient
+ * the client.  By this, the donau affirms that the coins had sufficient
  * (residual) value for the specified transaction and that it will execute the
  * requested batch deposit operation with the given wiring details.
  *
@@ -107,19 +107,19 @@ reply_batch_deposit_success (
   struct MHD_Connection *connection,
   const struct BatchDepositContext *dc)
 {
-  const struct TALER_EXCHANGEDB_BatchDeposit *bd = &dc->bd;
+  const struct TALER_DONAUDB_BatchDeposit *bd = &dc->bd;
   json_t *arr;
-  struct TALER_ExchangePublicKeyP pub;
+  struct TALER_DonauPublicKeyP pub;
 
 again:
   arr = json_array ();
   GNUNET_assert (NULL != arr);
   for (unsigned int i = 0; i<bd->num_cdis; i++)
   {
-    const struct TALER_EXCHANGEDB_CoinDepositInformation *cdi
+    const struct TALER_DONAUDB_CoinDepositInformation *cdi
       = &bd->cdis[i];
-    struct TALER_ExchangePublicKeyP pubi;
-    struct TALER_ExchangeSignatureP sig;
+    struct TALER_DonauPublicKeyP pubi;
+    struct TALER_DonauSignatureP sig;
     enum TALER_ErrorCode ec;
     struct TALER_Amount amount_without_fee;
 
@@ -128,17 +128,17 @@ again:
                                           &cdi->amount_with_fee,
                                           &dc->deposit_fees[i]));
     if (TALER_EC_NONE !=
-        (ec = TALER_exchange_online_deposit_confirmation_sign (
-           &TEH_keys_exchange_sign_,
+        (ec = TALER_donau_online_deposit_confirmation_sign (
+           &TEH_keys_donau_sign_,
            &bd->h_contract_terms,
            &dc->h_wire,
            NULL != dc->policy_json ? &dc->h_policy : NULL,
-           dc->exchange_timestamp,
+           dc->donau_timestamp,
            bd->wire_deadline,
            bd->refund_deadline,
            &amount_without_fee,
            &cdi->coin.coin_pub,
-           &dc->bd.merchant_pub,
+           &dc->bd.charity_pub,
            &pubi,
            &sig)))
     {
@@ -156,7 +156,7 @@ again:
       /* note: in the future, maybe have batch sign API to avoid having to
          handle key rollover... */
       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                  "Exchange public key changed during batch deposit, trying 
again\n");
+                  "Donau public key changed during batch deposit, trying 
again\n");
       json_decref (arr);
       goto again;
     }
@@ -165,17 +165,17 @@ again:
       json_array_append_new (arr,
                              GNUNET_JSON_PACK (
                                GNUNET_JSON_pack_data_auto (
-                                 "exchange_sig",
+                                 "donau_sig",
                                  &sig))));
   }
   return TALER_MHD_REPLY_JSON_PACK (
     connection,
     MHD_HTTP_OK,
-    GNUNET_JSON_pack_timestamp ("exchange_timestamp",
-                                dc->exchange_timestamp),
-    GNUNET_JSON_pack_data_auto ("exchange_pub",
+    GNUNET_JSON_pack_timestamp ("donau_timestamp",
+                                dc->donau_timestamp),
+    GNUNET_JSON_pack_data_auto ("donau_pub",
                                 &pub),
-    GNUNET_JSON_pack_array_steal ("exchange_sigs",
+    GNUNET_JSON_pack_array_steal ("donau_sigs",
                                   arr));
 }
 
@@ -199,7 +199,7 @@ batch_deposit_transaction (void *cls,
                            MHD_RESULT *mhd_ret)
 {
   struct BatchDepositContext *dc = cls;
-  const struct TALER_EXCHANGEDB_BatchDeposit *bd = &dc->bd;
+  const struct TALER_DONAUDB_BatchDeposit *bd = &dc->bd;
   enum GNUNET_DB_QueryStatus qs = GNUNET_SYSERR;
   uint32_t bad_balance_coin_index = UINT32_MAX;
   bool balance_ok;
@@ -224,7 +224,7 @@ batch_deposit_transaction (void *cls,
   /* FIXME: replace by batch insert! */
   for (unsigned int i = 0; i<bd->num_cdis; i++)
   {
-    const struct TALER_EXCHANGEDB_CoinDepositInformation *cdi
+    const struct TALER_DONAUDB_CoinDepositInformation *cdi
       = &bd->cdis[i];
     uint64_t known_coin_id;
 
@@ -243,7 +243,7 @@ batch_deposit_transaction (void *cls,
   qs = TEH_plugin->do_deposit (
     TEH_plugin->cls,
     bd,
-    &dc->exchange_timestamp,
+    &dc->donau_timestamp,
     &balance_ok,
     &bad_balance_coin_index,
     &in_conflict);
@@ -271,7 +271,7 @@ batch_deposit_transaction (void *cls,
     *mhd_ret
       = TEH_RESPONSE_reply_coin_insufficient_funds (
           connection,
-          TALER_EC_EXCHANGE_DEPOSIT_CONFLICTING_CONTRACT,
+          TALER_EC_DONAU_DEPOSIT_CONFLICTING_CONTRACT,
           &bd->cdis[0 /* SEE FIXME above! */].coin.denom_pub_hash,
           &bd->cdis[0 /* SEE FIXME above! */].coin.coin_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -285,7 +285,7 @@ batch_deposit_transaction (void *cls,
     *mhd_ret
       = TEH_RESPONSE_reply_coin_insufficient_funds (
           connection,
-          TALER_EC_EXCHANGE_GENERIC_INSUFFICIENT_FUNDS,
+          TALER_EC_DONAU_GENERIC_INSUFFICIENT_FUNDS,
           &bd->cdis[bad_balance_coin_index].coin.denom_pub_hash,
           &bd->cdis[bad_balance_coin_index].coin.coin_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -312,10 +312,10 @@ static enum GNUNET_GenericReturnValue
 parse_coin (struct MHD_Connection *connection,
             const struct BatchDepositContext *dc,
             json_t *jcoin,
-            struct TALER_EXCHANGEDB_CoinDepositInformation *cdi,
+            struct TALER_DONAUDB_CoinDepositInformation *cdi,
             struct TALER_Amount *deposit_fee)
 {
-  const struct TALER_EXCHANGEDB_BatchDeposit *bd = &dc->bd;
+  const struct TALER_DONAUDB_BatchDeposit *bd = &dc->bd;
   struct GNUNET_JSON_Specification spec[] = {
     TALER_JSON_spec_amount ("contribution",
                             TEH_currency,
@@ -362,7 +362,7 @@ parse_coin (struct MHD_Connection *connection,
       return (MHD_YES ==
               TALER_MHD_reply_with_error (connection,
                                           MHD_HTTP_BAD_REQUEST,
-                                          
TALER_EC_EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE,
+                                          
TALER_EC_DONAU_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE,
                                           NULL))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -375,7 +375,7 @@ parse_coin (struct MHD_Connection *connection,
               TEH_RESPONSE_reply_expired_denom_pub_hash (
                 connection,
                 &cdi->coin.denom_pub_hash,
-                TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED,
+                TALER_EC_DONAU_GENERIC_DENOMINATION_EXPIRED,
                 "DEPOSIT"))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -388,7 +388,7 @@ parse_coin (struct MHD_Connection *connection,
               TEH_RESPONSE_reply_expired_denom_pub_hash (
                 connection,
                 &cdi->coin.denom_pub_hash,
-                TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
+                TALER_EC_DONAU_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
                 "DEPOSIT"))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -401,7 +401,7 @@ parse_coin (struct MHD_Connection *connection,
               TEH_RESPONSE_reply_expired_denom_pub_hash (
                 connection,
                 &cdi->coin.denom_pub_hash,
-                TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED,
+                TALER_EC_DONAU_GENERIC_DENOMINATION_REVOKED,
                 "DEPOSIT"))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -413,7 +413,7 @@ parse_coin (struct MHD_Connection *connection,
       return (MHD_YES ==
               TALER_MHD_reply_with_error (connection,
                                           MHD_HTTP_BAD_REQUEST,
-                                          
TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH,
+                                          
TALER_EC_DONAU_GENERIC_CIPHER_MISMATCH,
                                           NULL))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -441,7 +441,7 @@ parse_coin (struct MHD_Connection *connection,
       return (MHD_YES ==
               TALER_MHD_reply_with_error (connection,
                                           MHD_HTTP_FORBIDDEN,
-                                          
TALER_EC_EXCHANGE_DENOMINATION_SIGNATURE_INVALID,
+                                          
TALER_EC_DONAU_DENOMINATION_SIGNATURE_INVALID,
                                           NULL))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -455,7 +455,7 @@ parse_coin (struct MHD_Connection *connection,
     return (MHD_YES ==
             TALER_MHD_reply_with_error (connection,
                                         MHD_HTTP_BAD_REQUEST,
-                                        
TALER_EC_EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE,
+                                        
TALER_EC_DONAU_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE,
                                         NULL))
         ? GNUNET_NO
         : GNUNET_SYSERR;
@@ -475,7 +475,7 @@ parse_coin (struct MHD_Connection *connection,
         NULL != dc->policy_json ? &dc->h_policy : NULL,
         &cdi->coin.denom_pub_hash,
         bd->wallet_timestamp,
-        &bd->merchant_pub,
+        &bd->charity_pub,
         bd->refund_deadline,
         &cdi->coin.coin_pub,
         &cdi->csig))
@@ -485,7 +485,7 @@ parse_coin (struct MHD_Connection *connection,
     return (MHD_YES ==
             TALER_MHD_reply_with_error (connection,
                                         MHD_HTTP_FORBIDDEN,
-                                        
TALER_EC_EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID,
+                                        
TALER_EC_DONAU_DEPOSIT_COIN_SIGNATURE_INVALID,
                                         TALER_B2S (&cdi->coin.coin_pub)))
       ? GNUNET_NO
       : GNUNET_SYSERR;
@@ -501,16 +501,16 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
 {
   struct MHD_Connection *connection = rc->connection;
   struct BatchDepositContext dc = { 0 };
-  struct TALER_EXCHANGEDB_BatchDeposit *bd = &dc.bd;
+  struct TALER_DONAUDB_BatchDeposit *bd = &dc.bd;
   const json_t *coins;
   bool no_refund_deadline = true;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_string ("merchant_payto_uri",
+    GNUNET_JSON_spec_string ("charity_payto_uri",
                              &bd->receiver_wire_account),
     GNUNET_JSON_spec_fixed_auto ("wire_salt",
                                  &bd->wire_salt),
-    GNUNET_JSON_spec_fixed_auto ("merchant_pub",
-                                 &bd->merchant_pub),
+    GNUNET_JSON_spec_fixed_auto ("charity_pub",
+                                 &bd->charity_pub),
     GNUNET_JSON_spec_fixed_auto ("h_contract_terms",
                                  &bd->h_contract_terms),
     GNUNET_JSON_spec_mark_optional (
@@ -550,7 +550,7 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
     return MHD_YES;   /* failure */
   }
 
-  /* validate merchant's wire details (as far as we can) */
+  /* validate charity's wire details (as far as we can) */
   {
     char *emsg;
 
@@ -577,7 +577,7 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
     GNUNET_JSON_parse_free (spec);
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE,
+                                       
TALER_EC_DONAU_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE,
                                        NULL);
   }
   if (GNUNET_TIME_absolute_is_never (bd->wire_deadline.abs_time))
@@ -586,12 +586,12 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
     GNUNET_JSON_parse_free (spec);
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_DEPOSIT_WIRE_DEADLINE_IS_NEVER,
+                                       
TALER_EC_DONAU_DEPOSIT_WIRE_DEADLINE_IS_NEVER,
                                        NULL);
   }
   TALER_payto_hash (bd->receiver_wire_account,
                     &bd->wire_target_h_payto);
-  TALER_merchant_wire_signature_hash (bd->receiver_wire_account,
+  TALER_charity_wire_signature_hash (bd->receiver_wire_account,
                                       &bd->wire_salt,
                                       &dc.h_wire);
 
@@ -607,7 +607,7 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
           &error_hint))
       return TALER_MHD_reply_with_error (connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED,
+                                         
TALER_EC_DONAU_DEPOSITS_POLICY_NOT_ACCEPTED,
                                          error_hint);
 
     TALER_deposit_policy_hash (dc.policy_json,
@@ -635,7 +635,7 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
   }
 
   {
-    struct TALER_EXCHANGEDB_CoinDepositInformation cdis[
+    struct TALER_DONAUDB_CoinDepositInformation cdis[
       GNUNET_NZL (bd->num_cdis)];
     struct TALER_Amount deposit_fees[GNUNET_NZL (bd->num_cdis)];
 
@@ -680,7 +680,7 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
       }
     }
 
-    dc.exchange_timestamp = GNUNET_TIME_timestamp_get ();
+    dc.donau_timestamp = GNUNET_TIME_timestamp_get ();
     if (GNUNET_SYSERR ==
         TEH_plugin->preflight (TEH_plugin->cls))
     {
@@ -726,4 +726,4 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_batch-deposit.c */
+/* end of taler-donau-httpd_batch-deposit.c */
diff --git a/src/exchange/taler-exchange-httpd_batch-deposit.h 
b/src/donau/taler-donau-httpd_batch-deposit.h
similarity index 85%
rename from src/exchange/taler-exchange-httpd_batch-deposit.h
rename to src/donau/taler-donau-httpd_batch-deposit.h
index 187fb9f..dd17417 100644
--- a/src/exchange/taler-exchange-httpd_batch-deposit.h
+++ b/src/donau/taler-donau-httpd_batch-deposit.h
@@ -7,25 +7,25 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_batch-deposit.h
+ * @file taler-donau-httpd_batch-deposit.h
  * @brief Handle /batch-deposit requests
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_BATCH_DEPOSIT_H
-#define TALER_EXCHANGE_HTTPD_BATCH_DEPOSIT_H
+#ifndef TALER_DONAU_HTTPD_BATCH_DEPOSIT_H
+#define TALER_DONAU_HTTPD_BATCH_DEPOSIT_H
 
 #include <gnunet/gnunet_util_lib.h>
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_batch-withdraw.c 
b/src/donau/taler-donau-httpd_batch-withdraw.c
similarity index 94%
rename from src/exchange/taler-exchange-httpd_batch-withdraw.c
rename to src/donau/taler-donau-httpd_batch-withdraw.c
index 38a7f43..4dd37a7 100644
--- a/src/exchange/taler-exchange-httpd_batch-withdraw.c
+++ b/src/donau/taler-donau-httpd_batch-withdraw.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty
-  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  of CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   See the GNU Affero General Public License for more details.
 
   You should have received a copy of the GNU Affero General
@@ -17,7 +17,7 @@
   see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_batch-withdraw.c
+ * @file taler-donau-httpd_batch-withdraw.c
  * @brief Handle /reserves/$RESERVE_PUB/batch-withdraw requests
  * @author Florian Dold
  * @author Benedikt Mueller
@@ -26,13 +26,13 @@
 #include "platform.h"
 #include <gnunet/gnunet_util_lib.h>
 #include <jansson.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 #include "taler_json_lib.h"
 #include "taler_kyclogic_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_batch-withdraw.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler-exchange-httpd_keys.h"
+#include "taler-donau-httpd_batch-withdraw.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
 #include "taler_util.h"
 
 
@@ -43,12 +43,12 @@ struct PlanchetContext
 {
 
   /**
-   * Hash of the (blinded) message to be signed by the Exchange.
+   * Hash of the (blinded) message to be signed by the Donau.
    */
   struct TALER_BlindedCoinHashP h_coin_envelope;
 
   /**
-   * Value of the coin being exchanged (matching the denomination key)
+   * Value of the coin being donaud (matching the denomination key)
    * plus the transaction fee.  We include this in what is being
    * signed so that we can verify a reserve's remaining total balance
    * without needing to access the respective denomination key
@@ -64,7 +64,7 @@ struct PlanchetContext
   /**
    * Set to the resulting signed coin data to be returned to the client.
    */
-  struct TALER_EXCHANGEDB_CollectableBlindcoin collectable;
+  struct TALER_DONAUDB_CollectableBlindcoin collectable;
 
 };
 
@@ -87,7 +87,7 @@ struct BatchWithdrawContext
   /**
    * KYC status of the reserve used for the operation.
    */
-  struct TALER_EXCHANGEDB_KycStatus kyc;
+  struct TALER_DONAUDB_KycStatus kyc;
 
   /**
    * Array of @e planchets_length planchets we are processing.
@@ -141,7 +141,7 @@ struct BatchWithdrawContext
 static void
 batch_withdraw_amount_cb (void *cls,
                           struct GNUNET_TIME_Absolute limit,
-                          TALER_EXCHANGEDB_KycAmountCallback cb,
+                          TALER_DONAUDB_KycAmountCallback cb,
                           void *cb_cls)
 {
   struct BatchWithdrawContext *wc = cls;
@@ -495,7 +495,7 @@ batch_withdraw_transaction (void *cls,
   {
     *mhd_ret = TALER_MHD_reply_with_error (connection,
                                            MHD_HTTP_NOT_FOUND,
-                                           
TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN,
+                                           
TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN,
                                            NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
@@ -520,7 +520,7 @@ batch_withdraw_transaction (void *cls,
     TEH_plugin->rollback (TEH_plugin->cls);
     *mhd_ret = TEH_RESPONSE_reply_reserve_insufficient_balance (
       connection,
-      TALER_EC_EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS,
+      TALER_EC_DONAU_WITHDRAW_INSUFFICIENT_FUNDS,
       &wc->batch_total,
       wc->reserve_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -577,7 +577,7 @@ batch_withdraw_transaction (void *cls,
                     "Idempotent coin in batch, not allowed. Aborting.\n");
         *mhd_ret = TALER_MHD_reply_with_error (connection,
                                                MHD_HTTP_CONFLICT,
-                                               
TALER_EC_EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET,
+                                               
TALER_EC_DONAU_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET,
                                                NULL);
       }
       return GNUNET_DB_STATUS_HARD_ERROR;
@@ -587,7 +587,7 @@ batch_withdraw_transaction (void *cls,
       GNUNET_break_op (0);
       *mhd_ret = TALER_MHD_reply_with_error (connection,
                                              MHD_HTTP_BAD_REQUEST,
-                                             
TALER_EC_EXCHANGE_WITHDRAW_NONCE_REUSE,
+                                             
TALER_EC_DONAU_WITHDRAW_NONCE_REUSE,
                                              NULL);
       return GNUNET_DB_STATUS_HARD_ERROR;
     }
@@ -729,7 +729,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
     {
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                         
TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                         TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                          NULL);
     }
     return mret;
@@ -765,7 +765,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
         return TEH_RESPONSE_reply_expired_denom_pub_hash (
           rc->connection,
           &pc->collectable.denom_pub_hash,
-          TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED,
+          TALER_EC_DONAU_GENERIC_DENOMINATION_EXPIRED,
           "WITHDRAW");
       }
       return mret;
@@ -777,7 +777,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
       return TEH_RESPONSE_reply_expired_denom_pub_hash (
         rc->connection,
         &pc->collectable.denom_pub_hash,
-        TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
+        TALER_EC_DONAU_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
         "WITHDRAW");
     }
     if (dk->recoup_possible)
@@ -789,7 +789,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
         return TEH_RESPONSE_reply_expired_denom_pub_hash (
           rc->connection,
           &pc->collectable.denom_pub_hash,
-          TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED,
+          TALER_EC_DONAU_GENERIC_DENOMINATION_REVOKED,
           "WITHDRAW");
       }
       return mret;
@@ -800,7 +800,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH,
+                                         
TALER_EC_DONAU_GENERIC_CIPHER_MISMATCH,
                                          NULL);
     }
     if (0 >
@@ -811,7 +811,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
       GNUNET_break (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                         
TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW,
+                                         
TALER_EC_DONAU_WITHDRAW_AMOUNT_FEE_OVERFLOW,
                                          NULL);
     }
     if (0 >
@@ -822,7 +822,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
       GNUNET_break (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                         
TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW,
+                                         
TALER_EC_DONAU_WITHDRAW_AMOUNT_FEE_OVERFLOW,
                                          NULL);
     }
 
@@ -848,7 +848,7 @@ parse_planchets (const struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_FORBIDDEN,
-                                         
TALER_EC_EXCHANGE_WITHDRAW_RESERVE_SIGNATURE_INVALID,
+                                         
TALER_EC_DONAU_WITHDRAW_RESERVE_SIGNATURE_INVALID,
                                          NULL);
     }
   }
@@ -927,4 +927,4 @@ TEH_handler_batch_withdraw (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_batch-withdraw.c */
+/* end of taler-donau-httpd_batch-withdraw.c */
diff --git a/src/exchange/taler-exchange-httpd_batch-withdraw.h 
b/src/donau/taler-donau-httpd_batch-withdraw.h
similarity index 85%
rename from src/exchange/taler-exchange-httpd_batch-withdraw.h
rename to src/donau/taler-donau-httpd_batch-withdraw.h
index dfc6e5a..d67808b 100644
--- a/src/exchange/taler-exchange-httpd_batch-withdraw.h
+++ b/src/donau/taler-donau-httpd_batch-withdraw.h
@@ -7,24 +7,24 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_batch-withdraw.h
+ * @file taler-donau-httpd_batch-withdraw.h
  * @brief Handle /reserve/batch-withdraw requests
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_BATCH_WITHDRAW_H
-#define TALER_EXCHANGE_HTTPD_BATCH_WITHDRAW_H
+#ifndef TALER_DONAU_HTTPD_BATCH_WITHDRAW_H
+#define TALER_DONAU_HTTPD_BATCH_WITHDRAW_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_common_deposit.c 
b/src/donau/taler-donau-httpd_common_deposit.c
similarity index 88%
rename from src/exchange/taler-exchange-httpd_common_deposit.c
rename to src/donau/taler-donau-httpd_common_deposit.c
index 0c91f0b..e8fed71 100644
--- a/src/exchange/taler-exchange-httpd_common_deposit.c
+++ b/src/donau/taler-donau-httpd_common_deposit.c
@@ -7,21 +7,21 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_common_deposit.c
+ * @file taler-donau-httpd_common_deposit.c
  * @brief shared logic for handling deposited coins
  * @author Christian Grothoff
  */
 #include "platform.h"
-#include "taler-exchange-httpd_common_deposit.h"
-#include "taler-exchange-httpd.h"
-#include "taler-exchange-httpd_keys.h"
+#include "taler-donau-httpd_common_deposit.h"
+#include "taler-donau-httpd.h"
+#include "taler-donau-httpd_keys.h"
 
 
 enum GNUNET_GenericReturnValue
@@ -95,7 +95,7 @@ TEH_common_purse_deposit_parse_coin (
       return (MHD_YES ==
               TALER_MHD_reply_with_error (connection,
                                           MHD_HTTP_BAD_REQUEST,
-                                          
TALER_EC_EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE,
+                                          
TALER_EC_DONAU_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE,
                                           NULL))
              ? GNUNET_NO : GNUNET_SYSERR;
     }
@@ -107,7 +107,7 @@ TEH_common_purse_deposit_parse_coin (
               TEH_RESPONSE_reply_expired_denom_pub_hash (
                 connection,
                 &coin->cpi.denom_pub_hash,
-                TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED,
+                TALER_EC_DONAU_GENERIC_DENOMINATION_EXPIRED,
                 "PURSE CREATE"))
              ? GNUNET_NO : GNUNET_SYSERR;
     }
@@ -119,7 +119,7 @@ TEH_common_purse_deposit_parse_coin (
               TEH_RESPONSE_reply_expired_denom_pub_hash (
                 connection,
                 &coin->cpi.denom_pub_hash,
-                TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
+                TALER_EC_DONAU_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
                 "PURSE CREATE"))
              ? GNUNET_NO : GNUNET_SYSERR;
     }
@@ -131,7 +131,7 @@ TEH_common_purse_deposit_parse_coin (
               TEH_RESPONSE_reply_expired_denom_pub_hash (
                 connection,
                 &coin->cpi.denom_pub_hash,
-                TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED,
+                TALER_EC_DONAU_GENERIC_DENOMINATION_REVOKED,
                 "PURSE CREATE"))
              ? GNUNET_NO : GNUNET_SYSERR;
     }
@@ -142,7 +142,7 @@ TEH_common_purse_deposit_parse_coin (
       return (MHD_YES ==
               TALER_MHD_reply_with_error (connection,
                                           MHD_HTTP_BAD_REQUEST,
-                                          
TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH,
+                                          
TALER_EC_DONAU_GENERIC_CIPHER_MISMATCH,
                                           NULL))
              ? GNUNET_NO : GNUNET_SYSERR;
     }
@@ -155,7 +155,7 @@ TEH_common_purse_deposit_parse_coin (
       GNUNET_JSON_parse_free (spec);
       return TALER_MHD_reply_with_error (connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE,
+                                         
TALER_EC_DONAU_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE,
                                          NULL);
     }
     GNUNET_assert (0 <=
@@ -184,7 +184,7 @@ TEH_common_purse_deposit_parse_coin (
       return (MHD_YES ==
               TALER_MHD_reply_with_error (connection,
                                           MHD_HTTP_FORBIDDEN,
-                                          
TALER_EC_EXCHANGE_DENOMINATION_SIGNATURE_INVALID,
+                                          
TALER_EC_DONAU_DENOMINATION_SIGNATURE_INVALID,
                                           NULL))
              ? GNUNET_NO : GNUNET_SYSERR;
     }
@@ -214,7 +214,7 @@ TEH_common_deposit_check_purse_deposit (
     return (MHD_YES ==
             TALER_MHD_reply_with_error (connection,
                                         MHD_HTTP_FORBIDDEN,
-                                        
TALER_EC_EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID,
+                                        
TALER_EC_DONAU_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID,
                                         TEH_base_url))
            ? GNUNET_NO
            : GNUNET_SYSERR;
@@ -229,7 +229,7 @@ TEH_common_deposit_check_purse_deposit (
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT,
+                                       
TALER_EC_DONAU_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT,
                                        "mismatch of attest and 
age_commitment");
   }
 
@@ -245,7 +245,7 @@ TEH_common_deposit_check_purse_deposit (
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       
TALER_EC_EXCHANGE_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE,
+                                       
TALER_EC_DONAU_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE,
                                        "invalid attest for minimum age");
   }
   return GNUNET_OK;
diff --git a/src/exchange/taler-exchange-httpd_common_deposit.h 
b/src/donau/taler-donau-httpd_common_deposit.h
similarity index 93%
rename from src/exchange/taler-exchange-httpd_common_deposit.h
rename to src/donau/taler-donau-httpd_common_deposit.h
index 10fd7e8..cf1b5f9 100644
--- a/src/exchange/taler-exchange-httpd_common_deposit.h
+++ b/src/donau/taler-donau-httpd_common_deposit.h
@@ -7,19 +7,19 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_common_deposit.h
+ * @file taler-donau-httpd_common_deposit.h
  * @brief shared logic for handling deposited coins
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_COMMON_DEPOSIT_H
-#define TALER_EXCHANGE_HTTPD_COMMON_DEPOSIT_H
+#ifndef TALER_DONAU_HTTPD_COMMON_DEPOSIT_H
+#define TALER_DONAU_HTTPD_COMMON_DEPOSIT_H
 
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
diff --git a/src/exchange/taler-exchange-httpd_config.c 
b/src/donau/taler-donau-httpd_config.c
similarity index 83%
rename from src/exchange/taler-exchange-httpd_config.c
rename to src/donau/taler-donau-httpd_config.c
index da5bf96..9034d87 100644
--- a/src/exchange/taler-exchange-httpd_config.c
+++ b/src/donau/taler-donau-httpd_config.c
@@ -7,21 +7,21 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_config.c
+ * @file taler-donau-httpd_config.c
  * @brief Handle /config requests
  * @author Christian Grothoff
  */
 #include "platform.h"
 #include <gnunet/gnunet_json_lib.h>
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_config.h"
+#include "taler-donau-httpd_config.h"
 #include "taler_json_lib.h"
 #include "taler_kyclogic_lib.h"
 #include "taler_mhd_lib.h"
@@ -42,9 +42,9 @@ TEH_handler_config (struct TEH_RequestContext *rc,
       GNUNET_JSON_pack_string ("currency",
                                TEH_currency),
       GNUNET_JSON_pack_string ("name",
-                               "taler-exchange"),
+                               "taler-donau"),
       GNUNET_JSON_pack_string ("version",
-                               EXCHANGE_PROTOCOL_VERSION));
+                               DONAU_PROTOCOL_VERSION));
   }
   return MHD_queue_response (rc->connection,
                              MHD_HTTP_OK,
@@ -52,4 +52,4 @@ TEH_handler_config (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_config.c */
+/* end of taler-donau-httpd_config.c */
diff --git a/src/exchange/taler-exchange-httpd_config.h 
b/src/donau/taler-donau-httpd_config.h
similarity index 84%
rename from src/exchange/taler-exchange-httpd_config.h
rename to src/donau/taler-donau-httpd_config.h
index ea45517..1c8f756 100644
--- a/src/exchange/taler-exchange-httpd_config.h
+++ b/src/donau/taler-donau-httpd_config.h
@@ -7,21 +7,21 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of EXCHANGEABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of DONAUABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_config.h
+ * @file taler-donau-httpd_config.h
  * @brief headers for /config handler
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_CONFIG_H
-#define TALER_EXCHANGE_HTTPD_CONFIG_H
+#ifndef TALER_DONAU_HTTPD_CONFIG_H
+#define TALER_DONAU_HTTPD_CONFIG_H
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
@@ -37,11 +37,11 @@
  *
  * When changing this version, you likely want to also update
  * #TALER_PROTOCOL_CURRENT and #TALER_PROTOCOL_AGE in
- * exchange_api_handle.c!
+ * donau_api_handle.c!
  *
  * Returned via both /config and /keys endpoints.
  */
-#define EXCHANGE_PROTOCOL_VERSION "17:0:0"
+#define DONAU_PROTOCOL_VERSION "17:0:0"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_csr.c 
b/src/donau/taler-donau-httpd_csr.c
similarity index 90%
rename from src/exchange/taler-exchange-httpd_csr.c
rename to src/donau/taler-donau-httpd_csr.c
index 64892d3..346648f 100644
--- a/src/exchange/taler-exchange-httpd_csr.c
+++ b/src/donau/taler-donau-httpd_csr.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty
-  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  of CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   See the GNU Affero General Public License for more details.
 
   You should have received a copy of the GNU Affero General
@@ -17,7 +17,7 @@
   see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_csr.c
+ * @file taler-donau-httpd_csr.c
  * @brief Handle /csr requests
  * @author Lucien Heuzeveldt
  * @author Gian Demarmles
@@ -27,9 +27,9 @@
 #include <jansson.h>
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_csr.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler-exchange-httpd_keys.h"
+#include "taler-donau-httpd_csr.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
 
 
 MHD_RESULT
@@ -69,12 +69,12 @@ TEH_handler_csr_melt (struct TEH_RequestContext *rc,
     return TALER_MHD_reply_with_error (
       rc->connection,
       MHD_HTTP_BAD_REQUEST,
-      TALER_EC_EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE,
+      TALER_EC_DONAU_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE,
       NULL);
   }
 
   {
-    struct TALER_ExchangeWithdrawValues ewvs[csr_requests_num];
+    struct TALER_DonauWithdrawValues ewvs[csr_requests_num];
     {
       struct TALER_CsNonce nonces[csr_requests_num];
       struct TALER_DenominationHashP denom_pub_hashes[csr_requests_num];
@@ -124,7 +124,7 @@ TEH_handler_csr_melt (struct TEH_RequestContext *rc,
           {
             return TALER_MHD_reply_with_error (rc->connection,
                                                MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                               
TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                               
TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                                NULL);
           }
           dk = TEH_keys_denomination_by_hash_from_state (ksh,
@@ -143,7 +143,7 @@ TEH_handler_csr_melt (struct TEH_RequestContext *rc,
             return TEH_RESPONSE_reply_expired_denom_pub_hash (
               rc->connection,
               denom_pub_hash,
-              TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED,
+              TALER_EC_DONAU_GENERIC_DENOMINATION_EXPIRED,
               "csr-melt");
           }
           if (GNUNET_TIME_absolute_is_future (dk->meta.start.abs_time))
@@ -153,7 +153,7 @@ TEH_handler_csr_melt (struct TEH_RequestContext *rc,
             return TEH_RESPONSE_reply_expired_denom_pub_hash (
               rc->connection,
               denom_pub_hash,
-              TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
+              TALER_EC_DONAU_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
               "csr-melt");
           }
           if (dk->recoup_possible)
@@ -162,7 +162,7 @@ TEH_handler_csr_melt (struct TEH_RequestContext *rc,
             return TEH_RESPONSE_reply_expired_denom_pub_hash (
               rc->connection,
               denom_pub_hash,
-              TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED,
+              TALER_EC_DONAU_GENERIC_DENOMINATION_REVOKED,
               "csr-melt");
           }
           if (TALER_DENOMINATION_CS != dk->denom_pub.cipher)
@@ -202,7 +202,7 @@ TEH_handler_csr_melt (struct TEH_RequestContext *rc,
         json_t *csr_obj;
 
         csr_obj = GNUNET_JSON_PACK (
-          TALER_JSON_pack_exchange_withdraw_values ("ewv",
+          TALER_JSON_pack_donau_withdraw_values ("ewv",
                                                     &ewvs[i]));
         GNUNET_assert (NULL != csr_obj);
         GNUNET_assert (0 ==
@@ -228,7 +228,7 @@ TEH_handler_csr_withdraw (struct TEH_RequestContext *rc,
 {
   struct TALER_CsNonce nonce;
   struct TALER_DenominationHashP denom_pub_hash;
-  struct TALER_ExchangeWithdrawValues ewv = {
+  struct TALER_DonauWithdrawValues ewv = {
     .cipher = TALER_DENOMINATION_CS
   };
   struct GNUNET_JSON_Specification spec[] = {
@@ -259,7 +259,7 @@ TEH_handler_csr_withdraw (struct TEH_RequestContext *rc,
     {
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                         
TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                         TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                          NULL);
     }
     dk = TEH_keys_denomination_by_hash_from_state (ksh,
@@ -278,7 +278,7 @@ TEH_handler_csr_withdraw (struct TEH_RequestContext *rc,
       return TEH_RESPONSE_reply_expired_denom_pub_hash (
         rc->connection,
         &denom_pub_hash,
-        TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED,
+        TALER_EC_DONAU_GENERIC_DENOMINATION_EXPIRED,
         "csr-withdraw");
     }
     if (GNUNET_TIME_absolute_is_future (dk->meta.start.abs_time))
@@ -288,7 +288,7 @@ TEH_handler_csr_withdraw (struct TEH_RequestContext *rc,
       return TEH_RESPONSE_reply_expired_denom_pub_hash (
         rc->connection,
         &denom_pub_hash,
-        TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
+        TALER_EC_DONAU_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
         "csr-withdraw");
     }
     if (dk->recoup_possible)
@@ -297,7 +297,7 @@ TEH_handler_csr_withdraw (struct TEH_RequestContext *rc,
       return TEH_RESPONSE_reply_expired_denom_pub_hash (
         rc->connection,
         &denom_pub_hash,
-        TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED,
+        TALER_EC_DONAU_GENERIC_DENOMINATION_REVOKED,
         "csr-withdraw");
     }
     if (TALER_DENOMINATION_CS != dk->denom_pub.cipher)
@@ -332,9 +332,9 @@ TEH_handler_csr_withdraw (struct TEH_RequestContext *rc,
   return TALER_MHD_REPLY_JSON_PACK (
     rc->connection,
     MHD_HTTP_OK,
-    TALER_JSON_pack_exchange_withdraw_values ("ewv",
+    TALER_JSON_pack_donau_withdraw_values ("ewv",
                                               &ewv));
 }
 
 
-/* end of taler-exchange-httpd_csr.c */
+/* end of taler-donau-httpd_csr.c */
diff --git a/src/exchange/taler-exchange-httpd_csr.h 
b/src/donau/taler-donau-httpd_csr.h
similarity index 86%
rename from src/exchange/taler-exchange-httpd_csr.h
rename to src/donau/taler-donau-httpd_csr.h
index 615255f..6c3427e 100644
--- a/src/exchange/taler-exchange-httpd_csr.h
+++ b/src/donau/taler-donau-httpd_csr.h
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_csr.h
+ * @file taler-donau-httpd_csr.h
  * @brief Handle /csr-* requests
  * @author Lucien Heuzeveldt
  * @author Gian Demarmles
  */
-#ifndef TALER_EXCHANGE_HTTPD_CSR_H
-#define TALER_EXCHANGE_HTTPD_CSR_H
+#ifndef TALER_DONAU_HTTPD_CSR_H
+#define TALER_DONAU_HTTPD_CSR_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_db.c 
b/src/donau/taler-donau-httpd_db.c
similarity index 88%
rename from src/exchange/taler-exchange-httpd_db.c
rename to src/donau/taler-donau-httpd_db.c
index 5660074..04669f6 100644
--- a/src/exchange/taler-exchange-httpd_db.c
+++ b/src/donau/taler-donau-httpd_db.c
@@ -7,15 +7,15 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_db.c
- * @brief Generic database operations for the exchange.
+ * @file taler-donau-httpd_db.c
+ * @brief Generic database operations for the donau.
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -24,9 +24,9 @@
 #include <gnunet/gnunet_json_lib.h>
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler_exchangedb_lib.h"
-#include "taler-exchange-httpd_db.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler_donaudb_lib.h"
+#include "taler-donau-httpd_db.h"
+#include "taler-donau-httpd_responses.h"
 
 
 enum GNUNET_DB_QueryStatus
@@ -35,7 +35,7 @@ TEH_make_coin_known (const struct TALER_CoinPublicInfo *coin,
                      uint64_t *known_coin_id,
                      MHD_RESULT *mhd_ret)
 {
-  enum TALER_EXCHANGEDB_CoinKnownStatus cks;
+  enum TALER_DONAUDB_CoinKnownStatus cks;
   struct TALER_DenominationHashP h_denom_pub;
   struct TALER_AgeCommitmentHash age_hash;
 
@@ -47,34 +47,34 @@ TEH_make_coin_known (const struct TALER_CoinPublicInfo 
*coin,
                                        &age_hash);
   switch (cks)
   {
-  case TALER_EXCHANGEDB_CKS_ADDED:
+  case TALER_DONAUDB_CKS_ADDED:
     return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
-  case TALER_EXCHANGEDB_CKS_PRESENT:
+  case TALER_DONAUDB_CKS_PRESENT:
     return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
-  case TALER_EXCHANGEDB_CKS_SOFT_FAIL:
+  case TALER_DONAUDB_CKS_SOFT_FAIL:
     return GNUNET_DB_STATUS_SOFT_ERROR;
-  case TALER_EXCHANGEDB_CKS_HARD_FAIL:
+  case TALER_DONAUDB_CKS_HARD_FAIL:
     *mhd_ret
       = TALER_MHD_reply_with_error (connection,
                                     MHD_HTTP_INTERNAL_SERVER_ERROR,
                                     TALER_EC_GENERIC_DB_STORE_FAILED,
                                     NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
-  case TALER_EXCHANGEDB_CKS_DENOM_CONFLICT:
+  case TALER_DONAUDB_CKS_DENOM_CONFLICT:
     /* FIXME: insufficient_funds != denom conflict! See issue #7267, need new
      * strategy for evidence gathering */
     *mhd_ret = TEH_RESPONSE_reply_coin_insufficient_funds (
       connection,
-      TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY,
+      TALER_EC_DONAU_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY,
       &h_denom_pub,
       &coin->coin_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
-  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT:
+  case TALER_DONAUDB_CKS_AGE_CONFLICT:
     /* FIXME: insufficient_funds != Age conflict! See issue #7267, need new
      * strategy for evidence gathering */
     *mhd_ret = TEH_RESPONSE_reply_coin_insufficient_funds (
       connection,
-      TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH,
+      TALER_EC_DONAU_GENERIC_COIN_CONFLICTING_AGE_HASH,
       &h_denom_pub,
       &coin->coin_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -170,4 +170,4 @@ TEH_DB_run_transaction (struct MHD_Connection *connection,
 }
 
 
-/* end of taler-exchange-httpd_db.c */
+/* end of taler-donau-httpd_db.c */
diff --git a/src/exchange/taler-exchange-httpd_db.h 
b/src/donau/taler-donau-httpd_db.h
similarity index 92%
rename from src/exchange/taler-exchange-httpd_db.h
rename to src/donau/taler-donau-httpd_db.h
index 482bc59..0b4b561 100644
--- a/src/exchange/taler-exchange-httpd_db.h
+++ b/src/donau/taler-donau-httpd_db.h
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchange/taler-exchange-httpd_db.h
- * @brief High-level (transactional-layer) database operations for the exchange
+ * @file donau/taler-donau-httpd_db.h
+ * @brief High-level (transactional-layer) database operations for the donau
  * @author Chrisitan Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_DB_H
-#define TALER_EXCHANGE_HTTPD_DB_H
+#ifndef TALER_DONAU_HTTPD_DB_H
+#define TALER_DONAU_HTTPD_DB_H
 
 #include <microhttpd.h>
-#include "taler_exchangedb_plugin.h"
-#include "taler-exchange-httpd_metrics.h"
+#include "taler_donaudb_plugin.h"
+#include "taler-donau-httpd_metrics.h"
 #include <gnunet/gnunet_mhd_compat.h>
 
 
@@ -103,4 +103,4 @@ TEH_DB_run_transaction (struct MHD_Connection *connection,
 
 
 #endif
-/* TALER_EXCHANGE_HTTPD_DB_H */
+/* TALER_DONAU_HTTPD_DB_H */
diff --git a/src/exchange/taler-exchange-httpd_deposits_get.c 
b/src/donau/taler-donau-httpd_deposits_get.c
similarity index 87%
rename from src/exchange/taler-exchange-httpd_deposits_get.c
rename to src/donau/taler-donau-httpd_deposits_get.c
index 818900c..bc7916d 100644
--- a/src/exchange/taler-exchange-httpd_deposits_get.c
+++ b/src/donau/taler-donau-httpd_deposits_get.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_deposits_get.c
+ * @file taler-donau-httpd_deposits_get.c
  * @brief Handle wire deposit tracking-related requests
  * @author Christian Grothoff
  */
@@ -27,9 +27,9 @@
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
 #include "taler_signatures.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_deposits_get.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_deposits_get.h"
+#include "taler-donau-httpd_responses.h"
 
 
 /**
@@ -64,19 +64,19 @@ struct DepositWtidContext
   struct TALER_PrivateContractHashP h_contract_terms;
 
   /**
-   * Hash over the wiring information of the merchant.
+   * Hash over the wiring information of the charity.
    */
-  struct TALER_MerchantWireHashP h_wire;
+  struct TALER_CharityWireHashP h_wire;
 
   /**
-   * The Merchant's public key.  The deposit inquiry request is to be
+   * The Charity's public key.  The deposit inquiry request is to be
    * signed by the corresponding private key (using EdDSA).
    */
-  struct TALER_MerchantPublicKeyP merchant;
+  struct TALER_CharityPublicKeyP charity;
 
   /**
    * The coin's public key.  This is the value that must have been
-   * signed (blindly) by the Exchange.
+   * signed (blindly) by the Donau.
    */
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
@@ -86,9 +86,9 @@ struct DepositWtidContext
   struct TALER_WireTransferIdentifierRawP wtid;
 
   /**
-   * Signature by the merchant.
+   * Signature by the charity.
    */
-  struct TALER_MerchantSignatureP merchant_sig;
+  struct TALER_CharitySignatureP charity_sig;
 
 
   /**
@@ -120,7 +120,7 @@ struct DepositWtidContext
   /**
    * KYC status information for the receiving account.
    */
-  struct TALER_EXCHANGEDB_KycStatus kyc;
+  struct TALER_DONAUDB_KycStatus kyc;
 
   /**
    * AML status information for the receiving account.
@@ -173,7 +173,7 @@ TEH_deposits_get_cleanup ()
 
 
 /**
- * A merchant asked for details about a deposit.  Provide
+ * A charity asked for details about a deposit.  Provide
  * them. Generates the 200 reply.
  *
  * @param connection connection to the client
@@ -185,13 +185,13 @@ reply_deposit_details (
   struct MHD_Connection *connection,
   const struct DepositWtidContext *ctx)
 {
-  struct TALER_ExchangePublicKeyP pub;
-  struct TALER_ExchangeSignatureP sig;
+  struct TALER_DonauPublicKeyP pub;
+  struct TALER_DonauSignatureP sig;
   enum TALER_ErrorCode ec;
 
   if (TALER_EC_NONE !=
-      (ec = TALER_exchange_online_confirm_wire_sign (
-         &TEH_keys_exchange_sign_,
+      (ec = TALER_donau_online_confirm_wire_sign (
+         &TEH_keys_donau_sign_,
          &ctx->h_wire,
          &ctx->h_contract_terms,
          &ctx->wtid,
@@ -215,9 +215,9 @@ reply_deposit_details (
                                 ctx->execution_time),
     TALER_JSON_pack_amount ("coin_contribution",
                             &ctx->coin_delta),
-    GNUNET_JSON_pack_data_auto ("exchange_sig",
+    GNUNET_JSON_pack_data_auto ("donau_sig",
                                 &sig),
-    GNUNET_JSON_pack_data_auto ("exchange_pub",
+    GNUNET_JSON_pack_data_auto ("donau_pub",
                                 &pub));
 }
 
@@ -252,7 +252,7 @@ deposits_get_transaction (void *cls,
                                                &ctx->h_contract_terms,
                                                &ctx->h_wire,
                                                &ctx->coin_pub,
-                                               &ctx->merchant,
+                                               &ctx->charity,
                                                &pending,
                                                &ctx->wtid,
                                                &ctx->execution_time,
@@ -276,7 +276,7 @@ deposits_get_transaction (void *cls,
   {
     *mhd_ret = TALER_MHD_reply_with_error (connection,
                                            MHD_HTTP_NOT_FOUND,
-                                           
TALER_EC_EXCHANGE_DEPOSITS_GET_NOT_FOUND,
+                                           
TALER_EC_DONAU_DEPOSITS_GET_NOT_FOUND,
                                            NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
@@ -346,8 +346,8 @@ handle_track_transaction_request (
   {
     struct TALER_CoinDepositEventP rep = {
       .header.size = htons (sizeof (rep)),
-      .header.type = htons (TALER_DBEVENT_EXCHANGE_DEPOSIT_STATUS_CHANGED),
-      .merchant_pub = ctx->merchant
+      .header.type = htons (TALER_DBEVENT_DONAU_DEPOSIT_STATUS_CHANGED),
+      .charity_pub = ctx->charity
     };
 
     ctx->eh = TEH_plugin->event_listen (
@@ -450,19 +450,19 @@ TEH_handler_deposits_get (struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE,
+                                         
TALER_EC_DONAU_DEPOSITS_GET_INVALID_H_WIRE,
                                          args[0]);
     }
     if (GNUNET_OK !=
         GNUNET_STRINGS_string_to_data (args[1],
                                        strlen (args[1]),
-                                       &ctx->merchant,
-                                       sizeof (ctx->merchant)))
+                                       &ctx->charity,
+                                       sizeof (ctx->charity)))
     {
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB,
+                                         
TALER_EC_DONAU_DEPOSITS_GET_INVALID_CHARITY_PUB,
                                          args[1]);
     }
     if (GNUNET_OK !=
@@ -474,7 +474,7 @@ TEH_handler_deposits_get (struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS,
+                                         
TALER_EC_DONAU_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS,
                                          args[2]);
     }
     if (GNUNET_OK !=
@@ -486,27 +486,27 @@ TEH_handler_deposits_get (struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_COIN_PUB,
+                                         
TALER_EC_DONAU_DEPOSITS_GET_INVALID_COIN_PUB,
                                          args[3]);
     }
     TALER_MHD_parse_request_arg_auto_t (rc->connection,
-                                        "merchant_sig",
-                                        &ctx->merchant_sig);
+                                        "charity_sig",
+                                        &ctx->charity_sig);
     TALER_MHD_parse_request_timeout (rc->connection,
                                      &ctx->timeout);
     TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_EDDSA]++;
     {
       if (GNUNET_OK !=
-          TALER_merchant_deposit_verify (&ctx->merchant,
+          TALER_charity_deposit_verify (&ctx->charity,
                                          &ctx->coin_pub,
                                          &ctx->h_contract_terms,
                                          &ctx->h_wire,
-                                         &ctx->merchant_sig))
+                                         &ctx->charity_sig))
       {
         GNUNET_break_op (0);
         return TALER_MHD_reply_with_error (rc->connection,
                                            MHD_HTTP_FORBIDDEN,
-                                           
TALER_EC_EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID,
+                                           
TALER_EC_DONAU_DEPOSITS_GET_CHARITY_SIGNATURE_INVALID,
                                            NULL);
       }
     }
@@ -516,4 +516,4 @@ TEH_handler_deposits_get (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_deposits_get.c */
+/* end of taler-donau-httpd_deposits_get.c */
diff --git a/src/exchange/taler-exchange-httpd_deposits_get.h 
b/src/donau/taler-donau-httpd_deposits_get.h
similarity index 75%
rename from src/exchange/taler-exchange-httpd_deposits_get.h
rename to src/donau/taler-donau-httpd_deposits_get.h
index c7b1698..aff2de5 100644
--- a/src/exchange/taler-exchange-httpd_deposits_get.h
+++ b/src/donau/taler-donau-httpd_deposits_get.h
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_deposits_get.h
+ * @file taler-donau-httpd_deposits_get.h
  * @brief Handle wire transfer tracking-related requests
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_DEPOSITS_GET_H
-#define TALER_EXCHANGE_HTTPD_DEPOSITS_GET_H
+#ifndef TALER_DONAU_HTTPD_DEPOSITS_GET_H
+#define TALER_DONAU_HTTPD_DEPOSITS_GET_H
 
 #include <gnunet/gnunet_util_lib.h>
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
@@ -34,12 +34,12 @@ TEH_deposits_get_cleanup (void);
 
 
 /**
- * Handle a "/deposits/$H_WIRE/$MERCHANT_PUB/$H_CONTRACT_TERMS/$COIN_PUB"
+ * Handle a "/deposits/$H_WIRE/$CHARITY_PUB/$H_CONTRACT_TERMS/$COIN_PUB"
  * request.
  *
  * @param rc request context
  * @param args array of additional options (length: 4, contains:
- *      h_wire, merchant_pub, h_contract_terms and coin_pub)
+ *      h_wire, charity_pub, h_contract_terms and coin_pub)
  * @return MHD result code
   */
 MHD_RESULT
diff --git a/src/exchange/taler-exchange-httpd_keys.c 
b/src/donau/taler-donau-httpd_keys.c
similarity index 95%
rename from src/exchange/taler-exchange-httpd_keys.c
rename to src/donau/taler-donau-httpd_keys.c
index 2389a21..e5f8d09 100644
--- a/src/exchange/taler-exchange-httpd_keys.c
+++ b/src/donau/taler-donau-httpd_keys.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
    You should have received a copy of the GNU Affero General Public License 
along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file taler-exchange-httpd_keys.c
+ * @file taler-donau-httpd_keys.c
  * @brief management of our various keys
  * @author Christian Grothoff
  * @author Özgür Kesim
@@ -24,11 +24,11 @@
 #include "taler_mhd_lib.h"
 #include "taler_kyclogic_lib.h"
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd.h"
-#include "taler-exchange-httpd_config.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler-donau-httpd.h"
+#include "taler-donau-httpd_config.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler_donaudb_plugin.h"
 #include "taler_extensions.h"
 
 
@@ -105,7 +105,7 @@ struct HelperDenomination
 
 
 /**
- * Signatures of an auditor over a denomination key of this exchange.
+ * Signatures of an auditor over a denomination key of this donau.
  */
 struct TEH_AuditorSignature
 {
@@ -151,7 +151,7 @@ struct HelperSignkey
   /**
    * The public key.
    */
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
    * Signature over this key from the security module's key.
@@ -172,7 +172,7 @@ struct HelperState
   /**
    * Handle for the esign/EdDSA helper.
    */
-  struct TALER_CRYPTO_ExchangeSignHelper *esh;
+  struct TALER_CRYPTO_DonauSignHelper *esh;
 
   /**
    * Handle for the denom/RSA helper.
@@ -200,7 +200,7 @@ struct HelperState
   struct GNUNET_CONTAINER_MultiHashMap *cs_keys;
 
   /**
-   * Map from `struct TALER_ExchangePublicKey` to `struct HelperSignkey`
+   * Map from `struct TALER_DonauPublicKey` to `struct HelperSignkey`
    * entries.  Based on the fact that a `struct GNUNET_PeerIdentity` is also
    * an EdDSA public key.
    */
@@ -244,25 +244,25 @@ struct KeysResponseData
 
 
 /**
- * @brief All information about an exchange online signing key (which is used 
to
- * sign messages from the exchange).
+ * @brief All information about an donau online signing key (which is used to
+ * sign messages from the donau).
  */
 struct SigningKey
 {
 
   /**
-   * The exchange's (online signing) public key.
+   * The donau's (online signing) public key.
    */
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
    * Meta data about the signing key, such as validity periods.
    */
-  struct TALER_EXCHANGEDB_SignkeyMetaData meta;
+  struct TALER_DONAUDB_SignkeyMetaData meta;
 
   /**
    * The long-term offline master key's signature for this signing key.
-   * Signs over @e exchange_pub and @e meta.
+   * Signs over @e donau_pub and @e meta.
    */
   struct TALER_MasterSignatureP master_sig;
 
@@ -278,7 +278,7 @@ struct TEH_KeyStateHandle
   struct GNUNET_CONTAINER_MultiHashMap *denomkey_map;
 
   /**
-   * Map from `struct TALER_ExchangePublicKey` to `struct SigningKey`
+   * Map from `struct TALER_DonauPublicKey` to `struct SigningKey`
    * entries.  Based on the fact that a `struct GNUNET_PeerIdentity` is also
    * an EdDSA public key.
    */
@@ -295,13 +295,13 @@ struct TEH_KeyStateHandle
   struct TEH_GlobalFee *gf_tail;
 
   /**
-   * json array with the auditors of this exchange. Contains exactly
+   * json array with the auditors of this donau. Contains exactly
    * the information needed for the "auditors" field of the /keys response.
    */
   json_t *auditors;
 
   /**
-   * json array with the global fees of this exchange. Contains exactly
+   * json array with the global fees of this donau. Contains exactly
    * the information needed for the "global_fees" field of the /keys response.
    */
   json_t *global_fees;
@@ -487,7 +487,7 @@ struct WireStateHandle
 static struct WireStateHandle *wire_state;
 
 /**
- * Handler listening for wire updates by other exchange
+ * Handler listening for wire updates by other donau
  * services.
  */
 static struct GNUNET_DB_EventHandler *wire_eh;
@@ -512,7 +512,7 @@ static struct TEH_KeyStateHandle *key_state;
 static uint64_t key_generation;
 
 /**
- * Handler listening for wire updates by other exchange
+ * Handler listening for wire updates by other donau
  * services.
  */
 static struct GNUNET_DB_EventHandler *keys_eh;
@@ -602,7 +602,7 @@ destroy_wire_state (struct WireStateHandle *wsh)
 
 
 /**
- * Function called whenever another exchange process has updated
+ * Function called whenever another donau process has updated
  * the wire data in the database.
  *
  * @param cls NULL
@@ -631,7 +631,7 @@ TEH_wire_init ()
 {
   struct GNUNET_DB_EventHeaderP es = {
     .size = htons (sizeof (es)),
-    .type = htons (TALER_DBEVENT_EXCHANGE_KEYS_UPDATED),
+    .type = htons (TALER_DBEVENT_DONAU_KEYS_UPDATED),
   };
 
   wire_eh = TEH_plugin->event_listen (TEH_plugin->cls,
@@ -669,12 +669,12 @@ TEH_wire_done ()
  * Add information about a wire account to @a cls.
  *
  * @param cls a `json_t *` object to expand with wire account details
- * @param payto_uri the exchange bank account URI to add
+ * @param payto_uri the donau bank account URI to add
  * @param conversion_url URL of a conversion service, NULL if there is no 
conversion
  * @param debit_restrictions JSON array with debit restrictions on the account
  * @param credit_restrictions JSON array with credit restrictions on the 
account
  * @param master_sig master key signature affirming that this is a bank
- *                   account of the exchange (of purpose 
#TALER_SIGNATURE_MASTER_WIRE_DETAILS)
+ *                   account of the donau (of purpose 
#TALER_SIGNATURE_MASTER_WIRE_DETAILS)
  */
 static void
 add_wire_account (void *cls,
@@ -687,7 +687,7 @@ add_wire_account (void *cls,
   json_t *a = cls;
 
   if (GNUNET_OK !=
-      TALER_exchange_wire_signature_check (
+      TALER_donau_wire_signature_check (
         payto_uri,
         conversion_url,
         debit_restrictions,
@@ -696,7 +696,7 @@ add_wire_account (void *cls,
         master_sig))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Database has wire account with invalid signature. Skipping 
entry. Did the exchange offline public key change?\n");
+                "Database has wire account with invalid signature. Skipping 
entry. Did the donau offline public key change?\n");
     return;
   }
   if (0 !=
@@ -776,7 +776,7 @@ add_wire_fee (void *cls,
   struct WireFeeSet *wfs;
 
   if (GNUNET_OK !=
-      TALER_exchange_offline_wire_fee_verify (
+      TALER_donau_offline_wire_fee_verify (
         ac->wire_method,
         start_date,
         end_date,
@@ -785,7 +785,7 @@ add_wire_fee (void *cls,
         master_sig))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Database has wire fee with invalid signature. Skipping entry. 
Did the exchange offline public key change?\n");
+                "Database has wire fee with invalid signature. Skipping entry. 
Did the donau offline public key change?\n");
     return;
   }
   GNUNET_CRYPTO_hash_context_read (ac->hc,
@@ -881,7 +881,7 @@ build_wire_state (void)
         wsh->http_status = MHD_HTTP_INTERNAL_SERVER_ERROR;
         wsh->wire_reply
           = TALER_MHD_make_error (
-              TALER_EC_EXCHANGE_WIRE_INVALID_PAYTO_CONFIGURED,
+              TALER_EC_DONAU_WIRE_INVALID_PAYTO_CONFIGURED,
               payto_uri);
         json_decref (wire_accounts_array);
         json_decref (wire_fee_object);
@@ -1007,7 +1007,7 @@ TEH_wire_update_state (void)
 {
   struct GNUNET_DB_EventHeaderP es = {
     .size = htons (sizeof (es)),
-    .type = htons (TALER_DBEVENT_EXCHANGE_WIRE_UPDATED),
+    .type = htons (TALER_DBEVENT_DONAU_WIRE_UPDATED),
   };
 
   TEH_plugin->event_notify (TEH_plugin->cls,
@@ -1135,8 +1135,8 @@ suspend_request (struct MHD_Connection *connection)
   {
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                       TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
-                                       "Exchange terminating");
+                                       TALER_EC_DONAU_GENERIC_KEYS_MISSING,
+                                       "Donau terminating");
   }
   skr = GNUNET_new (struct SuspendedKeysRequests);
   skr->connection = connection;
@@ -1354,7 +1354,7 @@ free_denom_cb (void *cls,
  * in the `esign_keys` map.
  *
  * @param cls the `struct HelperSignkey`
- * @param pid unused, matches the exchange public key
+ * @param pid unused, matches the donau public key
  * @param value the `struct HelperSignkey` to release
  * @return #GNUNET_OK (continue to iterate)
  */
@@ -1629,7 +1629,7 @@ helper_cs_cb (
  *                 zero if the key has been revoked or purged
  * @param validity_duration how long does the key remain available for signing;
  *                 zero if the key has been revoked or purged
- * @param exchange_pub the public key itself, NULL if the key was revoked or 
purged
+ * @param donau_pub the public key itself, NULL if the key was revoked or 
purged
  * @param sm_pub public key of the security module, NULL if the key was 
revoked or purged
  * @param sm_sig signature from the security module, NULL if the key was 
revoked or purged
  *               The signature was already verified against @a sm_pub.
@@ -1639,7 +1639,7 @@ helper_esign_cb (
   void *cls,
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Relative validity_duration,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_SecurityModulePublicKeyP *sm_pub,
   const struct TALER_SecurityModuleSignatureP *sm_sig)
 {
@@ -1649,12 +1649,12 @@ helper_esign_cb (
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "EdDSA helper announces signing key %s with validity %s\n",
-              TALER_B2S (exchange_pub),
+              TALER_B2S (donau_pub),
               GNUNET_STRINGS_relative_time_to_string (validity_duration,
                                                       GNUNET_NO));
   key_generation++;
   TEH_resume_keys_requests (false);
-  pid.public_key = exchange_pub->eddsa_pub;
+  pid.public_key = donau_pub->eddsa_pub;
   hsk = GNUNET_CONTAINER_multipeermap_get (hs->esign_keys,
                                            &pid);
   if (NULL != hsk)
@@ -1668,7 +1668,7 @@ helper_esign_cb (
   hsk = GNUNET_new (struct HelperSignkey);
   hsk->start_time = start_time;
   hsk->validity_duration = validity_duration;
-  hsk->exchange_pub = *exchange_pub;
+  hsk->donau_pub = *donau_pub;
   hsk->sm_sig = *sm_sig;
   GNUNET_assert (
     GNUNET_OK ==
@@ -1844,7 +1844,7 @@ destroy_key_state (struct TEH_KeyStateHandle *ksh,
 
 
 /**
- * Function called whenever another exchange process has updated
+ * Function called whenever another donau process has updated
  * the keys data in the database.
  *
  * @param cls NULL
@@ -1873,28 +1873,28 @@ TEH_keys_init ()
 {
   struct GNUNET_DB_EventHeaderP es = {
     .size = htons (sizeof (es)),
-    .type = htons (TALER_DBEVENT_EXCHANGE_KEYS_UPDATED),
+    .type = htons (TALER_DBEVENT_DONAU_KEYS_UPDATED),
   };
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_time (TEH_cfg,
-                                           "exchange",
+                                           "donau",
                                            "SIGNKEY_LEGAL_DURATION",
                                            &signkey_legal_duration))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "SIGNKEY_LEGAL_DURATION");
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (TEH_cfg,
-                                             "exchange",
+                                             "donau",
                                              "ASSET_TYPE",
                                              &asset_type))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
-                               "exchange",
+                               "donau",
                                "ASSET_TYPE");
     asset_type = GNUNET_strdup ("fiat");
   }
@@ -1936,7 +1936,7 @@ TEH_keys_finished ()
 
 
 /**
- * Function called with information about the exchange's denomination keys.
+ * Function called with information about the donau's denomination keys.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
  * @param denom_pub public key of the denomination
@@ -1951,7 +1951,7 @@ denomination_info_cb (
   void *cls,
   const struct TALER_DenominationPublicKey *denom_pub,
   const struct TALER_DenominationHashP *h_denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
+  const struct TALER_DONAUDB_DenominationKeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig,
   bool recoup_possible)
 {
@@ -1959,7 +1959,7 @@ denomination_info_cb (
   struct TEH_DenominationKey *dk;
 
   if (GNUNET_OK !=
-      TALER_exchange_offline_denom_validity_verify (
+      TALER_donau_offline_denom_validity_verify (
         h_denom_pub,
         meta->start,
         meta->expire_withdraw,
@@ -1971,7 +1971,7 @@ denomination_info_cb (
         master_sig))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Database has denomination with invalid signature. Skipping 
entry. Did the exchange offline public key change?\n");
+                "Database has denomination with invalid signature. Skipping 
entry. Did the donau offline public key change?\n");
     return;
   }
 
@@ -2005,18 +2005,18 @@ denomination_info_cb (
 
 
 /**
- * Function called with information about the exchange's online signing keys.
+ * Function called with information about the donau's online signing keys.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
- * @param exchange_pub the public key
+ * @param donau_pub the public key
  * @param meta meta data information about the denomination type (expirations)
  * @param master_sig master signature affirming the validity of this 
denomination
  */
 static void
 signkey_info_cb (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DONAUDB_SignkeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig)
 {
   struct TEH_KeyStateHandle *ksh = cls;
@@ -2024,8 +2024,8 @@ signkey_info_cb (
   struct GNUNET_PeerIdentity pid;
 
   if (GNUNET_OK !=
-      TALER_exchange_offline_signkey_validity_verify (
-        exchange_pub,
+      TALER_donau_offline_signkey_validity_verify (
+        donau_pub,
         meta->start,
         meta->expire_sign,
         meta->expire_legal,
@@ -2033,14 +2033,14 @@ signkey_info_cb (
         master_sig))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Database has signing key with invalid signature. Skipping 
entry. Did the exchange offline public key change?\n");
+                "Database has signing key with invalid signature. Skipping 
entry. Did the donau offline public key change?\n");
     return;
   }
   sk = GNUNET_new (struct SigningKey);
-  sk->exchange_pub = *exchange_pub;
+  sk->donau_pub = *donau_pub;
   sk->meta = *meta;
   sk->master_sig = *master_sig;
-  pid.public_key = exchange_pub->eddsa_pub;
+  pid.public_key = donau_pub->eddsa_pub;
   GNUNET_assert (
     GNUNET_OK ==
     GNUNET_CONTAINER_multipeermap_put (ksh->signkey_map,
@@ -2106,7 +2106,7 @@ get_auditor_sigs (void *cls,
 
 
 /**
- * Function called with information about the exchange's auditors.
+ * Function called with information about the donau's auditors.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
  * @param auditor_pub the public key of the auditor
@@ -2146,7 +2146,7 @@ auditor_info_cb (
 
 /**
  * Function called with information about the denominations
- * audited by the exchange's auditors.
+ * audited by the donau's auditors.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
  * @param auditor_pub the public key of an auditor
@@ -2205,7 +2205,7 @@ struct SignKeyCtx
  * respective JSON response.
  *
  * @param cls a `struct SignKeyCtx *` with the array to append keys to
- * @param pid the exchange public key (in type disguise)
+ * @param pid the donau public key (in type disguise)
  * @param value a `struct SigningKey`
  * @return #GNUNET_OK (continue to iterate)
  */
@@ -2240,7 +2240,7 @@ add_sign_key_cb (void *cls,
         GNUNET_JSON_pack_data_auto ("master_sig",
                                     &sk->master_sig),
         GNUNET_JSON_pack_data_auto ("key",
-                                    &sk->exchange_pub))));
+                                    &sk->donau_pub))));
   return GNUNET_OK;
 }
 
@@ -2428,10 +2428,10 @@ create_krd (struct TEH_KeyStateHandle *ksh,
             const struct GNUNET_HashCode *h_grouped)
 {
   struct KeysResponseData krd;
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangeSignatureP exchange_sig;
-  struct TALER_ExchangePublicKeyP grouped_exchange_pub;
-  struct TALER_ExchangeSignatureP grouped_exchange_sig;
+  struct TALER_DonauPublicKeyP donau_pub;
+  struct TALER_DonauSignatureP donau_sig;
+  struct TALER_DonauPublicKeyP grouped_donau_pub;
+  struct TALER_DonauSignatureP grouped_donau_sig;
   struct WireStateHandle *wsh;
   json_t *keys;
 
@@ -2459,13 +2459,13 @@ create_krd (struct TEH_KeyStateHandle *ksh,
 
     if (TALER_EC_NONE !=
         (ec =
-           TALER_exchange_online_key_set_sign (
-             &TEH_keys_exchange_sign2_,
+           TALER_donau_online_key_set_sign (
+             &TEH_keys_donau_sign2_,
              ksh,
              last_cherry_pick_date,
              denom_keys_hash,
-             &exchange_pub,
-             &exchange_sig)))
+             &donau_pub,
+             &donau_sig)))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                   "Could not create key response data: cannot sign (%s)\n",
@@ -2480,13 +2480,13 @@ create_krd (struct TEH_KeyStateHandle *ksh,
 
     if (TALER_EC_NONE !=
         (ec =
-           TALER_exchange_online_key_set_sign (
-             &TEH_keys_exchange_sign2_,
+           TALER_donau_online_key_set_sign (
+             &TEH_keys_donau_sign2_,
              ksh,
              last_cherry_pick_date,
              h_grouped,
-             &grouped_exchange_pub,
-             &grouped_exchange_sig)))
+             &grouped_donau_pub,
+             &grouped_donau_sig)))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                   "Could not create key response data: cannot sign grouped 
hash (%s)\n",
@@ -2497,16 +2497,16 @@ create_krd (struct TEH_KeyStateHandle *ksh,
 
   /* both public keys really must be the same */
   GNUNET_assert (0 ==
-                 memcmp (&grouped_exchange_pub,
-                         &exchange_pub,
-                         sizeof(exchange_pub)));
+                 memcmp (&grouped_donau_pub,
+                         &donau_pub,
+                         sizeof(donau_pub)));
 
   {
     const struct SigningKey *sk;
 
     sk = GNUNET_CONTAINER_multipeermap_get (
       ksh->signkey_map,
-      (const struct GNUNET_PeerIdentity *) &exchange_pub);
+      (const struct GNUNET_PeerIdentity *) &donau_pub);
     ksh->signature_expires = GNUNET_TIME_timestamp_min (sk->meta.expire_sign,
                                                         
ksh->signature_expires);
   }
@@ -2519,7 +2519,7 @@ create_krd (struct TEH_KeyStateHandle *ksh,
 
   keys = GNUNET_JSON_PACK (
     GNUNET_JSON_pack_string ("version",
-                             EXCHANGE_PROTOCOL_VERSION),
+                             DONAU_PROTOCOL_VERSION),
     GNUNET_JSON_pack_string ("base_url",
                              TEH_base_url),
     GNUNET_JSON_pack_string ("currency",
@@ -2563,11 +2563,11 @@ create_krd (struct TEH_KeyStateHandle *ksh,
     GNUNET_JSON_pack_timestamp ("list_issue_date",
                                 last_cherry_pick_date),
     GNUNET_JSON_pack_data_auto ("eddsa_pub",
-                                &exchange_pub),
+                                &donau_pub),
     GNUNET_JSON_pack_data_auto ("eddsa_sig",
-                                &exchange_sig),
+                                &donau_sig),
     GNUNET_JSON_pack_data_auto ("denominations_sig",
-                                &grouped_exchange_sig));
+                                &grouped_donau_sig));
   GNUNET_assert (NULL != keys);
 
   /* Set wallet limit if KYC is configured */
@@ -3138,7 +3138,7 @@ global_fee_info_cb (
   struct TEH_GlobalFee *gf;
 
   if (GNUNET_OK !=
-      TALER_exchange_offline_global_fee_verify (
+      TALER_donau_offline_global_fee_verify (
         start_date,
         end_date,
         fees,
@@ -3149,7 +3149,7 @@ global_fee_info_cb (
         master_sig))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Database has global fee with invalid signature. Skipping 
entry. Did the exchange offline public key change?\n");
+                "Database has global fee with invalid signature. Skipping 
entry. Did the donau offline public key change?\n");
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -3317,7 +3317,7 @@ TEH_keys_update_states ()
 {
   struct GNUNET_DB_EventHeaderP es = {
     .size = htons (sizeof (es)),
-    .type = htons (TALER_DBEVENT_EXCHANGE_KEYS_UPDATED),
+    .type = htons (TALER_DBEVENT_DONAU_KEYS_UPDATED),
   };
 
   TEH_plugin->event_notify (TEH_plugin->cls,
@@ -3426,7 +3426,7 @@ TEH_keys_denomination_by_hash (
   {
     *mret = TALER_MHD_reply_with_error (conn,
                                         MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                        TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                        TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                         NULL);
     return NULL;
   }
@@ -3474,11 +3474,11 @@ TEH_keys_denomination_sign (
 
   ksh = TEH_keys_get_state ();
   if (NULL == ksh)
-    return TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING;
+    return TALER_EC_DONAU_GENERIC_KEYS_MISSING;
   hd = GNUNET_CONTAINER_multihashmap_get (ksh->helpers->denom_keys,
                                           &h_denom_pub->hash);
   if (NULL == hd)
-    return TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN;
+    return TALER_EC_DONAU_GENERIC_DENOMINATION_KEY_UNKNOWN;
   if (bp->cipher != hd->denom_pub.cipher)
     return TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE;
   switch (hd->denom_pub.cipher)
@@ -3535,7 +3535,7 @@ TEH_keys_denomination_batch_sign (
 
   ksh = TEH_keys_get_state ();
   if (NULL == ksh)
-    return TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING;
+    return TALER_EC_DONAU_GENERIC_KEYS_MISSING;
   for (unsigned int i = 0; i<csds_length; i++)
   {
     const struct TALER_DenominationHashP *h_denom_pub = csds[i].h_denom_pub;
@@ -3544,7 +3544,7 @@ TEH_keys_denomination_batch_sign (
     hd = GNUNET_CONTAINER_multihashmap_get (ksh->helpers->denom_keys,
                                             &h_denom_pub->hash);
     if (NULL == hd)
-      return TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN;
+      return TALER_EC_DONAU_GENERIC_DENOMINATION_KEY_UNKNOWN;
     if (bp->cipher != hd->denom_pub.cipher)
       return TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE;
     switch (hd->denom_pub.cipher)
@@ -3652,13 +3652,13 @@ TEH_keys_denomination_cs_r_pub (
   ksh = TEH_keys_get_state ();
   if (NULL == ksh)
   {
-    return TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING;
+    return TALER_EC_DONAU_GENERIC_KEYS_MISSING;
   }
   hd = GNUNET_CONTAINER_multihashmap_get (ksh->helpers->denom_keys,
                                           &h_denom_pub->hash);
   if (NULL == hd)
   {
-    return TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN;
+    return TALER_EC_DONAU_GENERIC_DENOMINATION_KEY_UNKNOWN;
   }
   if (TALER_DENOMINATION_CS != hd->denom_pub.cipher)
   {
@@ -3692,7 +3692,7 @@ TEH_keys_denomination_cs_batch_r_pub (
   ksh = TEH_keys_get_state ();
   if (NULL == ksh)
   {
-    return TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING;
+    return TALER_EC_DONAU_GENERIC_KEYS_MISSING;
   }
   for (unsigned int i = 0; i<cdds_length; i++)
   {
@@ -3703,7 +3703,7 @@ TEH_keys_denomination_cs_batch_r_pub (
                                             &h_denom_pub->hash);
     if (NULL == hd)
     {
-      return TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN;
+      return TALER_EC_DONAU_GENERIC_DENOMINATION_KEY_UNKNOWN;
     }
     if (TALER_DENOMINATION_CS != hd->denom_pub.cipher)
     {
@@ -3760,23 +3760,23 @@ TEH_keys_denomination_revoke (const struct 
TALER_DenominationHashP *h_denom_pub)
 
 
 enum TALER_ErrorCode
-TEH_keys_exchange_sign_ (
+TEH_keys_donau_sign_ (
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TEH_KeyStateHandle *ksh;
 
   ksh = TEH_keys_get_state ();
   if (NULL == ksh)
   {
-    /* This *can* happen if the exchange's crypto helper is not running
+    /* This *can* happen if the donau's crypto helper is not running
        or had some bad error. */
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Cannot sign request, no valid signing keys available.\n");
-    return TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING;
+    return TALER_EC_DONAU_GENERIC_KEYS_MISSING;
   }
-  return TEH_keys_exchange_sign2_ (ksh,
+  return TEH_keys_donau_sign2_ (ksh,
                                    purpose,
                                    pub,
                                    sig);
@@ -3784,11 +3784,11 @@ TEH_keys_exchange_sign_ (
 
 
 enum TALER_ErrorCode
-TEH_keys_exchange_sign2_ (
+TEH_keys_donau_sign2_ (
   void *cls,
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TEH_KeyStateHandle *ksh = cls;
   enum TALER_ErrorCode ec;
@@ -3801,7 +3801,7 @@ TEH_keys_exchange_sign2_ (
   if (TALER_EC_NONE != ec)
     return ec;
   {
-    /* Here we check here that 'pub' is set to an exchange public key that is
+    /* Here we check here that 'pub' is set to an donau public key that is
        actually signed by the master key! Otherwise, we happily continue to
        use key material even if the offline signatures have not been made
        yet! */
@@ -3820,7 +3820,7 @@ TEH_keys_exchange_sign2_ (
       memset (sig,
               0,
               sizeof (*sig));
-      return TALER_EC_EXCHANGE_SIGNKEY_HELPER_BUG;
+      return TALER_EC_DONAU_SIGNKEY_HELPER_BUG;
     }
   }
   return ec;
@@ -3828,7 +3828,7 @@ TEH_keys_exchange_sign2_ (
 
 
 void
-TEH_keys_exchange_revoke (const struct TALER_ExchangePublicKeyP *exchange_pub)
+TEH_keys_donau_revoke (const struct TALER_DonauPublicKeyP *donau_pub)
 {
   struct TEH_KeyStateHandle *ksh;
 
@@ -3839,7 +3839,7 @@ TEH_keys_exchange_revoke (const struct 
TALER_ExchangePublicKeyP *exchange_pub)
     return;
   }
   TALER_CRYPTO_helper_esign_revoke (ksh->helpers->esh,
-                                    exchange_pub);
+                                    donau_pub);
   TEH_keys_update_states ();
 }
 
@@ -3932,7 +3932,7 @@ TEH_keys_get_handler (struct TEH_RequestContext *rc,
         return TALER_MHD_reply_with_error (
           rc->connection,
           MHD_HTTP_SERVICE_UNAVAILABLE,
-          TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+          TALER_EC_DONAU_GENERIC_KEYS_MISSING,
           TEH_suicide
           ? "server terminating"
           : "too many connections suspended waiting on /keys");
@@ -4012,7 +4012,7 @@ TEH_keys_get_handler (struct TEH_RequestContext *rc,
  */
 static enum GNUNET_GenericReturnValue
 load_extension_data (const char *section_name,
-                     struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta)
+                     struct TALER_DONAUDB_DenominationKeyMetaData *meta)
 {
   struct GNUNET_TIME_Relative deposit_duration;
   struct GNUNET_TIME_Relative legal_duration;
@@ -4083,7 +4083,7 @@ enum GNUNET_GenericReturnValue
 TEH_keys_load_fees (struct TEH_KeyStateHandle *ksh,
                     const struct TALER_DenominationHashP *h_denom_pub,
                     struct TALER_DenominationPublicKey *denom_pub,
-                    struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta)
+                    struct TALER_DONAUDB_DenominationKeyMetaData *meta)
 {
   struct HelperDenomination *hd;
   enum GNUNET_GenericReturnValue ok;
@@ -4123,8 +4123,8 @@ TEH_keys_load_fees (struct TEH_KeyStateHandle *ksh,
 
 
 enum GNUNET_GenericReturnValue
-TEH_keys_get_timing (const struct TALER_ExchangePublicKeyP *exchange_pub,
-                     struct TALER_EXCHANGEDB_SignkeyMetaData *meta)
+TEH_keys_get_timing (const struct TALER_DonauPublicKeyP *donau_pub,
+                     struct TALER_DONAUDB_SignkeyMetaData *meta)
 {
   struct TEH_KeyStateHandle *ksh;
   struct HelperSignkey *hsk;
@@ -4137,7 +4137,7 @@ TEH_keys_get_timing (const struct 
TALER_ExchangePublicKeyP *exchange_pub,
     return GNUNET_SYSERR;
   }
 
-  pid.public_key = exchange_pub->eddsa_pub;
+  pid.public_key = donau_pub->eddsa_pub;
   hsk = GNUNET_CONTAINER_multipeermap_get (ksh->helpers->esign_keys,
                                            &pid);
   meta->start = hsk->start_time;
@@ -4194,7 +4194,7 @@ add_future_denomkey_cb (void *cls,
   struct FutureBuilderContext *fbc = cls;
   struct HelperDenomination *hd = value;
   struct TEH_DenominationKey *dk;
-  struct TALER_EXCHANGEDB_DenominationKeyMetaData meta = {0};
+  struct TALER_DONAUDB_DenominationKeyMetaData meta = {0};
 
   dk = GNUNET_CONTAINER_multihashmap_get (fbc->ksh->denomkey_map,
                                           h_denom_pub);
@@ -4241,13 +4241,13 @@ add_future_denomkey_cb (void *cls,
 
 
 /**
- * Function called on all of our current and future exchange signing keys
+ * Function called on all of our current and future donau signing keys
  * known to the helper process. Filters out those that are current
  * and adds the remaining signing keys (with their configuration
  * data) to the JSON array.
  *
  * @param cls the `struct FutureBuilderContext *`
- * @param pid actually the exchange public key (type disguised)
+ * @param pid actually the donau public key (type disguised)
  * @param value a `struct HelperDenomination`
  * @return #GNUNET_OK (continue to iterate)
  */
@@ -4279,7 +4279,7 @@ add_future_signkey_cb (void *cls,
                    fbc->signkeys,
                    GNUNET_JSON_PACK (
                      GNUNET_JSON_pack_data_auto ("key",
-                                                 &hsk->exchange_pub),
+                                                 &hsk->donau_pub),
                      GNUNET_JSON_pack_timestamp ("stamp_start",
                                                  hsk->start_time),
                      GNUNET_JSON_pack_timestamp ("stamp_expire",
@@ -4305,7 +4305,7 @@ TEH_keys_management_get_keys_handler (const struct 
TEH_RequestHandler *rh,
   {
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_SERVICE_UNAVAILABLE,
-                                       TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                       TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                        "no key state");
   }
   sync_key_helpers (ksh->helpers);
@@ -4323,14 +4323,14 @@ TEH_keys_management_get_keys_handler (const struct 
TEH_RequestHandler *rh,
       /* Either IPC failed, or neither helper had any denominations 
configured. */
       return TALER_MHD_reply_with_error (connection,
                                          MHD_HTTP_BAD_GATEWAY,
-                                         
TALER_EC_EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE,
+                                         
TALER_EC_DONAU_DENOMINATION_HELPER_UNAVAILABLE,
                                          NULL);
     }
     if (GNUNET_is_zero (&esign_sm_pub))
     {
       return TALER_MHD_reply_with_error (connection,
                                          MHD_HTTP_BAD_GATEWAY,
-                                         
TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE,
+                                         
TALER_EC_DONAU_SIGNKEY_HELPER_UNAVAILABLE,
                                          NULL);
     }
     GNUNET_assert (NULL != fbc.denoms);
@@ -4374,4 +4374,4 @@ TEH_keys_management_get_keys_handler (const struct 
TEH_RequestHandler *rh,
 }
 
 
-/* end of taler-exchange-httpd_keys.c */
+/* end of taler-donau-httpd_keys.c */
diff --git a/src/exchange/taler-exchange-httpd_keys.h 
b/src/donau/taler-donau-httpd_keys.h
similarity index 89%
rename from src/exchange/taler-exchange-httpd_keys.h
rename to src/donau/taler-donau-httpd_keys.h
index e170b97..af83ab8 100644
--- a/src/exchange/taler-exchange-httpd_keys.h
+++ b/src/donau/taler-donau-httpd_keys.h
@@ -7,28 +7,28 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_keys.h
+ * @file taler-donau-httpd_keys.h
  * @brief management of our various keys
  * @author Christian Grothoff
  */
 #include "platform.h"
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_responses.h"
 
 
-#ifndef TALER_EXCHANGE_HTTPD_KEYS_H
-#define TALER_EXCHANGE_HTTPD_KEYS_H
+#ifndef TALER_DONAU_HTTPD_KEYS_H
+#define TALER_DONAU_HTTPD_KEYS_H
 
 /**
- * Signatures of an auditor over a denomination key of this exchange.
+ * Signatures of an auditor over a denomination key of this donau.
  */
 struct TEH_AuditorSignature;
 
@@ -55,7 +55,7 @@ struct TEH_DenominationKey
    * Meta data about the type of the denomination, such as fees and validity
    * periods.
    */
-  struct TALER_EXCHANGEDB_DenominationKeyMetaData meta;
+  struct TALER_DONAUDB_DenominationKeyMetaData meta;
 
   /**
    * The long-term offline master key's signature for this denomination.
@@ -137,7 +137,7 @@ struct TEH_GlobalFee
 
 /**
  * Snapshot of the (coin and signing) keys (including private keys) of
- * the exchange.  There can be multiple instances of this struct, as it is
+ * the donau.  There can be multiple instances of this struct, as it is
  * reference counted and only destroyed once the last user is done
  * with it.  The current instance is acquired using
  * #TEH_KS_acquire().  Using this function increases the
@@ -186,7 +186,7 @@ TEH_wire_init (void);
 
 /**
  * Something changed in the database. Rebuild the wire replies.  This function
- * should be called if the exchange learns about a new signature from our
+ * should be called if the donau learns about a new signature from our
  * master key.
  *
  * (We do not do so immediately, but merely signal to all threads that they
@@ -203,7 +203,7 @@ TEH_wire_update_state (void);
  *
  * The result is ONLY valid until the next call to
  * #TEH_keys_denomination_by_hash() or #TEH_keys_get_state()
- * or #TEH_keys_exchange_sign().
+ * or #TEH_keys_donau_sign().
  *
  * @return NULL on error
  */
@@ -219,7 +219,7 @@ TEH_keys_get_state_for_management_only (void);
 
 /**
  * Something changed in the database. Rebuild all key states.  This function
- * should be called if the exchange learns about a new signature from an
+ * should be called if the donau learns about a new signature from an
  * auditor or our master key.
  *
  * (We do not do so immediately, but merely signal to all threads that they
@@ -266,7 +266,7 @@ TEH_keys_denomination_by_hash (
  * Look up the issue for a denom public key using a given @a ksh.  This allows
  * requesting multiple denominations with the same @a ksh which thus will
  * remain valid until the next call to #TEH_keys_denomination_by_hash() or
- * #TEH_keys_get_state() or #TEH_keys_exchange_sign().
+ * #TEH_keys_get_state() or #TEH_keys_donau_sign().
  *
  * @param ksh key state state to look in
  * @param h_denom_pub hash of denomination public key
@@ -415,45 +415,45 @@ TEH_resume_keys_requests (bool do_shutdown);
 
 
 /**
- * Sign the message in @a purpose with the exchange's signing key.
+ * Sign the message in @a purpose with the donau's signing key.
  *
  * The @a purpose data is the beginning of the data of which the signature is
  * to be created. The `size` field in @a purpose must correctly indicate the
  * number of bytes of the data structure, including its header.  Use
- * #TEH_keys_exchange_sign() instead of calling this function directly!
+ * #TEH_keys_donau_sign() instead of calling this function directly!
  *
  * @param purpose the message to sign
- * @param[out] pub set to the current public signing key of the exchange
+ * @param[out] pub set to the current public signing key of the donau
  * @param[out] sig signature over purpose using current signing key
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TEH_keys_exchange_sign_ (
+TEH_keys_donau_sign_ (
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Sign the message in @a purpose with the exchange's signing key.
+ * Sign the message in @a purpose with the donau's signing key.
  *
  * The @a purpose data is the beginning of the data of which the signature is
  * to be created. The `size` field in @a purpose must correctly indicate the
  * number of bytes of the data structure, including its header.  Use
- * #TEH_keys_exchange_sign() instead of calling this function directly!
+ * #TEH_keys_donau_sign() instead of calling this function directly!
  *
  * @param cls key state state to look in
  * @param purpose the message to sign
- * @param[out] pub set to the current public signing key of the exchange
+ * @param[out] pub set to the current public signing key of the donau
  * @param[out] sig signature over purpose using current signing key
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TEH_keys_exchange_sign2_ (
+TEH_keys_donau_sign2_ (
   void *cls,
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -469,7 +469,7 @@ TEH_keys_exchange_sign2_ (
  * @param[out] sig where to write the signature
  * @return #TALER_EC_NONE on success
  */
-#define TEH_keys_exchange_sign(ps,pub,sig) \
+#define TEH_keys_donau_sign(ps,pub,sig) \
   ({                                                  \
     /* check size is set correctly */                 \
     GNUNET_assert (htonl ((ps)->purpose.size) ==      \
@@ -477,7 +477,7 @@ TEH_keys_exchange_sign2_ (
     /* check 'ps' begins with the purpose */          \
     GNUNET_static_assert (((void*) (ps)) ==           \
                           ((void*) &(ps)->purpose));  \
-    TEH_keys_exchange_sign_ (&(ps)->purpose,          \
+    TEH_keys_donau_sign_ (&(ps)->purpose,          \
                              pub,                     \
                              sig);                    \
   })
@@ -494,7 +494,7 @@ TEH_keys_exchange_sign2_ (
  * This allows requesting multiple denominations with the same @a ksh which
  * thus will remain valid until the next call to
  * #TEH_keys_denomination_by_hash() or #TEH_keys_get_state() or
- * #TEH_keys_exchange_sign().
+ * #TEH_keys_donau_sign().
  *
  * @param ksh key state to use
  * @param ps packed struct with what to sign, MUST begin with a purpose
@@ -502,7 +502,7 @@ TEH_keys_exchange_sign2_ (
  * @param[out] sig where to write the signature
  * @return #TALER_EC_NONE on success
  */
-#define TEH_keys_exchange_sign2(ksh,ps,pub,sig)       \
+#define TEH_keys_donau_sign2(ksh,ps,pub,sig)       \
   ({                                                  \
     /* check size is set correctly */                 \
     GNUNET_assert (htonl ((ps)->purpose.size) ==      \
@@ -510,7 +510,7 @@ TEH_keys_exchange_sign2_ (
     /* check 'ps' begins with the purpose */          \
     GNUNET_static_assert (((void*) (ps)) ==           \
                           ((void*) &(ps)->purpose));  \
-    TEH_keys_exchange_sign2_ (ksh,                    \
+    TEH_keys_donau_sign2_ (ksh,                    \
                               &(ps)->purpose,         \
                               pub,                     \
                               sig);                    \
@@ -518,7 +518,7 @@ TEH_keys_exchange_sign2_ (
 
 
 /**
- * Revoke the given exchange's signing key.
+ * Revoke the given donau's signing key.
  * This function should be called AFTER the database was
  * updated, as it also triggers #TEH_keys_update_states().
  *
@@ -526,10 +526,10 @@ TEH_keys_exchange_sign2_ (
  * may thus fail silently. To verify that the revocation succeeded,
  * clients must watch for the associated change to the key state.
  *
- * @param exchange_pub key to revoke
+ * @param donau_pub key to revoke
  */
 void
-TEH_keys_exchange_revoke (const struct TALER_ExchangePublicKeyP *exchange_pub);
+TEH_keys_donau_revoke (const struct TALER_DonauPublicKeyP *donau_pub);
 
 
 /**
@@ -575,19 +575,19 @@ enum GNUNET_GenericReturnValue
 TEH_keys_load_fees (struct TEH_KeyStateHandle *ksh,
                     const struct TALER_DenominationHashP *h_denom_pub,
                     struct TALER_DenominationPublicKey *denom_pub,
-                    struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
+                    struct TALER_DONAUDB_DenominationKeyMetaData *meta);
 
 
 /**
  * Load expiration times for the given onling signing key.
  *
- * @param exchange_pub the online signing key
+ * @param donau_pub the online signing key
  * @param[out] meta set to meta data about the key
  * @return #GNUNET_OK on success
  */
 enum GNUNET_GenericReturnValue
-TEH_keys_get_timing (const struct TALER_ExchangePublicKeyP *exchange_pub,
-                     struct TALER_EXCHANGEDB_SignkeyMetaData *meta);
+TEH_keys_get_timing (const struct TALER_DonauPublicKeyP *donau_pub,
+                     struct TALER_DONAUDB_SignkeyMetaData *meta);
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_metrics.c 
b/src/donau/taler-donau-httpd_metrics.c
similarity index 60%
rename from src/exchange/taler-exchange-httpd_metrics.c
rename to src/donau/taler-donau-httpd_metrics.c
index 1542801..608a02a 100644
--- a/src/exchange/taler-exchange-httpd_metrics.c
+++ b/src/donau/taler-donau-httpd_metrics.c
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_metrics.c
+ * @file taler-donau-httpd_metrics.c
  * @brief Handle /metrics requests
  * @author Christian Grothoff
  */
 #include "platform.h"
 #include <gnunet/gnunet_json_lib.h>
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_metrics.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_metrics.h"
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
 #include <jansson.h>
@@ -39,7 +39,7 @@ unsigned long long 
TEH_METRICS_num_signatures[TEH_MT_SIGNATURE_COUNT];
 
 unsigned long long TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_COUNT];
 
-unsigned long long TEH_METRICS_num_keyexchanges[TEH_MT_KEYX_COUNT];
+unsigned long long TEH_METRICS_num_keydonaus[TEH_MT_KEYX_COUNT];
 
 unsigned long long TEH_METRICS_num_success[TEH_MT_SUCCESS_COUNT];
 
@@ -54,51 +54,51 @@ TEH_handler_metrics (struct TEH_RequestContext *rc,
 
   (void) args;
   GNUNET_asprintf (&reply,
-                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
-                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
-                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
-                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
-                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
-                   "# HELP taler_exchange_serialization_failures "
+                   "taler_donau_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_donau_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_donau_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_donau_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_donau_success_transactions{type=\"%s\"} %llu\n"
+                   "# HELP taler_donau_serialization_failures "
                    " number of database serialization errors by type\n"
-                   "# TYPE taler_exchange_serialization_failures counter\n"
-                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
-                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
-                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
-                   "taler_exchange_serialization_failures{type=\"%s\"} %llu\n"
-                   "# HELP taler_exchange_received_requests "
+                   "# TYPE taler_donau_serialization_failures counter\n"
+                   "taler_donau_serialization_failures{type=\"%s\"} %llu\n"
+                   "taler_donau_serialization_failures{type=\"%s\"} %llu\n"
+                   "taler_donau_serialization_failures{type=\"%s\"} %llu\n"
+                   "taler_donau_serialization_failures{type=\"%s\"} %llu\n"
+                   "# HELP taler_donau_received_requests "
                    " number of received requests by type\n"
-                   "# TYPE taler_exchange_received_requests counter\n"
-                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
-                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
-                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
-                   "taler_exchange_received_requests{type=\"%s\"} %llu\n"
-                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
+                   "# TYPE taler_donau_received_requests counter\n"
+                   "taler_donau_received_requests{type=\"%s\"} %llu\n"
+                   "taler_donau_received_requests{type=\"%s\"} %llu\n"
+                   "taler_donau_received_requests{type=\"%s\"} %llu\n"
+                   "taler_donau_received_requests{type=\"%s\"} %llu\n"
+                   "taler_donau_idempotent_requests{type=\"%s\"} %llu\n"
 #if NOT_YET_IMPLEMENTED
-                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
-                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
+                   "taler_donau_idempotent_requests{type=\"%s\"} %llu\n"
+                   "taler_donau_idempotent_requests{type=\"%s\"} %llu\n"
 #endif
-                   "taler_exchange_idempotent_requests{type=\"%s\"} %llu\n"
-                   "# HELP taler_exchange_num_signatures "
+                   "taler_donau_idempotent_requests{type=\"%s\"} %llu\n"
+                   "# HELP taler_donau_num_signatures "
                    " number of signatures created by cipher\n"
-                   "# TYPE taler_exchange_num_signatures counter\n"
-                   "taler_exchange_num_signatures{type=\"%s\"} %llu\n"
-                   "taler_exchange_num_signatures{type=\"%s\"} %llu\n"
-                   "taler_exchange_num_signatures{type=\"%s\"} %llu\n"
-                   "# HELP taler_exchange_num_signature_verifications "
+                   "# TYPE taler_donau_num_signatures counter\n"
+                   "taler_donau_num_signatures{type=\"%s\"} %llu\n"
+                   "taler_donau_num_signatures{type=\"%s\"} %llu\n"
+                   "taler_donau_num_signatures{type=\"%s\"} %llu\n"
+                   "# HELP taler_donau_num_signature_verifications "
                    " number of signatures verified by cipher\n"
-                   "# TYPE taler_exchange_num_signature_verifications 
counter\n"
-                   "taler_exchange_num_signature_verifications{type=\"%s\"} 
%llu\n"
-                   "taler_exchange_num_signature_verifications{type=\"%s\"} 
%llu\n"
-                   "taler_exchange_num_signature_verifications{type=\"%s\"} 
%llu\n"
-                   "# HELP taler_exchange_num_keyexchanges "
-                   " number of key exchanges done by cipher\n"
-                   "# TYPE taler_exchange_num_keyexchanges counter\n"
-                   "taler_exchange_num_keyexchanges{type=\"%s\"} %llu\n"
-                   "# HELP taler_exchange_batch_withdraw_num_coins "
+                   "# TYPE taler_donau_num_signature_verifications counter\n"
+                   "taler_donau_num_signature_verifications{type=\"%s\"} 
%llu\n"
+                   "taler_donau_num_signature_verifications{type=\"%s\"} 
%llu\n"
+                   "taler_donau_num_signature_verifications{type=\"%s\"} 
%llu\n"
+                   "# HELP taler_donau_num_keydonaus "
+                   " number of key donaus done by cipher\n"
+                   "# TYPE taler_donau_num_keydonaus counter\n"
+                   "taler_donau_num_keydonaus{type=\"%s\"} %llu\n"
+                   "# HELP taler_donau_batch_withdraw_num_coins "
                    " number of coins withdrawn in a batch-withdraw request\n"
-                   "# TYPE taler_exchange_batch_withdraw_num_coins counter\n"
-                   "taler_exchange_batch_withdraw_num_coins{} %llu\n",
+                   "# TYPE taler_donau_batch_withdraw_num_coins counter\n"
+                   "taler_donau_batch_withdraw_num_coins{} %llu\n",
                    "deposit",
                    TEH_METRICS_num_success[TEH_MT_SUCCESS_DEPOSIT],
                    "withdraw",
@@ -149,7 +149,7 @@ TEH_handler_metrics (struct TEH_RequestContext *rc,
                    "eddsa",
                    TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_EDDSA],
                    "ecdh",
-                   TEH_METRICS_num_keyexchanges[TEH_MT_KEYX_ECDH],
+                   TEH_METRICS_num_keydonaus[TEH_MT_KEYX_ECDH],
                    TEH_METRICS_batch_withdraw_num_coins);
   resp = MHD_create_response_from_buffer (strlen (reply),
                                           reply,
@@ -162,4 +162,4 @@ TEH_handler_metrics (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_metrics.c */
+/* end of taler-donau-httpd_metrics.c */
diff --git a/src/exchange/taler-exchange-httpd_metrics.h 
b/src/donau/taler-donau-httpd_metrics.h
similarity index 88%
rename from src/exchange/taler-exchange-httpd_metrics.h
rename to src/donau/taler-donau-httpd_metrics.h
index 318113c..528924a 100644
--- a/src/exchange/taler-exchange-httpd_metrics.h
+++ b/src/donau/taler-donau-httpd_metrics.h
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_metrics.h
+ * @file taler-donau-httpd_metrics.h
  * @brief Handle /metrics requests
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_METRICS_H
-#define TALER_EXCHANGE_HTTPD_METRICS_H
+#ifndef TALER_DONAU_HTTPD_METRICS_H
+#define TALER_DONAU_HTTPD_METRICS_H
 
 #include <gnunet/gnunet_util_lib.h>
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
@@ -77,7 +77,7 @@ enum TEH_MetricTypeSignature
 };
 
 /**
- * Cipher types for which we collect key exchange metrics.
+ * Cipher types for which we collect key donau metrics.
  */
 enum TEH_MetricTypeKeyX
 {
@@ -117,9 +117,9 @@ extern unsigned long long 
TEH_METRICS_num_signatures[TEH_MT_SIGNATURE_COUNT];
 extern unsigned long long 
TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_COUNT];
 
 /**
- * Number of key exchanges done with the respective cipher.
+ * Number of key donaus done with the respective cipher.
  */
-extern unsigned long long TEH_METRICS_num_keyexchanges[TEH_MT_KEYX_COUNT];
+extern unsigned long long TEH_METRICS_num_keydonaus[TEH_MT_KEYX_COUNT];
 
 /**
  * Handle a "/metrics" request.
diff --git a/src/exchange/taler-exchange-httpd_mhd.c 
b/src/donau/taler-donau-httpd_mhd.c
similarity index 80%
rename from src/exchange/taler-exchange-httpd_mhd.c
rename to src/donau/taler-donau-httpd_mhd.c
index 8d07c3c..cb31704 100644
--- a/src/exchange/taler-exchange-httpd_mhd.c
+++ b/src/donau/taler-donau-httpd_mhd.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
@@ -15,8 +15,8 @@
 */
 
 /**
- * @file taler-exchange-httpd_mhd.c
- * @brief helpers for MHD interaction; these are TALER_EXCHANGE_handler_ 
functions
+ * @file taler-donau-httpd_mhd.c
+ * @brief helpers for MHD interaction; these are TALER_DONAU_handler_ functions
  *        that generate simple MHD replies that do not require any real 
operations
  *        to be performed (error handling, static pages, etc.)
  * @author Florian Dold
@@ -29,9 +29,9 @@
 #include <microhttpd.h>
 #include <pthread.h>
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler-exchange-httpd.h"
-#include "taler-exchange-httpd_mhd.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler-donau-httpd.h"
+#include "taler-donau-httpd_mhd.h"
 
 
 MHD_RESULT
@@ -59,8 +59,8 @@ TEH_handler_agpl_redirect (struct TEH_RequestContext *rc,
 {
   (void) args;
   return TALER_MHD_reply_agpl (rc->connection,
-                               "https://git.taler.net/?p=exchange.git";);
+                               "https://git.taler.net/?p=donau.git";);
 }
 
 
-/* end of taler-exchange-httpd_mhd.c */
+/* end of taler-donau-httpd_mhd.c */
diff --git a/src/exchange/taler-exchange-httpd_mhd.h 
b/src/donau/taler-donau-httpd_mhd.h
similarity index 87%
rename from src/exchange/taler-exchange-httpd_mhd.h
rename to src/donau/taler-donau-httpd_mhd.h
index 563975b..69c4487 100644
--- a/src/exchange/taler-exchange-httpd_mhd.h
+++ b/src/donau/taler-donau-httpd_mhd.h
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
@@ -15,17 +15,17 @@
 */
 
 /**
- * @file taler-exchange-httpd_mhd.h
+ * @file taler-donau-httpd_mhd.h
  * @brief helpers for MHD interaction, used to generate simple responses
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_MHD_H
-#define TALER_EXCHANGE_HTTPD_MHD_H
+#ifndef TALER_DONAU_HTTPD_MHD_H
+#define TALER_DONAU_HTTPD_MHD_H
 #include <gnunet/gnunet_util_lib.h>
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_reserves_close.c 
b/src/donau/taler-donau-httpd_reserves_close.c
similarity index 94%
rename from src/exchange/taler-exchange-httpd_reserves_close.c
rename to src/donau/taler-donau-httpd_reserves_close.c
index bcde808..d1f64c6 100644
--- a/src/exchange/taler-exchange-httpd_reserves_close.c
+++ b/src/donau/taler-donau-httpd_reserves_close.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_close.c
+ * @file taler-donau-httpd_reserves_close.c
  * @brief Handle /reserves/$RESERVE_PUB/close requests
  * @author Florian Dold
  * @author Benedikt Mueller
@@ -27,9 +27,9 @@
 #include "taler_mhd_lib.h"
 #include "taler_json_lib.h"
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_reserves_close.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_reserves_close.h"
+#include "taler-donau-httpd_responses.h"
 
 
 /**
@@ -83,7 +83,7 @@ struct ReserveCloseContext
   /**
    * KYC status for the request.
    */
-  struct TALER_EXCHANGEDB_KycStatus kyc;
+  struct TALER_DONAUDB_KycStatus kyc;
 
   /**
    * Hash of the payto-URI that was used for the KYC decision.
@@ -134,7 +134,7 @@ reply_reserve_close_success (struct MHD_Connection 
*connection,
 static void
 amount_it (void *cls,
            struct GNUNET_TIME_Absolute limit,
-           TALER_EXCHANGEDB_KycAmountCallback cb,
+           TALER_DONAUDB_KycAmountCallback cb,
            void *cb_cls)
 {
   struct ReserveCloseContext *rcc = cls;
@@ -202,7 +202,7 @@ reserve_close_transaction (void *cls,
     *mhd_ret
       = TALER_MHD_reply_with_error (connection,
                                     MHD_HTTP_NOT_FOUND,
-                                    TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN,
+                                    TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN,
                                     NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
@@ -215,7 +215,7 @@ reserve_close_transaction (void *cls,
     *mhd_ret
       = TALER_MHD_reply_with_error (connection,
                                     MHD_HTTP_CONFLICT,
-                                    
TALER_EC_EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT,
+                                    
TALER_EC_DONAU_RESERVES_CLOSE_NO_TARGET_ACCOUNT,
                                     NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
@@ -303,7 +303,7 @@ reserve_close_transaction (void *cls,
       GNUNET_break (0);
       *mhd_ret = TALER_MHD_reply_with_error (connection,
                                              MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                             
TALER_EC_EXCHANGE_WIRE_FEES_NOT_CONFIGURED,
+                                             
TALER_EC_DONAU_WIRE_FEES_NOT_CONFIGURED,
                                              method);
       GNUNET_free (method);
       return GNUNET_DB_STATUS_HARD_ERROR;
@@ -404,7 +404,7 @@ TEH_handler_reserves_close (struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW,
+                                         TALER_EC_DONAU_GENERIC_CLOCK_SKEW,
                                          NULL);
     }
   }
@@ -421,7 +421,7 @@ TEH_handler_reserves_close (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_FORBIDDEN,
-                                       
TALER_EC_EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE,
+                                       
TALER_EC_DONAU_RESERVES_CLOSE_BAD_SIGNATURE,
                                        NULL);
   }
 
@@ -445,4 +445,4 @@ TEH_handler_reserves_close (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_reserves_close.c */
+/* end of taler-donau-httpd_reserves_close.c */
diff --git a/src/exchange/taler-exchange-httpd_reserves_close.h 
b/src/donau/taler-donau-httpd_reserves_close.h
similarity index 82%
rename from src/exchange/taler-exchange-httpd_reserves_close.h
rename to src/donau/taler-donau-httpd_reserves_close.h
index 4c70b17..77449ec 100644
--- a/src/exchange/taler-exchange-httpd_reserves_close.h
+++ b/src/donau/taler-donau-httpd_reserves_close.h
@@ -7,22 +7,22 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_close.h
+ * @file taler-donau-httpd_reserves_close.h
  * @brief Handle /reserves/$RESERVE_PUB/close requests
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_RESERVES_CLOSE_H
-#define TALER_EXCHANGE_HTTPD_RESERVES_CLOSE_H
+#ifndef TALER_DONAU_HTTPD_RESERVES_CLOSE_H
+#define TALER_DONAU_HTTPD_RESERVES_CLOSE_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_reserves_get.c 
b/src/donau/taler-donau-httpd_reserves_get.c
similarity index 94%
rename from src/exchange/taler-exchange-httpd_reserves_get.c
rename to src/donau/taler-donau-httpd_reserves_get.c
index bbaac85..835c2a8 100644
--- a/src/exchange/taler-exchange-httpd_reserves_get.c
+++ b/src/donau/taler-donau-httpd_reserves_get.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_get.c
+ * @file taler-donau-httpd_reserves_get.c
  * @brief Handle /reserves/$RESERVE_PUB GET requests
  * @author Florian Dold
  * @author Benedikt Mueller
@@ -26,9 +26,9 @@
 #include "taler_mhd_lib.h"
 #include "taler_json_lib.h"
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_reserves_get.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_reserves_get.h"
+#include "taler-donau-httpd_responses.h"
 
 
 /**
@@ -206,7 +206,7 @@ TEH_handler_reserves_get (struct TEH_RequestContext *rc,
   {
     struct TALER_ReserveEventP rep = {
       .header.size = htons (sizeof (rep)),
-      .header.type = htons (TALER_DBEVENT_EXCHANGE_RESERVE_INCOMING),
+      .header.type = htons (TALER_DBEVENT_DONAU_RESERVE_INCOMING),
       .reserve_pub = rp->reserve_pub
     };
 
@@ -253,7 +253,7 @@ TEH_handler_reserves_get (struct TEH_RequestContext *rc,
       {
         return TALER_MHD_reply_with_error (rc->connection,
                                            MHD_HTTP_NOT_FOUND,
-                                           
TALER_EC_EXCHANGE_RESERVES_STATUS_UNKNOWN,
+                                           
TALER_EC_DONAU_RESERVES_STATUS_UNKNOWN,
                                            args[0]);
       }
       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -271,4 +271,4 @@ TEH_handler_reserves_get (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_reserves_get.c */
+/* end of taler-donau-httpd_reserves_get.c */
diff --git a/src/exchange/taler-exchange-httpd_reserves_get.h 
b/src/donau/taler-donau-httpd_reserves_get.h
similarity index 85%
rename from src/exchange/taler-exchange-httpd_reserves_get.h
rename to src/donau/taler-donau-httpd_reserves_get.h
index 30c6559..3fbcba2 100644
--- a/src/exchange/taler-exchange-httpd_reserves_get.h
+++ b/src/donau/taler-donau-httpd_reserves_get.h
@@ -7,24 +7,24 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_get.h
+ * @file taler-donau-httpd_reserves_get.h
  * @brief Handle /reserves/$RESERVE_PUB GET requests
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_RESERVES_GET_H
-#define TALER_EXCHANGE_HTTPD_RESERVES_GET_H
+#ifndef TALER_DONAU_HTTPD_RESERVES_GET_H
+#define TALER_DONAU_HTTPD_RESERVES_GET_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_reserves_history.c 
b/src/donau/taler-donau-httpd_reserves_history.c
similarity index 90%
rename from src/exchange/taler-exchange-httpd_reserves_history.c
rename to src/donau/taler-donau-httpd_reserves_history.c
index ffdc6ea..73d9a69 100644
--- a/src/exchange/taler-exchange-httpd_reserves_history.c
+++ b/src/donau/taler-donau-httpd_reserves_history.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_history.c
+ * @file taler-donau-httpd_reserves_history.c
  * @brief Handle /reserves/$RESERVE_PUB/history requests
  * @author Florian Dold
  * @author Benedikt Mueller
@@ -26,9 +26,9 @@
 #include "taler_mhd_lib.h"
 #include "taler_json_lib.h"
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_reserves_history.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_reserves_history.h"
+#include "taler-donau-httpd_responses.h"
 
 
 /**
@@ -62,7 +62,7 @@ struct ReserveHistoryContext
   /**
    * History of the reserve, set in the callback.
    */
-  struct TALER_EXCHANGEDB_ReserveHistory *rh;
+  struct TALER_DONAUDB_ReserveHistory *rh;
 
   /**
    * Global fees applying to the request.
@@ -87,7 +87,7 @@ static MHD_RESULT
 reply_reserve_history_success (struct MHD_Connection *connection,
                                const struct ReserveHistoryContext *rhc)
 {
-  const struct TALER_EXCHANGEDB_ReserveHistory *rh = rhc->rh;
+  const struct TALER_DONAUDB_ReserveHistory *rh = rhc->rh;
   json_t *json_history;
 
   json_history = TEH_RESPONSE_compile_reserve_history (rh);
@@ -159,7 +159,7 @@ reserve_history_transaction (void *cls,
     {
       return TALER_MHD_reply_with_error (connection,
                                          MHD_HTTP_CONFLICT,
-                                         
TALER_EC_EXCHANGE_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE,
+                                         
TALER_EC_DONAU_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE,
                                          NULL);
     }
     if (idempotent)
@@ -227,7 +227,7 @@ TEH_handler_reserves_history (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW,
+                                       TALER_EC_DONAU_GENERIC_CLOCK_SKEW,
                                        NULL);
   }
   {
@@ -240,7 +240,7 @@ TEH_handler_reserves_history (struct TEH_RequestContext *rc,
       GNUNET_JSON_parse_free (spec);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                         
TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                         TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                          NULL);
     }
     rsc.gf = TEH_keys_global_fee_by_time (keys,
@@ -251,7 +251,7 @@ TEH_handler_reserves_history (struct TEH_RequestContext *rc,
     GNUNET_break (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                       
TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION,
+                                       
TALER_EC_DONAU_GENERIC_BAD_CONFIGURATION,
                                        NULL);
   }
   if (GNUNET_OK !=
@@ -263,7 +263,7 @@ TEH_handler_reserves_history (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_FORBIDDEN,
-                                       
TALER_EC_EXCHANGE_RESERVES_HISTORY_BAD_SIGNATURE,
+                                       
TALER_EC_DONAU_RESERVES_HISTORY_BAD_SIGNATURE,
                                        NULL);
   }
   rsc.rh = NULL;
@@ -281,7 +281,7 @@ TEH_handler_reserves_history (struct TEH_RequestContext *rc,
   {
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_NOT_FOUND,
-                                       
TALER_EC_EXCHANGE_RESERVES_STATUS_UNKNOWN,
+                                       TALER_EC_DONAU_RESERVES_STATUS_UNKNOWN,
                                        NULL);
   }
   mhd_ret = reply_reserve_history_success (rc->connection,
@@ -292,4 +292,4 @@ TEH_handler_reserves_history (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_reserves_history.c */
+/* end of taler-donau-httpd_reserves_history.c */
diff --git a/src/exchange/taler-exchange-httpd_reserves_history.h 
b/src/donau/taler-donau-httpd_reserves_history.h
similarity index 82%
rename from src/exchange/taler-exchange-httpd_reserves_history.h
rename to src/donau/taler-donau-httpd_reserves_history.h
index e02cb4d..a7f9d2b 100644
--- a/src/exchange/taler-exchange-httpd_reserves_history.h
+++ b/src/donau/taler-donau-httpd_reserves_history.h
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_history.h
+ * @file taler-donau-httpd_reserves_history.h
  * @brief Handle /reserves/$RESERVE_PUB/history requests
  * @author Florian Dold
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_RESERVES_HISTORY_H
-#define TALER_EXCHANGE_HTTPD_RESERVES_HISTORY_H
+#ifndef TALER_DONAU_HTTPD_RESERVES_HISTORY_H
+#define TALER_DONAU_HTTPD_RESERVES_HISTORY_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_reserves_open.c 
b/src/donau/taler-donau-httpd_reserves_open.c
similarity index 93%
rename from src/exchange/taler-exchange-httpd_reserves_open.c
rename to src/donau/taler-donau-httpd_reserves_open.c
index 5048799..070edba 100644
--- a/src/exchange/taler-exchange-httpd_reserves_open.c
+++ b/src/donau/taler-donau-httpd_reserves_open.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_open.c
+ * @file taler-donau-httpd_reserves_open.c
  * @brief Handle /reserves/$RESERVE_PUB/open requests
  * @author Christian Grothoff
  */
@@ -24,10 +24,10 @@
 #include "taler_mhd_lib.h"
 #include "taler_json_lib.h"
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_common_deposit.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_reserves_open.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_common_deposit.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_reserves_open.h"
+#include "taler-donau-httpd_responses.h"
 
 
 /**
@@ -236,7 +236,7 @@ reserve_open_transaction (void *cls,
       *mhd_ret
         = TEH_RESPONSE_reply_coin_insufficient_funds (
             connection,
-            TALER_EC_EXCHANGE_GENERIC_INSUFFICIENT_FUNDS,
+            TALER_EC_DONAU_GENERIC_INSUFFICIENT_FUNDS,
             &coin->cpi.denom_pub_hash,
             &coin->cpi.coin_pub);
       return GNUNET_DB_STATUS_HARD_ERROR;
@@ -276,7 +276,7 @@ reserve_open_transaction (void *cls,
     *mhd_ret
       = TALER_MHD_reply_with_error (connection,
                                     MHD_HTTP_NOT_FOUND,
-                                    TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN,
+                                    TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN,
                                     NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
@@ -288,7 +288,7 @@ reserve_open_transaction (void *cls,
     *mhd_ret
       = TEH_RESPONSE_reply_reserve_insufficient_balance (
           connection,
-          TALER_EC_EXCHANGE_RESERVES_OPEN_INSUFFICIENT_FUNDS,
+          TALER_EC_DONAU_RESERVES_OPEN_INSUFFICIENT_FUNDS,
           &rsc->reserve_payment,
           rsc->reserve_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -351,7 +351,7 @@ TEH_handler_reserves_open (struct TEH_RequestContext *rc,
       GNUNET_break_op (0);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW,
+                                         TALER_EC_DONAU_GENERIC_CLOCK_SKEW,
                                          NULL);
     }
   }
@@ -406,7 +406,7 @@ TEH_handler_reserves_open (struct TEH_RequestContext *rc,
       cleanup_rsc (&rsc);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                         
TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                         TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                          NULL);
     }
     rsc.gf = TEH_keys_global_fee_by_time (keys,
@@ -418,7 +418,7 @@ TEH_handler_reserves_open (struct TEH_RequestContext *rc,
     cleanup_rsc (&rsc);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                       
TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION,
+                                       
TALER_EC_DONAU_GENERIC_BAD_CONFIGURATION,
                                        NULL);
   }
 
@@ -434,7 +434,7 @@ TEH_handler_reserves_open (struct TEH_RequestContext *rc,
     cleanup_rsc (&rsc);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_FORBIDDEN,
-                                       
TALER_EC_EXCHANGE_RESERVES_OPEN_BAD_SIGNATURE,
+                                       
TALER_EC_DONAU_RESERVES_OPEN_BAD_SIGNATURE,
                                        NULL);
   }
 
@@ -465,4 +465,4 @@ TEH_handler_reserves_open (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_reserves_open.c */
+/* end of taler-donau-httpd_reserves_open.c */
diff --git a/src/exchange/taler-exchange-httpd_reserves_open.h 
b/src/donau/taler-donau-httpd_reserves_open.h
similarity index 82%
rename from src/exchange/taler-exchange-httpd_reserves_open.h
rename to src/donau/taler-donau-httpd_reserves_open.h
index e28c22c..007f889 100644
--- a/src/exchange/taler-exchange-httpd_reserves_open.h
+++ b/src/donau/taler-donau-httpd_reserves_open.h
@@ -7,22 +7,22 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_open.h
+ * @file taler-donau-httpd_reserves_open.h
  * @brief Handle /reserves/$RESERVE_PUB/open requests
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_RESERVES_OPEN_H
-#define TALER_EXCHANGE_HTTPD_RESERVES_OPEN_H
+#ifndef TALER_DONAU_HTTPD_RESERVES_OPEN_H
+#define TALER_DONAU_HTTPD_RESERVES_OPEN_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_reserves_status.c 
b/src/donau/taler-donau-httpd_reserves_status.c
similarity index 91%
rename from src/exchange/taler-exchange-httpd_reserves_status.c
rename to src/donau/taler-donau-httpd_reserves_status.c
index 4e7b4f4..bfb583a 100644
--- a/src/exchange/taler-exchange-httpd_reserves_status.c
+++ b/src/donau/taler-donau-httpd_reserves_status.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_status.c
+ * @file taler-donau-httpd_reserves_status.c
  * @brief Handle /reserves/$RESERVE_PUB STATUS requests
  * @author Florian Dold
  * @author Benedikt Mueller
@@ -26,9 +26,9 @@
 #include "taler_mhd_lib.h"
 #include "taler_json_lib.h"
 #include "taler_dbevents.h"
-#include "taler-exchange-httpd_keys.h"
-#include "taler-exchange-httpd_reserves_status.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
+#include "taler-donau-httpd_reserves_status.h"
+#include "taler-donau-httpd_responses.h"
 
 /**
  * How far do we allow a client's time to be off when
@@ -51,7 +51,7 @@ struct ReserveStatusContext
   /**
    * History of the reserve, set in the callback.
    */
-  struct TALER_EXCHANGEDB_ReserveHistory *rh;
+  struct TALER_DONAUDB_ReserveHistory *rh;
 
   /**
    * Sum of incoming transactions within the returned history.
@@ -83,7 +83,7 @@ static MHD_RESULT
 reply_reserve_status_success (struct MHD_Connection *connection,
                               const struct ReserveStatusContext *rhc)
 {
-  const struct TALER_EXCHANGEDB_ReserveHistory *rh = rhc->rh;
+  const struct TALER_DONAUDB_ReserveHistory *rh = rhc->rh;
   json_t *json_history;
 
   json_history = TEH_RESPONSE_compile_reserve_history (rh);
@@ -200,7 +200,7 @@ TEH_handler_reserves_status (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_BAD_REQUEST,
-                                       TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW,
+                                       TALER_EC_DONAU_GENERIC_CLOCK_SKEW,
                                        NULL);
   }
   if (GNUNET_OK !=
@@ -211,7 +211,7 @@ TEH_handler_reserves_status (struct TEH_RequestContext *rc,
     GNUNET_break_op (0);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_FORBIDDEN,
-                                       
TALER_EC_EXCHANGE_RESERVES_STATUS_BAD_SIGNATURE,
+                                       
TALER_EC_DONAU_RESERVES_STATUS_BAD_SIGNATURE,
                                        NULL);
   }
   rsc.rh = NULL;
@@ -229,7 +229,7 @@ TEH_handler_reserves_status (struct TEH_RequestContext *rc,
   {
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_NOT_FOUND,
-                                       
TALER_EC_EXCHANGE_RESERVES_STATUS_UNKNOWN,
+                                       TALER_EC_DONAU_RESERVES_STATUS_UNKNOWN,
                                        NULL);
   }
   mhd_ret = reply_reserve_status_success (rc->connection,
@@ -240,4 +240,4 @@ TEH_handler_reserves_status (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_reserves_status.c */
+/* end of taler-donau-httpd_reserves_status.c */
diff --git a/src/exchange/taler-exchange-httpd_reserves_status.h 
b/src/donau/taler-donau-httpd_reserves_status.h
similarity index 82%
rename from src/exchange/taler-exchange-httpd_reserves_status.h
rename to src/donau/taler-donau-httpd_reserves_status.h
index 831b270..88d892a 100644
--- a/src/exchange/taler-exchange-httpd_reserves_status.h
+++ b/src/donau/taler-donau-httpd_reserves_status.h
@@ -7,24 +7,24 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_reserves_status.h
+ * @file taler-donau-httpd_reserves_status.h
  * @brief Handle /reserves/$RESERVE_PUB STATUS requests
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_RESERVES_STATUS_H
-#define TALER_EXCHANGE_HTTPD_RESERVES_STATUS_H
+#ifndef TALER_DONAU_HTTPD_RESERVES_STATUS_H
+#define TALER_DONAU_HTTPD_RESERVES_STATUS_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_responses.c 
b/src/donau/taler-donau-httpd_responses.c
similarity index 83%
rename from src/exchange/taler-exchange-httpd_responses.c
rename to src/donau/taler-donau-httpd_responses.c
index 7d2d7a9..0800d89 100644
--- a/src/exchange/taler-exchange-httpd_responses.c
+++ b/src/donau/taler-donau-httpd_responses.c
@@ -7,15 +7,15 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_responses.c
- * @brief API for generating generic replies of the exchange; these
+ * @file taler-donau-httpd_responses.c
+ * @brief API for generating generic replies of the donau; these
  *        functions are called TEH_RESPONSE_reply_ and they generate
  *        and queue MHD response objects for a given connection.
  * @author Florian Dold
@@ -25,11 +25,11 @@
 #include "platform.h"
 #include <microhttpd.h>
 #include <zlib.h>
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_responses.h"
 #include "taler_util.h"
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_keys.h"
+#include "taler-donau-httpd_keys.h"
 
 
 /**
@@ -42,7 +42,7 @@
 json_t *
 TEH_RESPONSE_compile_transaction_history (
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_EXCHANGEDB_TransactionList *tl)
+  const struct TALER_DONAUDB_TransactionList *tl)
 {
   json_t *history;
 
@@ -52,19 +52,19 @@ TEH_RESPONSE_compile_transaction_history (
     GNUNET_break (0); /* out of memory!? */
     return NULL;
   }
-  for (const struct TALER_EXCHANGEDB_TransactionList *pos = tl;
+  for (const struct TALER_DONAUDB_TransactionList *pos = tl;
        NULL != pos;
        pos = pos->next)
   {
     switch (pos->type)
     {
-    case TALER_EXCHANGEDB_TT_DEPOSIT:
+    case TALER_DONAUDB_TT_DEPOSIT:
       {
-        const struct TALER_EXCHANGEDB_DepositListEntry *deposit =
+        const struct TALER_DONAUDB_DepositListEntry *deposit =
           pos->details.deposit;
-        struct TALER_MerchantWireHashP h_wire;
+        struct TALER_CharityWireHashP h_wire;
 
-        TALER_merchant_wire_signature_hash (deposit->receiver_wire_account,
+        TALER_charity_wire_signature_hash (deposit->receiver_wire_account,
                                             &deposit->wire_salt,
                                             &h_wire);
 #if ENABLE_SANITY_CHECKS
@@ -85,7 +85,7 @@ TEH_RESPONSE_compile_transaction_history (
               &deposit->h_policy,
               &deposit->h_denom_pub,
               deposit->timestamp,
-              &deposit->merchant_pub,
+              &deposit->charity_pub,
               deposit->refund_deadline,
               coin_pub,
               &deposit->csig))
@@ -110,8 +110,8 @@ TEH_RESPONSE_compile_transaction_history (
                 GNUNET_JSON_pack_allow_null (
                   GNUNET_JSON_pack_timestamp ("refund_deadline",
                                               deposit->refund_deadline)),
-                GNUNET_JSON_pack_data_auto ("merchant_pub",
-                                            &deposit->merchant_pub),
+                GNUNET_JSON_pack_data_auto ("charity_pub",
+                                            &deposit->charity_pub),
                 GNUNET_JSON_pack_data_auto ("h_contract_terms",
                                             &deposit->h_contract_terms),
                 GNUNET_JSON_pack_data_auto ("h_wire",
@@ -131,9 +131,9 @@ TEH_RESPONSE_compile_transaction_history (
         }
         break;
       }
-    case TALER_EXCHANGEDB_TT_MELT:
+    case TALER_DONAUDB_TT_MELT:
       {
-        const struct TALER_EXCHANGEDB_MeltListEntry *melt =
+        const struct TALER_DONAUDB_MeltListEntry *melt =
           pos->details.melt;
         const struct TALER_AgeCommitmentHash *phac = NULL;
 
@@ -184,22 +184,22 @@ TEH_RESPONSE_compile_transaction_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_TT_REFUND:
+    case TALER_DONAUDB_TT_REFUND:
       {
-        const struct TALER_EXCHANGEDB_RefundListEntry *refund =
+        const struct TALER_DONAUDB_RefundListEntry *refund =
           pos->details.refund;
         struct TALER_Amount value;
 
 #if ENABLE_SANITY_CHECKS
         TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_EDDSA]++;
         if (GNUNET_OK !=
-            TALER_merchant_refund_verify (
+            TALER_charity_refund_verify (
               coin_pub,
               &refund->h_contract_terms,
               refund->rtransaction_id,
               &refund->refund_amount,
-              &refund->merchant_pub,
-              &refund->merchant_sig))
+              &refund->charity_pub,
+              &refund->charity_sig))
         {
           GNUNET_break (0);
           json_decref (history);
@@ -227,12 +227,12 @@ TEH_RESPONSE_compile_transaction_history (
                                         &refund->refund_fee),
                 GNUNET_JSON_pack_data_auto ("h_contract_terms",
                                             &refund->h_contract_terms),
-                GNUNET_JSON_pack_data_auto ("merchant_pub",
-                                            &refund->merchant_pub),
+                GNUNET_JSON_pack_data_auto ("charity_pub",
+                                            &refund->charity_pub),
                 GNUNET_JSON_pack_uint64 ("rtransaction_id",
                                          refund->rtransaction_id),
-                GNUNET_JSON_pack_data_auto ("merchant_sig",
-                                            &refund->merchant_sig))))
+                GNUNET_JSON_pack_data_auto ("charity_sig",
+                                            &refund->charity_sig))))
         {
           GNUNET_break (0);
           json_decref (history);
@@ -240,16 +240,16 @@ TEH_RESPONSE_compile_transaction_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP:
+    case TALER_DONAUDB_TT_OLD_COIN_RECOUP:
       {
-        struct TALER_EXCHANGEDB_RecoupRefreshListEntry *pr =
+        struct TALER_DONAUDB_RecoupRefreshListEntry *pr =
           pos->details.old_coin_recoup;
-        struct TALER_ExchangePublicKeyP epub;
-        struct TALER_ExchangeSignatureP esig;
+        struct TALER_DonauPublicKeyP epub;
+        struct TALER_DonauSignatureP esig;
 
         if (TALER_EC_NONE !=
-            TALER_exchange_online_confirm_recoup_refresh_sign (
-              &TEH_keys_exchange_sign_,
+            TALER_donau_online_confirm_recoup_refresh_sign (
+              &TEH_keys_donau_sign_,
               pr->timestamp,
               &pr->value,
               &pr->coin.coin_pub,
@@ -274,9 +274,9 @@ TEH_RESPONSE_compile_transaction_history (
                                          "OLD-COIN-RECOUP"),
                 TALER_JSON_pack_amount ("amount",
                                         &pr->value),
-                GNUNET_JSON_pack_data_auto ("exchange_sig",
+                GNUNET_JSON_pack_data_auto ("donau_sig",
                                             &esig),
-                GNUNET_JSON_pack_data_auto ("exchange_pub",
+                GNUNET_JSON_pack_data_auto ("donau_pub",
                                             &epub),
                 GNUNET_JSON_pack_data_auto ("coin_pub",
                                             &pr->coin.coin_pub),
@@ -289,16 +289,16 @@ TEH_RESPONSE_compile_transaction_history (
         }
         break;
       }
-    case TALER_EXCHANGEDB_TT_RECOUP:
+    case TALER_DONAUDB_TT_RECOUP:
       {
-        const struct TALER_EXCHANGEDB_RecoupListEntry *recoup =
+        const struct TALER_DONAUDB_RecoupListEntry *recoup =
           pos->details.recoup;
-        struct TALER_ExchangePublicKeyP epub;
-        struct TALER_ExchangeSignatureP esig;
+        struct TALER_DonauPublicKeyP epub;
+        struct TALER_DonauSignatureP esig;
 
         if (TALER_EC_NONE !=
-            TALER_exchange_online_confirm_recoup_sign (
-              &TEH_keys_exchange_sign_,
+            TALER_donau_online_confirm_recoup_sign (
+              &TEH_keys_donau_sign_,
               recoup->timestamp,
               &recoup->value,
               coin_pub,
@@ -318,9 +318,9 @@ TEH_RESPONSE_compile_transaction_history (
                                          "RECOUP"),
                 TALER_JSON_pack_amount ("amount",
                                         &recoup->value),
-                GNUNET_JSON_pack_data_auto ("exchange_sig",
+                GNUNET_JSON_pack_data_auto ("donau_sig",
                                             &esig),
-                GNUNET_JSON_pack_data_auto ("exchange_pub",
+                GNUNET_JSON_pack_data_auto ("donau_pub",
                                             &epub),
                 GNUNET_JSON_pack_data_auto ("reserve_pub",
                                             &recoup->reserve_pub),
@@ -339,16 +339,16 @@ TEH_RESPONSE_compile_transaction_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_TT_RECOUP_REFRESH:
+    case TALER_DONAUDB_TT_RECOUP_REFRESH:
       {
-        struct TALER_EXCHANGEDB_RecoupRefreshListEntry *pr =
+        struct TALER_DONAUDB_RecoupRefreshListEntry *pr =
           pos->details.recoup_refresh;
-        struct TALER_ExchangePublicKeyP epub;
-        struct TALER_ExchangeSignatureP esig;
+        struct TALER_DonauPublicKeyP epub;
+        struct TALER_DonauSignatureP esig;
 
         if (TALER_EC_NONE !=
-            TALER_exchange_online_confirm_recoup_refresh_sign (
-              &TEH_keys_exchange_sign_,
+            TALER_donau_online_confirm_recoup_refresh_sign (
+              &TEH_keys_donau_sign_,
               pr->timestamp,
               &pr->value,
               coin_pub,
@@ -373,9 +373,9 @@ TEH_RESPONSE_compile_transaction_history (
                                          "RECOUP-REFRESH"),
                 TALER_JSON_pack_amount ("amount",
                                         &pr->value),
-                GNUNET_JSON_pack_data_auto ("exchange_sig",
+                GNUNET_JSON_pack_data_auto ("donau_sig",
                                             &esig),
-                GNUNET_JSON_pack_data_auto ("exchange_pub",
+                GNUNET_JSON_pack_data_auto ("donau_pub",
                                             &epub),
                 GNUNET_JSON_pack_data_auto ("old_coin_pub",
                                             &pr->old_coin_pub),
@@ -393,9 +393,9 @@ TEH_RESPONSE_compile_transaction_history (
         break;
       }
 
-    case TALER_EXCHANGEDB_TT_PURSE_DEPOSIT:
+    case TALER_DONAUDB_TT_PURSE_DEPOSIT:
       {
-        struct TALER_EXCHANGEDB_PurseDepositListEntry *pd
+        struct TALER_DONAUDB_PurseDepositListEntry *pd
           = pos->details.purse_deposit;
         const struct TALER_AgeCommitmentHash *phac = NULL;
 
@@ -410,10 +410,10 @@ TEH_RESPONSE_compile_transaction_history (
                                          "PURSE-DEPOSIT"),
                 TALER_JSON_pack_amount ("amount",
                                         &pd->amount),
-                GNUNET_JSON_pack_string ("exchange_base_url",
-                                         NULL == pd->exchange_base_url
+                GNUNET_JSON_pack_string ("donau_base_url",
+                                         NULL == pd->donau_base_url
                                          ? TEH_base_url
-                                         : pd->exchange_base_url),
+                                         : pd->donau_base_url),
                 GNUNET_JSON_pack_allow_null (
                   GNUNET_JSON_pack_data_auto ("h_age_commitment",
                                               phac)),
@@ -431,14 +431,14 @@ TEH_RESPONSE_compile_transaction_history (
         break;
       }
 
-    case TALER_EXCHANGEDB_TT_PURSE_REFUND:
+    case TALER_DONAUDB_TT_PURSE_REFUND:
       {
-        const struct TALER_EXCHANGEDB_PurseRefundListEntry *prefund =
+        const struct TALER_DONAUDB_PurseRefundListEntry *prefund =
           pos->details.purse_refund;
         struct TALER_Amount value;
         enum TALER_ErrorCode ec;
-        struct TALER_ExchangePublicKeyP epub;
-        struct TALER_ExchangeSignatureP esig;
+        struct TALER_DonauPublicKeyP epub;
+        struct TALER_DonauSignatureP esig;
 
         if (0 >
             TALER_amount_subtract (&value,
@@ -449,8 +449,8 @@ TEH_RESPONSE_compile_transaction_history (
           json_decref (history);
           return NULL;
         }
-        ec = TALER_exchange_online_purse_refund_sign (
-          &TEH_keys_exchange_sign_,
+        ec = TALER_donau_online_purse_refund_sign (
+          &TEH_keys_donau_sign_,
           &value,
           &prefund->refund_fee,
           coin_pub,
@@ -473,9 +473,9 @@ TEH_RESPONSE_compile_transaction_history (
                                         &value),
                 TALER_JSON_pack_amount ("refund_fee",
                                         &prefund->refund_fee),
-                GNUNET_JSON_pack_data_auto ("exchange_sig",
+                GNUNET_JSON_pack_data_auto ("donau_sig",
                                             &esig),
-                GNUNET_JSON_pack_data_auto ("exchange_pub",
+                GNUNET_JSON_pack_data_auto ("donau_pub",
                                             &epub),
                 GNUNET_JSON_pack_data_auto ("purse_pub",
                                             &prefund->purse_pub))))
@@ -487,9 +487,9 @@ TEH_RESPONSE_compile_transaction_history (
       }
       break;
 
-    case TALER_EXCHANGEDB_TT_RESERVE_OPEN:
+    case TALER_DONAUDB_TT_RESERVE_OPEN:
       {
-        struct TALER_EXCHANGEDB_ReserveOpenListEntry *role
+        struct TALER_DONAUDB_ReserveOpenListEntry *role
           = pos->details.reserve_open;
 
         if (0 !=
@@ -522,14 +522,14 @@ TEH_RESPONSE_reply_unknown_denom_pub_hash (
   struct MHD_Connection *connection,
   const struct TALER_DenominationHashP *dph)
 {
-  struct TALER_ExchangePublicKeyP epub;
-  struct TALER_ExchangeSignatureP esig;
+  struct TALER_DonauPublicKeyP epub;
+  struct TALER_DonauSignatureP esig;
   struct GNUNET_TIME_Timestamp now;
   enum TALER_ErrorCode ec;
 
   now = GNUNET_TIME_timestamp_get ();
-  ec = TALER_exchange_online_denomination_unknown_sign (
-    &TEH_keys_exchange_sign_,
+  ec = TALER_donau_online_denomination_unknown_sign (
+    &TEH_keys_donau_sign_,
     now,
     dph,
     &epub,
@@ -545,12 +545,12 @@ TEH_RESPONSE_reply_unknown_denom_pub_hash (
   return TALER_MHD_REPLY_JSON_PACK (
     connection,
     MHD_HTTP_NOT_FOUND,
-    TALER_JSON_pack_ec (TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN),
+    TALER_JSON_pack_ec (TALER_EC_DONAU_GENERIC_DENOMINATION_KEY_UNKNOWN),
     GNUNET_JSON_pack_timestamp ("timestamp",
                                 now),
-    GNUNET_JSON_pack_data_auto ("exchange_pub",
+    GNUNET_JSON_pack_data_auto ("donau_pub",
                                 &epub),
-    GNUNET_JSON_pack_data_auto ("exchange_sig",
+    GNUNET_JSON_pack_data_auto ("donau_sig",
                                 &esig),
     GNUNET_JSON_pack_data_auto ("h_denom_pub",
                                 dph));
@@ -564,14 +564,14 @@ TEH_RESPONSE_reply_expired_denom_pub_hash (
   enum TALER_ErrorCode ec,
   const char *oper)
 {
-  struct TALER_ExchangePublicKeyP epub;
-  struct TALER_ExchangeSignatureP esig;
+  struct TALER_DonauPublicKeyP epub;
+  struct TALER_DonauSignatureP esig;
   enum TALER_ErrorCode ecr;
   struct GNUNET_TIME_Timestamp now
     = GNUNET_TIME_timestamp_get ();
 
-  ecr = TALER_exchange_online_denomination_expired_sign (
-    &TEH_keys_exchange_sign_,
+  ecr = TALER_donau_online_denomination_expired_sign (
+    &TEH_keys_donau_sign_,
     now,
     dph,
     oper,
@@ -593,9 +593,9 @@ TEH_RESPONSE_reply_expired_denom_pub_hash (
                              oper),
     GNUNET_JSON_pack_timestamp ("timestamp",
                                 now),
-    GNUNET_JSON_pack_data_auto ("exchange_pub",
+    GNUNET_JSON_pack_data_auto ("donau_pub",
                                 &epub),
-    GNUNET_JSON_pack_data_auto ("exchange_sig",
+    GNUNET_JSON_pack_data_auto ("donau_sig",
                                 &esig),
     GNUNET_JSON_pack_data_auto ("h_denom_pub",
                                 dph));
@@ -607,14 +607,14 @@ TEH_RESPONSE_reply_invalid_denom_cipher_for_operation (
   struct MHD_Connection *connection,
   const struct TALER_DenominationHashP *dph)
 {
-  struct TALER_ExchangePublicKeyP epub;
-  struct TALER_ExchangeSignatureP esig;
+  struct TALER_DonauPublicKeyP epub;
+  struct TALER_DonauSignatureP esig;
   struct GNUNET_TIME_Timestamp now;
   enum TALER_ErrorCode ec;
 
   now = GNUNET_TIME_timestamp_get ();
-  ec = TALER_exchange_online_denomination_unknown_sign (
-    &TEH_keys_exchange_sign_,
+  ec = TALER_donau_online_denomination_unknown_sign (
+    &TEH_keys_donau_sign_,
     now,
     dph,
     &epub,
@@ -631,12 +631,12 @@ TEH_RESPONSE_reply_invalid_denom_cipher_for_operation (
     connection,
     MHD_HTTP_NOT_FOUND,
     TALER_JSON_pack_ec (
-      TALER_EC_EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION),
+      TALER_EC_DONAU_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION),
     GNUNET_JSON_pack_timestamp ("timestamp",
                                 now),
-    GNUNET_JSON_pack_data_auto ("exchange_pub",
+    GNUNET_JSON_pack_data_auto ("donau_pub",
                                 &epub),
-    GNUNET_JSON_pack_data_auto ("exchange_sig",
+    GNUNET_JSON_pack_data_auto ("donau_sig",
                                 &esig),
     GNUNET_JSON_pack_data_auto ("h_denom_pub",
                                 dph));
@@ -650,7 +650,7 @@ TEH_RESPONSE_reply_coin_insufficient_funds (
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_CoinSpendPublicKeyP *coin_pub)
 {
-  struct TALER_EXCHANGEDB_TransactionList *tl;
+  struct TALER_DONAUDB_TransactionList *tl;
   enum GNUNET_DB_QueryStatus qs;
   json_t *history;
 
@@ -705,21 +705,21 @@ TEH_RESPONSE_reply_coin_insufficient_funds (
 
 json_t *
 TEH_RESPONSE_compile_reserve_history (
-  const struct TALER_EXCHANGEDB_ReserveHistory *rh)
+  const struct TALER_DONAUDB_ReserveHistory *rh)
 {
   json_t *json_history;
 
   json_history = json_array ();
   GNUNET_assert (NULL != json_history);
-  for (const struct TALER_EXCHANGEDB_ReserveHistory *pos = rh;
+  for (const struct TALER_DONAUDB_ReserveHistory *pos = rh;
        NULL != pos;
        pos = pos->next)
   {
     switch (pos->type)
     {
-    case TALER_EXCHANGEDB_RO_BANK_TO_EXCHANGE:
+    case TALER_DONAUDB_RO_BANK_TO_DONAU:
       {
-        const struct TALER_EXCHANGEDB_BankTransfer *bank =
+        const struct TALER_DONAUDB_BankTransfer *bank =
           pos->details.bank;
 
         if (0 !=
@@ -743,9 +743,9 @@ TEH_RESPONSE_compile_reserve_history (
         }
         break;
       }
-    case TALER_EXCHANGEDB_RO_WITHDRAW_COIN:
+    case TALER_DONAUDB_RO_WITHDRAW_COIN:
       {
-        const struct TALER_EXCHANGEDB_CollectableBlindcoin *withdraw
+        const struct TALER_DONAUDB_CollectableBlindcoin *withdraw
           = pos->details.withdraw;
 
         if (0 !=
@@ -771,16 +771,16 @@ TEH_RESPONSE_compile_reserve_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_RO_RECOUP_COIN:
+    case TALER_DONAUDB_RO_RECOUP_COIN:
       {
-        const struct TALER_EXCHANGEDB_Recoup *recoup
+        const struct TALER_DONAUDB_Recoup *recoup
           = pos->details.recoup;
-        struct TALER_ExchangePublicKeyP pub;
-        struct TALER_ExchangeSignatureP sig;
+        struct TALER_DonauPublicKeyP pub;
+        struct TALER_DonauSignatureP sig;
 
         if (TALER_EC_NONE !=
-            TALER_exchange_online_confirm_recoup_sign (
-              &TEH_keys_exchange_sign_,
+            TALER_donau_online_confirm_recoup_sign (
+              &TEH_keys_donau_sign_,
               recoup->timestamp,
               &recoup->value,
               &recoup->coin.coin_pub,
@@ -799,9 +799,9 @@ TEH_RESPONSE_compile_reserve_history (
               GNUNET_JSON_PACK (
                 GNUNET_JSON_pack_string ("type",
                                          "RECOUP"),
-                GNUNET_JSON_pack_data_auto ("exchange_pub",
+                GNUNET_JSON_pack_data_auto ("donau_pub",
                                             &pub),
-                GNUNET_JSON_pack_data_auto ("exchange_sig",
+                GNUNET_JSON_pack_data_auto ("donau_sig",
                                             &sig),
                 GNUNET_JSON_pack_timestamp ("timestamp",
                                             recoup->timestamp),
@@ -816,16 +816,16 @@ TEH_RESPONSE_compile_reserve_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_RO_EXCHANGE_TO_BANK:
+    case TALER_DONAUDB_RO_DONAU_TO_BANK:
       {
-        const struct TALER_EXCHANGEDB_ClosingTransfer *closing =
+        const struct TALER_DONAUDB_ClosingTransfer *closing =
           pos->details.closing;
-        struct TALER_ExchangePublicKeyP pub;
-        struct TALER_ExchangeSignatureP sig;
+        struct TALER_DonauPublicKeyP pub;
+        struct TALER_DonauSignatureP sig;
 
         if (TALER_EC_NONE !=
-            TALER_exchange_online_reserve_closed_sign (
-              &TEH_keys_exchange_sign_,
+            TALER_donau_online_reserve_closed_sign (
+              &TEH_keys_donau_sign_,
               closing->execution_date,
               &closing->amount,
               &closing->closing_fee,
@@ -849,9 +849,9 @@ TEH_RESPONSE_compile_reserve_history (
                                          closing->receiver_account_details),
                 GNUNET_JSON_pack_data_auto ("wtid",
                                             &closing->wtid),
-                GNUNET_JSON_pack_data_auto ("exchange_pub",
+                GNUNET_JSON_pack_data_auto ("donau_pub",
                                             &pub),
-                GNUNET_JSON_pack_data_auto ("exchange_sig",
+                GNUNET_JSON_pack_data_auto ("donau_sig",
                                             &sig),
                 GNUNET_JSON_pack_timestamp ("timestamp",
                                             closing->execution_date),
@@ -866,9 +866,9 @@ TEH_RESPONSE_compile_reserve_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_RO_PURSE_MERGE:
+    case TALER_DONAUDB_RO_PURSE_MERGE:
       {
-        const struct TALER_EXCHANGEDB_PurseMerge *merge =
+        const struct TALER_DONAUDB_PurseMerge *merge =
           pos->details.merge;
 
         if (0 !=
@@ -906,9 +906,9 @@ TEH_RESPONSE_compile_reserve_history (
         }
       }
       break;
-    case TALER_EXCHANGEDB_RO_HISTORY_REQUEST:
+    case TALER_DONAUDB_RO_HISTORY_REQUEST:
       {
-        const struct TALER_EXCHANGEDB_HistoryRequest *history =
+        const struct TALER_DONAUDB_HistoryRequest *history =
           pos->details.history;
 
         if (0 !=
@@ -931,9 +931,9 @@ TEH_RESPONSE_compile_reserve_history (
       }
       break;
 
-    case TALER_EXCHANGEDB_RO_OPEN_REQUEST:
+    case TALER_DONAUDB_RO_OPEN_REQUEST:
       {
-        const struct TALER_EXCHANGEDB_OpenRequest *orq =
+        const struct TALER_DONAUDB_OpenRequest *orq =
           pos->details.open_request;
 
         if (0 !=
@@ -960,9 +960,9 @@ TEH_RESPONSE_compile_reserve_history (
       }
       break;
 
-    case TALER_EXCHANGEDB_RO_CLOSE_REQUEST:
+    case TALER_DONAUDB_RO_CLOSE_REQUEST:
       {
-        const struct TALER_EXCHANGEDB_CloseRequest *crq =
+        const struct TALER_DONAUDB_CloseRequest *crq =
           pos->details.close_request;
 
         if (0 !=
@@ -1013,7 +1013,7 @@ reply_reserve_insufficient_funds (
   enum TALER_ErrorCode ec,
   const struct TALER_Amount *ebalance,
   const struct TALER_Amount *withdraw_amount,
-  const struct TALER_EXCHANGEDB_ReserveHistory *rh)
+  const struct TALER_DONAUDB_ReserveHistory *rh)
 {
   json_t *json_history;
 
@@ -1024,7 +1024,7 @@ reply_reserve_insufficient_funds (
                 "Failed to compile reserve history\n");
     return TALER_MHD_reply_with_error (connection,
                                        MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                       
TALER_EC_EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS,
+                                       
TALER_EC_DONAU_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS,
                                        NULL);
   }
   return TALER_MHD_REPLY_JSON_PACK (
@@ -1047,7 +1047,7 @@ TEH_RESPONSE_reply_reserve_insufficient_balance (
   const struct TALER_Amount *balance_required,
   const struct TALER_ReservePublicKeyP *reserve_pub)
 {
-  struct TALER_EXCHANGEDB_ReserveHistory *rh = NULL;
+  struct TALER_DONAUDB_ReserveHistory *rh = NULL;
   struct TALER_Amount balance;
   enum GNUNET_DB_QueryStatus qs;
   MHD_RESULT mhd_ret;
@@ -1098,7 +1098,7 @@ TEH_RESPONSE_reply_reserve_age_restriction_required (
   return TALER_MHD_REPLY_JSON_PACK (
     connection,
     MHD_HTTP_CONFLICT,
-    TALER_JSON_pack_ec (TALER_EC_EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED),
+    TALER_JSON_pack_ec (TALER_EC_DONAU_RESERVES_AGE_RESTRICTION_REQUIRED),
     GNUNET_JSON_pack_uint64 ("maximum_allowed_age",
                              maximum_allowed_age));
 }
@@ -1107,18 +1107,18 @@ TEH_RESPONSE_reply_reserve_age_restriction_required (
 MHD_RESULT
 TEH_RESPONSE_reply_purse_created (
   struct MHD_Connection *connection,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   const struct TALER_Amount *purse_balance,
   const struct TEH_PurseDetails *pd)
 {
-  struct TALER_ExchangePublicKeyP pub;
-  struct TALER_ExchangeSignatureP sig;
+  struct TALER_DonauPublicKeyP pub;
+  struct TALER_DonauSignatureP sig;
   enum TALER_ErrorCode ec;
 
   if (TALER_EC_NONE !=
-      (ec = TALER_exchange_online_purse_created_sign (
-         &TEH_keys_exchange_sign_,
-         exchange_timestamp,
+      (ec = TALER_donau_online_purse_created_sign (
+         &TEH_keys_donau_sign_,
+         donau_timestamp,
          pd->purse_expiration,
          &pd->target_amount,
          purse_balance,
@@ -1137,11 +1137,11 @@ TEH_RESPONSE_reply_purse_created (
     MHD_HTTP_OK,
     TALER_JSON_pack_amount ("total_deposited",
                             purse_balance),
-    GNUNET_JSON_pack_timestamp ("exchange_timestamp",
-                                exchange_timestamp),
-    GNUNET_JSON_pack_data_auto ("exchange_sig",
+    GNUNET_JSON_pack_timestamp ("donau_timestamp",
+                                donau_timestamp),
+    GNUNET_JSON_pack_data_auto ("donau_sig",
                                 &sig),
-    GNUNET_JSON_pack_data_auto ("exchange_pub",
+    GNUNET_JSON_pack_data_auto ("donau_pub",
                                 &pub));
 }
 
@@ -1149,12 +1149,12 @@ TEH_RESPONSE_reply_purse_created (
 MHD_RESULT
 TEH_RESPONSE_reply_kyc_required (struct MHD_Connection *connection,
                                  const struct TALER_PaytoHashP *h_payto,
-                                 const struct TALER_EXCHANGEDB_KycStatus *kyc)
+                                 const struct TALER_DONAUDB_KycStatus *kyc)
 {
   return TALER_MHD_REPLY_JSON_PACK (
     connection,
     MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS,
-    TALER_JSON_pack_ec (TALER_EC_EXCHANGE_GENERIC_KYC_REQUIRED),
+    TALER_JSON_pack_ec (TALER_EC_DONAU_GENERIC_KYC_REQUIRED),
     GNUNET_JSON_pack_data_auto ("h_payto",
                                 h_payto),
     GNUNET_JSON_pack_uint64 ("requirement_row",
@@ -1174,10 +1174,10 @@ TEH_RESPONSE_reply_aml_blocked (struct MHD_Connection 
*connection,
     GNUNET_break (0);
     return MHD_NO;
   case TALER_AML_PENDING:
-    ec = TALER_EC_EXCHANGE_GENERIC_AML_PENDING;
+    ec = TALER_EC_DONAU_GENERIC_AML_PENDING;
     break;
   case TALER_AML_FROZEN:
-    ec = TALER_EC_EXCHANGE_GENERIC_AML_FROZEN;
+    ec = TALER_EC_DONAU_GENERIC_AML_FROZEN;
     break;
   }
   return TALER_MHD_REPLY_JSON_PACK (
@@ -1187,4 +1187,4 @@ TEH_RESPONSE_reply_aml_blocked (struct MHD_Connection 
*connection,
 }
 
 
-/* end of taler-exchange-httpd_responses.c */
+/* end of taler-donau-httpd_responses.c */
diff --git a/src/exchange/taler-exchange-httpd_responses.h 
b/src/donau/taler-donau-httpd_responses.h
similarity index 90%
rename from src/exchange/taler-exchange-httpd_responses.h
rename to src/donau/taler-donau-httpd_responses.h
index a57fa49..0fab896 100644
--- a/src/exchange/taler-exchange-httpd_responses.h
+++ b/src/donau/taler-donau-httpd_responses.h
@@ -7,29 +7,29 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_responses.h
- * @brief API for generating generic replies of the exchange; these
+ * @file taler-donau-httpd_responses.h
+ * @brief API for generating generic replies of the donau; these
  *        functions are called TEH_RESPONSE_reply_ and they generate
  *        and queue MHD response objects for a given connection.
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_RESPONSES_H
-#define TALER_EXCHANGE_HTTPD_RESPONSES_H
+#ifndef TALER_DONAU_HTTPD_RESPONSES_H
+#define TALER_DONAU_HTTPD_RESPONSES_H
 #include <gnunet/gnunet_util_lib.h>
 #include <jansson.h>
 #include <microhttpd.h>
 #include "taler_error_codes.h"
-#include "taler-exchange-httpd.h"
-#include "taler-exchange-httpd_db.h"
+#include "taler-donau-httpd.h"
+#include "taler-donau-httpd_db.h"
 #include <gnunet/gnunet_mhd_compat.h>
 
 
@@ -41,7 +41,7 @@
  */
 json_t *
 TEH_RESPONSE_compile_reserve_history (
-  const struct TALER_EXCHANGEDB_ReserveHistory *rh);
+  const struct TALER_DONAUDB_ReserveHistory *rh);
 
 
 /**
@@ -102,7 +102,7 @@ TEH_RESPONSE_reply_reserve_age_restriction_required (
 MHD_RESULT
 TEH_RESPONSE_reply_kyc_required (struct MHD_Connection *connection,
                                  const struct TALER_PaytoHashP *h_payto,
-                                 const struct TALER_EXCHANGEDB_KycStatus *kyc);
+                                 const struct TALER_DONAUDB_KycStatus *kyc);
 
 
 /**
@@ -201,14 +201,14 @@ struct TEH_PurseDetails
  *
  * @param connection connection to the client
  * @param pd purse details
- * @param exchange_timestamp our time for purse creation
+ * @param donau_timestamp our time for purse creation
  * @param purse_balance current balance in the purse
  * @return MHD result code
  */
 MHD_RESULT
 TEH_RESPONSE_reply_purse_created (
   struct MHD_Connection *connection,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   const struct TALER_Amount *purse_balance,
   const struct TEH_PurseDetails *pd);
 
@@ -223,7 +223,7 @@ TEH_RESPONSE_reply_purse_created (
 json_t *
 TEH_RESPONSE_compile_transaction_history (
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_EXCHANGEDB_TransactionList *tl);
+  const struct TALER_DONAUDB_TransactionList *tl);
 
 
 #endif
diff --git a/src/exchange/taler-exchange-httpd_terms.c 
b/src/donau/taler-donau-httpd_terms.c
similarity index 87%
rename from src/exchange/taler-exchange-httpd_terms.c
rename to src/donau/taler-donau-httpd_terms.c
index 10114f1..aa10bc5 100644
--- a/src/exchange/taler-exchange-httpd_terms.c
+++ b/src/donau/taler-donau-httpd_terms.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_terms.c
+ * @file taler-donau-httpd_terms.c
  * @brief Handle /terms requests to return the terms of service
  * @author Christian Grothoff
  */
@@ -24,7 +24,7 @@
 #include <jansson.h>
 #include <microhttpd.h>
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_responses.h"
 
 /**
  * Our terms of service.
@@ -62,14 +62,14 @@ void
 TEH_load_terms (const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   tos = TALER_MHD_legal_load (cfg,
-                              "exchange",
+                              "donau",
                               "TERMS_DIR",
                               "TERMS_ETAG");
   if (NULL == tos)
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Terms of service not configured\n");
   pp = TALER_MHD_legal_load (cfg,
-                             "exchange",
+                             "donau",
                              "PRIVACY_DIR",
                              "PRIVACY_ETAG");
   if (NULL == pp)
@@ -78,4 +78,4 @@ TEH_load_terms (const struct GNUNET_CONFIGURATION_Handle *cfg)
 }
 
 
-/* end of taler-exchange-httpd_terms.c */
+/* end of taler-donau-httpd_terms.c */
diff --git a/src/exchange/taler-exchange-httpd_terms.h 
b/src/donau/taler-donau-httpd_terms.h
similarity index 87%
rename from src/exchange/taler-exchange-httpd_terms.h
rename to src/donau/taler-donau-httpd_terms.h
index 9815080..921c12d 100644
--- a/src/exchange/taler-exchange-httpd_terms.h
+++ b/src/donau/taler-donau-httpd_terms.h
@@ -7,26 +7,26 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_terms.h
+ * @file taler-donau-httpd_terms.h
  * @brief Handle /terms requests to return the terms of service
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_TERMS_H
-#define TALER_EXCHANGE_HTTPD_TERMS_H
+#ifndef TALER_DONAU_HTTPD_TERMS_H
+#define TALER_DONAU_HTTPD_TERMS_H
 #include "platform.h"
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <jansson.h>
 #include <microhttpd.h>
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_responses.h"
+#include "taler-donau-httpd_responses.h"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_withdraw.c 
b/src/donau/taler-donau-httpd_withdraw.c
similarity index 94%
rename from src/exchange/taler-exchange-httpd_withdraw.c
rename to src/donau/taler-donau-httpd_withdraw.c
index 07fcc84..e352196 100644
--- a/src/exchange/taler-exchange-httpd_withdraw.c
+++ b/src/donau/taler-donau-httpd_withdraw.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty
-  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  of CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   See the GNU Affero General Public License for more details.
 
   You should have received a copy of the GNU Affero General
@@ -17,7 +17,7 @@
   see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_withdraw.c
+ * @file taler-donau-httpd_withdraw.c
  * @brief Handle /reserves/$RESERVE_PUB/withdraw requests
  * @author Florian Dold
  * @author Benedikt Mueller
@@ -26,13 +26,13 @@
 #include "platform.h"
 #include <gnunet/gnunet_util_lib.h>
 #include <jansson.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 #include "taler_json_lib.h"
 #include "taler_kyclogic_lib.h"
 #include "taler_mhd_lib.h"
-#include "taler-exchange-httpd_withdraw.h"
-#include "taler-exchange-httpd_responses.h"
-#include "taler-exchange-httpd_keys.h"
+#include "taler-donau-httpd_withdraw.h"
+#include "taler-donau-httpd_responses.h"
+#include "taler-donau-httpd_keys.h"
 
 
 /**
@@ -42,7 +42,7 @@ struct WithdrawContext
 {
 
   /**
-   * Hash of the (blinded) message to be signed by the Exchange.
+   * Hash of the (blinded) message to be signed by the Donau.
    */
   struct TALER_BlindedCoinHashP h_coin_envelope;
 
@@ -54,12 +54,12 @@ struct WithdrawContext
   /**
    * Set to the resulting signed coin data to be returned to the client.
    */
-  struct TALER_EXCHANGEDB_CollectableBlindcoin collectable;
+  struct TALER_DONAUDB_CollectableBlindcoin collectable;
 
   /**
    * KYC status for the operation.
    */
-  struct TALER_EXCHANGEDB_KycStatus kyc;
+  struct TALER_DONAUDB_KycStatus kyc;
 
   /**
    * Hash of the payto-URI representing the account
@@ -98,7 +98,7 @@ struct WithdrawContext
 static void
 withdraw_amount_cb (void *cls,
                     struct GNUNET_TIME_Absolute limit,
-                    TALER_EXCHANGEDB_KycAmountCallback cb,
+                    TALER_DONAUDB_KycAmountCallback cb,
                     void *cb_cls)
 {
   struct WithdrawContext *wc = cls;
@@ -368,7 +368,7 @@ withdraw_transaction (void *cls,
   {
     *mhd_ret = TALER_MHD_reply_with_error (connection,
                                            MHD_HTTP_NOT_FOUND,
-                                           
TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN,
+                                           
TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN,
                                            NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
@@ -393,7 +393,7 @@ withdraw_transaction (void *cls,
                 "Balance insufficient for /withdraw\n");
     *mhd_ret = TEH_RESPONSE_reply_reserve_insufficient_balance (
       connection,
-      TALER_EC_EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS,
+      TALER_EC_DONAU_WITHDRAW_INSUFFICIENT_FUNDS,
       &wc->collectable.amount_with_fee,
       &wc->collectable.reserve_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
@@ -403,7 +403,7 @@ withdraw_transaction (void *cls,
     TEH_plugin->rollback (TEH_plugin->cls);
     *mhd_ret = TALER_MHD_reply_with_error (connection,
                                            MHD_HTTP_CONFLICT,
-                                           
TALER_EC_EXCHANGE_WITHDRAW_NONCE_REUSE,
+                                           TALER_EC_DONAU_WITHDRAW_NONCE_REUSE,
                                            NULL);
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
@@ -503,7 +503,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
         GNUNET_JSON_parse_free (spec);
         return TALER_MHD_reply_with_error (rc->connection,
                                            MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                           
TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING,
+                                           TALER_EC_DONAU_GENERIC_KEYS_MISSING,
                                            NULL);
       }
       GNUNET_JSON_parse_free (spec);
@@ -541,7 +541,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
         return TEH_RESPONSE_reply_expired_denom_pub_hash (
           rc->connection,
           &wc.collectable.denom_pub_hash,
-          TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED,
+          TALER_EC_DONAU_GENERIC_DENOMINATION_EXPIRED,
           "WITHDRAW");
       }
       GNUNET_JSON_parse_free (spec);
@@ -555,7 +555,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
       return TEH_RESPONSE_reply_expired_denom_pub_hash (
         rc->connection,
         &wc.collectable.denom_pub_hash,
-        TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
+        TALER_EC_DONAU_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE,
         "WITHDRAW");
     }
     if (dk->recoup_possible)
@@ -569,7 +569,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
         return TEH_RESPONSE_reply_expired_denom_pub_hash (
           rc->connection,
           &wc.collectable.denom_pub_hash,
-          TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED,
+          TALER_EC_DONAU_GENERIC_DENOMINATION_REVOKED,
           "WITHDRAW");
       }
       GNUNET_JSON_parse_free (spec);
@@ -581,7 +581,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
       GNUNET_JSON_parse_free (spec);
       return TALER_MHD_reply_with_error (rc->connection,
                                          MHD_HTTP_BAD_REQUEST,
-                                         
TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH,
+                                         
TALER_EC_DONAU_GENERIC_CIPHER_MISMATCH,
                                          NULL);
     }
   }
@@ -594,7 +594,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
     GNUNET_JSON_parse_free (spec);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_INTERNAL_SERVER_ERROR,
-                                       
TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW,
+                                       
TALER_EC_DONAU_WITHDRAW_AMOUNT_FEE_OVERFLOW,
                                        NULL);
   }
 
@@ -623,7 +623,7 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
     GNUNET_JSON_parse_free (spec);
     return TALER_MHD_reply_with_error (rc->connection,
                                        MHD_HTTP_FORBIDDEN,
-                                       
TALER_EC_EXCHANGE_WITHDRAW_RESERVE_SIGNATURE_INVALID,
+                                       
TALER_EC_DONAU_WITHDRAW_RESERVE_SIGNATURE_INVALID,
                                        NULL);
   }
 
@@ -697,4 +697,4 @@ TEH_handler_withdraw (struct TEH_RequestContext *rc,
 }
 
 
-/* end of taler-exchange-httpd_withdraw.c */
+/* end of taler-donau-httpd_withdraw.c */
diff --git a/src/exchange/taler-exchange-httpd_withdraw.h 
b/src/donau/taler-donau-httpd_withdraw.h
similarity index 86%
rename from src/exchange/taler-exchange-httpd_withdraw.h
rename to src/donau/taler-donau-httpd_withdraw.h
index 2ec76bb..8b7aed3 100644
--- a/src/exchange/taler-exchange-httpd_withdraw.h
+++ b/src/donau/taler-donau-httpd_withdraw.h
@@ -7,24 +7,24 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
   You should have received a copy of the GNU Affero General Public License 
along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file taler-exchange-httpd_withdraw.h
+ * @file taler-donau-httpd_withdraw.h
  * @brief Handle /reserve/withdraw requests
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGE_HTTPD_WITHDRAW_H
-#define TALER_EXCHANGE_HTTPD_WITHDRAW_H
+#ifndef TALER_DONAU_HTTPD_WITHDRAW_H
+#define TALER_DONAU_HTTPD_WITHDRAW_H
 
 #include <microhttpd.h>
-#include "taler-exchange-httpd.h"
+#include "taler-donau-httpd.h"
 
 
 /**
diff --git a/src/exchange/test_taler_exchange_httpd.conf 
b/src/donau/test_taler_donau_httpd.conf
similarity index 87%
rename from src/exchange/test_taler_exchange_httpd.conf
rename to src/donau/test_taler_donau_httpd.conf
index 80cf623..bf42305 100644
--- a/src/exchange/test_taler_exchange_httpd.conf
+++ b/src/donau/test_taler_donau_httpd.conf
@@ -1,17 +1,17 @@
 [PATHS]
 # Persistent data storage for the testcase
-TALER_TEST_HOME = test_taler_exchange_httpd_home/
+TALER_TEST_HOME = test_taler_donau_httpd_home/
 TALER_RUNTIME_DIR = ${TMPDIR:-${TMP:-/tmp}}/${USER:-}/taler-system-runtime/
 
 [taler]
-# Currency supported by the exchange (can only be one)
+# Currency supported by the donau (can only be one)
 CURRENCY = EUR
 CURRENCY_ROUND_UNIT = EUR:0.01
 
 [auditor]
 TINY_AMOUNT = EUR:0.01
 
-[exchange]
+[donau]
 
 AML_THRESHOLD = EUR:1000000
 
@@ -37,18 +37,18 @@ SIGNKEY_DURATION = 4 weeks
 # ahead of time?
 LOOKAHEAD_SIGN = 32 weeks 1 day
 
-# HTTP port the exchange listens to
+# HTTP port the donau listens to
 PORT = 8081
 
-# Master public key used to sign the exchange's various keys
+# Master public key used to sign the donau's various keys
 MASTER_PUBLIC_KEY = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG
 
 # How to access our database
 DB = postgres
 
 
-[exchangedb]
-# After how long do we close idle reserves?  The exchange
+[donaudb]
+# After how long do we close idle reserves?  The donau
 # and the auditor must agree on this value.  We currently
 # expect it to be globally defined for the whole system,
 # as there is no way for wallets to query this value.  Thus,
@@ -57,17 +57,17 @@ DB = postgres
 IDLE_RESERVE_EXPIRATION_TIME = 4 weeks
 
 
-[exchangedb-postgres]
+[donaudb-postgres]
 CONFIG = "postgres:///talercheck"
 
-[exchange-account-1]
+[donau-account-1]
 PAYTO_URI = "payto://x-taler-bank/localhost:8082/3"
 ENABLE_DEBIT = YES
 ENABLE_CREDIT = YES
 
-[exchange-accountcredentials-1]
+[donau-accountcredentials-1]
 WIRE_GATEWAY_AUTH_METHOD = basic
-USERNAME = Exchange
+USERNAME = Donau
 PASSWORD = x
 WIRE_GATEWAY_URL = "http://localhost:8082/3/";
 
diff --git a/src/exchange/test_taler_exchange_httpd.sh 
b/src/donau/test_taler_donau_httpd.sh
similarity index 55%
rename from src/exchange/test_taler_exchange_httpd.sh
rename to src/donau/test_taler_donau_httpd.sh
index 0fe71f3..a0f9e2a 100755
--- a/src/exchange/test_taler_exchange_httpd.sh
+++ b/src/donau/test_taler_donau_httpd.sh
@@ -8,7 +8,7 @@
 #  Foundation; either version 3, or (at your option) any later version.
 #
 #  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+#  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 #  A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 #
 #  You should have received a copy of the GNU Affero General Public License 
along with
@@ -16,7 +16,7 @@
 #
 #
 # This script uses 'curl' to POST various ill-formed requests to the
-# taler-exchange-httpd.  Basically, the goal is to make sure that the
+# taler-donau-httpd.  Basically, the goal is to make sure that the
 # HTTP server survives (and produces the 'correct' error code).
 #
 #
@@ -26,15 +26,15 @@ unset XDG_CONFIG_HOME
 
 set -eu
 #
-echo -n "Launching exchange ..."
+echo -n "Launching donau ..."
 PREFIX=
 # Uncomment this line to run with valgrind...
 #PREFIX="valgrind --leak-check=yes --track-fds=yes --error-exitcode=1 
--log-file=valgrind.%p"
 
 # Setup database
-taler-exchange-dbinit -c test_taler_exchange_httpd.conf &> /dev/null || exit 77
-# Run Exchange HTTPD (in background)
-$PREFIX taler-exchange-httpd -c test_taler_exchange_httpd.conf 2> 
test-exchange.log &
+taler-donau-dbinit -c test_taler_donau_httpd.conf &> /dev/null || exit 77
+# Run Donau HTTPD (in background)
+$PREFIX taler-donau-httpd -c test_taler_donau_httpd.conf 2> test-donau.log &
 
 # Give HTTP time to start
 
@@ -48,7 +48,7 @@ do
 done
 if [ 1 != $OK ]
 then
-    echo "Failed to launch exchange"
+    echo "Failed to launch donau"
     kill -TERM $!
     wait $!
     echo Process status: $?
@@ -58,24 +58,24 @@ echo " DONE"
 
 # Finally run test...
 echo -n "Running tests ..."
-# We read the JSON snippets to POST from test_taler_exchange_httpd.post
-cat test_taler_exchange_httpd.post | grep -v ^\# | awk '{ print "curl -d \47"  
$2 "\47 http://localhost:8081"; $1 }' | bash &> /dev/null
+# We read the JSON snippets to POST from test_taler_donau_httpd.post
+cat test_taler_donau_httpd.post | grep -v ^\# | awk '{ print "curl -d \47"  $2 
"\47 http://localhost:8081"; $1 }' | bash &> /dev/null
 echo -n .
-# We read the JSON snippets to GET from test_taler_exchange_httpd.get
-cat test_taler_exchange_httpd.get | grep -v ^\# | awk '{ print "curl 
http://localhost:8081"; $1 }' | bash &> /dev/null
+# We read the JSON snippets to GET from test_taler_donau_httpd.get
+cat test_taler_donau_httpd.get | grep -v ^\# | awk '{ print "curl 
http://localhost:8081"; $1 }' | bash &> /dev/null
 echo -n .
 # Also try them with various headers: Language
-cat test_taler_exchange_httpd.get | grep -v ^\# | awk '{ print "curl -H 
\"Accept-Language: fr,en;q=0.4,de\" http://localhost:8081"; $1 }' | bash &> 
/dev/null
+cat test_taler_donau_httpd.get | grep -v ^\# | awk '{ print "curl -H 
\"Accept-Language: fr,en;q=0.4,de\" http://localhost:8081"; $1 }' | bash &> 
/dev/null
 echo -n .
 # Also try them with various headers: Accept encoding (wildcard #1)
-cat test_taler_exchange_httpd.get | grep -v ^\# | awk '{ print "curl -H 
\"Accept: text/*\" http://localhost:8081"; $1 }' | bash &> /dev/null
+cat test_taler_donau_httpd.get | grep -v ^\# | awk '{ print "curl -H \"Accept: 
text/*\" http://localhost:8081"; $1 }' | bash &> /dev/null
 echo -n .
 # Also try them with various headers: Accept encoding (wildcard #2)
-cat test_taler_exchange_httpd.get | grep -v ^\# | awk '{ print "curl -H 
\"Accept: */plain\" http://localhost:8081"; $1 }' | bash &> /dev/null
+cat test_taler_donau_httpd.get | grep -v ^\# | awk '{ print "curl -H \"Accept: 
*/plain\" http://localhost:8081"; $1 }' | bash &> /dev/null
 
 echo " DONE"
-# $! is the last backgrounded process, hence the exchange
+# $! is the last backgrounded process, hence the donau
 kill -TERM $!
 wait $!
-# Return status code from exchange for this script
+# Return status code from donau for this script
 exit $?
diff --git a/src/exchange/test_taler_exchange_unix.conf 
b/src/donau/test_taler_donau_unix.conf
similarity index 87%
rename from src/exchange/test_taler_exchange_unix.conf
rename to src/donau/test_taler_donau_unix.conf
index e96bfba..ac413fc 100644
--- a/src/exchange/test_taler_exchange_unix.conf
+++ b/src/donau/test_taler_donau_unix.conf
@@ -1,14 +1,14 @@
 [PATHS]
 # Persistent data storage for the testcase
-TALER_TEST_HOME = test_taler_exchange_httpd_home/
+TALER_TEST_HOME = test_taler_donau_httpd_home/
 TALER_RUNTIME_DIR = ${TMPDIR:-${TMP:-/tmp}}/${USER:-}/taler-system-runtime/
 
 [taler]
-# Currency supported by the exchange (can only be one)
+# Currency supported by the donau (can only be one)
 CURRENCY = EUR
 CURRENCY_ROUND_UNIT = EUR:0.01
 
-[exchange]
+[donau]
 
 # Directory with our terms of service.
 TERMS_DIR = ../../contrib/tos
@@ -33,22 +33,22 @@ SIGNKEY_DURATION = 4 weeks
 # ahead of time?
 LOOKAHEAD_SIGN = 32 weeks 1 day
 
-# HTTP port the exchange listens to (we want to use UNIX domain sockets,
+# HTTP port the donau listens to (we want to use UNIX domain sockets,
 # so we use a port that just won't work on GNU/Linux without root rights)
 PORT = 999
 
 # Here we say we want to use a UNIX domain socket (to test that logic).
 SERVE = unix
 
-# Master public key used to sign the exchange's various keys
+# Master public key used to sign the donau's various keys
 MASTER_PUBLIC_KEY = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG
 
 # How to access our database
 DB = postgres
 
 
-[exchangedb]
-# After how long do we close idle reserves?  The exchange
+[donaudb]
+# After how long do we close idle reserves?  The donau
 # and the auditor must agree on this value.  We currently
 # expect it to be globally defined for the whole system,
 # as there is no way for wallets to query this value.  Thus,
@@ -57,15 +57,15 @@ DB = postgres
 IDLE_RESERVE_EXPIRATION_TIME = 4 weeks
 
 
-[exchangedb-postgres]
+[donaudb-postgres]
 CONFIG = "postgres:///talercheck"
 
-[exchange-account-1]
+[donau-account-1]
 PAYTO_URI = "payto://x-taler-bank/localhost:8082/3"
 ENABLE_DEBIT = YES
 ENABLE_CREDIT = YES
 
-[exchange-accountcredentials-1]
+[donau-accountcredentials-1]
 TALER_BANK_AUTH_METHOD = NONE
 
 
diff --git a/src/donaudb/.gitignore b/src/donaudb/.gitignore
new file mode 100644
index 0000000..c180575
--- /dev/null
+++ b/src/donaudb/.gitignore
@@ -0,0 +1,16 @@
+test-donaudb-postgres
+bench-db-postgres
+perf_deposits_get_ready-postgres
+perf_get_link_data-postgres
+perf_reserves_in_insert-postgres
+perf_select_refunds_by_coin-postgres
+donau-0002.sql
+procedures.sql
+donau-0003.sql
+perf-donaudb-reserves-in-insert-postgres
+test-donaudb-batch-reserves-in-insert-postgres
+test-donaudb-by-j-postgres
+test-donaudb-populate-link-data-postgres
+test-donaudb-populate-ready-deposit-postgres
+test-donaudb-populate-select-refunds-by-coin-postgres
+donau-0004.sql
diff --git a/src/exchangedb/0002-account_merges.sql 
b/src/donaudb/0002-account_merges.sql
similarity index 95%
rename from src/exchangedb/0002-account_merges.sql
rename to src/donaudb/0002-account_merges.sql
index 1ea9e92..d9947cd 100644
--- a/src/exchangedb/0002-account_merges.sql
+++ b/src/donaudb/0002-account_merges.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -109,7 +109,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -117,17 +117,17 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('account_merges'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('account_merges'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('account_merges'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-batch_deposits.sql 
b/src/donaudb/0002-batch_deposits.sql
similarity index 89%
rename from src/exchangedb/0002-batch_deposits.sql
rename to src/donaudb/0002-batch_deposits.sql
index af0764a..4439845 100644
--- a/src/exchangedb/0002-batch_deposits.sql
+++ b/src/donaudb/0002-batch_deposits.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -27,9 +27,9 @@ BEGIN
     'CREATE TABLE %I'
       '(batch_deposit_serial_id INT8 GENERATED BY DEFAULT AS IDENTITY'
       ',shard INT8 NOT NULL'
-      ',merchant_pub BYTEA NOT NULL CHECK (LENGTH(merchant_pub)=32)'
+      ',charity_pub BYTEA NOT NULL CHECK (LENGTH(charity_pub)=32)'
       ',wallet_timestamp INT8 NOT NULL'
-      ',exchange_timestamp INT8 NOT NULL'
+      ',donau_timestamp INT8 NOT NULL'
       ',refund_deadline INT8 NOT NULL'
       ',wire_deadline INT8 NOT NULL'
       ',h_contract_terms BYTEA NOT NULL CHECK (LENGTH(h_contract_terms)=64)'
@@ -50,7 +50,7 @@ BEGIN
     ,partition_suffix
   );
   PERFORM comment_partitioned_column(
-     'Used for load sharding in the materialized indices. Should be set based 
on merchant_pub. 64-bit value because we need an *unsigned* 32-bit value.'
+     'Used for load sharding in the materialized indices. Should be set based 
on charity_pub. 64-bit value because we need an *unsigned* 32-bit value.'
     ,'shard'
     ,table_name
     ,partition_suffix
@@ -74,7 +74,7 @@ BEGIN
     ,partition_suffix
   );
   PERFORM comment_partitioned_column(
-     'Set to TRUE once we have included this (batch) deposit (and all 
associated coins) in some aggregate wire transfer to the merchant'
+     'Set to TRUE once we have included this (batch) deposit (and all 
associated coins) in some aggregate wire transfer to the charity'
     ,'done'
     ,table_name
     ,partition_suffix
@@ -109,8 +109,8 @@ BEGIN
     'ALTER TABLE ' || table_name ||
     ' ADD CONSTRAINT ' || table_name || '_batch_deposit_serial_id_pkey'
     ' PRIMARY KEY (batch_deposit_serial_id) '
-    ',ADD CONSTRAINT ' || table_name || '_merchant_pub_h_contract_terms'
-    ' UNIQUE (shard, merchant_pub, h_contract_terms)'
+    ',ADD CONSTRAINT ' || table_name || '_charity_pub_h_contract_terms'
+    ' UNIQUE (shard, charity_pub, h_contract_terms)'
     ',ADD CONSTRAINT ' || table_name || '_foreign_policy_details'
     ' FOREIGN KEY (policy_details_serial_id) '
     ' REFERENCES policy_details (policy_details_serial_id) ON DELETE RESTRICT'
@@ -134,7 +134,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -142,12 +142,12 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('batch_deposits'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('batch_deposits'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE)
diff --git a/src/exchangedb/0002-coin_deposits.sql 
b/src/donaudb/0002-coin_deposits.sql
similarity index 94%
rename from src/exchangedb/0002-coin_deposits.sql
rename to src/donaudb/0002-coin_deposits.sql
index c3eef6e..2a0780b 100644
--- a/src/exchangedb/0002-coin_deposits.sql
+++ b/src/donaudb/0002-coin_deposits.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -101,7 +101,7 @@ CREATE OR REPLACE FUNCTION coin_deposits_insert_trigger()
   LANGUAGE plpgsql
   AS $$
 BEGIN
-  INSERT INTO exchange.coin_history
+  INSERT INTO donau.coin_history
     (coin_pub
     ,table_name
     ,serial_id)
@@ -127,7 +127,7 @@ BEGIN
 END $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -135,22 +135,22 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('coin_deposits'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('coin_deposits'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('coin_deposits'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE),
     ('coin_deposits'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'master'
     ,TRUE
     ,FALSE)
diff --git a/src/exchangedb/0002-cs_nonce_locks.sql 
b/src/donaudb/0002-cs_nonce_locks.sql
similarity index 94%
rename from src/exchangedb/0002-cs_nonce_locks.sql
rename to src/donaudb/0002-cs_nonce_locks.sql
index 36c0c7a..d911371 100644
--- a/src/exchangedb/0002-cs_nonce_locks.sql
+++ b/src/donaudb/0002-cs_nonce_locks.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -78,7 +78,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -86,12 +86,12 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('cs_nonce_locks'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('cs_nonce_locks'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-denomination_revocations.sql 
b/src/donaudb/0002-denomination_revocations.sql
similarity index 92%
rename from src/exchangedb/0002-denomination_revocations.sql
rename to src/donaudb/0002-denomination_revocations.sql
index 96e13cd..e19c366 100644
--- a/src/exchangedb/0002-denomination_revocations.sql
+++ b/src/donaudb/0002-denomination_revocations.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
diff --git a/src/exchangedb/0002-denominations.sql 
b/src/donaudb/0002-denominations.sql
similarity index 92%
rename from src/exchangedb/0002-denominations.sql
rename to src/donaudb/0002-denominations.sql
index a3de2b1..a5f2c2a 100644
--- a/src/exchangedb/0002-denominations.sql
+++ b/src/donaudb/0002-denominations.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -32,13 +32,13 @@ CREATE TABLE denominations
   ,fee_refund taler_amount NOT NULL
   );
 COMMENT ON TABLE denominations
-  IS 'Main denominations table. All the valid denominations the exchange knows 
about.';
+  IS 'Main denominations table. All the valid denominations the donau knows 
about.';
 COMMENT ON COLUMN denominations.denom_type
   IS 'determines cipher type for blind signatures used with this denomination; 
0 is for RSA';
 COMMENT ON COLUMN denominations.age_mask
   IS 'bitmask with the age restrictions that are being used for this 
denomination; 0 if denomination does not support the use of age restrictions';
 COMMENT ON COLUMN denominations.denominations_serial
-  IS 'needed for exchange-auditor replication logic';
+  IS 'needed for donau-auditor replication logic';
 
 CREATE INDEX denominations_by_expire_legal_index
   ON denominations
diff --git a/src/exchangedb/0002-exchange_sign_keys.sql 
b/src/donaudb/0002-donau_sign_keys.sql
similarity index 69%
rename from src/exchangedb/0002-exchange_sign_keys.sql
rename to src/donaudb/0002-donau_sign_keys.sql
index d6acc6b..82aa244 100644
--- a/src/exchangedb/0002-exchange_sign_keys.sql
+++ b/src/donaudb/0002-donau_sign_keys.sql
@@ -7,30 +7,30 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
 
-CREATE TABLE exchange_sign_keys
+CREATE TABLE donau_sign_keys
   (esk_serial BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE
-  ,exchange_pub BYTEA PRIMARY KEY CHECK (LENGTH(exchange_pub)=32)
+  ,donau_pub BYTEA PRIMARY KEY CHECK (LENGTH(donau_pub)=32)
   ,master_sig BYTEA NOT NULL CHECK (LENGTH(master_sig)=64)
   ,valid_from INT8 NOT NULL
   ,expire_sign INT8 NOT NULL
   ,expire_legal INT8 NOT NULL
   );
-COMMENT ON TABLE exchange_sign_keys
-  IS 'Table with master public key signatures on exchange online signing 
keys.';
-COMMENT ON COLUMN exchange_sign_keys.exchange_pub
-  IS 'Public online signing key of the exchange.';
-COMMENT ON COLUMN exchange_sign_keys.master_sig
+COMMENT ON TABLE donau_sign_keys
+  IS 'Table with master public key signatures on donau online signing keys.';
+COMMENT ON COLUMN donau_sign_keys.donau_pub
+  IS 'Public online signing key of the donau.';
+COMMENT ON COLUMN donau_sign_keys.master_sig
   IS 'Signature affirming the validity of the signing key of purpose 
TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY.';
-COMMENT ON COLUMN exchange_sign_keys.valid_from
+COMMENT ON COLUMN donau_sign_keys.valid_from
   IS 'Time when this online signing key will first be used to sign messages.';
-COMMENT ON COLUMN exchange_sign_keys.expire_sign
+COMMENT ON COLUMN donau_sign_keys.expire_sign
   IS 'Time when this online signing key will no longer be used to sign.';
-COMMENT ON COLUMN exchange_sign_keys.expire_legal
+COMMENT ON COLUMN donau_sign_keys.expire_legal
   IS 'Time when this online signing key legally expires.';
diff --git a/src/exchangedb/0002-known_coins.sql 
b/src/donaudb/0002-known_coins.sql
similarity index 91%
rename from src/exchangedb/0002-known_coins.sql
rename to src/donaudb/0002-known_coins.sql
index a13beff..bebf289 100644
--- a/src/exchangedb/0002-known_coins.sql
+++ b/src/donaudb/0002-known_coins.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -67,7 +67,7 @@ BEGIN
     ,partition_suffix
   );
   PERFORM comment_partitioned_column(
-     'This is the signature of the exchange that affirms that the coin is a 
valid coin. The specific signature type depends on denom_type of the 
denomination.'
+     'This is the signature of the donau that affirms that the coin is a valid 
coin. The specific signature type depends on denom_type of the denomination.'
     ,'denom_sig'
     ,table_name
     ,partition_suffix
@@ -112,7 +112,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -120,17 +120,17 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('known_coins'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('known_coins'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('known_coins'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-reserves.sql b/src/donaudb/0002-reserves.sql
similarity index 96%
rename from src/exchangedb/0002-reserves.sql
rename to src/donaudb/0002-reserves.sql
index d710dd0..b6060dc 100644
--- a/src/exchangedb/0002-reserves.sql
+++ b/src/donaudb/0002-reserves.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -133,7 +133,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -141,12 +141,12 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('reserves'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('reserves'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-reserves_in.sql 
b/src/donaudb/0002-reserves_in.sql
similarity index 92%
rename from src/exchangedb/0002-reserves_in.sql
rename to src/donaudb/0002-reserves_in.sql
index 7fc2811..953ea63 100644
--- a/src/exchangedb/0002-reserves_in.sql
+++ b/src/donaudb/0002-reserves_in.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -30,7 +30,7 @@ BEGIN
       ',wire_reference INT8 NOT NULL'
       ',credit taler_amount NOT NULL'
       ',wire_source_h_payto BYTEA CHECK (LENGTH(wire_source_h_payto)=32)'
-      ',exchange_account_section TEXT NOT NULL'
+      ',donau_account_section TEXT NOT NULL'
       ',execution_date INT8 NOT NULL'
     ') %s ;'
     ,table_name
@@ -87,7 +87,7 @@ BEGIN
   EXECUTE FORMAT (
     'CREATE INDEX ' || table_name || 
'_by_exch_accnt_section_execution_date_idx '
     'ON ' || table_name || ' '
-    '(exchange_account_section '
+    '(donau_account_section '
     ',execution_date'
     ');'
   );
@@ -95,7 +95,7 @@ BEGIN
   EXECUTE FORMAT (
     'CREATE INDEX ' || table_name || '_by_exch_accnt_reserve_in_serial_id_idx '
     'ON ' || table_name || ' '
-    '(exchange_account_section'
+    '(donau_account_section'
     ',reserve_in_serial_id DESC'
     ');'
   );
@@ -118,7 +118,7 @@ BEGIN
 END $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -126,17 +126,17 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('reserves_in'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('reserves_in'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('reserves_in'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-reserves_out.sql 
b/src/donaudb/0002-reserves_out.sql
similarity index 93%
rename from src/exchangedb/0002-reserves_out.sql
rename to src/donaudb/0002-reserves_out.sql
index 7c5cf55..d2c67f9 100644
--- a/src/exchangedb/0002-reserves_out.sql
+++ b/src/donaudb/0002-reserves_out.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -82,7 +82,7 @@ BEGIN
   );
   EXECUTE FORMAT (
     'COMMENT ON INDEX ' || table_name || 
'_by_reserve_uuid_and_execution_date_index '
-    'IS ' || quote_literal('for get_reserves_out and 
exchange_do_withdraw_limit_check') || ';'
+    'IS ' || quote_literal('for get_reserves_out and 
donau_do_withdraw_limit_check') || ';'
   );
 END
 $$;
@@ -157,7 +157,7 @@ CREATE FUNCTION reserves_out_by_reserve_insert_trigger()
   LANGUAGE plpgsql
   AS $$
 BEGIN
-  INSERT INTO exchange.reserves_out_by_reserve
+  INSERT INTO donau.reserves_out_by_reserve
     (reserve_uuid
     ,h_blind_ev)
   VALUES
@@ -174,7 +174,7 @@ CREATE FUNCTION reserves_out_by_reserve_delete_trigger()
   LANGUAGE plpgsql
   AS $$
 BEGIN
-  DELETE FROM exchange.reserves_out_by_reserve
+  DELETE FROM donau.reserves_out_by_reserve
    WHERE reserve_uuid = OLD.reserve_uuid;
   RETURN OLD;
 END $$;
@@ -200,7 +200,7 @@ COMMENT ON FUNCTION master_table_reserves_out()
   IS 'Setup triggers to replicate reserve_out into reserve_out_by_reserve.';
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -208,32 +208,32 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('reserves_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('reserves_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('reserves_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE),
     ('reserves_out_by_reserve'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('reserves_out_by_reserve'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('reserves_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'master'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-signkey_revocations.sql 
b/src/donaudb/0002-signkey_revocations.sql
similarity index 84%
rename from src/exchangedb/0002-signkey_revocations.sql
rename to src/donaudb/0002-signkey_revocations.sql
index 37ab32c..181dc62 100644
--- a/src/exchangedb/0002-signkey_revocations.sql
+++ b/src/donaudb/0002-signkey_revocations.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -16,7 +16,7 @@
 
 CREATE TABLE signkey_revocations
   (signkey_revocations_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE
-  ,esk_serial INT8 PRIMARY KEY REFERENCES exchange_sign_keys (esk_serial) ON 
DELETE CASCADE
+  ,esk_serial INT8 PRIMARY KEY REFERENCES donau_sign_keys (esk_serial) ON 
DELETE CASCADE
   ,master_sig BYTEA NOT NULL CHECK (LENGTH(master_sig)=64)
   );
 COMMENT ON TABLE signkey_revocations
diff --git a/src/exchangedb/0002-wad_in_entries.sql 
b/src/donaudb/0002-wad_in_entries.sql
similarity index 95%
rename from src/exchangedb/0002-wad_in_entries.sql
rename to src/donaudb/0002-wad_in_entries.sql
index 000f5c6..c023f20 100644
--- a/src/exchangedb/0002-wad_in_entries.sql
+++ b/src/donaudb/0002-wad_in_entries.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -43,7 +43,7 @@ BEGIN
     ,partition_suffix
   );
   PERFORM comment_partitioned_table(
-     'list of purses aggregated in a wad according to the sending exchange'
+     'list of purses aggregated in a wad according to the sending donau'
     ,table_name
     ,partition_suffix
   );
@@ -54,7 +54,7 @@ BEGIN
     ,partition_suffix
   );
   PERFORM comment_partitioned_column(
-     'target account of the purse (must be at the local exchange)'
+     'target account of the purse (must be at the local donau)'
     ,'reserve_pub'
     ,table_name
     ,partition_suffix
@@ -161,7 +161,7 @@ BEGIN
 END $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -169,17 +169,17 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('wad_in_entries'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('wad_in_entries'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('wad_in_entries'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-wad_out_entries.sql 
b/src/donaudb/0002-wad_out_entries.sql
similarity index 96%
rename from src/exchangedb/0002-wad_out_entries.sql
rename to src/donaudb/0002-wad_out_entries.sql
index 8da0f04..20d43a8 100644
--- a/src/exchangedb/0002-wad_out_entries.sql
+++ b/src/donaudb/0002-wad_out_entries.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -161,7 +161,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -169,17 +169,17 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('wad_out_entries'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('wad_out_entries'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('wad_out_entries'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-wads_in.sql b/src/donaudb/0002-wads_in.sql
similarity index 82%
rename from src/exchangedb/0002-wads_in.sql
rename to src/donaudb/0002-wads_in.sql
index 479589b..b45a1d2 100644
--- a/src/exchangedb/0002-wads_in.sql
+++ b/src/donaudb/0002-wads_in.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -27,17 +27,17 @@ BEGIN
      'CREATE TABLE %I '
      '(wad_in_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY'
      ',wad_id BYTEA PRIMARY KEY CHECK (LENGTH(wad_id)=24)'
-     ',origin_exchange_url TEXT NOT NULL'
+     ',origin_donau_url TEXT NOT NULL'
      ',amount taler_amount NOT NULL'
      ',arrival_time INT8 NOT NULL'
-     ',UNIQUE (wad_id, origin_exchange_url)'
+     ',UNIQUE (wad_id, origin_donau_url)'
      ') %s ;'
     ,table_name
     ,'PARTITION BY HASH (wad_id)'
     ,partition_suffix
   );
   PERFORM comment_partitioned_table(
-     'Incoming exchange-to-exchange wad wire transfers'
+     'Incoming donau-to-donau wad wire transfers'
     ,table_name
     ,partition_suffix
   );
@@ -49,12 +49,12 @@ BEGIN
   );
   PERFORM comment_partitioned_column(
      'Base URL of the originating URL, also part of the wire transfer subject'
-    ,'origin_exchange_url'
+    ,'origin_donau_url'
     ,table_name
     ,partition_suffix
   );
   PERFORM comment_partitioned_column(
-     'Actual amount that was received by our exchange'
+     'Actual amount that was received by our donau'
     ,'amount'
     ,table_name
     ,partition_suffix
@@ -82,13 +82,13 @@ BEGIN
     'ALTER TABLE ' || table_name ||
     ' ADD CONSTRAINT ' || table_name || '_wad_in_serial_id_key'
     ' UNIQUE (wad_in_serial_id) '
-    ',ADD CONSTRAINT ' || table_name || '_wad_is_origin_exchange_url_key'
-    ' UNIQUE (wad_id, origin_exchange_url) '
+    ',ADD CONSTRAINT ' || table_name || '_wad_is_origin_donau_url_key'
+    ' UNIQUE (wad_id, origin_donau_url) '
   );
 END $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -96,12 +96,12 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('wads_in'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('wads_in'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/0002-wads_out.sql b/src/donaudb/0002-wads_out.sql
similarity index 90%
rename from src/exchangedb/0002-wads_out.sql
rename to src/donaudb/0002-wads_out.sql
index e52010e..a69546d 100644
--- a/src/exchangedb/0002-wads_out.sql
+++ b/src/donaudb/0002-wads_out.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -36,7 +36,7 @@ BEGIN
     ,shard_suffix
   );
   PERFORM comment_partitioned_table(
-     'Wire transfers made to another exchange to transfer purse funds'
+     'Wire transfers made to another donau to transfer purse funds'
     ,table_name
     ,shard_suffix
   );
@@ -47,7 +47,7 @@ BEGIN
     ,shard_suffix
   );
   PERFORM comment_partitioned_column(
-     'target exchange of the wad'
+     'target donau of the wad'
     ,'partner_serial_id'
     ,table_name
     ,shard_suffix
@@ -104,7 +104,7 @@ END
 $$;
 
 
-INSERT INTO exchange_tables
+INSERT INTO donau_tables
     (name
     ,version
     ,action
@@ -112,17 +112,17 @@ INSERT INTO exchange_tables
     ,by_range)
   VALUES
     ('wads_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'create'
     ,TRUE
     ,FALSE),
     ('wads_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'constrain'
     ,TRUE
     ,FALSE),
     ('wads_out'
-    ,'exchange-0002'
+    ,'donau-0002'
     ,'foreign'
     ,TRUE
     ,FALSE);
diff --git a/src/exchangedb/Makefile.am b/src/donaudb/Makefile.am
similarity index 91%
rename from src/exchangedb/Makefile.am
rename to src/donaudb/Makefile.am
index 4ffc574..b2e0f98 100644
--- a/src/exchangedb/Makefile.am
+++ b/src/donaudb/Makefile.am
@@ -9,52 +9,52 @@ endif
 pkgcfgdir = $(prefix)/share/taler/config.d/
 
 pkgcfg_DATA = \
-  exchangedb.conf \
-  exchangedb-postgres.conf
+  donaudb.conf \
+  donaudb-postgres.conf
 
-sqldir = $(prefix)/share/taler/sql/exchange/
+sqldir = $(prefix)/share/taler/sql/donau/
 
 sqlinputs = \
-  exchange_do_*.sql \
+  donau_do_*.sql \
   procedures.sql.in \
   0002-*.sql \
-  exchange-0002.sql.in
+  donau-0002.sql.in
 
 sql_DATA = \
   benchmark-0001.sql \
   versioning.sql \
-  exchange-0001.sql \
-  exchange-0002.sql \
+  donau-0001.sql \
+  donau-0002.sql \
   drop.sql \
   procedures.sql
 
 BUILT_SOURCES = \
   benchmark-0001.sql \
   drop.sql \
-  exchange-0001.sql \
+  donau-0001.sql \
   procedures.sql
 
 CLEANFILES = \
-  exchange-0002.sql
+  donau-0002.sql
 
-procedures.sql: procedures.sql.in exchange_do_*.sql
+procedures.sql: procedures.sql.in donau_do_*.sql
        chmod +w $@ || true
        gcc -E -P -undef - < procedures.sql.in 2>/dev/null | sed -e "s/--.*//" 
| awk 'NF' - >$@
        chmod ugo-w $@
 
-exchange-0002.sql: exchange-0002.sql.in 0002-*.sql
+donau-0002.sql: donau-0002.sql.in 0002-*.sql
        chmod +w $@ || true
-       gcc -E -P -undef - < exchange-0002.sql.in 2>/dev/null | sed -e 
"s/--.*//" | awk 'NF' - >$@
+       gcc -E -P -undef - < donau-0002.sql.in 2>/dev/null | sed -e "s/--.*//" 
| awk 'NF' - >$@
        chmod ugo-w $@
 
 check_SCRIPTS = \
   test_idempotency.sh
 
 EXTRA_DIST = \
-  exchangedb.conf \
-  exchangedb-postgres.conf \
+  donaudb.conf \
+  donaudb-postgres.conf \
   bench-db-postgres.conf \
-  test-exchange-db-postgres.conf \
+  test-donau-db-postgres.conf \
   $(sqlinputs) \
   $(sql_DATA) \
   $(check_SCRIPTS) \
@@ -65,14 +65,14 @@ plugindir = $(libdir)/taler
 
 if HAVE_POSTGRESQL
 plugin_LTLIBRARIES = \
-  libtaler_plugin_exchangedb_postgres.la
+  libtaler_plugin_donaudb_postgres.la
 endif
 
-libtaler_plugin_exchangedb_postgres_la_SOURCES = \
-  plugin_exchangedb_common.c plugin_exchangedb_common.h \
+libtaler_plugin_donaudb_postgres_la_SOURCES = \
+  plugin_donaudb_common.c plugin_donaudb_common.h \
   pg_setup_wire_target.h pg_setup_wire_target.c \
   pg_compute_shard.h pg_compute_shard.c \
-  plugin_exchangedb_postgres.c pg_helper.h \
+  plugin_donaudb_postgres.c pg_helper.h \
   pg_reserves_update.h pg_reserves_update.c \
   pg_select_aggregation_amounts_for_kyc_check.h 
pg_select_aggregation_amounts_for_kyc_check.c \
   pg_lookup_wire_fee_by_time.h pg_lookup_wire_fee_by_time.c \
@@ -252,9 +252,9 @@ libtaler_plugin_exchangedb_postgres_la_SOURCES = \
   pg_select_account_merges_above_serial_id.h 
pg_select_account_merges_above_serial_id.c \
   pg_select_all_purse_decisions_above_serial_id.h 
pg_select_all_purse_decisions_above_serial_id.c \
   pg_select_reserve_open_above_serial_id.c 
pg_select_reserve_open_above_serial_id.h
-libtaler_plugin_exchangedb_postgres_la_LIBADD = \
+libtaler_plugin_donaudb_postgres_la_LIBADD = \
   $(LTLIBINTL)
-libtaler_plugin_exchangedb_postgres_la_LDFLAGS = \
+libtaler_plugin_donaudb_postgres_la_LDFLAGS = \
   $(TALER_PLUGIN_LDFLAGS) \
   $(top_builddir)/src/pq/libtalerpq.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -267,25 +267,25 @@ libtaler_plugin_exchangedb_postgres_la_LDFLAGS = \
   $(XLIB)
 
 lib_LTLIBRARIES = \
-  libtalerexchangedb.la
+  libtalerdonaudb.la
 
-libtalerexchangedb_la_SOURCES = \
-  exchangedb_accounts.c \
-  exchangedb_plugin.c \
-  exchangedb_transactions.c
-libtalerexchangedb_la_LIBADD = \
+libtalerdonaudb_la_SOURCES = \
+  donaudb_accounts.c \
+  donaudb_plugin.c \
+  donaudb_transactions.c
+libtalerdonaudb_la_LIBADD = \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
   $(top_builddir)/src/util/libtalerutil.la \
   -lgnunetutil \
   $(XLIB)
-libtalerexchangedb_la_LDFLAGS = \
+libtalerdonaudb_la_LDFLAGS = \
   $(POSTGRESQL_LDFLAGS) \
   -version-info 1:0:0 \
   -no-undefined
 
 
 check_PROGRAMS = \
-  test-exchangedb-postgres
+  test-donaudb-postgres
 
 noinst_PROGRAMS = \
   bench-db-postgres\
@@ -299,10 +299,10 @@ TESTS = \
   $(check_SCRIPTS) \
   $(check_PROGRAMS)
 
-test_exchangedb_postgres_SOURCES = \
-  test_exchangedb.c
-test_exchangedb_postgres_LDADD = \
-  libtalerexchangedb.la \
+test_donaudb_postgres_SOURCES = \
+  test_donaudb.c
+test_donaudb_postgres_LDADD = \
+  libtalerdonaudb.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
@@ -314,7 +314,7 @@ test_exchangedb_postgres_LDADD = \
 bench_db_postgres_SOURCES = \
   bench_db.c
 bench_db_postgres_LDADD = \
-  libtalerexchangedb.la \
+  libtalerdonaudb.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
   -lgnunetpq \
@@ -324,7 +324,7 @@ bench_db_postgres_LDADD = \
 perf_reserves_in_insert_postgres_SOURCES = \
   perf_reserves_in_insert.c
 perf_reserves_in_insert_postgres_LDADD = \
-  libtalerexchangedb.la \
+  libtalerdonaudb.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
@@ -337,7 +337,7 @@ perf_reserves_in_insert_postgres_LDADD = \
 perf_select_refunds_by_coin_postgres_SOURCES = \
   perf_select_refunds_by_coin.c
 perf_select_refunds_by_coin_postgres_LDADD = \
-  libtalerexchangedb.la \
+  libtalerdonaudb.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
@@ -350,7 +350,7 @@ perf_select_refunds_by_coin_postgres_LDADD = \
 perf_get_link_data_postgres_SOURCES = \
   perf_get_link_data.c
 perf_get_link_data_postgres_LDADD = \
-  libtalerexchangedb.la \
+  libtalerdonaudb.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
@@ -363,7 +363,7 @@ perf_get_link_data_postgres_LDADD = \
 perf_deposits_get_ready_postgres_SOURCES = \
   perf_deposits_get_ready.c
 perf_deposits_get_ready_postgres_LDADD = \
-  libtalerexchangedb.la \
+  libtalerdonaudb.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/pq/libtalerpq.la \
@@ -374,5 +374,5 @@ perf_deposits_get_ready_postgres_LDADD = \
   $(XLIB)
 
 
-EXTRA_test_exchangedb_postgres_DEPENDENCIES = \
-  libtaler_plugin_exchangedb_postgres.la
+EXTRA_test_donaudb_postgres_DEPENDENCIES = \
+  libtaler_plugin_donaudb_postgres.la
diff --git a/src/exchangedb/bench-db-postgres.conf 
b/src/donaudb/bench-db-postgres.conf
similarity index 61%
rename from src/exchangedb/bench-db-postgres.conf
rename to src/donaudb/bench-db-postgres.conf
index d51cf91..870c5c4 100644
--- a/src/exchangedb/bench-db-postgres.conf
+++ b/src/donaudb/bench-db-postgres.conf
@@ -1,14 +1,14 @@
 # This file is in the public domain.
 #
-# Database-backend independent specification for the exchangedb module.
+# Database-backend independent specification for the donaudb module.
 #
 [bench-db-postgres]
 CONFIG = postgres:///talercheck
 
 # Where are the SQL files to setup our tables?
 # Important: this MUST end with a "/"!
-SQL_DIR = $DATADIR/sql/exchange/
+SQL_DIR = $DATADIR/sql/donau/
 
-[exchangedb]
+[donaudb]
 # Number of purses per account by default.
 DEFAULT_PURSE_LIMIT = 1
\ No newline at end of file
diff --git a/src/exchangedb/benchmark-0001.sql b/src/donaudb/benchmark-0001.sql
similarity index 95%
rename from src/exchangedb/benchmark-0001.sql
rename to src/donaudb/benchmark-0001.sql
index 34fed6a..aaa0d5c 100644
--- a/src/exchangedb/benchmark-0001.sql
+++ b/src/donaudb/benchmark-0001.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
diff --git a/src/exchangedb/exchange-0001.sql b/src/donaudb/donau-0001.sql
similarity index 86%
rename from src/exchangedb/exchange-0001.sql
rename to src/donaudb/donau-0001.sql
index a4b1c8b..27d95e4 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/donaudb/donau-0001.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -16,18 +16,18 @@
 
 BEGIN;
 
-SELECT _v.register_patch('exchange-0001', NULL, NULL);
+SELECT _v.register_patch('donau-0001', NULL, NULL);
 
-CREATE SCHEMA exchange;
-COMMENT ON SCHEMA exchange IS 'taler-exchange data';
+CREATE SCHEMA donau;
+COMMENT ON SCHEMA donau IS 'taler-donau data';
 
-SET search_path TO exchange;
+SET search_path TO donau;
 
 ---------------------------------------------------------------------------
 --                   General procedures for DB setup
 ---------------------------------------------------------------------------
 
-CREATE TABLE exchange_tables
+CREATE TABLE donau_tables
   (table_serial_id BIGINT GENERATED BY DEFAULT AS IDENTITY
   ,name TEXT NOT NULL
   ,version TEXT NOT NULL
@@ -35,19 +35,19 @@ CREATE TABLE exchange_tables
   ,partitioned BOOL NOT NULL
   ,by_range BOOL NOT NULL
   ,finished BOOL NOT NULL DEFAULT(FALSE));
-COMMENT ON TABLE exchange_tables
-  IS 'Tables of the exchange and their status';
-COMMENT ON COLUMN exchange_tables.name
+COMMENT ON TABLE donau_tables
+  IS 'Tables of the donau and their status';
+COMMENT ON COLUMN donau_tables.name
   IS 'Base name of the table (without partition/shard)';
-COMMENT ON COLUMN exchange_tables.version
+COMMENT ON COLUMN donau_tables.version
   IS 'Version of the DB in which the given action happened';
-COMMENT ON COLUMN exchange_tables.action
+COMMENT ON COLUMN donau_tables.action
   IS 'Action to take on the table (e.g. create, constrain, or foreign). Create 
is done for the master table and each partition; constrain is only for 
partitions or for master if there are no partitions; master only on master 
(takes no argument); foreign only on master if there are no partitions.';
-COMMENT ON COLUMN exchange_tables.partitioned
+COMMENT ON COLUMN donau_tables.partitioned
   IS 'TRUE if the table is partitioned';
-COMMENT ON COLUMN exchange_tables.by_range
+COMMENT ON COLUMN donau_tables.by_range
   IS 'TRUE if the table is partitioned by range';
-COMMENT ON COLUMN exchange_tables.finished
+COMMENT ON COLUMN donau_tables.finished
   IS 'TRUE if the respective migration has been run';
 
 
@@ -158,7 +158,7 @@ DECLARE
           ,action
           ,partitioned
           ,by_range
-      FROM exchange.exchange_tables
+      FROM donau.donau_tables
      WHERE NOT finished
      ORDER BY table_serial_id ASC;
 BEGIN
@@ -173,7 +173,7 @@ BEGIN
       THEN
         -- Create master table with partitioning.
         EXECUTE FORMAT(
-          'SELECT exchange.%s_table_%s (%s)'::text
+          'SELECT donau.%s_table_%s (%s)'::text
           ,rec.action
           ,rec.name
           ,quote_literal('0')
@@ -186,7 +186,7 @@ BEGIN
           THEN
             -- Range partition
             EXECUTE FORMAT(
-              'CREATE TABLE exchange.%s_default'
+              'CREATE TABLE donau.%s_default'
               ' PARTITION OF %s'
               ' DEFAULT'
              ,rec.name
@@ -195,7 +195,7 @@ BEGIN
           ELSE
             -- Hash partition
             EXECUTE FORMAT(
-              'CREATE TABLE exchange.%s_default'
+              'CREATE TABLE donau.%s_default'
               ' PARTITION OF %s'
               ' FOR VALUES WITH (MODULUS 1, REMAINDER 0)'
              ,rec.name
@@ -206,7 +206,7 @@ BEGIN
           FOR i IN 1..num_partitions LOOP
             -- Create num_partitions
             EXECUTE FORMAT(
-               'CREATE TABLE exchange.%I'
+               'CREATE TABLE donau.%I'
                ' PARTITION OF %I'
                ' FOR VALUES WITH (MODULUS %s, REMAINDER %s)'
               ,rec.name || '_' || i
@@ -219,7 +219,7 @@ BEGIN
       ELSE
         -- Only create master table. No partitions.
         EXECUTE FORMAT(
-          'SELECT exchange.%s_table_%s ()'::text
+          'SELECT donau.%s_table_%s ()'::text
           ,rec.action
           ,rec.name
         );
@@ -232,7 +232,7 @@ BEGIN
       THEN
         -- Constrain master table
         EXECUTE FORMAT(
-           'SELECT exchange.%s_table_%s (NULL)'::text
+           'SELECT donau.%s_table_%s (NULL)'::text
           ,rec.action
           ,rec.name
         );
@@ -242,7 +242,7 @@ BEGIN
         THEN
           -- Constrain default table
           EXECUTE FORMAT(
-             'SELECT exchange.%s_table_%s (%s)'::text
+             'SELECT donau.%s_table_%s (%s)'::text
             ,rec.action
             ,rec.name
             ,quote_literal('default')
@@ -251,7 +251,7 @@ BEGIN
           -- Constrain each partition
           FOR i IN 1..num_partitions LOOP
             EXECUTE FORMAT(
-              'SELECT exchange.%s_table_%s (%s)'::text
+              'SELECT donau.%s_table_%s (%s)'::text
               ,rec.action
               ,rec.name
               ,quote_literal(i)
@@ -266,7 +266,7 @@ BEGIN
       THEN
         -- Add foreign constraints
         EXECUTE FORMAT(
-          'SELECT exchange.%s_table_%s (%s)'::text
+          'SELECT donau.%s_table_%s (%s)'::text
           ,rec.action
           ,rec.name
           ,NULL
@@ -275,7 +275,7 @@ BEGIN
     WHEN 'master'
     THEN
       EXECUTE FORMAT(
-        'SELECT exchange.%s_table_%s ()'::text
+        'SELECT donau.%s_table_%s ()'::text
         ,rec.action
         ,rec.name
       );
@@ -283,7 +283,7 @@ BEGIN
       ASSERT FALSE, 'unsupported action type: ' || rec.action;
     END CASE;  -- END CASE (rec.action)
     -- Mark as finished
-    UPDATE exchange.exchange_tables
+    UPDATE donau.donau_tables
        SET finished=TRUE
      WHERE table_serial_id=rec.table_serial_id;
   END LOOP; -- create/alter/drop actions
diff --git a/src/exchangedb/exchange-0002.sql.in b/src/donaudb/donau-0002.sql.in
similarity index 88%
rename from src/exchangedb/exchange-0002.sql.in
rename to src/donaudb/donau-0002.sql.in
index 9a810aa..bb835d1 100644
--- a/src/exchangedb/exchange-0002.sql.in
+++ b/src/donaudb/donau-0002.sql.in
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -16,8 +16,8 @@
 
 BEGIN;
 
-SELECT _v.register_patch('exchange-0002', NULL, NULL);
-SET search_path TO exchange;
+SELECT _v.register_patch('donau-0002', NULL, NULL);
+SET search_path TO donau;
 
 CREATE TYPE taler_amount
   AS
@@ -27,13 +27,13 @@ CREATE TYPE taler_amount
 COMMENT ON TYPE taler_amount
   IS 'Stores an amount, fraction is in units of 1/100000000 of the base value';
 
-CREATE TYPE exchange_do_array_reserve_insert_return_type
+CREATE TYPE donau_do_array_reserve_insert_return_type
   AS
   (transaction_duplicate BOOLEAN
   ,ruuid INT8
   );
-COMMENT ON TYPE exchange_do_array_reserve_insert_return_type
-  IS 'Return type for exchange_do_array_reserves_insert() stored procedure';
+COMMENT ON TYPE donau_do_array_reserve_insert_return_type
+  IS 'Return type for donau_do_array_reserves_insert() stored procedure';
 
 #include "0002-denominations.sql"
 #include "0002-denomination_revocations.sql"
@@ -44,7 +44,7 @@ COMMENT ON TYPE exchange_do_array_reserve_insert_return_type
 #include "0002-wire_accounts.sql"
 #include "0002-auditors.sql"
 #include "0002-auditor_denom_sigs.sql"
-#include "0002-exchange_sign_keys.sql"
+#include "0002-donau_sign_keys.sql"
 #include "0002-signkey_revocations.sql"
 #include "0002-extensions.sql"
 #include "0002-profit_drains.sql"
diff --git a/src/exchangedb/exchange_do_account_merge.sql 
b/src/donaudb/donau_do_account_merge.sql
similarity index 88%
rename from src/exchangedb/exchange_do_account_merge.sql
rename to src/donaudb/donau_do_account_merge.sql
index 723154f..5932fa4 100644
--- a/src/exchangedb/exchange_do_account_merge.sql
+++ b/src/donaudb/donau_do_account_merge.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
diff --git a/src/exchangedb/exchange_do_amount_specific.sql 
b/src/donaudb/donau_do_amount_specific.sql
similarity index 100%
rename from src/exchangedb/exchange_do_amount_specific.sql
rename to src/donaudb/donau_do_amount_specific.sql
diff --git a/src/exchangedb/exchange_do_batch_coin_known.sql 
b/src/donaudb/donau_do_batch_coin_known.sql
similarity index 97%
rename from src/exchangedb/exchange_do_batch_coin_known.sql
rename to src/donaudb/donau_do_batch_coin_known.sql
index db96cb0..ac9853c 100644
--- a/src/exchangedb/exchange_do_batch_coin_known.sql
+++ b/src/donaudb/donau_do_batch_coin_known.sql
@@ -7,14 +7,14 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
 
-CREATE OR REPLACE FUNCTION exchange_do_batch4_known_coin(
+CREATE OR REPLACE FUNCTION donau_do_batch4_known_coin(
   IN in_coin_pub1 BYTEA,
   IN in_denom_pub_hash1 BYTEA,
   IN in_h_age_commitment1 BYTEA,
@@ -193,7 +193,7 @@ RETURN;
 END $$;
 
 
-CREATE OR REPLACE FUNCTION exchange_do_batch2_known_coin(
+CREATE OR REPLACE FUNCTION donau_do_batch2_known_coin(
   IN in_coin_pub1 BYTEA,
   IN in_denom_pub_hash1 BYTEA,
   IN in_h_age_commitment1 BYTEA,
@@ -305,7 +305,7 @@ RETURN;
 END $$;
 
 
-CREATE OR REPLACE FUNCTION exchange_do_batch1_known_coin(
+CREATE OR REPLACE FUNCTION donau_do_batch1_known_coin(
   IN in_coin_pub1 BYTEA,
   IN in_denom_pub_hash1 BYTEA,
   IN in_h_age_commitment1 BYTEA,
@@ -386,7 +386,7 @@ END $$;
 
 /*** Experiment using a loop ***/
 /*
-CREATE OR REPLACE FUNCTION exchange_do_batch2_known_coin(
+CREATE OR REPLACE FUNCTION donau_do_batch2_known_coin(
   IN in_coin_pub1 BYTEA,
   IN in_denom_pub_hash1 TEXT,
   IN in_h_age_commitment1 TEXT,
diff --git a/src/exchangedb/exchange_do_batch_reserves_update.sql 
b/src/donaudb/donau_do_batch_reserves_update.sql
similarity index 89%
rename from src/exchangedb/exchange_do_batch_reserves_update.sql
rename to src/donaudb/donau_do_batch_reserves_update.sql
index ebb58a1..ad702fc 100644
--- a/src/exchangedb/exchange_do_batch_reserves_update.sql
+++ b/src/donaudb/donau_do_batch_reserves_update.sql
@@ -7,19 +7,19 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
 
-CREATE OR REPLACE FUNCTION exchange_do_batch_reserves_update(
+CREATE OR REPLACE FUNCTION donau_do_batch_reserves_update(
   IN in_reserve_pub BYTEA,
   IN in_expiration_date INT8,
   IN in_wire_ref INT8,
   IN in_credit taler_amount,
-  IN in_exchange_account_name TEXT,
+  IN in_donau_account_name TEXT,
   IN in_wire_source_h_payto BYTEA,
   IN in_notify text,
   OUT out_duplicate BOOLEAN)
@@ -30,14 +30,14 @@ BEGIN
     (reserve_pub
     ,wire_reference
     ,credit
-    ,exchange_account_section
+    ,donau_account_section
     ,wire_source_h_payto
     ,execution_date)
     VALUES
     (in_reserve_pub
     ,in_wire_ref
     ,in_credit
-    ,in_exchange_account_name
+    ,in_donau_account_name
     ,in_wire_source_h_payto
     ,in_expiration_date)
     ON CONFLICT DO NOTHING;
diff --git a/src/exchangedb/exchange_do_batch_withdraw.sql 
b/src/donaudb/donau_do_batch_withdraw.sql
similarity index 90%
rename from src/exchangedb/exchange_do_batch_withdraw.sql
rename to src/donaudb/donau_do_batch_withdraw.sql
index b896e04..4e18baf 100644
--- a/src/exchangedb/exchange_do_batch_withdraw.sql
+++ b/src/donaudb/donau_do_batch_withdraw.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -16,7 +16,7 @@
 -- @author Christian Grothoff
 -- @author Özgür Kesim
 
-CREATE OR REPLACE FUNCTION exchange_do_batch_withdraw(
+CREATE OR REPLACE FUNCTION donau_do_batch_withdraw(
   IN amount taler_amount,
   IN rpub BYTEA,
   IN now INT8,
@@ -43,7 +43,7 @@ BEGIN
 
 SELECT *
   INTO reserve
-  FROM exchange.reserves
+  FROM donau.reserves
  WHERE reserves.reserve_pub=rpub;
 
 IF NOT FOUND
@@ -65,7 +65,7 @@ THEN
   age_ok = TRUE;
   allowed_maximum_age = -1;
 ELSE
-  -- Age requirements are formally not met:  The exchange is setup to support
+  -- Age requirements are formally not met:  The donau is setup to support
   -- age restrictions (do_age_check == TRUE) and the reserve has a
   -- birthday set (reserve_birthday != 0), but the client called the
   -- batch-withdraw endpoint instead of the age-withdraw endpoint, which it
@@ -118,6 +118,6 @@ balance_ok=TRUE;
 
 END $$;
 
-COMMENT ON FUNCTION exchange_do_batch_withdraw(taler_amount, BYTEA, INT8, 
INT8, BOOLEAN)
+COMMENT ON FUNCTION donau_do_batch_withdraw(taler_amount, BYTEA, INT8, INT8, 
BOOLEAN)
   IS 'Checks whether the reserve has sufficient balance for a withdraw 
operation (or the request is repeated and was previously approved) and that age 
requirements are formally met. If so updates the database with the result. 
Excludes storing the planchets.';
 
diff --git a/src/exchangedb/exchange_do_batch_withdraw_insert.sql 
b/src/donaudb/donau_do_batch_withdraw_insert.sql
similarity index 87%
rename from src/exchangedb/exchange_do_batch_withdraw_insert.sql
rename to src/donaudb/donau_do_batch_withdraw_insert.sql
index d36181a..7803cc5 100644
--- a/src/exchangedb/exchange_do_batch_withdraw_insert.sql
+++ b/src/donaudb/donau_do_batch_withdraw_insert.sql
@@ -7,14 +7,14 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
 
-CREATE OR REPLACE FUNCTION exchange_do_batch_withdraw_insert(
+CREATE OR REPLACE FUNCTION donau_do_batch_withdraw_insert(
   IN cs_nonce BYTEA,
   IN amount taler_amount,
   IN h_denom_pub BYTEA, -- FIXME: denom_serials should really be a parameter 
to this FUNCTION.
@@ -45,7 +45,7 @@ out_nonce_reuse=TRUE;
 
 SELECT denominations_serial
   INTO denom_serial
-  FROM exchange.denominations
+  FROM donau.denominations
  WHERE denom_pub_hash=h_denom_pub;
 
 IF NOT FOUND
@@ -57,7 +57,7 @@ THEN
 END IF;
 out_denom_unknown=FALSE;
 
-INSERT INTO exchange.reserves_out
+INSERT INTO donau.reserves_out
   (h_blind_ev
   ,denominations_serial
   ,denom_sig
@@ -88,7 +88,7 @@ IF NOT NULL cs_nonce
 THEN
   -- Cache CS signature to prevent replays in the future
   -- (and check if cached signature exists at the same time).
-  INSERT INTO exchange.cs_nonce_locks
+  INSERT INTO donau.cs_nonce_locks
     (nonce
     ,max_denomination_serial
     ,op_hash)
@@ -102,7 +102,7 @@ THEN
   THEN
     -- See if the existing entry is identical.
     SELECT 1
-      FROM exchange.cs_nonce_locks
+      FROM donau.cs_nonce_locks
      WHERE nonce=cs_nonce
        AND op_hash=h_coin_envelope;
     IF NOT FOUND
@@ -116,5 +116,5 @@ END IF;
 
 END $$;
 
-COMMENT ON FUNCTION exchange_do_batch_withdraw_insert(BYTEA, taler_amount, 
BYTEA, INT8, BYTEA, BYTEA, BYTEA, INT8)
+COMMENT ON FUNCTION donau_do_batch_withdraw_insert(BYTEA, taler_amount, BYTEA, 
INT8, BYTEA, BYTEA, BYTEA, INT8)
   IS 'Stores information about a planchet for a batch withdraw operation. 
Checks if the planchet already exists, and in that case indicates a conflict';
diff --git a/src/exchangedb/exchange_do_deposit.sql 
b/src/donaudb/donau_do_deposit.sql
similarity index 88%
rename from src/exchangedb/exchange_do_deposit.sql
rename to src/donaudb/donau_do_deposit.sql
index 1156c7d..1dbd269 100644
--- a/src/exchangedb/exchange_do_deposit.sql
+++ b/src/donaudb/donau_do_deposit.sql
@@ -7,18 +7,18 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
-CREATE OR REPLACE FUNCTION exchange_do_deposit(
+CREATE OR REPLACE FUNCTION donau_do_deposit(
   -- For batch_deposits
   IN in_shard INT8,
-  IN in_merchant_pub BYTEA,
+  IN in_charity_pub BYTEA,
   IN in_wallet_timestamp INT8,
-  IN in_exchange_timestamp INT8,
+  IN in_donau_timestamp INT8,
   IN in_refund_deadline INT8,
   IN in_wire_deadline INT8,
   IN in_h_contract_terms BYTEA,
@@ -33,7 +33,7 @@ CREATE OR REPLACE FUNCTION exchange_do_deposit(
   IN ina_coin_pub BYTEA[],
   IN ina_coin_sig BYTEA[],
   IN ina_amount_with_fee taler_amount[],
-  OUT out_exchange_timestamp INT8,
+  OUT out_donau_timestamp INT8,
   OUT out_insufficient_balance_coin_index INT4, -- index of coin with bad 
balance, NULL if none
   OUT out_conflict BOOL
  )
@@ -50,7 +50,7 @@ DECLARE
 BEGIN
 -- Shards:
 --         INSERT wire_targets (by h_payto), ON CONFLICT DO NOTHING;
---         INSERT batch_deposits (by shard, merchant_pub), ON CONFLICT 
idempotency check;
+--         INSERT batch_deposits (by shard, charity_pub), ON CONFLICT 
idempotency check;
 --         INSERT[] coin_deposits (by coin_pub), ON CONFLICT idempotency check;
 --         UPDATE[] known_coins (by coin_pub)
 
@@ -83,9 +83,9 @@ END IF;
 -- Second, create the batch_deposits entry
 INSERT INTO batch_deposits
   (shard
-  ,merchant_pub
+  ,charity_pub
   ,wallet_timestamp
-  ,exchange_timestamp
+  ,donau_timestamp
   ,refund_deadline
   ,wire_deadline
   ,h_contract_terms
@@ -97,9 +97,9 @@ INSERT INTO batch_deposits
   )
   VALUES
   (in_shard
-  ,in_merchant_pub
+  ,in_charity_pub
   ,in_wallet_timestamp
-  ,in_exchange_timestamp
+  ,in_donau_timestamp
   ,in_refund_deadline
   ,in_wire_deadline
   ,in_h_contract_terms
@@ -108,7 +108,7 @@ INSERT INTO batch_deposits
   ,in_wire_target_h_payto
   ,in_policy_details_serial_id
   ,in_policy_blocked)
-  ON CONFLICT DO NOTHING -- for CONFLICT ON (merchant_pub, h_contract_terms)
+  ON CONFLICT DO NOTHING -- for CONFLICT ON (charity_pub, h_contract_terms)
   RETURNING
     batch_deposit_serial_id
   INTO
@@ -117,17 +117,17 @@ INSERT INTO batch_deposits
 IF NOT FOUND
 THEN
   -- Idempotency check: see if an identical record exists.
-  -- We do select over merchant_pub, h_contract_terms and wire_target_h_payto
+  -- We do select over charity_pub, h_contract_terms and wire_target_h_payto
   -- first to maximally increase the chance of using the existing index.
   SELECT
-      exchange_timestamp
+      donau_timestamp
      ,batch_deposit_serial_id
    INTO
-      out_exchange_timestamp
+      out_donau_timestamp
      ,bdsi
    FROM batch_deposits
    WHERE shard=in_shard
-     AND merchant_pub=in_merchant_pub
+     AND charity_pub=in_charity_pub
      AND h_contract_terms=in_h_contract_terms
      AND wire_target_h_payto=in_wire_target_h_payto
      -- now check the rest, too
diff --git a/src/exchangedb/exchange_do_gc.sql b/src/donaudb/donau_do_gc.sql
similarity index 74%
rename from src/exchangedb/exchange_do_gc.sql
rename to src/donaudb/donau_do_gc.sql
index 5758cb2..40badcd 100644
--- a/src/exchangedb/exchange_do_gc.sql
+++ b/src/donaudb/donau_do_gc.sql
@@ -7,14 +7,14 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
 
-CREATE OR REPLACE PROCEDURE exchange_do_gc(
+CREATE OR REPLACE PROCEDURE donau_do_gc(
   IN in_ancient_date INT8,
   IN in_now INT8)
 LANGUAGE plpgsql
@@ -28,14 +28,14 @@ DECLARE
   denom_min INT8; -- minimum denomination still alive
 BEGIN
 
-DELETE FROM exchange.prewire
+DELETE FROM donau.prewire
   WHERE finished=TRUE;
 
-DELETE FROM exchange.wire_fee
+DELETE FROM donau.wire_fee
   WHERE end_date < in_ancient_date;
 
 -- TODO: use closing fee as threshold?
-DELETE FROM exchange.reserves
+DELETE FROM donau.reserves
   WHERE gc_date < in_now
     AND current_balance = (0, 0);
 
@@ -43,11 +43,11 @@ SELECT
      reserve_out_serial_id
   INTO
      reserve_out_min
-  FROM exchange.reserves_out
+  FROM donau.reserves_out
   ORDER BY reserve_out_serial_id ASC
   LIMIT 1;
 
-DELETE FROM exchange.recoup
+DELETE FROM donau.recoup
   WHERE reserve_out_serial_id < reserve_out_min;
 -- FIXME: recoup_refresh lacks GC!
 
@@ -55,71 +55,71 @@ SELECT
      reserve_uuid
   INTO
      reserve_uuid_min
-  FROM exchange.reserves
+  FROM donau.reserves
   ORDER BY reserve_uuid ASC
   LIMIT 1;
 
-DELETE FROM exchange.reserves_out
+DELETE FROM donau.reserves_out
   WHERE reserve_uuid < reserve_uuid_min;
 
 -- FIXME: this query will be horribly slow;
 -- need to find another way to formulate it...
-DELETE FROM exchange.denominations
+DELETE FROM donau.denominations
   WHERE expire_legal < in_now
     AND denominations_serial NOT IN
       (SELECT DISTINCT denominations_serial
-         FROM exchange.reserves_out)
+         FROM donau.reserves_out)
     AND denominations_serial NOT IN
       (SELECT DISTINCT denominations_serial
-         FROM exchange.known_coins
+         FROM donau.known_coins
         WHERE coin_pub IN
           (SELECT DISTINCT coin_pub
-             FROM exchange.recoup))
+             FROM donau.recoup))
     AND denominations_serial NOT IN
       (SELECT DISTINCT denominations_serial
-         FROM exchange.known_coins
+         FROM donau.known_coins
         WHERE coin_pub IN
           (SELECT DISTINCT coin_pub
-             FROM exchange.recoup_refresh));
+             FROM donau.recoup_refresh));
 
 SELECT
      melt_serial_id
   INTO
      melt_min
-  FROM exchange.refresh_commitments
+  FROM donau.refresh_commitments
   ORDER BY melt_serial_id ASC
   LIMIT 1;
 
-DELETE FROM exchange.refresh_revealed_coins
+DELETE FROM donau.refresh_revealed_coins
   WHERE melt_serial_id < melt_min;
 
-DELETE FROM exchange.refresh_transfer_keys
+DELETE FROM donau.refresh_transfer_keys
   WHERE melt_serial_id < melt_min;
 
 SELECT
      known_coin_id
   INTO
      coin_min
-  FROM exchange.known_coins
+  FROM donau.known_coins
   ORDER BY known_coin_id ASC
   LIMIT 1;
 
-DELETE FROM exchange.batch_deposits
+DELETE FROM donau.batch_deposits
   WHERE wire_deadline < in_ancient_date;
 
 SELECT
      batch_deposit_serial_id
   INTO
      batch_deposit_min
-  FROM exchange.coin_deposits
+  FROM donau.coin_deposits
   ORDER BY batch_deposit_serial_id ASC
   LIMIT 1;
 
-DELETE FROM exchange.refunds
+DELETE FROM donau.refunds
   WHERE batch_deposit_serial_id < batch_deposit_min;
-DELETE FROM exchange.aggregation_tracking
+DELETE FROM donau.aggregation_tracking
   WHERE batch_deposit_serial_id < batch_deposit_min;
-DELETE FROM exchange.coin_deposits
+DELETE FROM donau.coin_deposits
   WHERE batch_deposit_serial_id < batch_deposit_min;
 
 
@@ -128,11 +128,11 @@ SELECT
      denominations_serial
   INTO
      denom_min
-  FROM exchange.denominations
+  FROM donau.denominations
   ORDER BY denominations_serial ASC
   LIMIT 1;
 
-DELETE FROM exchange.cs_nonce_locks
+DELETE FROM donau.cs_nonce_locks
   WHERE max_denomination_serial <= denom_min;
 
 END $$;
diff --git a/src/exchangedb/exchange_do_reserves_in_insert.sql 
b/src/donaudb/donau_do_reserves_in_insert.sql
similarity index 87%
rename from src/exchangedb/exchange_do_reserves_in_insert.sql
rename to src/donaudb/donau_do_reserves_in_insert.sql
index d2347bd..7ae7a31 100644
--- a/src/exchangedb/exchange_do_reserves_in_insert.sql
+++ b/src/donaudb/donau_do_reserves_in_insert.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -15,18 +15,18 @@
 --
 
 
-CREATE OR REPLACE FUNCTION exchange_do_array_reserves_insert(
+CREATE OR REPLACE FUNCTION donau_do_array_reserves_insert(
   IN in_gc_date INT8,
   IN in_reserve_expiration INT8,
   IN ina_reserve_pub BYTEA[],
   IN ina_wire_ref INT8[],
   IN ina_credit taler_amount[],
-  IN ina_exchange_account_name TEXT[],
+  IN ina_donau_account_name TEXT[],
   IN ina_execution_date INT8[],
   IN ina_wire_source_h_payto BYTEA[],
   IN ina_payto_uri TEXT[],
   IN ina_notify TEXT[])
-RETURNS SETOF exchange_do_array_reserve_insert_return_type
+RETURNS SETOF donau_do_array_reserve_insert_return_type
 LANGUAGE plpgsql
 AS $$
 DECLARE
@@ -38,7 +38,7 @@ DECLARE
   ini_reserve_pub BYTEA;
   ini_wire_ref INT8;
   ini_credit taler_amount;
-  ini_exchange_account_name TEXT;
+  ini_donau_account_name TEXT;
   ini_execution_date INT8;
   ini_wire_source_h_payto BYTEA;
   ini_payto_uri TEXT;
@@ -50,7 +50,7 @@ BEGIN
     ini_reserve_pub = ina_reserve_pub[i];
     ini_wire_ref = ina_wire_ref[i];
     ini_credit = ina_credit[i];
-    ini_exchange_account_name = ina_exchange_account_name[i];
+    ini_donau_account_name = ina_donau_account_name[i];
     ini_execution_date = ina_execution_date[i];
     ini_wire_source_h_payto = ina_wire_source_h_payto[i];
     ini_payto_uri = ina_payto_uri[i];
@@ -87,14 +87,14 @@ BEGIN
       (reserve_pub
       ,wire_reference
       ,credit
-      ,exchange_account_section
+      ,donau_account_section
       ,wire_source_h_payto
       ,execution_date
     ) VALUES (
       ini_reserve_pub
      ,ini_wire_ref
      ,ini_credit
-     ,ini_exchange_account_name
+     ,ini_donau_account_name
      ,ini_wire_source_h_payto
      ,ini_execution_date
     )
diff --git a/src/exchangedb/exchange_do_withdraw.sql 
b/src/donaudb/donau_do_withdraw.sql
similarity index 90%
rename from src/exchangedb/exchange_do_withdraw.sql
rename to src/donaudb/donau_do_withdraw.sql
index c25267b..cae3908 100644
--- a/src/exchangedb/exchange_do_withdraw.sql
+++ b/src/donaudb/donau_do_withdraw.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
 --
 
 
-CREATE OR REPLACE FUNCTION exchange_do_withdraw(
+CREATE OR REPLACE FUNCTION donau_do_withdraw(
   IN cs_nonce BYTEA,
   IN amount taler_amount,
   IN h_denom_pub BYTEA,
@@ -48,7 +48,7 @@ BEGIN
 
 SELECT denominations_serial
   INTO denom_serial
-  FROM exchange.denominations
+  FROM donau.denominations
  WHERE denom_pub_hash=h_denom_pub;
 
 IF NOT FOUND
@@ -66,7 +66,7 @@ END IF;
 
 SELECT *
   INTO reserve
-  FROM exchange.reserves
+  FROM donau.reserves
  WHERE reserves.reserve_pub=rpub;
 
 IF NOT FOUND
@@ -90,7 +90,7 @@ THEN
   age_ok = TRUE;
   allowed_maximum_age = -1;
 ELSE
-  -- Age requirements are formally not met:  The exchange is setup to support
+  -- Age requirements are formally not met:  The donau is setup to support
   -- age restrictions (do_age_check == TRUE) and the reserve has a
   -- birthday set (reserve_birthday != 0), but the client called the
   -- batch-withdraw endpoint instead of the age-withdraw endpoint, which it
@@ -107,7 +107,7 @@ END IF;
 
 -- We optimistically insert, and then on conflict declare
 -- the query successful due to idempotency.
-INSERT INTO exchange.reserves_out
+INSERT INTO donau.reserves_out
   (h_blind_ev
   ,denominations_serial
   ,denom_sig
@@ -178,7 +178,7 @@ IF NOT NULL cs_nonce
 THEN
   -- Cache CS signature to prevent replays in the future
   -- (and check if cached signature exists at the same time).
-  INSERT INTO exchange.cs_nonce_locks
+  INSERT INTO donau.cs_nonce_locks
     (nonce
     ,max_denomination_serial
     ,op_hash)
@@ -192,7 +192,7 @@ THEN
   THEN
     -- See if the existing entry is identical.
     SELECT 1
-      FROM exchange.cs_nonce_locks
+      FROM donau.cs_nonce_locks
      WHERE nonce=cs_nonce
        AND op_hash=h_coin_envelope;
     IF NOT FOUND
@@ -209,5 +209,5 @@ END IF;
 
 END $$;
 
-COMMENT ON FUNCTION exchange_do_withdraw(BYTEA, taler_amount, BYTEA, BYTEA, 
BYTEA, BYTEA, BYTEA, INT8, INT8, BOOLEAN)
+COMMENT ON FUNCTION donau_do_withdraw(BYTEA, taler_amount, BYTEA, BYTEA, 
BYTEA, BYTEA, BYTEA, INT8, INT8, BOOLEAN)
   IS 'Checks whether the reserve has sufficient balance for a withdraw 
operation (or the request is repeated and was previously approved) and if the 
age requirements are formally met.  If so updates the database with the result';
diff --git a/src/exchangedb/exchangedb-postgres.conf 
b/src/donaudb/donaudb-postgres.conf
similarity index 67%
rename from src/exchangedb/exchangedb-postgres.conf
rename to src/donaudb/donaudb-postgres.conf
index e481940..daf9c47 100644
--- a/src/exchangedb/exchangedb-postgres.conf
+++ b/src/donaudb/donaudb-postgres.conf
@@ -1,9 +1,9 @@
-[exchangedb-postgres]
+[donaudb-postgres]
 CONFIG = "postgres:///taler"
 
 # Where are the SQL files to setup our tables?
 # Important: this MUST end with a "/"!
-SQL_DIR = $DATADIR/sql/exchange/
+SQL_DIR = $DATADIR/sql/donau/
 
 # Number of purses per account by default.
 DEFAULT_PURSE_LIMIT = 1
\ No newline at end of file
diff --git a/src/exchangedb/exchangedb.conf b/src/donaudb/donaudb.conf
similarity index 78%
rename from src/exchangedb/exchangedb.conf
rename to src/donaudb/donaudb.conf
index 2bfcb2c..663755e 100644
--- a/src/exchangedb/exchangedb.conf
+++ b/src/donaudb/donaudb.conf
@@ -1,20 +1,20 @@
 # This file is in the public domain.
 #
-# Database-backend independent specification for the exchangedb module.
+# Database-backend independent specification for the donaudb module.
 #
-[exchangedb]
+[donaudb]
 # Where do we expect to find information about auditors?
 AUDITOR_BASE_DIR = ${TALER_DATA_HOME}/auditors/
 
 # Where do we expect to find information about wire transfer fees
 # for aggregate payments?  These are the amounts we charge (subtract)
-# the merchant per wire transfer.  The directory is expected to
+# the charity per wire transfer.  The directory is expected to
 # contain files "$METHOD.fee" with the cost structure, where
 # $METHOD corresponds to a wire transfer method.
-WIREFEE_BASE_DIR = ${TALER_DATA_HOME}/exchange/wirefees/
+WIREFEE_BASE_DIR = ${TALER_DATA_HOME}/donau/wirefees/
 
 
-# After how long do we close idle reserves?  The exchange
+# After how long do we close idle reserves?  The donau
 # and the auditor must agree on this value.  We currently
 # expect it to be globally defined for the whole system,
 # as there is no way for wallets to query this value.  Thus,
diff --git a/src/exchangedb/exchangedb_plugin.c b/src/donaudb/donaudb_plugin.c
similarity index 74%
rename from src/exchangedb/exchangedb_plugin.c
rename to src/donaudb/donaudb_plugin.c
index 5dc41d9..ca148d8 100644
--- a/src/exchangedb/exchangedb_plugin.c
+++ b/src/donaudb/donaudb_plugin.c
@@ -7,43 +7,43 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchangedb/exchangedb_plugin.c
+ * @file donaudb/donaudb_plugin.c
  * @brief Logic to load database plugin
  * @author Christian Grothoff
  * @author Sree Harsha Totakura <sreeharsha@totakura.in>
  */
 #include "platform.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 #include <ltdl.h>
 
 
-struct TALER_EXCHANGEDB_Plugin *
-TALER_EXCHANGEDB_plugin_load (const struct GNUNET_CONFIGURATION_Handle *cfg)
+struct TALER_DONAUDB_Plugin *
+TALER_DONAUDB_plugin_load (const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   char *plugin_name;
   char *lib_name;
-  struct TALER_EXCHANGEDB_Plugin *plugin;
+  struct TALER_DONAUDB_Plugin *plugin;
 
   if (GNUNET_SYSERR ==
       GNUNET_CONFIGURATION_get_value_string (cfg,
-                                             "exchange",
+                                             "donau",
                                              "db",
                                              &plugin_name))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "db");
     return NULL;
   }
   GNUNET_asprintf (&lib_name,
-                   "libtaler_plugin_exchangedb_%s",
+                   "libtaler_plugin_donaudb_%s",
                    plugin_name);
   GNUNET_free (plugin_name);
   plugin = GNUNET_PLUGIN_load (lib_name,
@@ -57,7 +57,7 @@ TALER_EXCHANGEDB_plugin_load (const struct 
GNUNET_CONFIGURATION_Handle *cfg)
 
 
 void
-TALER_EXCHANGEDB_plugin_unload (struct TALER_EXCHANGEDB_Plugin *plugin)
+TALER_DONAUDB_plugin_unload (struct TALER_DONAUDB_Plugin *plugin)
 {
   char *lib_name;
 
@@ -70,4 +70,4 @@ TALER_EXCHANGEDB_plugin_unload (struct 
TALER_EXCHANGEDB_Plugin *plugin)
 }
 
 
-/* end of exchangedb_plugin.c */
+/* end of donaudb_plugin.c */
diff --git a/src/exchangedb/exchangedb_transactions.c 
b/src/donaudb/donaudb_transactions.c
similarity index 87%
rename from src/exchangedb/exchangedb_transactions.c
rename to src/donaudb/donaudb_transactions.c
index f783937..0487ed4 100644
--- a/src/exchangedb/exchangedb_transactions.c
+++ b/src/donaudb/donaudb_transactions.c
@@ -7,24 +7,24 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchangedb/exchangedb_transactions.c
+ * @file donaudb/donaudb_transactions.c
  * @brief Logic to compute transaction totals of a transaction list for a coin
  * @author Christian Grothoff
  */
 #include "platform.h"
-#include "taler_exchangedb_lib.h"
+#include "taler_donaudb_lib.h"
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGEDB_calculate_transaction_list_totals (
-  struct TALER_EXCHANGEDB_TransactionList *tl,
+TALER_DONAUDB_calculate_transaction_list_totals (
+  struct TALER_DONAUDB_TransactionList *tl,
   const struct TALER_Amount *off,
   struct TALER_Amount *ret)
 {
@@ -37,13 +37,13 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
                  TALER_amount_set_zero (spent.currency,
                                         &refunded));
   have_refund = false;
-  for (struct TALER_EXCHANGEDB_TransactionList *pos = tl;
+  for (struct TALER_DONAUDB_TransactionList *pos = tl;
        NULL != pos;
        pos = pos->next)
   {
     switch (pos->type)
     {
-    case TALER_EXCHANGEDB_TT_DEPOSIT:
+    case TALER_DONAUDB_TT_DEPOSIT:
       /* spent += pos->amount_with_fee */
       if (0 >
           TALER_amount_add (&spent,
@@ -55,7 +55,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
       }
       deposit_fee = pos->details.deposit->deposit_fee;
       break;
-    case TALER_EXCHANGEDB_TT_MELT:
+    case TALER_DONAUDB_TT_MELT:
       /* spent += pos->amount_with_fee */
       if (0 >
           TALER_amount_add (&spent,
@@ -66,7 +66,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
         return GNUNET_SYSERR;
       }
       break;
-    case TALER_EXCHANGEDB_TT_REFUND:
+    case TALER_DONAUDB_TT_REFUND:
       /* refunded += pos->refund_amount - pos->refund_fee */
       if (0 >
           TALER_amount_add (&refunded,
@@ -86,7 +86,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
       }
       have_refund = true;
       break;
-    case TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP:
+    case TALER_DONAUDB_TT_OLD_COIN_RECOUP:
       /* refunded += pos->value */
       if (0 >
           TALER_amount_add (&refunded,
@@ -97,7 +97,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
         return GNUNET_SYSERR;
       }
       break;
-    case TALER_EXCHANGEDB_TT_RECOUP:
+    case TALER_DONAUDB_TT_RECOUP:
       /* spent += pos->value */
       if (0 >
           TALER_amount_add (&spent,
@@ -108,7 +108,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
         return GNUNET_SYSERR;
       }
       break;
-    case TALER_EXCHANGEDB_TT_RECOUP_REFRESH:
+    case TALER_DONAUDB_TT_RECOUP_REFRESH:
       /* spent += pos->value */
       if (0 >
           TALER_amount_add (&spent,
@@ -119,7 +119,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
         return GNUNET_SYSERR;
       }
       break;
-    case TALER_EXCHANGEDB_TT_PURSE_DEPOSIT:
+    case TALER_DONAUDB_TT_PURSE_DEPOSIT:
       /* spent += pos->amount_with_fee */
       if (0 >
           TALER_amount_add (&spent,
@@ -131,7 +131,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
       }
       deposit_fee = pos->details.purse_deposit->deposit_fee;
       break;
-    case TALER_EXCHANGEDB_TT_PURSE_REFUND:
+    case TALER_DONAUDB_TT_PURSE_REFUND:
       /* refunded += pos->refund_amount - pos->refund_fee */
       if (0 >
           TALER_amount_add (&refunded,
@@ -151,7 +151,7 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
       }
       have_refund = true;
       break;
-    case TALER_EXCHANGEDB_TT_RESERVE_OPEN:
+    case TALER_DONAUDB_TT_RESERVE_OPEN:
       /* spent += pos->amount_with_fee */
       if (0 >
           TALER_amount_add (&spent,
diff --git a/src/exchangedb/drop.sql b/src/donaudb/drop.sql
similarity index 77%
rename from src/exchangedb/drop.sql
rename to src/donaudb/drop.sql
index ff383d7..749e0fa 100644
--- a/src/exchangedb/drop.sql
+++ b/src/donaudb/drop.sql
@@ -7,7 +7,7 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
@@ -18,9 +18,9 @@
 BEGIN;
 
 
-SELECT _v.unregister_patch('exchange-0001');
-SELECT _v.unregister_patch('exchange-0002');
+SELECT _v.unregister_patch('donau-0001');
+SELECT _v.unregister_patch('donau-0002');
 
-DROP SCHEMA exchange CASCADE;
+DROP SCHEMA donau CASCADE;
 
 COMMIT;
diff --git a/src/exchangedb/exchange_do_withdraw.sql~ 
b/src/donaudb/exchange_do_withdraw.sql~
similarity index 91%
rename from src/exchangedb/exchange_do_withdraw.sql~
rename to src/donaudb/exchange_do_withdraw.sql~
index 243ef98..7c30578 100644
--- a/src/exchangedb/exchange_do_withdraw.sql~
+++ b/src/donaudb/exchange_do_withdraw.sql~
@@ -7,13 +7,13 @@
 -- Foundation; either version 3, or (at your option) any later version.
 --
 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
 -- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 --
 -- You should have received a copy of the GNU General Public License along with
 -- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 --
-CREATE OR REPLACE FUNCTION exchange_do_withdraw(
+CREATE OR REPLACE FUNCTION donau_do_withdraw(
   IN cs_nonce BYTEA,
   IN amount_val INT8,
   IN amount_frac INT4,
@@ -47,7 +47,7 @@ BEGIN
 
 SELECT denominations_serial
   INTO denom_serial
-  FROM exchange.denominations
+  FROM donau.denominations
  WHERE denom_pub_hash=h_denom_pub;
 
 IF NOT FOUND
@@ -71,7 +71,7 @@ SELECT
   ,reserve_frac
   ,reserve_gc
   ,ruuid
-  FROM exchange.reserves
+  FROM donau.reserves
  WHERE reserves.reserve_pub=rpub;
 
 IF NOT FOUND
@@ -86,7 +86,7 @@ END IF;
 
 -- We optimistically insert, and then on conflict declare
 -- the query successful due to idempotency.
-INSERT INTO exchange.reserves_out
+INSERT INTO donau.reserves_out
   (h_blind_ev
   ,denominations_serial
   ,denom_sig
@@ -160,7 +160,7 @@ IF NOT NULL cs_nonce
 THEN
   -- Cache CS signature to prevent replays in the future
   -- (and check if cached signature exists at the same time).
-  INSERT INTO exchange.cs_nonce_locks
+  INSERT INTO donau.cs_nonce_locks
     (nonce
     ,max_denomination_serial
     ,op_hash)
@@ -174,7 +174,7 @@ THEN
   THEN
     -- See if the existing entry is identical.
     SELECT 1
-      FROM exchange.cs_nonce_locks
+      FROM donau.cs_nonce_locks
      WHERE nonce=cs_nonce
        AND op_hash=h_coin_envelope;
     IF NOT FOUND
@@ -192,6 +192,6 @@ END IF;
 END $$;
 
 
-COMMENT ON FUNCTION exchange_do_withdraw(BYTEA, INT8, INT4, BYTEA, BYTEA, 
BYTEA, BYTEA, BYTEA, INT8, INT8)
+COMMENT ON FUNCTION donau_do_withdraw(BYTEA, INT8, INT4, BYTEA, BYTEA, BYTEA, 
BYTEA, BYTEA, INT8, INT8)
   IS 'Checks whether the reserve has sufficient balance for a withdraw 
operation (or the request is repeated and was previously approved) and if so 
updates the database with the result';
 
diff --git a/src/exchangedb/list.txt b/src/donaudb/list.txt
similarity index 69%
rename from src/exchangedb/list.txt
rename to src/donaudb/list.txt
index dc920f6..73b9a3b 100644
--- a/src/exchangedb/list.txt
+++ b/src/donaudb/list.txt
@@ -1,11 +1,11 @@
 0002-recoup.sql
 0002-reserves_out.sql
-exchange-0002.sql
-exchange_do_batch_withdraw_insert.sql
-exchange_do_batch_withdraw.sql
-exchange_do_gc.sql
-exchange_do_recoup_by_reserve.sql
-exchange_do_withdraw.sql
+donau-0002.sql
+donau_do_batch_withdraw_insert.sql
+donau_do_batch_withdraw.sql
+donau_do_gc.sql
+donau_do_recoup_by_reserve.sql
+donau_do_withdraw.sql
 pg_get_coin_transactions.c
 pg_get_reserve_by_h_blind.c
 pg_get_reserve_history.c
diff --git a/src/exchangedb/pg_activate_signing_key.c 
b/src/donaudb/pg_activate_signing_key.c
similarity index 82%
rename from src/exchangedb/pg_activate_signing_key.c
rename to src/donaudb/pg_activate_signing_key.c
index fab2a0f..f5a4bc4 100644
--- a/src/exchangedb/pg_activate_signing_key.c
+++ b/src/donaudb/pg_activate_signing_key.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_activate_signing_key.c
+ * @file donaudb/pg_activate_signing_key.c
  * @brief Implementation of the activate_signing_key function for Postgres
  * @author Christian Grothoff
  */
@@ -28,13 +28,13 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_activate_signing_key (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DONAUDB_SignkeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam iparams[] = {
-    GNUNET_PQ_query_param_auto_from_type (exchange_pub),
+    GNUNET_PQ_query_param_auto_from_type (donau_pub),
     GNUNET_PQ_query_param_timestamp (&meta->start),
     GNUNET_PQ_query_param_timestamp (&meta->expire_sign),
     GNUNET_PQ_query_param_timestamp (&meta->expire_legal),
@@ -44,8 +44,8 @@ TEH_PG_activate_signing_key (
 
   PREPARE (pg,
            "insert_signkey",
-           "INSERT INTO exchange_sign_keys "
-           "(exchange_pub"
+           "INSERT INTO donau_sign_keys "
+           "(donau_pub"
            ",valid_from"
            ",expire_sign"
            ",expire_legal"
diff --git a/src/exchangedb/pg_activate_signing_key.h 
b/src/donaudb/pg_activate_signing_key.h
similarity index 74%
rename from src/exchangedb/pg_activate_signing_key.h
rename to src/donaudb/pg_activate_signing_key.h
index 2d4df06..26fe3bc 100644
--- a/src/exchangedb/pg_activate_signing_key.h
+++ b/src/donaudb/pg_activate_signing_key.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_activate_signing_key.h
+ * @file donaudb/pg_activate_signing_key.h
  * @brief implementation of the activate_signing_key function for Postgres
  * @author Christian Grothoff
  */
@@ -23,22 +23,22 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Add signing key.
  *
  * @param cls closure
- * @param exchange_pub the exchange online signing public key
- * @param meta meta data about @a exchange_pub
+ * @param donau_pub the donau online signing public key
+ * @param meta meta data about @a donau_pub
  * @param master_sig master signature to add
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_activate_signing_key (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DONAUDB_SignkeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig);
 
 #endif
diff --git a/src/exchangedb/pg_add_denomination_key.c 
b/src/donaudb/pg_add_denomination_key.c
similarity index 94%
rename from src/exchangedb/pg_add_denomination_key.c
rename to src/donaudb/pg_add_denomination_key.c
index eb50304..0453a07 100644
--- a/src/exchangedb/pg_add_denomination_key.c
+++ b/src/donaudb/pg_add_denomination_key.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_add_denomination_key.c
+ * @file donaudb/pg_add_denomination_key.c
  * @brief Implementation of the add_denomination_key function for Postgres
  * @author Christian Grothoff
  */
@@ -31,7 +31,7 @@ TEH_PG_add_denomination_key (
   void *cls,
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_DenominationPublicKey *denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
+  const struct TALER_DONAUDB_DenominationKeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig)
 {
   struct PostgresClosure *pg = cls;
diff --git a/src/exchangedb/pg_add_denomination_key.h 
b/src/donaudb/pg_add_denomination_key.h
similarity index 86%
rename from src/exchangedb/pg_add_denomination_key.h
rename to src/donaudb/pg_add_denomination_key.h
index d131679..f2299eb 100644
--- a/src/exchangedb/pg_add_denomination_key.h
+++ b/src/donaudb/pg_add_denomination_key.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_add_denomination_key.h
+ * @file donaudb/pg_add_denomination_key.h
  * @brief implementation of the add_denomination_key function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Activate denomination key, turning it into a "current" or "valid"
@@ -41,6 +41,6 @@ TEH_PG_add_denomination_key (
   void *cls,
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_DenominationPublicKey *denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
+  const struct TALER_DONAUDB_DenominationKeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig);
 #endif
diff --git a/src/exchangedb/pg_batch_ensure_coin_known.c 
b/src/donaudb/pg_batch_ensure_coin_known.c
similarity index 97%
rename from src/exchangedb/pg_batch_ensure_coin_known.c
rename to src/donaudb/pg_batch_ensure_coin_known.c
index e498130..e8e4a5c 100644
--- a/src/exchangedb/pg_batch_ensure_coin_known.c
+++ b/src/donaudb/pg_batch_ensure_coin_known.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_batch_ensure_coin_known.c
+ * @file donaudb/pg_batch_ensure_coin_known.c
  * @brief Implementation of the batch_ensure_coin_known function for Postgres
  * @author Christian Grothoff
  */
@@ -29,7 +29,7 @@
 static enum GNUNET_DB_QueryStatus
 insert1 (struct PostgresClosure *pg,
          const struct TALER_CoinPublicInfo coin[1],
-         struct TALER_EXCHANGEDB_CoinInfo result[1])
+         struct TALER_DONAUDB_CoinInfo result[1])
 {
   enum GNUNET_DB_QueryStatus qs;
   bool is_denom_pub_hash_null = false;
@@ -41,7 +41,7 @@ insert1 (struct PostgresClosure *pg,
            ",known_coin_id1 AS known_coin_id"
            ",denom_pub_hash1 AS denom_hash"
            ",age_commitment_hash1 AS h_age_commitment"
-           " FROM exchange_do_batch1_known_coin"
+           " FROM donau_do_batch1_known_coin"
            "  ($1, $2, $3, $4);"
            );
   struct GNUNET_PQ_QueryParam params[] = {
@@ -108,7 +108,7 @@ insert1 (struct PostgresClosure *pg,
 static enum GNUNET_DB_QueryStatus
 insert2 (struct PostgresClosure *pg,
          const struct TALER_CoinPublicInfo coin[2],
-         struct TALER_EXCHANGEDB_CoinInfo result[2])
+         struct TALER_DONAUDB_CoinInfo result[2])
 {
   enum GNUNET_DB_QueryStatus qs;
   bool is_denom_pub_hash_null = false;
@@ -127,7 +127,7 @@ insert2 (struct PostgresClosure *pg,
            ",known_coin_id2 AS known_coin_id2"
            ",denom_pub_hash2 AS denom_hash2"
            ",age_commitment_hash2 AS h_age_commitment2"
-           " FROM exchange_do_batch2_known_coin"
+           " FROM donau_do_batch2_known_coin"
            "  ($1, $2, $3, $4, $5, $6, $7, $8);"
            );
   struct GNUNET_PQ_QueryParam params[] = {
@@ -227,7 +227,7 @@ insert2 (struct PostgresClosure *pg,
 static enum GNUNET_DB_QueryStatus
 insert4 (struct PostgresClosure *pg,
          const struct TALER_CoinPublicInfo coin[4],
-         struct TALER_EXCHANGEDB_CoinInfo result[4])
+         struct TALER_DONAUDB_CoinInfo result[4])
 {
   enum GNUNET_DB_QueryStatus qs;
   bool is_denom_pub_hash_null = false;
@@ -257,7 +257,7 @@ insert4 (struct PostgresClosure *pg,
            ",known_coin_id4 AS known_coin_id4"
            ",denom_pub_hash4 AS denom_hash4"
            ",age_commitment_hash4 AS h_age_commitment4"
-           " FROM exchange_do_batch2_known_coin"
+           " FROM donau_do_batch2_known_coin"
            "  ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, 
$15, $16);"
            );
   struct GNUNET_PQ_QueryParam params[] = {
@@ -423,7 +423,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_batch_ensure_coin_known (
   void *cls,
   const struct TALER_CoinPublicInfo *coin,
-  struct TALER_EXCHANGEDB_CoinInfo *result,
+  struct TALER_DONAUDB_CoinInfo *result,
   unsigned int coin_length,
   unsigned int batch_size)
 {
diff --git a/src/exchangedb/pg_batch_ensure_coin_known.h 
b/src/donaudb/pg_batch_ensure_coin_known.h
similarity index 87%
rename from src/exchangedb/pg_batch_ensure_coin_known.h
rename to src/donaudb/pg_batch_ensure_coin_known.h
index 2c53676..2ffb60e 100644
--- a/src/exchangedb/pg_batch_ensure_coin_known.h
+++ b/src/donaudb/pg_batch_ensure_coin_known.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_batch_ensure_coin_known.h
+ * @file donaudb/pg_batch_ensure_coin_known.h
  * @brief implementation of the batch_ensure_coin_known function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
@@ -40,7 +40,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_batch_ensure_coin_known (
   void *cls,
   const struct TALER_CoinPublicInfo *coin,
-  struct TALER_EXCHANGEDB_CoinInfo *result,
+  struct TALER_DONAUDB_CoinInfo *result,
   unsigned int coin_length,
   unsigned int batch_size);
 
diff --git a/src/exchangedb/pg_commit.c b/src/donaudb/pg_commit.c
similarity index 93%
rename from src/exchangedb/pg_commit.c
rename to src/donaudb/pg_commit.c
index 8c4f87c..76390bc 100644
--- a/src/exchangedb/pg_commit.c
+++ b/src/donaudb/pg_commit.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_commit.c
+ * @file donaudb/pg_commit.c
  * @brief Implementation of the commit function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_commit.h b/src/donaudb/pg_commit.h
similarity index 87%
rename from src/exchangedb/pg_commit.h
rename to src/donaudb/pg_commit.h
index b1f4f96..650d8d9 100644
--- a/src/exchangedb/pg_commit.h
+++ b/src/donaudb/pg_commit.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_commit.h
+ * @file donaudb/pg_commit.h
  * @brief implementation of the commit function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Commit the current transaction of a database connection.
diff --git a/src/exchangedb/pg_count_known_coins.c 
b/src/donaudb/pg_count_known_coins.c
similarity index 94%
rename from src/exchangedb/pg_count_known_coins.c
rename to src/donaudb/pg_count_known_coins.c
index 872965a..98e76b0 100644
--- a/src/exchangedb/pg_count_known_coins.c
+++ b/src/donaudb/pg_count_known_coins.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_count_known_coins.c
+ * @file donaudb/pg_count_known_coins.c
  * @brief Implementation of the count_known_coins function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_count_known_coins.h 
b/src/donaudb/pg_count_known_coins.h
similarity index 88%
rename from src/exchangedb/pg_count_known_coins.h
rename to src/donaudb/pg_count_known_coins.h
index 69f07bd..f5469b7 100644
--- a/src/exchangedb/pg_count_known_coins.h
+++ b/src/donaudb/pg_count_known_coins.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_count_known_coins.h
+ * @file donaudb/pg_count_known_coins.h
  * @brief implementation of the count_known_coins function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Count the number of known coins by denomination.
  *
diff --git a/src/exchangedb/pg_create_tables.c b/src/donaudb/pg_create_tables.c
similarity index 86%
rename from src/exchangedb/pg_create_tables.c
rename to src/donaudb/pg_create_tables.c
index 1d5728d..6745384 100644
--- a/src/exchangedb/pg_create_tables.c
+++ b/src/donaudb/pg_create_tables.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_create_tables.c
+ * @file donaudb/pg_create_tables.c
  * @brief Implementation of the create_tables function for Postgres
  * @author Christian Grothoff
  */
@@ -43,19 +43,19 @@ TEH_PG_create_tables (void *cls,
   struct GNUNET_PQ_PreparedStatement ps[] = {
     GNUNET_PQ_make_prepare ("create_tables",
                             "SELECT"
-                            " exchange.do_create_tables"
+                            " donau.do_create_tables"
                             " ($1);"),
     GNUNET_PQ_PREPARED_STATEMENT_END
   };
   struct GNUNET_PQ_ExecuteStatement es[] = {
-    GNUNET_PQ_make_try_execute ("SET search_path TO exchange;"),
+    GNUNET_PQ_make_try_execute ("SET search_path TO donau;"),
     GNUNET_PQ_EXECUTE_STATEMENT_END
   };
 
 
   conn = GNUNET_PQ_connect_with_cfg (pg->cfg,
-                                     "exchangedb-postgres",
-                                     "exchange-",
+                                     "donaudb-postgres",
+                                     "donau-",
                                      es,
                                      ps);
   if (NULL == conn)
diff --git a/src/exchangedb/pg_create_tables.h b/src/donaudb/pg_create_tables.h
similarity index 90%
rename from src/exchangedb/pg_create_tables.h
rename to src/donaudb/pg_create_tables.h
index 58f5aae..31ae9d2 100644
--- a/src/exchangedb/pg_create_tables.h
+++ b/src/donaudb/pg_create_tables.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_create_tables.h
+ * @file donaudb/pg_create_tables.h
  * @brief implementation of the create_tables function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Create the necessary tables if they are not present
diff --git a/src/exchangedb/pg_do_batch_withdraw.c 
b/src/donaudb/pg_do_batch_withdraw.c
similarity index 94%
rename from src/exchangedb/pg_do_batch_withdraw.c
rename to src/donaudb/pg_do_batch_withdraw.c
index f89f327..543e2f5 100644
--- a/src/exchangedb/pg_do_batch_withdraw.c
+++ b/src/donaudb/pg_do_batch_withdraw.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_batch_withdraw.c
+ * @file donaudb/pg_do_batch_withdraw.c
  * @brief Implementation of the do_batch_withdraw function for Postgres
  * @author Christian Grothoff
  * @author Özgür Kesim
@@ -76,7 +76,7 @@ TEH_PG_do_batch_withdraw (
            ",age_ok"
            ",allowed_maximum_age"
            ",ruuid"
-           " FROM exchange_do_batch_withdraw"
+           " FROM donau_do_batch_withdraw"
            " ($1,$2,$3,$4,$5);");
   return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                    "call_batch_withdraw",
diff --git a/src/exchangedb/pg_do_batch_withdraw.h 
b/src/donaudb/pg_do_batch_withdraw.h
similarity index 92%
rename from src/exchangedb/pg_do_batch_withdraw.h
rename to src/donaudb/pg_do_batch_withdraw.h
index d0b8657..ea769b5 100644
--- a/src/exchangedb/pg_do_batch_withdraw.h
+++ b/src/donaudb/pg_do_batch_withdraw.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_batch_withdraw.h
+ * @file donaudb/pg_do_batch_withdraw.h
  * @brief implementation of the do_batch_withdraw function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Perform reserve update as part of a batch withdraw operation, checking
  * for sufficient balance. Persisting the withdrawal details is done
diff --git a/src/exchangedb/pg_do_batch_withdraw_insert.c 
b/src/donaudb/pg_do_batch_withdraw_insert.c
similarity index 91%
rename from src/exchangedb/pg_do_batch_withdraw_insert.c
rename to src/donaudb/pg_do_batch_withdraw_insert.c
index b95a179..6259c94 100644
--- a/src/exchangedb/pg_do_batch_withdraw_insert.c
+++ b/src/donaudb/pg_do_batch_withdraw_insert.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_batch_withdraw_insert.c
+ * @file donaudb/pg_do_batch_withdraw_insert.c
  * @brief Implementation of the do_batch_withdraw_insert function for Postgres
  * @author Christian Grothoff
  */
@@ -30,7 +30,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_do_batch_withdraw_insert (
   void *cls,
   const struct TALER_CsNonce *nonce,
-  const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
+  const struct TALER_DONAUDB_CollectableBlindcoin *collectable,
   struct GNUNET_TIME_Timestamp now,
   uint64_t ruuid,
   bool *denom_unknown,
@@ -68,7 +68,7 @@ TEH_PG_do_batch_withdraw_insert (
            " out_denom_unknown AS denom_unknown"
            ",out_conflict AS conflict"
            ",out_nonce_reuse AS nonce_reuse"
-           " FROM exchange_do_batch_withdraw_insert"
+           " FROM donau_do_batch_withdraw_insert"
            " ($1,$2,$3,$4,$5,$6,$7,$8);");
   return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                    
"call_batch_withdraw_insert",
diff --git a/src/exchangedb/pg_do_batch_withdraw_insert.h 
b/src/donaudb/pg_do_batch_withdraw_insert.h
similarity index 88%
rename from src/exchangedb/pg_do_batch_withdraw_insert.h
rename to src/donaudb/pg_do_batch_withdraw_insert.h
index 6bc1a9a..826dc1e 100644
--- a/src/exchangedb/pg_do_batch_withdraw_insert.h
+++ b/src/donaudb/pg_do_batch_withdraw_insert.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_batch_withdraw_insert.h
+ * @file donaudb/pg_do_batch_withdraw_insert.h
  * @brief implementation of the do_batch_withdraw_insert function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Perform insert as part of a batch withdraw operation, and persisting the
  * withdrawal details.
@@ -42,7 +42,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_do_batch_withdraw_insert (
   void *cls,
   const struct TALER_CsNonce *nonce,
-  const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
+  const struct TALER_DONAUDB_CollectableBlindcoin *collectable,
   struct GNUNET_TIME_Timestamp now,
   uint64_t ruuid,
   bool *denom_unknown,
diff --git a/src/exchangedb/pg_do_deposit.c b/src/donaudb/pg_do_deposit.c
similarity index 85%
rename from src/exchangedb/pg_do_deposit.c
rename to src/donaudb/pg_do_deposit.c
index 1e2d1c3..eaa5c04 100644
--- a/src/exchangedb/pg_do_deposit.c
+++ b/src/donaudb/pg_do_deposit.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_deposit.c
+ * @file donaudb/pg_do_deposit.c
  * @brief Implementation of the do_deposit function for Postgres
  * @author Christian Grothoff
  */
@@ -30,23 +30,23 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_do_deposit (
   void *cls,
-  const struct TALER_EXCHANGEDB_BatchDeposit *bd,
-  struct GNUNET_TIME_Timestamp *exchange_timestamp,
+  const struct TALER_DONAUDB_BatchDeposit *bd,
+  struct GNUNET_TIME_Timestamp *donau_timestamp,
   bool *balance_ok,
   uint32_t *bad_balance_index,
   bool *ctr_conflict)
 {
   struct PostgresClosure *pg = cls;
-  uint64_t deposit_shard = TEH_PG_compute_shard (&bd->merchant_pub);
+  uint64_t deposit_shard = TEH_PG_compute_shard (&bd->charity_pub);
   const struct TALER_CoinSpendPublicKeyP *coin_pubs[GNUNET_NZL (bd->num_cdis)];
   const struct TALER_CoinSpendSignatureP *coin_sigs[GNUNET_NZL (bd->num_cdis)];
   struct TALER_Amount amounts_with_fee[GNUNET_NZL (bd->num_cdis)];
   struct GNUNET_PQ_QueryParam params[] = {
     /* data for batch_deposits */
     GNUNET_PQ_query_param_uint64 (&deposit_shard),
-    GNUNET_PQ_query_param_auto_from_type (&bd->merchant_pub),
+    GNUNET_PQ_query_param_auto_from_type (&bd->charity_pub),
     GNUNET_PQ_query_param_timestamp (&bd->wallet_timestamp),
-    GNUNET_PQ_query_param_timestamp (exchange_timestamp),
+    GNUNET_PQ_query_param_timestamp (donau_timestamp),
     GNUNET_PQ_query_param_timestamp (&bd->refund_deadline),
     GNUNET_PQ_query_param_timestamp (&bd->wire_deadline),
     GNUNET_PQ_query_param_auto_from_type (&bd->h_contract_terms),
@@ -76,8 +76,8 @@ TEH_PG_do_deposit (
   bool no_time;
   struct GNUNET_PQ_ResultSpec rs[] = {
     GNUNET_PQ_result_spec_allow_null (
-      GNUNET_PQ_result_spec_timestamp ("exchange_timestamp",
-                                       exchange_timestamp),
+      GNUNET_PQ_result_spec_timestamp ("donau_timestamp",
+                                       donau_timestamp),
       &no_time),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_uint32 ("insufficient_balance_coin_index",
@@ -90,7 +90,7 @@ TEH_PG_do_deposit (
 
   for (unsigned int i = 0; i < bd->num_cdis; i++)
   {
-    const struct TALER_EXCHANGEDB_CoinDepositInformation *cdi
+    const struct TALER_DONAUDB_CoinDepositInformation *cdi
       = &bd->cdis[i];
 
     amounts_with_fee[i] = cdi->amount_with_fee;
@@ -104,10 +104,10 @@ TEH_PG_do_deposit (
   PREPARE (pg,
            "call_deposit",
            "SELECT "
-           " out_exchange_timestamp AS exchange_timestamp"
+           " out_donau_timestamp AS donau_timestamp"
            ",out_insufficient_balance_coin_index AS 
insufficient_balance_coin_index"
            ",out_conflict AS conflicted"
-           " FROM exchange_do_deposit"
+           " FROM donau_do_deposit"
            " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16);");
   return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                    "call_deposit",
diff --git a/src/exchangedb/pg_do_deposit.h b/src/donaudb/pg_do_deposit.h
similarity index 82%
rename from src/exchangedb/pg_do_deposit.h
rename to src/donaudb/pg_do_deposit.h
index 449ec04..40258ef 100644
--- a/src/exchangedb/pg_do_deposit.h
+++ b/src/donaudb/pg_do_deposit.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_deposit.h
+ * @file donaudb/pg_do_deposit.h
  * @brief implementation of the do_deposit function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
@@ -32,7 +32,7 @@
  *
  * @param cls the `struct PostgresClosure` with the plugin-specific state
  * @param bd batch deposit operation details
- * @param[in,out] exchange_timestamp time to use for the deposit (possibly 
updated)
+ * @param[in,out] donau_timestamp time to use for the deposit (possibly 
updated)
  * @param[out] balance_ok set to true if the balance was sufficient
  * @param[out] bad_balance_index set to the first index of a coin for which 
the balance was insufficient,
  *             only used if @a balance_ok is set to false.
@@ -42,8 +42,8 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_do_deposit (
   void *cls,
-  const struct TALER_EXCHANGEDB_BatchDeposit *bd,
-  struct GNUNET_TIME_Timestamp *exchange_timestamp,
+  const struct TALER_DONAUDB_BatchDeposit *bd,
+  struct GNUNET_TIME_Timestamp *donau_timestamp,
   bool *balance_ok,
   uint32_t *bad_balance_index,
   bool *in_conflict);
diff --git a/src/exchangedb/pg_do_withdraw.c b/src/donaudb/pg_do_withdraw.c
similarity index 93%
rename from src/exchangedb/pg_do_withdraw.c
rename to src/donaudb/pg_do_withdraw.c
index e32afcd..1fa3221 100644
--- a/src/exchangedb/pg_do_withdraw.c
+++ b/src/donaudb/pg_do_withdraw.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_withdraw.c
+ * @file donaudb/pg_do_withdraw.c
  * @brief Implementation of the do_withdraw function for Postgres
  * @author Christian Grothoff
  */
@@ -30,7 +30,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_do_withdraw (
   void *cls,
   const struct TALER_CsNonce *nonce,
-  const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
+  const struct TALER_DONAUDB_CollectableBlindcoin *collectable,
   struct GNUNET_TIME_Timestamp now,
   bool do_age_check,
   bool *found,
@@ -83,7 +83,7 @@ TEH_PG_do_withdraw (
            ",age_ok"
            ",allowed_maximum_age"
            ",ruuid"
-           " FROM exchange_do_withdraw"
+           " FROM donau_do_withdraw"
            " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);");
   gc = GNUNET_TIME_absolute_to_timestamp (
     GNUNET_TIME_absolute_add (now.abs_time,
diff --git a/src/exchangedb/pg_do_withdraw.h b/src/donaudb/pg_do_withdraw.h
similarity index 90%
rename from src/exchangedb/pg_do_withdraw.h
rename to src/donaudb/pg_do_withdraw.h
index e771b1a..1e95100 100644
--- a/src/exchangedb/pg_do_withdraw.h
+++ b/src/donaudb/pg_do_withdraw.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_do_withdraw.h
+ * @file donaudb/pg_do_withdraw.h
  * @brief implementation of the do_withdraw function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Perform withdraw operation, checking for sufficient balance
@@ -46,7 +46,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_do_withdraw (
   void *cls,
   const struct TALER_CsNonce *nonce,
-  const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
+  const struct TALER_DONAUDB_CollectableBlindcoin *collectable,
   struct GNUNET_TIME_Timestamp now,
   bool do_age_check,
   bool *found,
diff --git a/src/exchangedb/pg_drop_tables.c b/src/donaudb/pg_drop_tables.c
similarity index 90%
rename from src/exchangedb/pg_drop_tables.c
rename to src/donaudb/pg_drop_tables.c
index 5585701..79b2a70 100644
--- a/src/exchangedb/pg_drop_tables.c
+++ b/src/donaudb/pg_drop_tables.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_drop_tables.c
+ * @file donaudb/pg_drop_tables.c
  * @brief Implementation of the drop_tables function for Postgres
  * @author Christian Grothoff
  */
@@ -45,7 +45,7 @@ TEH_PG_drop_tables (void *cls)
     pg->conn = NULL;
   }
   conn = GNUNET_PQ_connect_with_cfg (pg->cfg,
-                                     "exchangedb-postgres",
+                                     "donaudb-postgres",
                                      NULL,
                                      NULL,
                                      NULL);
diff --git a/src/exchangedb/pg_drop_tables.h b/src/donaudb/pg_drop_tables.h
similarity index 87%
rename from src/exchangedb/pg_drop_tables.h
rename to src/donaudb/pg_drop_tables.h
index 58729d5..d79c120 100644
--- a/src/exchangedb/pg_drop_tables.h
+++ b/src/donaudb/pg_drop_tables.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_drop_tables.h
+ * @file donaudb/pg_drop_tables.h
  * @brief implementation of the drop_tables function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
diff --git a/src/exchangedb/pg_ensure_coin_known.c 
b/src/donaudb/pg_ensure_coin_known.c
similarity index 91%
rename from src/exchangedb/pg_ensure_coin_known.c
rename to src/donaudb/pg_ensure_coin_known.c
index 952acf2..d973e03 100644
--- a/src/exchangedb/pg_ensure_coin_known.c
+++ b/src/donaudb/pg_ensure_coin_known.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_ensure_coin_known.c
+ * @file donaudb/pg_ensure_coin_known.c
  * @brief Implementation of the ensure_coin_known function for Postgres
  * @author Christian Grothoff
  */
@@ -26,7 +26,7 @@
 #include "pg_helper.h"
 
 
-enum TALER_EXCHANGEDB_CoinKnownStatus
+enum TALER_DONAUDB_CoinKnownStatus
 TEH_PG_ensure_coin_known (void *cls,
                           const struct TALER_CoinPublicInfo *coin,
                           uint64_t *known_coin_id,
@@ -123,15 +123,15 @@ TEH_PG_ensure_coin_known (void *cls,
   {
   case GNUNET_DB_STATUS_HARD_ERROR:
     GNUNET_break (0);
-    return TALER_EXCHANGEDB_CKS_HARD_FAIL;
+    return TALER_DONAUDB_CKS_HARD_FAIL;
   case GNUNET_DB_STATUS_SOFT_ERROR:
-    return TALER_EXCHANGEDB_CKS_SOFT_FAIL;
+    return TALER_DONAUDB_CKS_SOFT_FAIL;
   case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
     GNUNET_break (0); /* should be impossible */
-    return TALER_EXCHANGEDB_CKS_HARD_FAIL;
+    return TALER_DONAUDB_CKS_HARD_FAIL;
   case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
     if (! existed)
-      return TALER_EXCHANGEDB_CKS_ADDED;
+      return TALER_DONAUDB_CKS_ADDED;
     break; /* continued below */
   }
 
@@ -140,7 +140,7 @@ TEH_PG_ensure_coin_known (void *cls,
                             &coin->denom_pub_hash.hash)) )
   {
     GNUNET_break_op (0);
-    return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
+    return TALER_DONAUDB_CKS_DENOM_CONFLICT;
   }
 
   if ( (! is_age_hash_null) &&
@@ -149,8 +149,8 @@ TEH_PG_ensure_coin_known (void *cls,
   {
     GNUNET_break (GNUNET_is_zero (h_age_commitment));
     GNUNET_break_op (0);
-    return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
+    return TALER_DONAUDB_CKS_AGE_CONFLICT;
   }
 
-  return TALER_EXCHANGEDB_CKS_PRESENT;
+  return TALER_DONAUDB_CKS_PRESENT;
 }
diff --git a/src/exchangedb/pg_ensure_coin_known.h 
b/src/donaudb/pg_ensure_coin_known.h
similarity index 89%
rename from src/exchangedb/pg_ensure_coin_known.h
rename to src/donaudb/pg_ensure_coin_known.h
index 68c1017..5194b0a 100644
--- a/src/exchangedb/pg_ensure_coin_known.h
+++ b/src/donaudb/pg_ensure_coin_known.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_ensure_coin_known.h
+ * @file donaudb/pg_ensure_coin_known.h
  * @brief implementation of the ensure_coin_known function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Make sure the given @a coin is known to the database.
  *
@@ -35,7 +35,7 @@
  * @param[out] h_age_commitment  set to the conflicting age commitment hash on 
conflict
  * @return database transaction status, non-negative on success
  */
-enum TALER_EXCHANGEDB_CoinKnownStatus
+enum TALER_DONAUDB_CoinKnownStatus
 TEH_PG_ensure_coin_known (void *cls,
                           const struct TALER_CoinPublicInfo *coin,
                           uint64_t *known_coin_id,
diff --git a/src/exchangedb/pg_event_listen.c b/src/donaudb/pg_event_listen.c
similarity index 93%
rename from src/exchangedb/pg_event_listen.c
rename to src/donaudb/pg_event_listen.c
index 6e1d328..a20c0ab 100644
--- a/src/exchangedb/pg_event_listen.c
+++ b/src/donaudb/pg_event_listen.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_event_listen.c
+ * @file donaudb/pg_event_listen.c
  * @brief Implementation of the event_listen function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_event_listen.h b/src/donaudb/pg_event_listen.h
similarity index 90%
rename from src/exchangedb/pg_event_listen.h
rename to src/donaudb/pg_event_listen.h
index 7e1e83a..73e5497 100644
--- a/src/exchangedb/pg_event_listen.h
+++ b/src/donaudb/pg_event_listen.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_event_listen.h
+ * @file donaudb/pg_event_listen.h
  * @brief implementation of the event_listen function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Register callback to be invoked on events of type @a es.
  *
diff --git a/src/exchangedb/pg_event_listen_cancel.c 
b/src/donaudb/pg_event_listen_cancel.c
similarity index 89%
rename from src/exchangedb/pg_event_listen_cancel.c
rename to src/donaudb/pg_event_listen_cancel.c
index 9d77668..ca68e0d 100644
--- a/src/exchangedb/pg_event_listen_cancel.c
+++ b/src/donaudb/pg_event_listen_cancel.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_event_listen_cancel.c
+ * @file donaudb/pg_event_listen_cancel.c
  * @brief Implementation of the event_listen_cancel function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_event_listen_cancel.h 
b/src/donaudb/pg_event_listen_cancel.h
similarity index 86%
rename from src/exchangedb/pg_event_listen_cancel.h
rename to src/donaudb/pg_event_listen_cancel.h
index 258d7a5..f31e778 100644
--- a/src/exchangedb/pg_event_listen_cancel.h
+++ b/src/donaudb/pg_event_listen_cancel.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_event_listen_cancel.h
+ * @file donaudb/pg_event_listen_cancel.h
  * @brief implementation of the event_listen_cancel function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
diff --git a/src/exchangedb/pg_event_notify.c b/src/donaudb/pg_event_notify.c
similarity index 91%
rename from src/exchangedb/pg_event_notify.c
rename to src/donaudb/pg_event_notify.c
index 1888557..f9d7764 100644
--- a/src/exchangedb/pg_event_notify.c
+++ b/src/donaudb/pg_event_notify.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_event_notify.c
+ * @file donaudb/pg_event_notify.c
  * @brief Implementation of the event_notify function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_event_notify.h b/src/donaudb/pg_event_notify.h
similarity index 88%
rename from src/exchangedb/pg_event_notify.h
rename to src/donaudb/pg_event_notify.h
index 8506965..660fefe 100644
--- a/src/exchangedb/pg_event_notify.h
+++ b/src/donaudb/pg_event_notify.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_event_notify.h
+ * @file donaudb/pg_event_notify.h
  * @brief implementation of the event_notify function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Notify all that listen on @a es of an event.
diff --git a/src/exchangedb/pg_gc.c b/src/donaudb/pg_gc.c
similarity index 89%
rename from src/exchangedb/pg_gc.c
rename to src/donaudb/pg_gc.c
index e01c1e1..02383fe 100644
--- a/src/exchangedb/pg_gc.c
+++ b/src/donaudb/pg_gc.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_gc.c
+ * @file donaudb/pg_gc.c
  * @brief Implementation of the gc function for Postgres
  * @author Christian Grothoff
  */
@@ -50,20 +50,20 @@ TEH_PG_gc (void *cls)
       10));
   {
     struct GNUNET_PQ_ExecuteStatement es[] = {
-      GNUNET_PQ_make_try_execute ("SET search_path TO exchange;"),
+      GNUNET_PQ_make_try_execute ("SET search_path TO donau;"),
       GNUNET_PQ_EXECUTE_STATEMENT_END
     };
     struct GNUNET_PQ_PreparedStatement ps[] = {
       /* Used in #postgres_gc() */
       GNUNET_PQ_make_prepare ("run_gc",
                               "CALL"
-                              " exchange_do_gc"
+                              " donau_do_gc"
                               " ($1,$2);"),
       GNUNET_PQ_PREPARED_STATEMENT_END
     };
 
     conn = GNUNET_PQ_connect_with_cfg (pg->cfg,
-                                       "exchangedb-postgres",
+                                       "donaudb-postgres",
                                        NULL,
                                        es,
                                        ps);
diff --git a/src/exchangedb/pg_gc.h b/src/donaudb/pg_gc.h
similarity index 88%
rename from src/exchangedb/pg_gc.h
rename to src/donaudb/pg_gc.h
index 8035814..a6f32b2 100644
--- a/src/exchangedb/pg_gc.h
+++ b/src/donaudb/pg_gc.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_gc.h
+ * @file donaudb/pg_gc.h
  * @brief implementation of the gc function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Function called to perform "garbage collection" on the
diff --git a/src/exchangedb/pg_get_coin_denomination.c 
b/src/donaudb/pg_get_coin_denomination.c
similarity index 93%
rename from src/exchangedb/pg_get_coin_denomination.c
rename to src/donaudb/pg_get_coin_denomination.c
index 9f9256f..6253d9f 100644
--- a/src/exchangedb/pg_get_coin_denomination.c
+++ b/src/donaudb/pg_get_coin_denomination.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_coin_denomination.c
+ * @file donaudb/pg_get_coin_denomination.c
  * @brief Implementation of the get_coin_denomination function for Postgres
  * @author Christian Grothoff
  */
@@ -51,7 +51,7 @@ TEH_PG_get_coin_denomination (
 
   /* Used in #postgres_get_coin_denomination() to fetch
      the denomination public key hash for
-     a coin known to the exchange. */
+     a coin known to the donau. */
   PREPARE (pg,
            "get_coin_denomination",
            "SELECT"
diff --git a/src/exchangedb/pg_get_coin_denomination.h 
b/src/donaudb/pg_get_coin_denomination.h
similarity index 89%
rename from src/exchangedb/pg_get_coin_denomination.h
rename to src/donaudb/pg_get_coin_denomination.h
index 3b9f03f..14977d5 100644
--- a/src/exchangedb/pg_get_coin_denomination.h
+++ b/src/donaudb/pg_get_coin_denomination.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_coin_denomination.h
+ * @file donaudb/pg_get_coin_denomination.h
  * @brief implementation of the get_coin_denomination function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Retrieve the denomination of a known coin.
  *
diff --git a/src/exchangedb/pg_get_coin_transactions.c 
b/src/donaudb/pg_get_coin_transactions.c
similarity index 88%
rename from src/exchangedb/pg_get_coin_transactions.c
rename to src/donaudb/pg_get_coin_transactions.c
index 5deb3fd..da43771 100644
--- a/src/exchangedb/pg_get_coin_transactions.c
+++ b/src/donaudb/pg_get_coin_transactions.c
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
  */
 /**
  * @file pg_get_coin_transactions.c
- * @brief Low-level (statement-level) Postgres database access for the exchange
+ * @brief Low-level (statement-level) Postgres database access for the donau
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -24,7 +24,7 @@
 #include "taler_pq_lib.h"
 #include "pg_get_coin_transactions.h"
 #include "pg_helper.h"
-#include "plugin_exchangedb_common.h"
+#include "plugin_donaudb_common.h"
 
 
 /**
@@ -35,7 +35,7 @@ struct CoinHistoryContext
   /**
    * Head of the coin's history list.
    */
-  struct TALER_EXCHANGEDB_TransactionList *head;
+  struct TALER_DONAUDB_TransactionList *head;
 
   /**
    * Public key of the coin we are building the history for.
@@ -82,12 +82,12 @@ add_coin_deposit (void *cls,
 
   for (unsigned int i = 0; i < num_results; i++)
   {
-    struct TALER_EXCHANGEDB_DepositListEntry *deposit;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_DepositListEntry *deposit;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
     chc->have_deposit_or_melt = true;
-    deposit = GNUNET_new (struct TALER_EXCHANGEDB_DepositListEntry);
+    deposit = GNUNET_new (struct TALER_DONAUDB_DepositListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         TALER_PQ_RESULT_SPEC_AMOUNT ("amount_with_fee",
@@ -110,8 +110,8 @@ add_coin_deposit (void *cls,
                                          &deposit->refund_deadline),
         GNUNET_PQ_result_spec_timestamp ("wire_deadline",
                                          &deposit->wire_deadline),
-        GNUNET_PQ_result_spec_auto_from_type ("merchant_pub",
-                                              &deposit->merchant_pub),
+        GNUNET_PQ_result_spec_auto_from_type ("charity_pub",
+                                              &deposit->charity_pub),
         GNUNET_PQ_result_spec_auto_from_type ("h_contract_terms",
                                               &deposit->h_contract_terms),
         GNUNET_PQ_result_spec_auto_from_type ("wire_salt",
@@ -138,9 +138,9 @@ add_coin_deposit (void *cls,
         return;
       }
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_DEPOSIT;
+    tl->type = TALER_DONAUDB_TT_DEPOSIT;
     tl->details.deposit = deposit;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -166,12 +166,12 @@ add_coin_purse_deposit (void *cls,
 
   for (unsigned int i = 0; i < num_results; i++)
   {
-    struct TALER_EXCHANGEDB_PurseDepositListEntry *deposit;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_PurseDepositListEntry *deposit;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
     chc->have_deposit_or_melt = true;
-    deposit = GNUNET_new (struct TALER_EXCHANGEDB_PurseDepositListEntry);
+    deposit = GNUNET_new (struct TALER_DONAUDB_PurseDepositListEntry);
     {
       bool not_finished;
       struct GNUNET_PQ_ResultSpec rs[] = {
@@ -185,7 +185,7 @@ add_coin_purse_deposit (void *cls,
                                       &serial_id),
         GNUNET_PQ_result_spec_allow_null (
           GNUNET_PQ_result_spec_string ("partner_base_url",
-                                        &deposit->exchange_base_url),
+                                        &deposit->donau_base_url),
           NULL),
         GNUNET_PQ_result_spec_auto_from_type ("coin_sig",
                                               &deposit->coin_sig),
@@ -214,9 +214,9 @@ add_coin_purse_deposit (void *cls,
         deposit->refunded = false;
       deposit->no_age_commitment = GNUNET_is_zero (&deposit->h_age_commitment);
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_PURSE_DEPOSIT;
+    tl->type = TALER_DONAUDB_TT_PURSE_DEPOSIT;
     tl->details.purse_deposit = deposit;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -242,12 +242,12 @@ add_coin_melt (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_MeltListEntry *melt;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_MeltListEntry *melt;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
     chc->have_deposit_or_melt = true;
-    melt = GNUNET_new (struct TALER_EXCHANGEDB_MeltListEntry);
+    melt = GNUNET_new (struct TALER_DONAUDB_MeltListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         GNUNET_PQ_result_spec_auto_from_type ("rc",
@@ -281,9 +281,9 @@ add_coin_melt (void *cls,
         return;
       }
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_MELT;
+    tl->type = TALER_DONAUDB_TT_MELT;
     tl->details.melt = melt;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -309,17 +309,17 @@ add_coin_refund (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_RefundListEntry *refund;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_RefundListEntry *refund;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
-    refund = GNUNET_new (struct TALER_EXCHANGEDB_RefundListEntry);
+    refund = GNUNET_new (struct TALER_DONAUDB_RefundListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
-        GNUNET_PQ_result_spec_auto_from_type ("merchant_pub",
-                                              &refund->merchant_pub),
-        GNUNET_PQ_result_spec_auto_from_type ("merchant_sig",
-                                              &refund->merchant_sig),
+        GNUNET_PQ_result_spec_auto_from_type ("charity_pub",
+                                              &refund->charity_pub),
+        GNUNET_PQ_result_spec_auto_from_type ("charity_sig",
+                                              &refund->charity_sig),
         GNUNET_PQ_result_spec_auto_from_type ("h_contract_terms",
                                               &refund->h_contract_terms),
         GNUNET_PQ_result_spec_uint64 ("rtransaction_id",
@@ -344,9 +344,9 @@ add_coin_refund (void *cls,
         return;
       }
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_REFUND;
+    tl->type = TALER_DONAUDB_TT_REFUND;
     tl->details.refund = refund;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -372,11 +372,11 @@ add_coin_purse_decision (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_PurseRefundListEntry *prefund;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_PurseRefundListEntry *prefund;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
-    prefund = GNUNET_new (struct TALER_EXCHANGEDB_PurseRefundListEntry);
+    prefund = GNUNET_new (struct TALER_DONAUDB_PurseRefundListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         GNUNET_PQ_result_spec_auto_from_type ("purse_pub",
@@ -401,9 +401,9 @@ add_coin_purse_decision (void *cls,
         return;
       }
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_PURSE_REFUND;
+    tl->type = TALER_DONAUDB_TT_PURSE_REFUND;
     tl->details.purse_refund = prefund;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -429,11 +429,11 @@ add_old_coin_recoup (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_RecoupRefreshListEntry *recoup;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_RecoupRefreshListEntry *recoup;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
-    recoup = GNUNET_new (struct TALER_EXCHANGEDB_RecoupRefreshListEntry);
+    recoup = GNUNET_new (struct TALER_DONAUDB_RecoupRefreshListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         GNUNET_PQ_result_spec_auto_from_type ("coin_pub",
@@ -467,9 +467,9 @@ add_old_coin_recoup (void *cls,
       }
       recoup->old_coin_pub = *chc->coin_pub;
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP;
+    tl->type = TALER_DONAUDB_TT_OLD_COIN_RECOUP;
     tl->details.old_coin_recoup = recoup;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -495,11 +495,11 @@ add_coin_recoup (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_RecoupListEntry *recoup;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_RecoupListEntry *recoup;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
-    recoup = GNUNET_new (struct TALER_EXCHANGEDB_RecoupListEntry);
+    recoup = GNUNET_new (struct TALER_DONAUDB_RecoupListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         GNUNET_PQ_result_spec_auto_from_type ("reserve_pub",
@@ -530,9 +530,9 @@ add_coin_recoup (void *cls,
         return;
       }
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_RECOUP;
+    tl->type = TALER_DONAUDB_TT_RECOUP;
     tl->details.recoup = recoup;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -558,11 +558,11 @@ add_coin_recoup_refresh (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_RecoupRefreshListEntry *recoup;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_RecoupRefreshListEntry *recoup;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
-    recoup = GNUNET_new (struct TALER_EXCHANGEDB_RecoupRefreshListEntry);
+    recoup = GNUNET_new (struct TALER_DONAUDB_RecoupRefreshListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         GNUNET_PQ_result_spec_auto_from_type ("old_coin_pub",
@@ -596,9 +596,9 @@ add_coin_recoup_refresh (void *cls,
       }
       recoup->coin.coin_pub = *chc->coin_pub;
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_RECOUP_REFRESH;
+    tl->type = TALER_DONAUDB_TT_RECOUP_REFRESH;
     tl->details.recoup_refresh = recoup;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -624,11 +624,11 @@ add_coin_reserve_open (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_ReserveOpenListEntry *role;
-    struct TALER_EXCHANGEDB_TransactionList *tl;
+    struct TALER_DONAUDB_ReserveOpenListEntry *role;
+    struct TALER_DONAUDB_TransactionList *tl;
     uint64_t serial_id;
 
-    role = GNUNET_new (struct TALER_EXCHANGEDB_ReserveOpenListEntry);
+    role = GNUNET_new (struct TALER_DONAUDB_ReserveOpenListEntry);
     {
       struct GNUNET_PQ_ResultSpec rs[] = {
         GNUNET_PQ_result_spec_auto_from_type ("reserve_sig",
@@ -653,9 +653,9 @@ add_coin_reserve_open (void *cls,
         return;
       }
     }
-    tl = GNUNET_new (struct TALER_EXCHANGEDB_TransactionList);
+    tl = GNUNET_new (struct TALER_DONAUDB_TransactionList);
     tl->next = chc->head;
-    tl->type = TALER_EXCHANGEDB_TT_RESERVE_OPEN;
+    tl->type = TALER_DONAUDB_TT_RESERVE_OPEN;
     tl->details.reserve_open = role;
     tl->serial_id = serial_id;
     chc->head = tl;
@@ -684,35 +684,35 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_coin_transactions (
   void *cls,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  struct TALER_EXCHANGEDB_TransactionList **tlp)
+  struct TALER_DONAUDB_TransactionList **tlp)
 {
   struct PostgresClosure *pg = cls;
   static const struct Work work[] = {
-    /** #TALER_EXCHANGEDB_TT_DEPOSIT */
+    /** #TALER_DONAUDB_TT_DEPOSIT */
     { "get_deposit_with_coin_pub",
       &add_coin_deposit },
-    /** #TALER_EXCHANGEDB_TT_MELT */
+    /** #TALER_DONAUDB_TT_MELT */
     { "get_refresh_session_by_coin",
       &add_coin_melt },
-    /** #TALER_EXCHANGEDB_TT_PURSE_DEPOSIT */
+    /** #TALER_DONAUDB_TT_PURSE_DEPOSIT */
     { "get_purse_deposit_by_coin_pub",
       &add_coin_purse_deposit },
-    /** #TALER_EXCHANGEDB_TT_PURSE_REFUND */
+    /** #TALER_DONAUDB_TT_PURSE_REFUND */
     { "get_purse_decision_by_coin_pub",
       &add_coin_purse_decision },
-    /** #TALER_EXCHANGEDB_TT_REFUND */
+    /** #TALER_DONAUDB_TT_REFUND */
     { "get_refunds_by_coin",
       &add_coin_refund },
-    /** #TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP */
+    /** #TALER_DONAUDB_TT_OLD_COIN_RECOUP */
     { "recoup_by_old_coin",
       &add_old_coin_recoup },
-    /** #TALER_EXCHANGEDB_TT_RECOUP */
+    /** #TALER_DONAUDB_TT_RECOUP */
     { "recoup_by_coin",
       &add_coin_recoup },
-    /** #TALER_EXCHANGEDB_TT_RECOUP_REFRESH */
+    /** #TALER_DONAUDB_TT_RECOUP_REFRESH */
     { "recoup_by_refreshed_coin",
       &add_coin_recoup_refresh },
-    /** #TALER_EXCHANGEDB_TT_RESERVE_OPEN */
+    /** #TALER_DONAUDB_TT_RESERVE_OPEN */
     { "reserve_open_by_coin",
       &add_coin_reserve_open },
     { NULL, NULL }
@@ -739,7 +739,7 @@ TEH_PG_get_coin_transactions (
            ",bdep.wallet_timestamp"
            ",bdep.refund_deadline"
            ",bdep.wire_deadline"
-           ",bdep.merchant_pub"
+           ",bdep.charity_pub"
            ",bdep.h_contract_terms"
            ",bdep.wallet_data_hash"
            ",bdep.wire_salt"
@@ -801,8 +801,8 @@ TEH_PG_get_coin_transactions (
   PREPARE (pg,
            "get_refunds_by_coin",
            "SELECT"
-           " bdep.merchant_pub"
-           ",ref.merchant_sig"
+           " bdep.charity_pub"
+           ",ref.charity_sig"
            ",bdep.h_contract_terms"
            ",ref.rtransaction_id"
            ",ref.amount_with_fee"
diff --git a/src/exchangedb/pg_get_coin_transactions.h 
b/src/donaudb/pg_get_coin_transactions.h
similarity index 89%
rename from src/exchangedb/pg_get_coin_transactions.h
rename to src/donaudb/pg_get_coin_transactions.h
index c95fd09..d5e4556 100644
--- a/src/exchangedb/pg_get_coin_transactions.h
+++ b/src/donaudb/pg_get_coin_transactions.h
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
@@ -39,6 +39,6 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_coin_transactions (
   void *cls,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  struct TALER_EXCHANGEDB_TransactionList **tlp);
+  struct TALER_DONAUDB_TransactionList **tlp);
 
 #endif
diff --git a/src/exchangedb/pg_get_denomination_info.c 
b/src/donaudb/pg_get_denomination_info.c
similarity index 94%
rename from src/exchangedb/pg_get_denomination_info.c
rename to src/donaudb/pg_get_denomination_info.c
index 4bae297..289638a 100644
--- a/src/exchangedb/pg_get_denomination_info.c
+++ b/src/donaudb/pg_get_denomination_info.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_denomination_info.c
+ * @file donaudb/pg_get_denomination_info.c
  * @brief Implementation of the get_denomination_info function for Postgres
  * @author Christian Grothoff
  */
@@ -30,7 +30,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_denomination_info (
   void *cls,
   const struct TALER_DenominationHashP *denom_pub_hash,
-  struct TALER_EXCHANGEDB_DenominationKeyInformation *issue)
+  struct TALER_DONAUDB_DenominationKeyInformation *issue)
 {
   struct PostgresClosure *pg = cls;
   enum GNUNET_DB_QueryStatus qs;
diff --git a/src/exchangedb/pg_get_denomination_info.h 
b/src/donaudb/pg_get_denomination_info.h
similarity index 85%
rename from src/exchangedb/pg_get_denomination_info.h
rename to src/donaudb/pg_get_denomination_info.h
index 8432277..69e4d70 100644
--- a/src/exchangedb/pg_get_denomination_info.h
+++ b/src/donaudb/pg_get_denomination_info.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_denomination_info.h
+ * @file donaudb/pg_get_denomination_info.h
  * @brief implementation of the get_denomination_info function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Fetch information about a denomination key.
  *
@@ -36,6 +36,6 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_denomination_info (
   void *cls,
   const struct TALER_DenominationHashP *denom_pub_hash,
-  struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
+  struct TALER_DONAUDB_DenominationKeyInformation *issue);
 
 #endif
diff --git a/src/exchangedb/pg_get_denomination_revocation.c 
b/src/donaudb/pg_get_denomination_revocation.c
similarity index 94%
rename from src/exchangedb/pg_get_denomination_revocation.c
rename to src/donaudb/pg_get_denomination_revocation.c
index 5e7a3a3..29bdf54 100644
--- a/src/exchangedb/pg_get_denomination_revocation.c
+++ b/src/donaudb/pg_get_denomination_revocation.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_denomination_revocation.c
+ * @file donaudb/pg_get_denomination_revocation.c
  * @brief Implementation of the get_denomination_revocation function for 
Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_get_denomination_revocation.h 
b/src/donaudb/pg_get_denomination_revocation.h
similarity index 89%
rename from src/exchangedb/pg_get_denomination_revocation.h
rename to src/donaudb/pg_get_denomination_revocation.h
index 5f7f272..ec4faf3 100644
--- a/src/exchangedb/pg_get_denomination_revocation.h
+++ b/src/donaudb/pg_get_denomination_revocation.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_denomination_revocation.h
+ * @file donaudb/pg_get_denomination_revocation.h
  * @brief implementation of the get_denomination_revocation function for 
Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Obtain information about a denomination key's revocation from
diff --git a/src/exchangedb/pg_get_expired_reserves.c 
b/src/donaudb/pg_get_expired_reserves.c
similarity index 95%
rename from src/exchangedb/pg_get_expired_reserves.c
rename to src/donaudb/pg_get_expired_reserves.c
index be9ece9..c7e0837 100644
--- a/src/exchangedb/pg_get_expired_reserves.c
+++ b/src/donaudb/pg_get_expired_reserves.c
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
  */
 /**
  * @file pg_get_expired_reserves.c
- * @brief Low-level (statement-level) Postgres database access for the exchange
+ * @brief Low-level (statement-level) Postgres database access for the donau
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -34,7 +34,7 @@ struct ExpiredReserveContext
   /**
    * Function to call for each expired reserve.
    */
-  TALER_EXCHANGEDB_ReserveExpiredCallback rec;
+  TALER_DONAUDB_ReserveExpiredCallback rec;
 
   /**
    * Closure to give to @e rec.
@@ -116,7 +116,7 @@ reserve_expired_cb (void *cls,
 enum GNUNET_DB_QueryStatus
 TEH_PG_get_expired_reserves (void *cls,
                              struct GNUNET_TIME_Timestamp now,
-                             TALER_EXCHANGEDB_ReserveExpiredCallback rec,
+                             TALER_DONAUDB_ReserveExpiredCallback rec,
                              void *rec_cls)
 {
   struct PostgresClosure *pg = cls;
diff --git a/src/exchangedb/pg_get_expired_reserves.h 
b/src/donaudb/pg_get_expired_reserves.h
similarity index 87%
rename from src/exchangedb/pg_get_expired_reserves.h
rename to src/donaudb/pg_get_expired_reserves.h
index 0874b53..dfac6dd 100644
--- a/src/exchangedb/pg_get_expired_reserves.h
+++ b/src/donaudb/pg_get_expired_reserves.h
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
@@ -39,7 +39,7 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_get_expired_reserves (void *cls,
                              struct GNUNET_TIME_Timestamp now,
-                             TALER_EXCHANGEDB_ReserveExpiredCallback rec,
+                             TALER_DONAUDB_ReserveExpiredCallback rec,
                              void *rec_cls);
 
 #endif
diff --git a/src/exchangedb/pg_get_known_coin.c 
b/src/donaudb/pg_get_known_coin.c
similarity index 94%
rename from src/exchangedb/pg_get_known_coin.c
rename to src/donaudb/pg_get_known_coin.c
index bab48c1..e3d1c4e 100644
--- a/src/exchangedb/pg_get_known_coin.c
+++ b/src/donaudb/pg_get_known_coin.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_known_coin.c
+ * @file donaudb/pg_get_known_coin.c
  * @brief Implementation of the get_known_coin function for Postgres
  * @author Christian Grothoff
  */
@@ -53,7 +53,7 @@ TEH_PG_get_known_coin (void *cls,
   coin_info->coin_pub = *coin_pub;
   /* Used in #postgres_get_known_coin() to fetch
      the denomination public key and signature for
-     a coin known to the exchange. */
+     a coin known to the donau. */
   PREPARE (pg,
            "get_known_coin",
            "SELECT"
diff --git a/src/exchangedb/pg_get_known_coin.h 
b/src/donaudb/pg_get_known_coin.h
similarity index 89%
rename from src/exchangedb/pg_get_known_coin.h
rename to src/donaudb/pg_get_known_coin.h
index c34bd2a..dcbbc82 100644
--- a/src/exchangedb/pg_get_known_coin.h
+++ b/src/donaudb/pg_get_known_coin.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_known_coin.h
+ * @file donaudb/pg_get_known_coin.h
  * @brief implementation of the get_known_coin function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Retrieve the record for a known coin.
  *
diff --git a/src/exchangedb/pg_get_ready_deposit.c 
b/src/donaudb/pg_get_ready_deposit.c
similarity index 87%
rename from src/exchangedb/pg_get_ready_deposit.c
rename to src/donaudb/pg_get_ready_deposit.c
index d8344fa..140ede1 100644
--- a/src/exchangedb/pg_get_ready_deposit.c
+++ b/src/donaudb/pg_get_ready_deposit.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_ready_deposit.c
+ * @file donaudb/pg_get_ready_deposit.c
  * @brief Implementation of the get_ready_deposit function for Postgres
  * @author Christian Grothoff
  */
@@ -30,7 +30,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_ready_deposit (void *cls,
                           uint64_t start_shard_row,
                           uint64_t end_shard_row,
-                          struct TALER_MerchantPublicKeyP *merchant_pub,
+                          struct TALER_CharityPublicKeyP *charity_pub,
                           char **payto_uri)
 {
   struct PostgresClosure *pg = cls;
@@ -43,8 +43,8 @@ TEH_PG_get_ready_deposit (void *cls,
     GNUNET_PQ_query_param_end
   };
   struct GNUNET_PQ_ResultSpec rs[] = {
-    GNUNET_PQ_result_spec_auto_from_type ("merchant_pub",
-                                          merchant_pub),
+    GNUNET_PQ_result_spec_auto_from_type ("charity_pub",
+                                          charity_pub),
     GNUNET_PQ_result_spec_string ("payto_uri",
                                   payto_uri),
     GNUNET_PQ_result_spec_end
@@ -55,7 +55,7 @@ TEH_PG_get_ready_deposit (void *cls,
            query,
            "SELECT"
            " wts.payto_uri"
-           ",bdep.merchant_pub"
+           ",bdep.charity_pub"
            " FROM batch_deposits bdep"
            " JOIN wire_targets wts"
            "   USING (wire_target_h_payto)"
diff --git a/src/exchangedb/pg_get_ready_deposit.h 
b/src/donaudb/pg_get_ready_deposit.h
similarity index 78%
rename from src/exchangedb/pg_get_ready_deposit.h
rename to src/donaudb/pg_get_ready_deposit.h
index b1dd7a9..7baa817 100644
--- a/src/exchangedb/pg_get_ready_deposit.h
+++ b/src/donaudb/pg_get_ready_deposit.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_ready_deposit.h
+ * @file donaudb/pg_get_ready_deposit.h
  * @brief implementation of the get_ready_deposit function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Obtain information about deposits that are ready to be executed.  Such
  * deposits must not be marked as "done", the execution time must be
@@ -32,15 +32,15 @@
  * @param cls the @e cls of this struct with the plugin-specific state
  * @param start_shard_row minimum shard row to select
  * @param end_shard_row maximum shard row to select (inclusive)
- * @param[out] merchant_pub set to the public key of a merchant with a ready 
deposit
- * @param[out] payto_uri set to the account of the merchant, to be freed by 
caller
+ * @param[out] charity_pub set to the public key of a charity with a ready 
deposit
+ * @param[out] payto_uri set to the account of the charity, to be freed by 
caller
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_get_ready_deposit (void *cls,
                           uint64_t start_shard_row,
                           uint64_t end_shard_row,
-                          struct TALER_MerchantPublicKeyP *merchant_pub,
+                          struct TALER_CharityPublicKeyP *charity_pub,
                           char **payto_uri);
 
 #endif
diff --git a/src/exchangedb/pg_get_reserve_balance.c 
b/src/donaudb/pg_get_reserve_balance.c
similarity index 93%
rename from src/exchangedb/pg_get_reserve_balance.c
rename to src/donaudb/pg_get_reserve_balance.c
index 140bf3b..fcd2fb1 100644
--- a/src/exchangedb/pg_get_reserve_balance.c
+++ b/src/donaudb/pg_get_reserve_balance.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_reserve_balance.c
+ * @file donaudb/pg_get_reserve_balance.c
  * @brief Implementation of the get_reserve_balance function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_get_reserve_balance.h 
b/src/donaudb/pg_get_reserve_balance.h
similarity index 88%
rename from src/exchangedb/pg_get_reserve_balance.h
rename to src/donaudb/pg_get_reserve_balance.h
index 6dc88d9..7696769 100644
--- a/src/exchangedb/pg_get_reserve_balance.h
+++ b/src/donaudb/pg_get_reserve_balance.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_reserve_balance.h
+ * @file donaudb/pg_get_reserve_balance.h
  * @brief implementation of the get_reserve_balance function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Get the balance of the specified reserve.
  *
diff --git a/src/exchangedb/pg_get_reserve_by_h_blind.c 
b/src/donaudb/pg_get_reserve_by_h_blind.c
similarity index 94%
rename from src/exchangedb/pg_get_reserve_by_h_blind.c
rename to src/donaudb/pg_get_reserve_by_h_blind.c
index f87fe6c..cd6763b 100644
--- a/src/exchangedb/pg_get_reserve_by_h_blind.c
+++ b/src/donaudb/pg_get_reserve_by_h_blind.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_reserve_by_h_blind.c
+ * @file donaudb/pg_get_reserve_by_h_blind.c
  * @brief Implementation of the get_reserve_by_h_blind function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_get_reserve_by_h_blind.h 
b/src/donaudb/pg_get_reserve_by_h_blind.h
similarity index 89%
rename from src/exchangedb/pg_get_reserve_by_h_blind.h
rename to src/donaudb/pg_get_reserve_by_h_blind.h
index 49c1c84..3357fed 100644
--- a/src/exchangedb/pg_get_reserve_by_h_blind.h
+++ b/src/donaudb/pg_get_reserve_by_h_blind.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_reserve_by_h_blind.h
+ * @file donaudb/pg_get_reserve_by_h_blind.h
  * @brief implementation of the get_reserve_by_h_blind function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Obtain information about which reserve a coin was generated
  * from given the hash of the blinded coin.
diff --git a/src/exchangedb/pg_get_withdraw_info.c 
b/src/donaudb/pg_get_withdraw_info.c
similarity index 93%
rename from src/exchangedb/pg_get_withdraw_info.c
rename to src/donaudb/pg_get_withdraw_info.c
index e06fa37..ed22508 100644
--- a/src/exchangedb/pg_get_withdraw_info.c
+++ b/src/donaudb/pg_get_withdraw_info.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_withdraw_info.c
+ * @file donaudb/pg_get_withdraw_info.c
  * @brief Implementation of the get_withdraw_info function for Postgres
  * @author Christian Grothoff
  */
@@ -30,7 +30,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_withdraw_info (
   void *cls,
   const struct TALER_BlindedCoinHashP *bch,
-  struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable)
+  struct TALER_DONAUDB_CollectableBlindcoin *collectable)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
diff --git a/src/exchangedb/pg_get_withdraw_info.h 
b/src/donaudb/pg_get_withdraw_info.h
similarity index 86%
rename from src/exchangedb/pg_get_withdraw_info.h
rename to src/donaudb/pg_get_withdraw_info.h
index 7c3e06a..5fe578b 100644
--- a/src/exchangedb/pg_get_withdraw_info.h
+++ b/src/donaudb/pg_get_withdraw_info.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_get_withdraw_info.h
+ * @file donaudb/pg_get_withdraw_info.h
  * @brief implementation of the get_withdraw_info function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Locate the response for a /reserve/withdraw request under the
  * key of the hash of the blinded message.
@@ -38,6 +38,6 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_get_withdraw_info (
   void *cls,
   const struct TALER_BlindedCoinHashP *bch,
-  struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable);
+  struct TALER_DONAUDB_CollectableBlindcoin *collectable);
 
 #endif
diff --git a/src/exchangedb/pg_have_deposit2.c b/src/donaudb/pg_have_deposit2.c
similarity index 84%
rename from src/exchangedb/pg_have_deposit2.c
rename to src/donaudb/pg_have_deposit2.c
index e00ad74..6f55cae 100644
--- a/src/exchangedb/pg_have_deposit2.c
+++ b/src/donaudb/pg_have_deposit2.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_have_deposit2.c
+ * @file donaudb/pg_have_deposit2.c
  * @brief Implementation of the have_deposit2 function for Postgres
  * @author Christian Grothoff
  */
@@ -30,28 +30,28 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_have_deposit2 (
   void *cls,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant,
+  const struct TALER_CharityPublicKeyP *charity,
   struct GNUNET_TIME_Timestamp refund_deadline,
   struct TALER_Amount *deposit_fee,
-  struct GNUNET_TIME_Timestamp *exchange_timestamp)
+  struct GNUNET_TIME_Timestamp *donau_timestamp)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
     GNUNET_PQ_query_param_auto_from_type (coin_pub),
     GNUNET_PQ_query_param_auto_from_type (h_contract_terms),
-    GNUNET_PQ_query_param_auto_from_type (merchant),
+    GNUNET_PQ_query_param_auto_from_type (charity),
     GNUNET_PQ_query_param_end
   };
-  struct TALER_EXCHANGEDB_Deposit deposit2;
+  struct TALER_DONAUDB_Deposit deposit2;
   struct GNUNET_PQ_ResultSpec rs[] = {
     TALER_PQ_RESULT_SPEC_AMOUNT ("amount_with_fee",
                                  &deposit2.amount_with_fee),
     GNUNET_PQ_result_spec_timestamp ("wallet_timestamp",
                                      &deposit2.timestamp),
-    GNUNET_PQ_result_spec_timestamp ("exchange_timestamp",
-                                     exchange_timestamp),
+    GNUNET_PQ_result_spec_timestamp ("donau_timestamp",
+                                     donau_timestamp),
     GNUNET_PQ_result_spec_timestamp ("refund_deadline",
                                      &deposit2.refund_deadline),
     GNUNET_PQ_result_spec_timestamp ("wire_deadline",
@@ -65,7 +65,7 @@ TEH_PG_have_deposit2 (
     GNUNET_PQ_result_spec_end
   };
   enum GNUNET_DB_QueryStatus qs;
-  struct TALER_MerchantWireHashP h_wire2;
+  struct TALER_CharityWireHashP h_wire2;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Getting deposits for coin %s\n",
@@ -76,7 +76,7 @@ TEH_PG_have_deposit2 (
            " cdep.amount_with_fee"
            ",denominations.fee_deposit"
            ",bdep.wallet_timestamp"
-           ",bdep.exchange_timestamp"
+           ",bdep.donau_timestamp"
            ",bdep.refund_deadline"
            ",bdep.wire_deadline"
            ",bdep.h_contract_terms"
@@ -88,17 +88,17 @@ TEH_PG_have_deposit2 (
            " JOIN denominations USING (denominations_serial)"
            " JOIN wire_targets wt USING (wire_target_h_payto)"
            " WHERE cdep.coin_pub=$1"
-           "   AND bdep.merchant_pub=$3"
+           "   AND bdep.charity_pub=$3"
            "   AND bdep.h_contract_terms=$2;");
   /* Note: query might be made more efficient if we computed the 'shard'
-     from merchant_pub and included that as a constraint on bdep! */
+     from charity_pub and included that as a constraint on bdep! */
   qs = GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                  "get_deposit",
                                                  params,
                                                  rs);
   if (0 >= qs)
     return qs;
-  TALER_merchant_wire_signature_hash (deposit2.receiver_wire_account,
+  TALER_charity_wire_signature_hash (deposit2.receiver_wire_account,
                                       &deposit2.wire_salt,
                                       &h_wire2);
   GNUNET_free (deposit2.receiver_wire_account);
diff --git a/src/exchangedb/pg_have_deposit2.h b/src/donaudb/pg_have_deposit2.h
similarity index 75%
rename from src/exchangedb/pg_have_deposit2.h
rename to src/donaudb/pg_have_deposit2.h
index 0e8119c..efcf171 100644
--- a/src/exchangedb/pg_have_deposit2.h
+++ b/src/donaudb/pg_have_deposit2.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_have_deposit2.h
+ * @file donaudb/pg_have_deposit2.h
  * @brief implementation of the have_deposit2 function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Check if we have the specified deposit already in the database.
@@ -32,10 +32,10 @@
  * @param h_contract_terms contract to check for
  * @param h_wire wire hash to check for
  * @param coin_pub public key of the coin to check for
- * @param merchant merchant public key to check for
+ * @param charity charity public key to check for
  * @param refund_deadline expected refund deadline
- * @param[out] deposit_fee set to the deposit fee the exchange charged
- * @param[out] exchange_timestamp set to the time when the exchange received 
the deposit
+ * @param[out] deposit_fee set to the deposit fee the donau charged
+ * @param[out] donau_timestamp set to the time when the donau received the 
deposit
  * @return 1 if we know this operation,
  *         0 if this exact deposit is unknown to us,
  *         otherwise transaction error status
@@ -44,10 +44,10 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_have_deposit2 (
   void *cls,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant,
+  const struct TALER_CharityPublicKeyP *charity,
   struct GNUNET_TIME_Timestamp refund_deadline,
   struct TALER_Amount *deposit_fee,
-  struct GNUNET_TIME_Timestamp *exchange_timestamp);
+  struct GNUNET_TIME_Timestamp *donau_timestamp);
 #endif
diff --git a/src/exchangedb/pg_helper.h b/src/donaudb/pg_helper.h
similarity index 97%
rename from src/exchangedb/pg_helper.h
rename to src/donaudb/pg_helper.h
index c63c911..dcf5b48 100644
--- a/src/exchangedb/pg_helper.h
+++ b/src/donaudb/pg_helper.h
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -64,7 +64,7 @@ struct PostgresClosure
   /**
    * Our base URL.
    */
-  char *exchange_url;
+  char *donau_url;
 
   /**
    * Postgres connection handle.
diff --git a/src/exchangedb/pg_insert_denomination_info.c 
b/src/donaudb/pg_insert_denomination_info.c
similarity index 95%
rename from src/exchangedb/pg_insert_denomination_info.c
rename to src/donaudb/pg_insert_denomination_info.c
index 878bc5d..97764cc 100644
--- a/src/exchangedb/pg_insert_denomination_info.c
+++ b/src/donaudb/pg_insert_denomination_info.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_insert_denomination_info.c
+ * @file donaudb/pg_insert_denomination_info.c
  * @brief Implementation of the insert_denomination_info function for Postgres
  * @author Christian Grothoff
  */
@@ -30,7 +30,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_insert_denomination_info (
   void *cls,
   const struct TALER_DenominationPublicKey *denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyInformation *issue)
+  const struct TALER_DONAUDB_DenominationKeyInformation *issue)
 {
   struct PostgresClosure *pg = cls;
   struct TALER_DenominationHashP denom_hash;
diff --git a/src/exchangedb/pg_insert_denomination_info.h 
b/src/donaudb/pg_insert_denomination_info.h
similarity index 85%
rename from src/exchangedb/pg_insert_denomination_info.h
rename to src/donaudb/pg_insert_denomination_info.h
index 663f45b..2f5e020 100644
--- a/src/exchangedb/pg_insert_denomination_info.h
+++ b/src/donaudb/pg_insert_denomination_info.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_insert_denomination_info.h
+ * @file donaudb/pg_insert_denomination_info.h
  * @brief implementation of the insert_denomination_info function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Insert a denomination key's public information into the database for
  * reference by auditors and other consistency checks.
@@ -37,6 +37,6 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_insert_denomination_info (
   void *cls,
   const struct TALER_DenominationPublicKey *denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
+  const struct TALER_DONAUDB_DenominationKeyInformation *issue);
 
 #endif
diff --git a/src/exchangedb/pg_insert_denomination_revocation.c 
b/src/donaudb/pg_insert_denomination_revocation.c
similarity index 93%
rename from src/exchangedb/pg_insert_denomination_revocation.c
rename to src/donaudb/pg_insert_denomination_revocation.c
index 49445f2..b8017c9 100644
--- a/src/exchangedb/pg_insert_denomination_revocation.c
+++ b/src/donaudb/pg_insert_denomination_revocation.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_insert_denomination_revocation.c
+ * @file donaudb/pg_insert_denomination_revocation.c
  * @brief Implementation of the insert_denomination_revocation function for 
Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_insert_denomination_revocation.h 
b/src/donaudb/pg_insert_denomination_revocation.h
similarity index 88%
rename from src/exchangedb/pg_insert_denomination_revocation.h
rename to src/donaudb/pg_insert_denomination_revocation.h
index e3da876..08c738c 100644
--- a/src/exchangedb/pg_insert_denomination_revocation.h
+++ b/src/donaudb/pg_insert_denomination_revocation.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_insert_denomination_revocation.h
+ * @file donaudb/pg_insert_denomination_revocation.h
  * @brief implementation of the insert_denomination_revocation function for 
Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Store information that a denomination key was revoked
diff --git a/src/exchangedb/pg_insert_signkey_revocation.c 
b/src/donaudb/pg_insert_signkey_revocation.c
similarity index 82%
rename from src/exchangedb/pg_insert_signkey_revocation.c
rename to src/donaudb/pg_insert_signkey_revocation.c
index 9197be6..a243593 100644
--- a/src/exchangedb/pg_insert_signkey_revocation.c
+++ b/src/donaudb/pg_insert_signkey_revocation.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_insert_signkey_revocation.c
+ * @file donaudb/pg_insert_signkey_revocation.c
  * @brief Implementation of the insert_signkey_revocation function for Postgres
  * @author Christian Grothoff
  */
@@ -28,12 +28,12 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_insert_signkey_revocation (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterSignatureP *master_sig)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (exchange_pub),
+    GNUNET_PQ_query_param_auto_from_type (donau_pub),
     GNUNET_PQ_query_param_auto_from_type (master_sig),
     GNUNET_PQ_query_param_end
   };
@@ -45,8 +45,8 @@ TEH_PG_insert_signkey_revocation (
            "(esk_serial"
            ",master_sig"
            ") SELECT esk_serial, $2 "
-           "    FROM exchange_sign_keys"
-           "   WHERE exchange_pub=$1;");
+           "    FROM donau_sign_keys"
+           "   WHERE donau_pub=$1;");
   return GNUNET_PQ_eval_prepared_non_select (pg->conn,
                                              "insert_signkey_revocation",
                                              params);
diff --git a/src/exchangedb/pg_insert_signkey_revocation.h 
b/src/donaudb/pg_insert_signkey_revocation.h
similarity index 80%
rename from src/exchangedb/pg_insert_signkey_revocation.h
rename to src/donaudb/pg_insert_signkey_revocation.h
index 534e6d4..9d67e42 100644
--- a/src/exchangedb/pg_insert_signkey_revocation.h
+++ b/src/donaudb/pg_insert_signkey_revocation.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_insert_signkey_revocation.h
+ * @file donaudb/pg_insert_signkey_revocation.h
  * @brief implementation of the insert_signkey_revocation function for Postgres
  * @author Christian Grothoff
  */
@@ -23,19 +23,19 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Store information about a revoked online signing key.
  *
  * @param cls closure
- * @param exchange_pub exchange online signing key that was revoked
+ * @param donau_pub donau online signing key that was revoked
  * @param master_sig signature affirming the revocation
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_insert_signkey_revocation (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterSignatureP *master_sig);
 #endif
diff --git a/src/exchangedb/pg_iterate_active_signkeys.c 
b/src/donaudb/pg_iterate_active_signkeys.c
similarity index 85%
rename from src/exchangedb/pg_iterate_active_signkeys.c
rename to src/donaudb/pg_iterate_active_signkeys.c
index 9c280c9..9624e20 100644
--- a/src/exchangedb/pg_iterate_active_signkeys.c
+++ b/src/donaudb/pg_iterate_active_signkeys.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_iterate_active_signkeys.c
+ * @file donaudb/pg_iterate_active_signkeys.c
  * @brief Implementation of the iterate_active_signkeys function for Postgres
  * @author Christian Grothoff
  */
@@ -34,7 +34,7 @@ struct SignkeysIteratorContext
   /**
    * Function to call with the results.
    */
-  TALER_EXCHANGEDB_ActiveSignkeysCallback cb;
+  TALER_DONAUDB_ActiveSignkeysCallback cb;
 
   /**
    * Closure to pass to @e cb
@@ -61,14 +61,14 @@ signkeys_cb_helper (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_SignkeyMetaData meta;
-    struct TALER_ExchangePublicKeyP exchange_pub;
+    struct TALER_DONAUDB_SignkeyMetaData meta;
+    struct TALER_DonauPublicKeyP donau_pub;
     struct TALER_MasterSignatureP master_sig;
     struct GNUNET_PQ_ResultSpec rs[] = {
       GNUNET_PQ_result_spec_auto_from_type ("master_sig",
                                             &master_sig),
-      GNUNET_PQ_result_spec_auto_from_type ("exchange_pub",
-                                            &exchange_pub),
+      GNUNET_PQ_result_spec_auto_from_type ("donau_pub",
+                                            &donau_pub),
       GNUNET_PQ_result_spec_timestamp ("valid_from",
                                        &meta.start),
       GNUNET_PQ_result_spec_timestamp ("expire_sign",
@@ -87,7 +87,7 @@ signkeys_cb_helper (void *cls,
       return;
     }
     dic->cb (dic->cb_cls,
-             &exchange_pub,
+             &donau_pub,
              &meta,
              &master_sig);
   }
@@ -95,7 +95,7 @@ signkeys_cb_helper (void *cls,
 
 
 /**
- * Function called to invoke @a cb on every non-revoked exchange signing key
+ * Function called to invoke @a cb on every non-revoked donau signing key
  * that has been signed by the master key.  Revoked and (for signing!)
  * expired keys are skipped. Runs in its own read-only transaction.
  *
@@ -106,7 +106,7 @@ signkeys_cb_helper (void *cls,
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_iterate_active_signkeys (void *cls,
-                                TALER_EXCHANGEDB_ActiveSignkeysCallback cb,
+                                TALER_DONAUDB_ActiveSignkeysCallback cb,
                                 void *cb_cls)
 {
   struct PostgresClosure *pg = cls;
@@ -124,11 +124,11 @@ TEH_PG_iterate_active_signkeys (void *cls,
            "select_signkeys",
            "SELECT"
            " master_sig"
-           ",exchange_pub"
+           ",donau_pub"
            ",valid_from"
            ",expire_sign"
            ",expire_legal"
-           " FROM exchange_sign_keys esk"
+           " FROM donau_sign_keys esk"
            " WHERE"
            "   expire_sign > $1"
            " AND NOT EXISTS "
diff --git a/src/exchangedb/pg_iterate_active_signkeys.h 
b/src/donaudb/pg_iterate_active_signkeys.h
similarity index 80%
rename from src/exchangedb/pg_iterate_active_signkeys.h
rename to src/donaudb/pg_iterate_active_signkeys.h
index 5ebba9f..c51c7f6 100644
--- a/src/exchangedb/pg_iterate_active_signkeys.h
+++ b/src/donaudb/pg_iterate_active_signkeys.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_iterate_active_signkeys.h
+ * @file donaudb/pg_iterate_active_signkeys.h
  * @brief implementation of the iterate_active_signkeys function for Postgres
  * @author Christian Grothoff
  */
@@ -23,10 +23,10 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
- * Function called to invoke @a cb on every non-revoked exchange signing key
+ * Function called to invoke @a cb on every non-revoked donau signing key
  * that has been signed by the master key.  Revoked and (for signing!)
  * expired keys are skipped. Runs in its own read-only transaction.
  *
@@ -37,7 +37,7 @@
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_iterate_active_signkeys (void *cls,
-                                TALER_EXCHANGEDB_ActiveSignkeysCallback cb,
+                                TALER_DONAUDB_ActiveSignkeysCallback cb,
                                 void *cb_cls);
 
 #endif
diff --git a/src/exchangedb/pg_iterate_denomination_info.c 
b/src/donaudb/pg_iterate_denomination_info.c
similarity index 93%
rename from src/exchangedb/pg_iterate_denomination_info.c
rename to src/donaudb/pg_iterate_denomination_info.c
index cab51d5..09734e1 100644
--- a/src/exchangedb/pg_iterate_denomination_info.c
+++ b/src/donaudb/pg_iterate_denomination_info.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_iterate_denomination_info.c
+ * @file donaudb/pg_iterate_denomination_info.c
  * @brief Implementation of the iterate_denomination_info function for Postgres
  * @author Christian Grothoff
  */
@@ -34,7 +34,7 @@ struct DenomIteratorContext
   /**
    * Function to call with the results.
    */
-  TALER_EXCHANGEDB_DenominationCallback cb;
+  TALER_DONAUDB_DenominationCallback cb;
 
   /**
    * Closure to pass to @e cb
@@ -66,7 +66,7 @@ domination_cb_helper (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_DenominationKeyInformation issue;
+    struct TALER_DONAUDB_DenominationKeyInformation issue;
     struct TALER_DenominationPublicKey denom_pub;
     struct TALER_DenominationHashP denom_hash;
     struct GNUNET_PQ_ResultSpec rs[] = {
@@ -110,7 +110,7 @@ domination_cb_helper (void *cls,
 
     /* Unfortunately we have to carry the age mask in both, the
      * TALER_DenominationPublicKey and
-     * TALER_EXCHANGEDB_DenominationKeyInformation at different times.
+     * TALER_DONAUDB_DenominationKeyInformation at different times.
      * Here we use _both_ so let's make sure the values are the same. */
     denom_pub.age_mask = issue.age_mask;
     TALER_denom_pub_hash (&denom_pub,
@@ -142,7 +142,7 @@ domination_cb_helper (void *cls,
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_iterate_denomination_info (void *cls,
-                                  TALER_EXCHANGEDB_DenominationCallback cb,
+                                  TALER_DONAUDB_DenominationCallback cb,
                                   void *cb_cls)
 {
   struct PostgresClosure *pg = cls;
diff --git a/src/exchangedb/pg_iterate_denomination_info.h 
b/src/donaudb/pg_iterate_denomination_info.h
similarity index 83%
rename from src/exchangedb/pg_iterate_denomination_info.h
rename to src/donaudb/pg_iterate_denomination_info.h
index 27c08d0..a7fbc28 100644
--- a/src/exchangedb/pg_iterate_denomination_info.h
+++ b/src/donaudb/pg_iterate_denomination_info.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_iterate_denomination_info.h
+ * @file donaudb/pg_iterate_denomination_info.h
  * @brief implementation of the iterate_denomination_info function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Fetch information about all known denomination keys.
@@ -35,7 +35,7 @@
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_iterate_denomination_info (void *cls,
-                                  TALER_EXCHANGEDB_DenominationCallback cb,
+                                  TALER_DONAUDB_DenominationCallback cb,
                                   void *cb_cls);
 
 #endif
diff --git a/src/exchangedb/pg_iterate_denominations.c 
b/src/donaudb/pg_iterate_denominations.c
similarity index 94%
rename from src/exchangedb/pg_iterate_denominations.c
rename to src/donaudb/pg_iterate_denominations.c
index 684aa16..38d569e 100644
--- a/src/exchangedb/pg_iterate_denominations.c
+++ b/src/donaudb/pg_iterate_denominations.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_iterate_denominations.c
+ * @file donaudb/pg_iterate_denominations.c
  * @brief Implementation of the iterate_denominations function for Postgres
  * @author Christian Grothoff
  */
@@ -34,7 +34,7 @@ struct DenomsIteratorContext
   /**
    * Function to call with the results.
    */
-  TALER_EXCHANGEDB_DenominationsCallback cb;
+  TALER_DONAUDB_DenominationsCallback cb;
 
   /**
    * Closure to pass to @e cb
@@ -66,7 +66,7 @@ dominations_cb_helper (void *cls,
 
   for (unsigned int i = 0; i<num_results; i++)
   {
-    struct TALER_EXCHANGEDB_DenominationKeyMetaData meta = {0};
+    struct TALER_DONAUDB_DenominationKeyMetaData meta = {0};
     struct TALER_DenominationPublicKey denom_pub = {0};
     struct TALER_MasterSignatureP master_sig = {0};
     struct TALER_DenominationHashP h_denom_pub = {0};
@@ -130,7 +130,7 @@ dominations_cb_helper (void *cls,
 
 enum GNUNET_DB_QueryStatus
 TEH_PG_iterate_denominations (void *cls,
-                              TALER_EXCHANGEDB_DenominationsCallback cb,
+                              TALER_DONAUDB_DenominationsCallback cb,
                               void *cb_cls)
 {
   struct PostgresClosure *pg = cls;
diff --git a/src/exchangedb/pg_iterate_denominations.h 
b/src/donaudb/pg_iterate_denominations.h
similarity index 85%
rename from src/exchangedb/pg_iterate_denominations.h
rename to src/donaudb/pg_iterate_denominations.h
index 9f59fc8..d2e4a9f 100644
--- a/src/exchangedb/pg_iterate_denominations.h
+++ b/src/donaudb/pg_iterate_denominations.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_iterate_denominations.h
+ * @file donaudb/pg_iterate_denominations.h
  * @brief implementation of the iterate_denominations function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Function called to invoke @a cb on every known denomination key (revoked
@@ -38,7 +38,7 @@
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_iterate_denominations (void *cls,
-                              TALER_EXCHANGEDB_DenominationsCallback cb,
+                              TALER_DONAUDB_DenominationsCallback cb,
                               void *cb_cls);
 
 #endif
diff --git a/src/exchangedb/pg_lookup_denomination_key.c 
b/src/donaudb/pg_lookup_denomination_key.c
similarity index 94%
rename from src/exchangedb/pg_lookup_denomination_key.c
rename to src/donaudb/pg_lookup_denomination_key.c
index 20eb703..cbf8fc5 100644
--- a/src/exchangedb/pg_lookup_denomination_key.c
+++ b/src/donaudb/pg_lookup_denomination_key.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_lookup_denomination_key.c
+ * @file donaudb/pg_lookup_denomination_key.c
  * @brief Implementation of the lookup_denomination_key function for Postgres
  * @author Christian Grothoff
  */
@@ -29,7 +29,7 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_lookup_denomination_key (
   void *cls,
   const struct TALER_DenominationHashP *h_denom_pub,
-  struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta)
+  struct TALER_DONAUDB_DenominationKeyMetaData *meta)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
diff --git a/src/exchangedb/pg_lookup_denomination_key.h 
b/src/donaudb/pg_lookup_denomination_key.h
similarity index 84%
rename from src/exchangedb/pg_lookup_denomination_key.h
rename to src/donaudb/pg_lookup_denomination_key.h
index b7317ac..e7ab873 100644
--- a/src/exchangedb/pg_lookup_denomination_key.h
+++ b/src/donaudb/pg_lookup_denomination_key.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_lookup_denomination_key.h
+ * @file donaudb/pg_lookup_denomination_key.h
  * @brief implementation of the lookup_denomination_key function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Lookup information about current denomination key.
  *
@@ -36,6 +36,6 @@ enum GNUNET_DB_QueryStatus
 TEH_PG_lookup_denomination_key (
   void *cls,
   const struct TALER_DenominationHashP *h_denom_pub,
-  struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
+  struct TALER_DONAUDB_DenominationKeyMetaData *meta);
 
 #endif
diff --git a/src/exchangedb/pg_lookup_signing_key.c 
b/src/donaudb/pg_lookup_signing_key.c
similarity index 83%
rename from src/exchangedb/pg_lookup_signing_key.c
rename to src/donaudb/pg_lookup_signing_key.c
index 3803d11..1326087 100644
--- a/src/exchangedb/pg_lookup_signing_key.c
+++ b/src/donaudb/pg_lookup_signing_key.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_lookup_signing_key.c
+ * @file donaudb/pg_lookup_signing_key.c
  * @brief Implementation of the lookup_signing_key function for Postgres
  * @author Christian Grothoff
  */
@@ -29,12 +29,12 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_lookup_signing_key (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  struct TALER_EXCHANGEDB_SignkeyMetaData *meta)
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  struct TALER_DONAUDB_SignkeyMetaData *meta)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (exchange_pub),
+    GNUNET_PQ_query_param_auto_from_type (donau_pub),
     GNUNET_PQ_query_param_end
   };
   struct GNUNET_PQ_ResultSpec rs[] = {
@@ -54,8 +54,8 @@ TEH_PG_lookup_signing_key (
            " valid_from"
            ",expire_sign"
            ",expire_legal"
-           " FROM exchange_sign_keys"
-           " WHERE exchange_pub=$1");
+           " FROM donau_sign_keys"
+           " WHERE donau_pub=$1");
 
   return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                    "lookup_signing_key",
diff --git a/src/exchangedb/pg_lookup_signing_key.h 
b/src/donaudb/pg_lookup_signing_key.h
similarity index 72%
rename from src/exchangedb/pg_lookup_signing_key.h
rename to src/donaudb/pg_lookup_signing_key.h
index 487d60d..e3504ca 100644
--- a/src/exchangedb/pg_lookup_signing_key.h
+++ b/src/donaudb/pg_lookup_signing_key.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_lookup_signing_key.h
+ * @file donaudb/pg_lookup_signing_key.h
  * @brief implementation of the lookup_signing_key function for Postgres
  * @author Christian Grothoff
  */
@@ -23,20 +23,20 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
  * Lookup signing key meta data.
  *
  * @param cls closure
- * @param exchange_pub the exchange online signing public key
- * @param[out] meta meta data about @a exchange_pub
+ * @param donau_pub the donau online signing public key
+ * @param[out] meta meta data about @a donau_pub
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_lookup_signing_key (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  struct TALER_EXCHANGEDB_SignkeyMetaData *meta);
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  struct TALER_DONAUDB_SignkeyMetaData *meta);
 #endif
diff --git a/src/exchangedb/pg_lookup_signkey_revocation.c 
b/src/donaudb/pg_lookup_signkey_revocation.c
similarity index 84%
rename from src/exchangedb/pg_lookup_signkey_revocation.c
rename to src/donaudb/pg_lookup_signkey_revocation.c
index 056ecdd..4c5d36b 100644
--- a/src/exchangedb/pg_lookup_signkey_revocation.c
+++ b/src/donaudb/pg_lookup_signkey_revocation.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_lookup_signkey_revocation.c
+ * @file donaudb/pg_lookup_signkey_revocation.c
  * @brief Implementation of the lookup_signkey_revocation function for Postgres
  * @author Christian Grothoff
  */
@@ -29,12 +29,12 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_lookup_signkey_revocation (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct TALER_MasterSignatureP *master_sig)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
-    GNUNET_PQ_query_param_auto_from_type (exchange_pub),
+    GNUNET_PQ_query_param_auto_from_type (donau_pub),
     GNUNET_PQ_query_param_end
   };
   struct GNUNET_PQ_ResultSpec rs[] = {
@@ -50,8 +50,8 @@ TEH_PG_lookup_signkey_revocation (
            " FROM signkey_revocations"
            " WHERE esk_serial="
            "   (SELECT esk_serial"
-           "      FROM exchange_sign_keys"
-           "     WHERE exchange_pub=$1);");
+           "      FROM donau_sign_keys"
+           "     WHERE donau_pub=$1);");
   return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                    "lookup_signkey_revocation",
                                                    params,
diff --git a/src/exchangedb/pg_lookup_signkey_revocation.h 
b/src/donaudb/pg_lookup_signkey_revocation.h
similarity index 81%
rename from src/exchangedb/pg_lookup_signkey_revocation.h
rename to src/donaudb/pg_lookup_signkey_revocation.h
index de0fb1d..1290c40 100644
--- a/src/exchangedb/pg_lookup_signkey_revocation.h
+++ b/src/donaudb/pg_lookup_signkey_revocation.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_lookup_signkey_revocation.h
+ * @file donaudb/pg_lookup_signkey_revocation.h
  * @brief implementation of the lookup_signkey_revocation function for Postgres
  * @author Christian Grothoff
  */
@@ -23,20 +23,20 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Obtain information about a revoked online signing key.
  *
  * @param cls closure
- * @param exchange_pub exchange online signing key
+ * @param donau_pub donau online signing key
  * @param[out] master_sig set to signature affirming the revocation (if 
revoked)
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_lookup_signkey_revocation (
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct TALER_MasterSignatureP *master_sig);
 
 #endif
diff --git a/src/exchangedb/pg_preflight.c b/src/donaudb/pg_preflight.c
similarity index 94%
rename from src/exchangedb/pg_preflight.c
rename to src/donaudb/pg_preflight.c
index 4533c9a..f605fe2 100644
--- a/src/exchangedb/pg_preflight.c
+++ b/src/donaudb/pg_preflight.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_preflight.c
+ * @file donaudb/pg_preflight.c
  * @brief Implementation of the preflight function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_preflight.h b/src/donaudb/pg_preflight.h
similarity index 89%
rename from src/exchangedb/pg_preflight.h
rename to src/donaudb/pg_preflight.h
index ba994f1..a9ff5c4 100644
--- a/src/exchangedb/pg_preflight.h
+++ b/src/donaudb/pg_preflight.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_preflight.h
+ * @file donaudb/pg_preflight.h
  * @brief implementation of the preflight function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
diff --git a/src/exchangedb/pg_reserves_get.c b/src/donaudb/pg_reserves_get.c
similarity index 91%
rename from src/exchangedb/pg_reserves_get.c
rename to src/donaudb/pg_reserves_get.c
index cae4764..128cc2d 100644
--- a/src/exchangedb/pg_reserves_get.c
+++ b/src/donaudb/pg_reserves_get.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_get.c
+ * @file donaudb/pg_reserves_get.c
  * @brief Implementation of the reserves_get function for Postgres
  * @author Christian Grothoff
  */
@@ -27,7 +27,7 @@
 
 enum GNUNET_DB_QueryStatus
 TEH_PG_reserves_get (void *cls,
-                     struct TALER_EXCHANGEDB_Reserve *reserve)
+                     struct TALER_DONAUDB_Reserve *reserve)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
diff --git a/src/exchangedb/pg_reserves_get.h b/src/donaudb/pg_reserves_get.h
similarity index 85%
rename from src/exchangedb/pg_reserves_get.h
rename to src/donaudb/pg_reserves_get.h
index 8a96d53..dfb8ef1 100644
--- a/src/exchangedb/pg_reserves_get.h
+++ b/src/donaudb/pg_reserves_get.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_get.h
+ * @file donaudb/pg_reserves_get.h
  * @brief implementation of the reserves_get function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Get the summary of a reserve.
  *
@@ -35,6 +35,6 @@
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_reserves_get (void *cls,
-                     struct TALER_EXCHANGEDB_Reserve *reserve);
+                     struct TALER_DONAUDB_Reserve *reserve);
 
 #endif
diff --git a/src/exchangedb/pg_reserves_get_origin.c 
b/src/donaudb/pg_reserves_get_origin.c
similarity index 93%
rename from src/exchangedb/pg_reserves_get_origin.c
rename to src/donaudb/pg_reserves_get_origin.c
index 55d3179..e9658bd 100644
--- a/src/exchangedb/pg_reserves_get_origin.c
+++ b/src/donaudb/pg_reserves_get_origin.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_get_origin.c
+ * @file donaudb/pg_reserves_get_origin.c
  * @brief Implementation of the reserves_get_origin function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_reserves_get_origin.h 
b/src/donaudb/pg_reserves_get_origin.h
similarity index 88%
rename from src/exchangedb/pg_reserves_get_origin.h
rename to src/donaudb/pg_reserves_get_origin.h
index 22085d8..3770f91 100644
--- a/src/exchangedb/pg_reserves_get_origin.h
+++ b/src/donaudb/pg_reserves_get_origin.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_get_origin.h
+ * @file donaudb/pg_reserves_get_origin.h
  * @brief implementation of the reserves_get_origin function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Get the origin of funds of a reserve.
  *
diff --git a/src/exchangedb/pg_reserves_in_insert.c 
b/src/donaudb/pg_reserves_in_insert.c
similarity index 93%
rename from src/exchangedb/pg_reserves_in_insert.c
rename to src/donaudb/pg_reserves_in_insert.c
index 1b85404..fc7d371 100644
--- a/src/exchangedb/pg_reserves_in_insert.c
+++ b/src/donaudb/pg_reserves_in_insert.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_in_insert.c
+ * @file donaudb/pg_reserves_in_insert.c
  * @brief Implementation of the reserves_in_insert function for Postgres
  * @author Christian Grothoff
  * @author Joseph Xu
@@ -47,7 +47,7 @@ compute_notify_on_reserve (const struct 
TALER_ReservePublicKeyP *reserve_pub)
 {
   struct TALER_ReserveEventP rep = {
     .header.size = htons (sizeof (rep)),
-    .header.type = htons (TALER_DBEVENT_EXCHANGE_RESERVE_INCOMING),
+    .header.type = htons (TALER_DBEVENT_DONAU_RESERVE_INCOMING),
     .reserve_pub = *reserve_pub
   };
 
@@ -134,7 +134,7 @@ helper_cb (void *cls,
 enum GNUNET_DB_QueryStatus
 TEH_PG_reserves_in_insert (
   void *cls,
-  const struct TALER_EXCHANGEDB_ReserveInInfo *reserves,
+  const struct TALER_DONAUDB_ReserveInInfo *reserves,
   unsigned int reserves_length,
   enum GNUNET_DB_QueryStatus *results)
 {
@@ -147,7 +147,7 @@ TEH_PG_reserves_in_insert (
   struct TALER_Amount balances[GNUNET_NZL (reserves_length)];
   struct GNUNET_TIME_Timestamp execution_times[GNUNET_NZL (reserves_length)];
   const char *sender_account_details[GNUNET_NZL (reserves_length)];
-  const char *exchange_account_names[GNUNET_NZL (reserves_length)];
+  const char *donau_account_names[GNUNET_NZL (reserves_length)];
   uint64_t wire_references[GNUNET_NZL (reserves_length)];
   uint64_t reserve_uuids[GNUNET_NZL (reserves_length)];
   bool transaction_duplicates[GNUNET_NZL (reserves_length)];
@@ -161,7 +161,7 @@ TEH_PG_reserves_in_insert (
 
   for (unsigned int i = 0; i<reserves_length; i++)
   {
-    const struct TALER_EXCHANGEDB_ReserveInInfo *reserve = &reserves[i];
+    const struct TALER_DONAUDB_ReserveInInfo *reserve = &reserves[i];
 
     TALER_payto_hash (reserve->sender_account_details,
                       &h_paytos[i]);
@@ -170,7 +170,7 @@ TEH_PG_reserves_in_insert (
     balances[i] = *reserve->balance;
     execution_times[i] = reserve->execution_time;
     sender_account_details[i] = reserve->sender_account_details;
-    exchange_account_names[i] = reserve->exchange_account_name;
+    donau_account_names[i] = reserve->donau_account_name;
     wire_references[i] = reserve->wire_reference;
   }
 
@@ -195,7 +195,7 @@ TEH_PG_reserves_in_insert (
            "SELECT"
            " transaction_duplicate"
            ",ruuid"
-           " FROM exchange_do_array_reserves_insert"
+           " FROM donau_do_array_reserves_insert"
            " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);");
   {
     struct GNUNET_PQ_QueryParam params[] = {
@@ -213,7 +213,7 @@ TEH_PG_reserves_in_insert (
         pg->conn),
       GNUNET_PQ_query_param_array_ptrs_string (
         reserves_length,
-        (const char **) exchange_account_names,
+        (const char **) donau_account_names,
         pg->conn),
       GNUNET_PQ_query_param_array_timestamp (
         reserves_length,
@@ -290,7 +290,7 @@ TEH_PG_reserves_in_insert (
            "reserves_update",
            "SELECT"
            " out_duplicate AS duplicate "
-           "FROM exchange_do_batch_reserves_update"
+           "FROM donau_do_batch_reserves_update"
            " ($1,$2,$3,$4,$5,$6,$7);");
 
   if (GNUNET_OK !=
@@ -316,7 +316,7 @@ TEH_PG_reserves_in_insert (
         GNUNET_PQ_query_param_uint64 (&wire_references[i]),
         TALER_PQ_query_param_amount (pg->conn,
                                      &balances[i]),
-        GNUNET_PQ_query_param_string (exchange_account_names[i]),
+        GNUNET_PQ_query_param_string (donau_account_names[i]),
         GNUNET_PQ_query_param_auto_from_type (&h_paytos[i]),
         GNUNET_PQ_query_param_string (notify_s[i]),
         GNUNET_PQ_query_param_end
@@ -365,7 +365,7 @@ finished:
   GNUNET_PQ_event_do_poll (pg->conn);
   if (0 != dups)
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "%u/%u duplicates among incoming transactions. Try increasing 
WIREWATCH_IDLE_SLEEP_INTERVAL in the [exchange] configuration section (if this 
happens a lot).\n",
+                "%u/%u duplicates among incoming transactions. Try increasing 
WIREWATCH_IDLE_SLEEP_INTERVAL in the [donau] configuration section (if this 
happens a lot).\n",
                 dups,
                 reserves_length);
   return qs;
diff --git a/src/exchangedb/pg_reserves_in_insert.h 
b/src/donaudb/pg_reserves_in_insert.h
similarity index 86%
rename from src/exchangedb/pg_reserves_in_insert.h
rename to src/donaudb/pg_reserves_in_insert.h
index 938df3a..4176bb8 100644
--- a/src/exchangedb/pg_reserves_in_insert.h
+++ b/src/donaudb/pg_reserves_in_insert.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_in_insert.h
+ * @file donaudb/pg_reserves_in_insert.h
  * @brief implementation of the reserves_in_insert function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 /**
@@ -39,7 +39,7 @@
 enum GNUNET_DB_QueryStatus
 TEH_PG_reserves_in_insert (
   void *cls,
-  const struct TALER_EXCHANGEDB_ReserveInInfo *reserves,
+  const struct TALER_DONAUDB_ReserveInInfo *reserves,
   unsigned int reserves_length,
   enum GNUNET_DB_QueryStatus *results);
 
diff --git a/src/exchangedb/pg_reserves_update.c 
b/src/donaudb/pg_reserves_update.c
similarity index 89%
rename from src/exchangedb/pg_reserves_update.c
rename to src/donaudb/pg_reserves_update.c
index bfd32c6..4e34d7b 100644
--- a/src/exchangedb/pg_reserves_update.c
+++ b/src/donaudb/pg_reserves_update.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_update.c
+ * @file donaudb/pg_reserves_update.c
  * @brief Implementation of the reserves_update function for Postgres
  * @author Christian Grothoff
  */
@@ -27,7 +27,7 @@
 
 enum GNUNET_DB_QueryStatus
 TEH_PG_reserves_update (void *cls,
-                        const struct TALER_EXCHANGEDB_Reserve *reserve)
+                        const struct TALER_DONAUDB_Reserve *reserve)
 {
   struct PostgresClosure *pg = cls;
   struct GNUNET_PQ_QueryParam params[] = {
diff --git a/src/exchangedb/pg_reserves_update.h 
b/src/donaudb/pg_reserves_update.h
similarity index 84%
rename from src/exchangedb/pg_reserves_update.h
rename to src/donaudb/pg_reserves_update.h
index 24cf671..c35e175 100644
--- a/src/exchangedb/pg_reserves_update.h
+++ b/src/donaudb/pg_reserves_update.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_reserves_update.h
+ * @file donaudb/pg_reserves_update.h
  * @brief implementation of the reserves_update function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Updates a reserve with the data from the given reserve structure.
@@ -35,6 +35,6 @@
  */
 enum GNUNET_DB_QueryStatus
 TEH_PG_reserves_update (void *cls,
-                        const struct TALER_EXCHANGEDB_Reserve *reserve);
+                        const struct TALER_DONAUDB_Reserve *reserve);
 
 #endif
diff --git a/src/exchangedb/pg_rollback.c b/src/donaudb/pg_rollback.c
similarity index 92%
rename from src/exchangedb/pg_rollback.c
rename to src/donaudb/pg_rollback.c
index 3610487..6cdc0ee 100644
--- a/src/exchangedb/pg_rollback.c
+++ b/src/donaudb/pg_rollback.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_rollback.c
+ * @file donaudb/pg_rollback.c
  * @brief Implementation of the rollback function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_rollback.h b/src/donaudb/pg_rollback.h
similarity index 86%
rename from src/exchangedb/pg_rollback.h
rename to src/donaudb/pg_rollback.h
index ddb9e41..0a44f02 100644
--- a/src/exchangedb/pg_rollback.h
+++ b/src/donaudb/pg_rollback.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_rollback.h
+ * @file donaudb/pg_rollback.h
  * @brief implementation of the rollback function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Roll back the current transaction of a database connection.
diff --git a/src/exchangedb/pg_start.c b/src/donaudb/pg_start.c
similarity index 93%
rename from src/exchangedb/pg_start.c
rename to src/donaudb/pg_start.c
index de5d698..42ead4c 100644
--- a/src/exchangedb/pg_start.c
+++ b/src/donaudb/pg_start.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_start.c
+ * @file donaudb/pg_start.c
  * @brief Implementation of the start function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_start.h b/src/donaudb/pg_start.h
similarity index 88%
rename from src/exchangedb/pg_start.h
rename to src/donaudb/pg_start.h
index 0a3bb9e..81c7ba0 100644
--- a/src/exchangedb/pg_start.h
+++ b/src/donaudb/pg_start.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_start.h
+ * @file donaudb/pg_start.h
  * @brief implementation of the start function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Start a transaction.
diff --git a/src/exchangedb/pg_start_read_committed.c 
b/src/donaudb/pg_start_read_committed.c
similarity index 93%
rename from src/exchangedb/pg_start_read_committed.c
rename to src/donaudb/pg_start_read_committed.c
index 1c8248a..9bb9251 100644
--- a/src/exchangedb/pg_start_read_committed.c
+++ b/src/donaudb/pg_start_read_committed.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_start_read_committed.c
+ * @file donaudb/pg_start_read_committed.c
  * @brief Implementation of the start_read_committed function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_start_read_committed.h 
b/src/donaudb/pg_start_read_committed.h
similarity index 88%
rename from src/exchangedb/pg_start_read_committed.h
rename to src/donaudb/pg_start_read_committed.h
index 08b60e6..000878b 100644
--- a/src/exchangedb/pg_start_read_committed.h
+++ b/src/donaudb/pg_start_read_committed.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_start_read_committed.h
+ * @file donaudb/pg_start_read_committed.h
  * @brief implementation of the start_read_committed function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 /**
  * Start a READ COMMITTED transaction.
  *
diff --git a/src/exchangedb/pg_start_read_only.c 
b/src/donaudb/pg_start_read_only.c
similarity index 93%
rename from src/exchangedb/pg_start_read_only.c
rename to src/donaudb/pg_start_read_only.c
index 741d94b..6cab851 100644
--- a/src/exchangedb/pg_start_read_only.c
+++ b/src/donaudb/pg_start_read_only.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_start_read_only.c
+ * @file donaudb/pg_start_read_only.c
  * @brief Implementation of the start_read_only function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_start_read_only.h 
b/src/donaudb/pg_start_read_only.h
similarity index 88%
rename from src/exchangedb/pg_start_read_only.h
rename to src/donaudb/pg_start_read_only.h
index bf639c1..c176c6f 100644
--- a/src/exchangedb/pg_start_read_only.h
+++ b/src/donaudb/pg_start_read_only.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_start_read_only.h
+ * @file donaudb/pg_start_read_only.h
  * @brief implementation of the start_read_only function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Start a READ ONLY serializable transaction.
diff --git a/src/exchangedb/pg_template.c b/src/donaudb/pg_template.c
similarity index 88%
rename from src/exchangedb/pg_template.c
rename to src/donaudb/pg_template.c
index 095d896..d5dc916 100644
--- a/src/exchangedb/pg_template.c
+++ b/src/donaudb/pg_template.c
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_template.c
+ * @file donaudb/pg_template.c
  * @brief Implementation of the template function for Postgres
  * @author Christian Grothoff
  */
diff --git a/src/exchangedb/pg_template.h b/src/donaudb/pg_template.h
similarity index 84%
rename from src/exchangedb/pg_template.h
rename to src/donaudb/pg_template.h
index 88bb930..a3d9113 100644
--- a/src/exchangedb/pg_template.h
+++ b/src/donaudb/pg_template.h
@@ -7,14 +7,14 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file exchangedb/pg_template.h
+ * @file donaudb/pg_template.h
  * @brief implementation of the template function for Postgres
  * @author Christian Grothoff
  */
@@ -23,7 +23,7 @@
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 
 #endif
diff --git a/src/exchangedb/pg_template.sh b/src/donaudb/pg_template.sh
similarity index 78%
rename from src/exchangedb/pg_template.sh
rename to src/donaudb/pg_template.sh
index 73bd7e9..e1aecf5 100755
--- a/src/exchangedb/pg_template.sh
+++ b/src/donaudb/pg_template.sh
@@ -17,5 +17,5 @@ do
 done
 
 echo "Add lines from tmpl.am to Makefile.am"
-echo "Add lines from tmpl.inc to plugin_exchangedb_postgres.c at the beginning"
-echo "Add lines from tmpl.c to plugin_exchangedb_postgres.c at the end"
+echo "Add lines from tmpl.inc to plugin_donaudb_postgres.c at the beginning"
+echo "Add lines from tmpl.c to plugin_donaudb_postgres.c at the end"
diff --git a/src/exchangedb/plugin_exchangedb_common.c 
b/src/donaudb/plugin_donaudb_common.c
similarity index 61%
rename from src/exchangedb/plugin_exchangedb_common.c
rename to src/donaudb/plugin_donaudb_common.c
index 562710e..5d86e11 100644
--- a/src/exchangedb/plugin_exchangedb_common.c
+++ b/src/donaudb/plugin_donaudb_common.c
@@ -7,95 +7,95 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchangedb/plugin_exchangedb_common.c
+ * @file donaudb/plugin_donaudb_common.c
  * @brief Functions shared across plugins, this file is meant to be
  *        included in each plugin.
  * @author Christian Grothoff
  */
 #include "platform.h"
-#include "plugin_exchangedb_common.h"
+#include "plugin_donaudb_common.h"
 
 
 void
 TEH_COMMON_free_reserve_history (
   void *cls,
-  struct TALER_EXCHANGEDB_ReserveHistory *rh)
+  struct TALER_DONAUDB_ReserveHistory *rh)
 {
   (void) cls;
   while (NULL != rh)
   {
     switch (rh->type)
     {
-    case TALER_EXCHANGEDB_RO_BANK_TO_EXCHANGE:
+    case TALER_DONAUDB_RO_BANK_TO_DONAU:
       {
-        struct TALER_EXCHANGEDB_BankTransfer *bt;
+        struct TALER_DONAUDB_BankTransfer *bt;
 
         bt = rh->details.bank;
         GNUNET_free (bt->sender_account_details);
         GNUNET_free (bt);
         break;
       }
-    case TALER_EXCHANGEDB_RO_WITHDRAW_COIN:
+    case TALER_DONAUDB_RO_WITHDRAW_COIN:
       {
-        struct TALER_EXCHANGEDB_CollectableBlindcoin *cbc;
+        struct TALER_DONAUDB_CollectableBlindcoin *cbc;
 
         cbc = rh->details.withdraw;
         TALER_blinded_denom_sig_free (&cbc->sig);
         GNUNET_free (cbc);
         break;
       }
-    case TALER_EXCHANGEDB_RO_RECOUP_COIN:
+    case TALER_DONAUDB_RO_RECOUP_COIN:
       {
-        struct TALER_EXCHANGEDB_Recoup *recoup;
+        struct TALER_DONAUDB_Recoup *recoup;
 
         recoup = rh->details.recoup;
         TALER_denom_sig_free (&recoup->coin.denom_sig);
         GNUNET_free (recoup);
         break;
       }
-    case TALER_EXCHANGEDB_RO_EXCHANGE_TO_BANK:
+    case TALER_DONAUDB_RO_DONAU_TO_BANK:
       {
-        struct TALER_EXCHANGEDB_ClosingTransfer *closing;
+        struct TALER_DONAUDB_ClosingTransfer *closing;
 
         closing = rh->details.closing;
         GNUNET_free (closing->receiver_account_details);
         GNUNET_free (closing);
         break;
       }
-    case TALER_EXCHANGEDB_RO_PURSE_MERGE:
+    case TALER_DONAUDB_RO_PURSE_MERGE:
       {
-        struct TALER_EXCHANGEDB_PurseMerge *merge;
+        struct TALER_DONAUDB_PurseMerge *merge;
 
         merge = rh->details.merge;
         GNUNET_free (merge);
         break;
       }
-    case TALER_EXCHANGEDB_RO_HISTORY_REQUEST:
+    case TALER_DONAUDB_RO_HISTORY_REQUEST:
       {
-        struct TALER_EXCHANGEDB_HistoryRequest *history;
+        struct TALER_DONAUDB_HistoryRequest *history;
 
         history = rh->details.history;
         GNUNET_free (history);
         break;
       }
-    case TALER_EXCHANGEDB_RO_OPEN_REQUEST:
+    case TALER_DONAUDB_RO_OPEN_REQUEST:
       {
-        struct TALER_EXCHANGEDB_OpenRequest *or;
+        struct TALER_DONAUDB_OpenRequest *or;
 
         or = rh->details.open_request;
         GNUNET_free (or);
         break;
       }
-    case TALER_EXCHANGEDB_RO_CLOSE_REQUEST:
+    case TALER_DONAUDB_RO_CLOSE_REQUEST:
       {
-        struct TALER_EXCHANGEDB_CloseRequest *cr;
+        struct TALER_DONAUDB_CloseRequest *cr;
 
         cr = rh->details.close_request;
         GNUNET_free (cr);
@@ -103,7 +103,7 @@ TEH_COMMON_free_reserve_history (
       }
     }
     {
-      struct TALER_EXCHANGEDB_ReserveHistory *next;
+      struct TALER_DONAUDB_ReserveHistory *next;
 
       next = rh->next;
       GNUNET_free (rh);
@@ -116,69 +116,69 @@ TEH_COMMON_free_reserve_history (
 void
 TEH_COMMON_free_coin_transaction_list (
   void *cls,
-  struct TALER_EXCHANGEDB_TransactionList *tl)
+  struct TALER_DONAUDB_TransactionList *tl)
 {
   (void) cls;
   while (NULL != tl)
   {
     switch (tl->type)
     {
-    case TALER_EXCHANGEDB_TT_DEPOSIT:
+    case TALER_DONAUDB_TT_DEPOSIT:
       {
-        struct TALER_EXCHANGEDB_DepositListEntry *deposit;
+        struct TALER_DONAUDB_DepositListEntry *deposit;
 
         deposit = tl->details.deposit;
         GNUNET_free (deposit->receiver_wire_account);
         GNUNET_free (deposit);
         break;
       }
-    case TALER_EXCHANGEDB_TT_MELT:
+    case TALER_DONAUDB_TT_MELT:
       GNUNET_free (tl->details.melt);
       break;
-    case TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP:
+    case TALER_DONAUDB_TT_OLD_COIN_RECOUP:
       {
-        struct TALER_EXCHANGEDB_RecoupRefreshListEntry *rr;
+        struct TALER_DONAUDB_RecoupRefreshListEntry *rr;
 
         rr = tl->details.old_coin_recoup;
         TALER_denom_sig_free (&rr->coin.denom_sig);
         GNUNET_free (rr);
         break;
       }
-    case TALER_EXCHANGEDB_TT_REFUND:
+    case TALER_DONAUDB_TT_REFUND:
       GNUNET_free (tl->details.refund);
       break;
-    case TALER_EXCHANGEDB_TT_RECOUP:
+    case TALER_DONAUDB_TT_RECOUP:
       GNUNET_free (tl->details.recoup);
       break;
-    case TALER_EXCHANGEDB_TT_RECOUP_REFRESH:
+    case TALER_DONAUDB_TT_RECOUP_REFRESH:
       {
-        struct TALER_EXCHANGEDB_RecoupRefreshListEntry *rr;
+        struct TALER_DONAUDB_RecoupRefreshListEntry *rr;
 
         rr = tl->details.recoup_refresh;
         TALER_denom_sig_free (&rr->coin.denom_sig);
         GNUNET_free (rr);
         break;
       }
-    case TALER_EXCHANGEDB_TT_PURSE_DEPOSIT:
+    case TALER_DONAUDB_TT_PURSE_DEPOSIT:
       {
-        struct TALER_EXCHANGEDB_PurseDepositListEntry *deposit;
+        struct TALER_DONAUDB_PurseDepositListEntry *deposit;
 
         deposit = tl->details.purse_deposit;
-        GNUNET_free (deposit->exchange_base_url);
+        GNUNET_free (deposit->donau_base_url);
         GNUNET_free (deposit);
         break;
       }
-    case TALER_EXCHANGEDB_TT_PURSE_REFUND:
+    case TALER_DONAUDB_TT_PURSE_REFUND:
       {
-        struct TALER_EXCHANGEDB_PurseRefundListEntry *prefund;
+        struct TALER_DONAUDB_PurseRefundListEntry *prefund;
 
         prefund = tl->details.purse_refund;
         GNUNET_free (prefund);
         break;
       }
-    case TALER_EXCHANGEDB_TT_RESERVE_OPEN:
+    case TALER_DONAUDB_TT_RESERVE_OPEN:
       {
-        struct TALER_EXCHANGEDB_ReserveOpenListEntry *role;
+        struct TALER_DONAUDB_ReserveOpenListEntry *role;
 
         role = tl->details.reserve_open;
         GNUNET_free (role);
@@ -186,7 +186,7 @@ TEH_COMMON_free_coin_transaction_list (
       }
     }
     {
-      struct TALER_EXCHANGEDB_TransactionList *next;
+      struct TALER_DONAUDB_TransactionList *next;
 
       next = tl->next;
       GNUNET_free (tl);
@@ -196,4 +196,4 @@ TEH_COMMON_free_coin_transaction_list (
 }
 
 
-/* end of plugin_exchangedb_common.c */
+/* end of plugin_donaudb_common.c */
diff --git a/src/exchangedb/plugin_exchangedb_common.h 
b/src/donaudb/plugin_donaudb_common.h
similarity index 79%
rename from src/exchangedb/plugin_exchangedb_common.h
rename to src/donaudb/plugin_donaudb_common.h
index 0355c44..a3bc1c1 100644
--- a/src/exchangedb/plugin_exchangedb_common.h
+++ b/src/donaudb/plugin_donaudb_common.h
@@ -7,23 +7,23 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 /**
- * @file plugin_exchangedb_common.h
+ * @file plugin_donaudb_common.h
  * @brief implementation of database-independent functions
  * @author Christian Grothoff
  */
-#ifndef PLUGIN_EXCHANGEDB_COMMON_H
-#define PLUGIN_EXCHANGEDB_COMMON_H
+#ifndef PLUGIN_DONAUDB_COMMON_H
+#define PLUGIN_DONAUDB_COMMON_H
 
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Free memory associated with the given reserve history.
@@ -34,7 +34,7 @@
 void
 TEH_COMMON_free_reserve_history (
   void *cls,
-  struct TALER_EXCHANGEDB_ReserveHistory *rh);
+  struct TALER_DONAUDB_ReserveHistory *rh);
 
 
 /**
@@ -46,6 +46,6 @@ TEH_COMMON_free_reserve_history (
 void
 TEH_COMMON_free_coin_transaction_list (
   void *cls,
-  struct TALER_EXCHANGEDB_TransactionList *tl);
+  struct TALER_DONAUDB_TransactionList *tl);
 
 #endif
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/donaudb/plugin_donaudb_postgres.c
similarity index 94%
rename from src/exchangedb/plugin_exchangedb_postgres.c
rename to src/donaudb/plugin_donaudb_postgres.c
index 067e859..d89f463 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/donaudb/plugin_donaudb_postgres.c
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -15,8 +15,8 @@
  */
 
 /**
- * @file plugin_exchangedb_postgres.c
- * @brief Low-level (statement-level) Postgres database access for the exchange
+ * @file plugin_donaudb_postgres.c
+ * @brief Low-level (statement-level) Postgres database access for the donau
  * @author Florian Dold
  * @author Christian Grothoff
  * @author Sree Harsha Totakura
@@ -32,8 +32,8 @@
 #include "taler_pq_lib.h"
 #include "taler_util.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
-#include "plugin_exchangedb_common.h"
+#include "taler_donaudb_plugin.h"
+#include "plugin_donaudb_common.h"
 #include "pg_delete_aggregation_transient.h"
 #include "pg_get_link_data.h"
 #include "pg_helper.h"
@@ -268,7 +268,7 @@ TEH_PG_internal_setup (struct PostgresClosure *pg)
         "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL 
SERIALIZABLE;"),
       GNUNET_PQ_make_try_execute ("SET enable_sort=OFF;"),
       GNUNET_PQ_make_try_execute ("SET enable_seqscan=OFF;"),
-      GNUNET_PQ_make_try_execute ("SET search_path TO exchange;"),
+      GNUNET_PQ_make_try_execute ("SET search_path TO donau;"),
       GNUNET_PQ_EXECUTE_STATEMENT_END
     };
 #else
@@ -278,14 +278,14 @@ TEH_PG_internal_setup (struct PostgresClosure *pg)
       GNUNET_PQ_make_try_execute ("SET enable_sort=OFF;"),
       GNUNET_PQ_make_try_execute ("SET enable_seqscan=OFF;"),
       GNUNET_PQ_make_try_execute ("SET autocommit=OFF;"),
-      GNUNET_PQ_make_try_execute ("SET search_path TO exchange;"),
+      GNUNET_PQ_make_try_execute ("SET search_path TO donau;"),
       GNUNET_PQ_EXECUTE_STATEMENT_END
     };
 #endif
     struct GNUNET_PQ_Context *db_conn;
 
     db_conn = GNUNET_PQ_connect_with_cfg (pg->cfg,
-                                          "exchangedb-postgres",
+                                          "donaudb-postgres",
                                           NULL,
                                           es,
                                           NULL);
@@ -306,38 +306,38 @@ TEH_PG_internal_setup (struct PostgresClosure *pg)
  *
  * @param cls a configuration instance
  * @return NULL on error, otherwise a `struct
- *         TALER_EXCHANGEDB_Plugin`
+ *         TALER_DONAUDB_Plugin`
  */
 void *
-libtaler_plugin_exchangedb_postgres_init (void *cls)
+libtaler_plugin_donaudb_postgres_init (void *cls)
 {
   const struct GNUNET_CONFIGURATION_Handle *cfg = cls;
   struct PostgresClosure *pg;
-  struct TALER_EXCHANGEDB_Plugin *plugin;
+  struct TALER_DONAUDB_Plugin *plugin;
   unsigned long long dpl;
 
   pg = GNUNET_new (struct PostgresClosure);
   pg->cfg = cfg;
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_filename (cfg,
-                                               "exchangedb-postgres",
+                                               "donaudb-postgres",
                                                "SQL_DIR",
                                                &pg->sql_dir))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchangedb-postgres",
+                               "donaudb-postgres",
                                "SQL_DIR");
     GNUNET_free (pg);
     return NULL;
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (cfg,
-                                             "exchange",
+                                             "donau",
                                              "BASE_URL",
-                                             &pg->exchange_url))
+                                             &pg->donau_url))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL");
     GNUNET_free (pg->sql_dir);
     GNUNET_free (pg);
@@ -345,42 +345,42 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
   }
   if ( (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_time (cfg,
-                                             "exchangedb",
+                                             "donaudb",
                                              "IDLE_RESERVE_EXPIRATION_TIME",
                                              
&pg->idle_reserve_expiration_time))
        ||
        (GNUNET_OK !=
         GNUNET_CONFIGURATION_get_value_time (cfg,
-                                             "exchangedb",
+                                             "donaudb",
                                              "LEGAL_RESERVE_EXPIRATION_TIME",
                                              
&pg->legal_reserve_expiration_time)) )
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchangedb",
+                               "donaudb",
                                "LEGAL/IDLE_RESERVE_EXPIRATION_TIME");
-    GNUNET_free (pg->exchange_url);
+    GNUNET_free (pg->donau_url);
     GNUNET_free (pg->sql_dir);
     GNUNET_free (pg);
     return NULL;
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_time (cfg,
-                                           "exchangedb",
+                                           "donaudb",
                                            "AGGREGATOR_SHIFT",
                                            &pg->aggregator_shift))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
-                               "exchangedb",
+                               "donaudb",
                                "AGGREGATOR_SHIFT");
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_number (cfg,
-                                             "exchangedb",
+                                             "donaudb",
                                              "DEFAULT_PURSE_LIMIT",
                                              &dpl))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
-                               "exchangedb",
+                               "donaudb",
                                "DEFAULT_PURSE_LIMIT");
     pg->def_purse_limit = 1;
   }
@@ -393,7 +393,7 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
       TALER_config_get_currency (cfg,
                                  &pg->currency))
   {
-    GNUNET_free (pg->exchange_url);
+    GNUNET_free (pg->donau_url);
     GNUNET_free (pg->sql_dir);
     GNUNET_free (pg);
     return NULL;
@@ -401,13 +401,13 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
   if (GNUNET_OK !=
       TEH_PG_internal_setup (pg))
   {
-    GNUNET_free (pg->exchange_url);
+    GNUNET_free (pg->donau_url);
     GNUNET_free (pg->currency);
     GNUNET_free (pg->sql_dir);
     GNUNET_free (pg);
     return NULL;
   }
-  plugin = GNUNET_new (struct TALER_EXCHANGEDB_Plugin);
+  plugin = GNUNET_new (struct TALER_DONAUDB_Plugin);
   plugin->cls = pg;
   plugin->do_reserve_open
     = &TEH_PG_do_reserve_open;
@@ -780,13 +780,13 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
 /**
  * Shutdown Postgres database subsystem.
  *
- * @param cls a `struct TALER_EXCHANGEDB_Plugin`
+ * @param cls a `struct TALER_DONAUDB_Plugin`
  * @return NULL (always)
  */
 void *
-libtaler_plugin_exchangedb_postgres_done (void *cls)
+libtaler_plugin_donaudb_postgres_done (void *cls)
 {
-  struct TALER_EXCHANGEDB_Plugin *plugin = cls;
+  struct TALER_DONAUDB_Plugin *plugin = cls;
   struct PostgresClosure *pg = plugin->cls;
 
   if (NULL != pg->conn)
@@ -794,7 +794,7 @@ libtaler_plugin_exchangedb_postgres_done (void *cls)
     GNUNET_PQ_disconnect (pg->conn);
     pg->conn = NULL;
   }
-  GNUNET_free (pg->exchange_url);
+  GNUNET_free (pg->donau_url);
   GNUNET_free (pg->sql_dir);
   GNUNET_free (pg->currency);
   GNUNET_free (pg);
@@ -803,4 +803,4 @@ libtaler_plugin_exchangedb_postgres_done (void *cls)
 }
 
 
-/* end of plugin_exchangedb_postgres.c */
+/* end of plugin_donaudb_postgres.c */
diff --git a/src/donaudb/procedures.sql.in b/src/donaudb/procedures.sql.in
new file mode 100644
index 0000000..0a3ae5e
--- /dev/null
+++ b/src/donaudb/procedures.sql.in
@@ -0,0 +1,50 @@
+--
+-- This file is part of TALER
+-- Copyright (C) 2014--2022 Taler Systems SA
+--
+-- TALER is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 3, or (at your option) any later version.
+--
+-- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
+-- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License along with
+-- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+--
+
+BEGIN;
+
+SET search_path TO donau;
+
+#include "donau_do_amount_specific.sql"
+#include "donau_do_withdraw.sql"
+#include "donau_do_batch_withdraw.sql"
+#include "donau_do_batch_withdraw_insert.sql"
+#include "donau_do_age_withdraw.sql"
+#include "donau_do_recoup_by_reserve.sql"
+#include "donau_do_deposit.sql"
+#include "donau_do_melt.sql"
+#include "donau_do_refund.sql"
+#include "donau_do_recoup_to_reserve.sql"
+#include "donau_do_recoup_to_coin.sql"
+#include "donau_do_gc.sql"
+#include "donau_do_purse_delete.sql"
+#include "donau_do_purse_deposit.sql"
+#include "donau_do_purse_merge.sql"
+#include "donau_do_reserve_purse.sql"
+#include "donau_do_expire_purse.sql"
+#include "donau_do_history_request.sql"
+#include "donau_do_reserve_open_deposit.sql"
+#include "donau_do_reserve_open.sql"
+#include "donau_do_insert_or_update_policy_details.sql"
+#include "donau_do_insert_aml_decision.sql"
+#include "donau_do_insert_aml_officer.sql"
+#include "donau_do_insert_kyc_attributes.sql"
+#include "donau_do_reserves_in_insert.sql"
+#include "donau_do_batch_reserves_update.sql"
+#include "donau_do_get_link_data.sql"
+#include "donau_do_batch_coin_known.sql"
+
+COMMIT;
diff --git a/src/exchangedb/test_exchangedb.c b/src/donaudb/test_donaudb.c
similarity index 91%
rename from src/exchangedb/test_exchangedb.c
rename to src/donaudb/test_donaudb.c
index 6e1d3a0..46cc9f7 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/donaudb/test_donaudb.c
@@ -7,23 +7,23 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchangedb/test_exchangedb.c
+ * @file donaudb/test_donaudb.c
  * @brief test cases for DB interaction functions
  * @author Sree Harsha Totakura
  * @author Christian Grothoff
  * @author Marcello Stanisci
  */
 #include "platform.h"
-#include "taler_exchangedb_lib.h"
+#include "taler_donaudb_lib.h"
 #include "taler_json_lib.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 
 /**
  * Global result from the testcase.
@@ -55,14 +55,14 @@ static int result;
 
 
 /**
- * Currency we use.  Must match test-exchange-db-*.conf.
+ * Currency we use.  Must match test-donau-db-*.conf.
  */
 #define CURRENCY "EUR"
 
 /**
  * Database plugin under test.
  */
-static struct TALER_EXCHANGEDB_Plugin *plugin;
+static struct TALER_DONAUDB_Plugin *plugin;
 
 
 /**
@@ -219,7 +219,7 @@ check_reserve (const struct TALER_ReservePublicKeyP *pub,
                uint32_t fraction,
                const char *currency)
 {
-  struct TALER_EXCHANGEDB_Reserve reserve;
+  struct TALER_DONAUDB_Reserve reserve;
 
   reserve.pub = *pub;
   FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
@@ -271,8 +271,8 @@ create_denom_key_pair (unsigned int size,
                        const struct TALER_DenomFeeSet *fees)
 {
   struct DenomKeyPair *dkp;
-  struct TALER_EXCHANGEDB_DenominationKey dki;
-  struct TALER_EXCHANGEDB_DenominationKeyInformation issue2;
+  struct TALER_DONAUDB_DenominationKey dki;
+  struct TALER_DONAUDB_DenominationKeyInformation issue2;
 
   dkp = GNUNET_new (struct DenomKeyPair);
   GNUNET_assert (GNUNET_OK ==
@@ -284,7 +284,7 @@ create_denom_key_pair (unsigned int size,
      are not properly initialized for this test. */
   memset (&dki,
           0,
-          sizeof (struct TALER_EXCHANGEDB_DenominationKey));
+          sizeof (struct TALER_DONAUDB_DenominationKey));
   dki.denom_pub = dkp->pub;
   dki.issue.start = now;
   dki.issue.expire_withdraw
@@ -359,7 +359,7 @@ static struct TALER_Amount amount_with_fee;
  */
 #define RSA_KEY_SIZE 1024
 
-static struct TALER_EXCHANGEDB_RefreshRevealedCoin *revealed_coins;
+static struct TALER_DONAUDB_RefreshRevealedCoin *revealed_coins;
 
 static struct TALER_TransferPrivateKeyP tprivs[TALER_CNC_KAPPA];
 
@@ -378,7 +378,7 @@ static struct TALER_TransferPublicKeyP tpub;
 static void
 never_called_cb (void *cls,
                  uint32_t num_freshcoins,
-                 const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs)
+                 const struct TALER_DONAUDB_RefreshRevealedCoin *rrcs)
 {
   (void) cls;
   (void) num_freshcoins;
@@ -400,15 +400,15 @@ static void
 check_refresh_reveal_cb (
   void *cls,
   uint32_t num_freshcoins,
-  const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs)
+  const struct TALER_DONAUDB_RefreshRevealedCoin *rrcs)
 {
   (void) cls;
   /* compare the refresh commit coin arrays */
   for (unsigned int cnt = 0; cnt < num_freshcoins; cnt++)
   {
-    const struct TALER_EXCHANGEDB_RefreshRevealedCoin *acoin =
+    const struct TALER_DONAUDB_RefreshRevealedCoin *acoin =
       &revealed_coins[cnt];
-    const struct TALER_EXCHANGEDB_RefreshRevealedCoin *bcoin = &rrcs[cnt];
+    const struct TALER_DONAUDB_RefreshRevealedCoin *bcoin = &rrcs[cnt];
 
     GNUNET_assert (0 ==
                    TALER_blinded_planchet_cmp (&acoin->blinded_planchet,
@@ -440,7 +440,7 @@ static unsigned int auditor_row_cnt;
  * @param coin_sig signature from the coin
  * @param amount_with_fee amount that was deposited including fee
  * @param num_freshcoins how many coins were issued
- * @param noreveal_index which index was picked by the exchange in 
cut-and-choose
+ * @param noreveal_index which index was picked by the donau in cut-and-choose
  * @param rc what is the session hash
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
@@ -487,11 +487,11 @@ static struct DenomKeyPair **new_dkp;
 static void
 handle_link_data_cb (void *cls,
                      const struct TALER_TransferPublicKeyP *transfer_pub,
-                     const struct TALER_EXCHANGEDB_LinkList *ldl)
+                     const struct TALER_DONAUDB_LinkList *ldl)
 {
   (void) cls;
   (void) transfer_pub;
-  for (const struct TALER_EXCHANGEDB_LinkList *ldlp = ldl;
+  for (const struct TALER_DONAUDB_LinkList *ldlp = ldl;
        NULL != ldlp;
        ldlp = ldlp->next)
   {
@@ -522,7 +522,7 @@ handle_link_data_cb (void *cls,
 static void
 cb_wt_never (void *cls,
              uint64_t serial_id,
-             const struct TALER_MerchantPublicKeyP *merchant_pub,
+             const struct TALER_CharityPublicKeyP *charity_pub,
              const char *account_payto_uri,
              const struct TALER_PaytoHashP *h_payto,
              struct GNUNET_TIME_Timestamp exec_time,
@@ -534,7 +534,7 @@ cb_wt_never (void *cls,
 {
   (void) cls;
   (void) serial_id;
-  (void) merchant_pub;
+  (void) charity_pub;
   (void) account_payto_uri;
   (void) h_payto;
   (void) exec_time;
@@ -547,8 +547,8 @@ cb_wt_never (void *cls,
 }
 
 
-static struct TALER_MerchantPublicKeyP merchant_pub_wt;
-static struct TALER_MerchantWireHashP h_wire_wt;
+static struct TALER_CharityPublicKeyP charity_pub_wt;
+static struct TALER_CharityWireHashP h_wire_wt;
 static struct TALER_PrivateContractHashP h_contract_terms_wt;
 static struct TALER_CoinSpendPublicKeyP coin_pub_wt;
 static struct TALER_Amount coin_value_wt;
@@ -564,7 +564,7 @@ static struct TALER_WireTransferIdentifierRawP 
wire_out_wtid;
 static void
 cb_wt_check (void *cls,
              uint64_t rowid,
-             const struct TALER_MerchantPublicKeyP *merchant_pub,
+             const struct TALER_CharityPublicKeyP *charity_pub,
              const char *account_payto_uri,
              const struct TALER_PaytoHashP *h_payto,
              struct GNUNET_TIME_Timestamp exec_time,
@@ -578,8 +578,8 @@ cb_wt_check (void *cls,
   (void) denom_pub;
   (void) h_payto;
   GNUNET_assert (cls == &cb_wt_never);
-  GNUNET_assert (0 == GNUNET_memcmp (merchant_pub,
-                                     &merchant_pub_wt));
+  GNUNET_assert (0 == GNUNET_memcmp (charity_pub,
+                                     &charity_pub_wt));
   GNUNET_assert (0 == strcmp (account_payto_uri,
                               
"payto://iban/DE67830654080004822650?receiver-name=Test"));
   GNUNET_assert (GNUNET_TIME_timestamp_cmp (exec_time,
@@ -607,7 +607,7 @@ static struct TALER_PaytoHashP wire_target_h_payto;
  *
  * @param cls closure
  * @param rowid unique serial ID for the deposit in our DB
- * @param exchange_timestamp when did the deposit happen
+ * @param donau_timestamp when did the deposit happen
  * @param deposit deposit details
  * @param denom_pub denomination of the @a coin_pub
  * @param done flag set if the deposit was already executed (or not)
@@ -616,14 +616,14 @@ static struct TALER_PaytoHashP wire_target_h_payto;
 static enum GNUNET_GenericReturnValue
 audit_deposit_cb (void *cls,
                   uint64_t rowid,
-                  struct GNUNET_TIME_Timestamp exchange_timestamp,
-                  const struct TALER_EXCHANGEDB_Deposit *deposit,
+                  struct GNUNET_TIME_Timestamp donau_timestamp,
+                  const struct TALER_DONAUDB_Deposit *deposit,
                   const struct TALER_DenominationPublicKey *denom_pub,
                   bool done)
 {
   (void) cls;
   (void) rowid;
-  (void) exchange_timestamp;
+  (void) donau_timestamp;
   (void) deposit;
   (void) denom_pub;
   (void) done;
@@ -640,11 +640,11 @@ audit_deposit_cb (void *cls,
  * @param rowid unique serial ID for the refund in our DB
  * @param denom_pub denomination of the @a coin_pub
  * @param coin_pub public key of the coin
- * @param merchant_pub public key of the merchant
- * @param merchant_sig signature of the merchant
+ * @param charity_pub public key of the charity
+ * @param charity_sig signature of the charity
  * @param h_contract_terms hash of the proposal data in
- *                        the contract between merchant and customer
- * @param rtransaction_id refund transaction ID chosen by the merchant
+ *                        the contract between charity and donor
+ * @param rtransaction_id refund transaction ID chosen by the charity
  * @param full_refund the deposit
  * @param amount_with_fee amount that was deposited including fee
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
@@ -654,8 +654,8 @@ audit_refund_cb (void *cls,
                  uint64_t rowid,
                  const struct TALER_DenominationPublicKey *denom_pub,
                  const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                 const struct TALER_MerchantPublicKeyP *merchant_pub,
-                 const struct TALER_MerchantSignatureP *merchant_sig,
+                 const struct TALER_CharityPublicKeyP *charity_pub,
+                 const struct TALER_CharitySignatureP *charity_sig,
                  const struct TALER_PrivateContractHashP *h_contract_terms,
                  uint64_t rtransaction_id,
                  bool full_refund,
@@ -665,8 +665,8 @@ audit_refund_cb (void *cls,
   (void) rowid;
   (void) denom_pub;
   (void) coin_pub;
-  (void) merchant_pub;
-  (void) merchant_sig;
+  (void) charity_pub;
+  (void) charity_sig;
   (void) h_contract_terms;
   (void) rtransaction_id;
   (void) amount_with_fee;
@@ -756,7 +756,7 @@ test_gc (void)
   struct DenomKeyPair *dkp;
   struct GNUNET_TIME_Timestamp now;
   struct GNUNET_TIME_Timestamp past;
-  struct TALER_EXCHANGEDB_DenominationKeyInformation issue2;
+  struct TALER_DONAUDB_DenominationKeyInformation issue2;
   struct TALER_DenominationHashP denom_hash;
 
   now = GNUNET_TIME_timestamp_get ();
@@ -934,9 +934,9 @@ audit_wire_cb (void *cls,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-test_wire_out (const struct TALER_EXCHANGEDB_BatchDeposit *bd)
+test_wire_out (const struct TALER_DONAUDB_BatchDeposit *bd)
 {
-  const struct TALER_EXCHANGEDB_CoinDepositInformation *deposit = &bd->cdis[0];
+  const struct TALER_DONAUDB_CoinDepositInformation *deposit = &bd->cdis[0];
   struct TALER_PaytoHashP h_payto;
 
   GNUNET_assert (0 < bd->num_cdis);
@@ -958,7 +958,7 @@ test_wire_out (const struct TALER_EXCHANGEDB_BatchDeposit 
*bd)
           plugin->start_deferred_wire_out (plugin->cls));
 
   /* setup values for wire transfer aggregation data */
-  merchant_pub_wt = bd->merchant_pub;
+  charity_pub_wt = bd->charity_pub;
   h_contract_terms_wt = bd->h_contract_terms;
   coin_pub_wt = deposit->coin.coin_pub;
 
@@ -982,7 +982,7 @@ test_wire_out (const struct TALER_EXCHANGEDB_BatchDeposit 
*bd)
     struct TALER_Amount coin_contribution2;
     struct TALER_Amount coin_fee2;
     struct GNUNET_TIME_Timestamp execution_time2;
-    struct TALER_EXCHANGEDB_KycStatus kyc;
+    struct TALER_DONAUDB_KycStatus kyc;
     enum TALER_AmlDecisionState aml;
 
     h_contract_terms_wt2.hash.bits[0]++;
@@ -991,7 +991,7 @@ test_wire_out (const struct TALER_EXCHANGEDB_BatchDeposit 
*bd)
                                                 &h_contract_terms_wt2,
                                                 &h_wire_wt,
                                                 &coin_pub_wt,
-                                                &merchant_pub_wt,
+                                                &charity_pub_wt,
                                                 &pending,
                                                 &wtid2,
                                                 &execution_time2,
@@ -1029,7 +1029,7 @@ test_wire_out (const struct TALER_EXCHANGEDB_BatchDeposit 
*bd)
     struct TALER_Amount coin_contribution2;
     struct TALER_Amount coin_fee2;
     struct GNUNET_TIME_Timestamp execution_time2;
-    struct TALER_EXCHANGEDB_KycStatus kyc;
+    struct TALER_DONAUDB_KycStatus kyc;
     enum TALER_AmlDecisionState aml = TALER_AML_FROZEN;
 
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
@@ -1037,7 +1037,7 @@ test_wire_out (const struct TALER_EXCHANGEDB_BatchDeposit 
*bd)
                                                 &h_contract_terms_wt,
                                                 &h_wire_wt,
                                                 &coin_pub_wt,
-                                                &merchant_pub_wt,
+                                                &charity_pub_wt,
                                                 &pending,
                                                 &wtid2,
                                                 &execution_time2,
@@ -1070,7 +1070,7 @@ drop:
 
 
 /**
- * Function called about recoups the exchange has to perform.
+ * Function called about recoups the donau has to perform.
  *
  * @param cls closure with the expected value for @a coin_blind
  * @param rowid row identifier used to uniquely identify the recoup operation
@@ -1116,13 +1116,13 @@ drop:
  * Function called on deposits that are past their due date
  * and have not yet seen a wire transfer.
  *
- * @param cls closure a `struct TALER_EXCHANGEDB_Deposit *`
+ * @param cls closure a `struct TALER_DONAUDB_Deposit *`
  * @param rowid deposit table row of the coin's deposit
  * @param coin_pub public key of the coin
  * @param amount value of the deposit, including fee
  * @param payto_uri where should the funds be wired
  * @param deadline what was the requested wire transfer deadline
- * @param done did the exchange claim that it made a transfer?
+ * @param done did the donau claim that it made a transfer?
  */
 static void
 wire_missing_cb (void *cls,
@@ -1133,7 +1133,7 @@ wire_missing_cb (void *cls,
                  struct GNUNET_TIME_Timestamp deadline,
                  bool done)
 {
-  const struct TALER_EXCHANGEDB_CoinDepositInformation *deposit = cls;
+  const struct TALER_DONAUDB_CoinDepositInformation *deposit = cls;
 
   (void) payto_uri;
   (void) deadline;
@@ -1162,7 +1162,7 @@ wire_missing_cb (void *cls,
  * Callback invoked with information about refunds applicable
  * to a particular coin.
  *
- * @param cls closure with the `struct TALER_EXCHANGEDB_Refund *` we expect to 
get
+ * @param cls closure with the `struct TALER_DONAUDB_Refund *` we expect to get
  * @param amount_with_fee amount being refunded
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
@@ -1170,7 +1170,7 @@ static enum GNUNET_GenericReturnValue
 check_refund_cb (void *cls,
                  const struct TALER_Amount *amount_with_fee)
 {
-  const struct TALER_EXCHANGEDB_Refund *refund = cls;
+  const struct TALER_DONAUDB_Refund *refund = cls;
 
   if (0 != TALER_amount_cmp (amount_with_fee,
                              &refund->details.refund_amount))
@@ -1199,19 +1199,19 @@ run (void *cls)
   struct TALER_ReservePublicKeyP reserve_pub3;
   struct DenomKeyPair *dkp = NULL;
   struct TALER_MasterSignatureP master_sig;
-  struct TALER_EXCHANGEDB_CollectableBlindcoin cbc;
-  struct TALER_EXCHANGEDB_CollectableBlindcoin cbc2;
-  struct TALER_EXCHANGEDB_ReserveHistory *rh = NULL;
-  struct TALER_EXCHANGEDB_ReserveHistory *rh_head;
-  struct TALER_EXCHANGEDB_BankTransfer *bt;
-  struct TALER_EXCHANGEDB_CollectableBlindcoin *withdraw;
-  struct TALER_EXCHANGEDB_CoinDepositInformation deposit;
-  struct TALER_EXCHANGEDB_BatchDeposit bd;
+  struct TALER_DONAUDB_CollectableBlindcoin cbc;
+  struct TALER_DONAUDB_CollectableBlindcoin cbc2;
+  struct TALER_DONAUDB_ReserveHistory *rh = NULL;
+  struct TALER_DONAUDB_ReserveHistory *rh_head;
+  struct TALER_DONAUDB_BankTransfer *bt;
+  struct TALER_DONAUDB_CollectableBlindcoin *withdraw;
+  struct TALER_DONAUDB_CoinDepositInformation deposit;
+  struct TALER_DONAUDB_BatchDeposit bd;
   struct TALER_CoinSpendPublicKeyP cpub2;
-  struct TALER_MerchantPublicKeyP mpub2;
-  struct TALER_EXCHANGEDB_Refund refund;
-  struct TALER_EXCHANGEDB_TransactionList *tl;
-  struct TALER_EXCHANGEDB_TransactionList *tlp;
+  struct TALER_CharityPublicKeyP mpub2;
+  struct TALER_DONAUDB_Refund refund;
+  struct TALER_DONAUDB_TransactionList *tl;
+  struct TALER_DONAUDB_TransactionList *tlp;
   const char *sndr = "payto://x-taler-bank/localhost:8080/1";
   const char *rcvr = "payto://x-taler-bank/localhost:8080/2";
   const uint32_t num_partitions = 10;
@@ -1223,13 +1223,13 @@ run (void *cls)
   struct TALER_CoinPubHashP c_hash;
   uint64_t known_coin_id;
   uint64_t rrc_serial;
-  struct TALER_EXCHANGEDB_Refresh refresh;
+  struct TALER_DONAUDB_Refresh refresh;
   struct TALER_DenominationPublicKey *new_denom_pubs = NULL;
   uint64_t reserve_out_serial_id;
   uint64_t melt_serial_id;
   struct TALER_PlanchetMasterSecretP ps;
   union TALER_DenominationBlindingKeyP bks;
-  struct TALER_ExchangeWithdrawValues alg_values = {
+  struct TALER_DonauWithdrawValues alg_values = {
     /* RSA is simpler, and for the DB there is no real difference between
        CS and RSA, just one should be used, so we use RSA */
     .cipher = TALER_DENOMINATION_RSA
@@ -1253,7 +1253,7 @@ run (void *cls)
   ZR_BLK (&cbc);
   ZR_BLK (&cbc2);
   if (NULL ==
-      (plugin = TALER_EXCHANGEDB_plugin_load (cfg)))
+      (plugin = TALER_DONAUDB_plugin_load (cfg)))
   {
     result = 77;
     return;
@@ -1306,12 +1306,12 @@ run (void *cls)
           plugin->commit (plugin->cls));
   now = GNUNET_TIME_timestamp_get ();
   {
-    struct TALER_EXCHANGEDB_ReserveInInfo reserve = {
+    struct TALER_DONAUDB_ReserveInInfo reserve = {
       .reserve_pub = &reserve_pub,
       .balance = &value,
       .execution_time = now,
       .sender_account_details = sndr,
-      .exchange_account_name = "exchange-account-1",
+      .donau_account_name = "donau-account-1",
       .wire_reference = 4
     };
     enum GNUNET_DB_QueryStatus qsr;
@@ -1332,12 +1332,12 @@ run (void *cls)
   now = GNUNET_TIME_timestamp_get ();
   RND_BLK (&reserve_pub2);
   {
-    struct TALER_EXCHANGEDB_ReserveInInfo reserve = {
+    struct TALER_DONAUDB_ReserveInInfo reserve = {
       .reserve_pub = &reserve_pub2,
       .balance = &value,
       .execution_time = now,
       .sender_account_details = sndr,
-      .exchange_account_name = "exchange-account-1",
+      .donau_account_name = "donau-account-1",
       .wire_reference = 5
     };
     enum GNUNET_DB_QueryStatus qsr;
@@ -1512,7 +1512,7 @@ run (void *cls)
     struct TALER_DenominationHashP dph;
     struct TALER_AgeCommitmentHash agh;
 
-    FAILIF (TALER_EXCHANGEDB_CKS_ADDED !=
+    FAILIF (TALER_DONAUDB_CKS_ADDED !=
             plugin->ensure_coin_known (plugin->cls,
                                        &deposit.coin,
                                        &known_coin_id,
@@ -1553,13 +1553,13 @@ run (void *cls)
     bool conflict;
 
     refund.coin = deposit.coin;
-    refund.details.merchant_pub = bd.merchant_pub;
-    RND_BLK (&refund.details.merchant_sig);
+    refund.details.charity_pub = bd.charity_pub;
+    RND_BLK (&refund.details.charity_sig);
     refund.details.h_contract_terms = bd.h_contract_terms;
     refund.details.rtransaction_id = 1;
     refund.details.refund_amount = value;
     refund.details.refund_fee = fees.refund;
-    RND_BLK (&refund.details.merchant_sig);
+    RND_BLK (&refund.details.charity_sig);
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->do_refund (plugin->cls,
                                &refund,
@@ -1577,7 +1577,7 @@ run (void *cls)
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->select_refunds_by_coin (plugin->cls,
                                             &refund.coin.coin_pub,
-                                            &refund.details.merchant_pub,
+                                            &refund.details.charity_pub,
                                             &refund.details.h_contract_terms,
                                             &check_refund_cb,
                                             &refund));
@@ -1606,7 +1606,7 @@ run (void *cls)
 
   /* test get_melt */
   {
-    struct TALER_EXCHANGEDB_Melt ret_refresh_session;
+    struct TALER_DONAUDB_Melt ret_refresh_session;
 
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->get_melt (plugin->cls,
@@ -1653,10 +1653,10 @@ run (void *cls)
                                        struct TALER_DenominationPublicKey);
     revealed_coins
       = GNUNET_new_array (MELT_NEW_COINS,
-                          struct TALER_EXCHANGEDB_RefreshRevealedCoin);
+                          struct TALER_DONAUDB_RefreshRevealedCoin);
     for (unsigned int cnt = 0; cnt < MELT_NEW_COINS; cnt++)
     {
-      struct TALER_EXCHANGEDB_RefreshRevealedCoin *ccoin;
+      struct TALER_DONAUDB_RefreshRevealedCoin *ccoin;
       struct GNUNET_TIME_Timestamp now;
       struct TALER_BlindedRsaPlanchet *rp;
       struct TALER_BlindedPlanchet *bp;
@@ -1681,7 +1681,7 @@ run (void *cls)
                                   rp->blinded_msg_size);
       TALER_denom_pub_hash (&new_dkp[cnt]->pub,
                             &ccoin->h_denom_pub);
-      ccoin->exchange_vals = alg_values;
+      ccoin->donau_vals = alg_values;
       TALER_coin_ev_hash (bp,
                           &ccoin->h_denom_pub,
                           &ccoin->coin_envelope_hash);
@@ -1737,7 +1737,7 @@ run (void *cls)
     FAILIF (0 >= qs);
     {
       /* Just to test fetching a coin with melt history */
-      struct TALER_EXCHANGEDB_TransactionList *tl;
+      struct TALER_DONAUDB_TransactionList *tl;
       enum GNUNET_DB_QueryStatus qs;
 
       qs = plugin->get_coin_transactions (plugin->cls,
@@ -1763,7 +1763,7 @@ run (void *cls)
 
     new_coin = deposit.coin; /* steal basic data */
     RND_BLK (&new_coin.coin_pub);
-    FAILIF (TALER_EXCHANGEDB_CKS_ADDED !=
+    FAILIF (TALER_DONAUDB_CKS_ADDED !=
             plugin->ensure_coin_known (plugin->cls,
                                        &new_coin,
                                        &new_known_coin_id,
@@ -1787,8 +1787,8 @@ run (void *cls)
 
   /* do recoup */
   {
-    struct TALER_EXCHANGEDB_Reserve pre_reserve;
-    struct TALER_EXCHANGEDB_Reserve post_reserve;
+    struct TALER_DONAUDB_Reserve pre_reserve;
+    struct TALER_DONAUDB_Reserve post_reserve;
     struct TALER_Amount delta;
     bool recoup_ok;
     bool internal_failure;
@@ -1887,7 +1887,7 @@ run (void *cls)
   {
     switch (rh_head->type)
     {
-    case TALER_EXCHANGEDB_RO_BANK_TO_EXCHANGE:
+    case TALER_DONAUDB_RO_BANK_TO_DONAU:
       bt = rh_head->details.bank;
       FAILIF (0 !=
               GNUNET_memcmp (&bt->reserve_pub,
@@ -1898,7 +1898,7 @@ run (void *cls)
       FAILIF (0 != strcmp (CURRENCY, bt->amount.currency));
       FAILIF (NULL == bt->sender_account_details);
       break;
-    case TALER_EXCHANGEDB_RO_WITHDRAW_COIN:
+    case TALER_DONAUDB_RO_WITHDRAW_COIN:
       withdraw = rh_head->details.withdraw;
       FAILIF (0 !=
               GNUNET_memcmp (&withdraw->reserve_pub,
@@ -1907,9 +1907,9 @@ run (void *cls)
               GNUNET_memcmp (&withdraw->h_coin_envelope,
                              &cbc.h_coin_envelope));
       break;
-    case TALER_EXCHANGEDB_RO_RECOUP_COIN:
+    case TALER_DONAUDB_RO_RECOUP_COIN:
       {
-        struct TALER_EXCHANGEDB_Recoup *recoup = rh_head->details.recoup;
+        struct TALER_DONAUDB_Recoup *recoup = rh_head->details.recoup;
 
         FAILIF (0 !=
                 GNUNET_memcmp (&recoup->coin_sig,
@@ -1928,9 +1928,9 @@ run (void *cls)
                                   &value));
       }
       break;
-    case TALER_EXCHANGEDB_RO_EXCHANGE_TO_BANK:
+    case TALER_DONAUDB_RO_DONAU_TO_BANK:
       {
-        struct TALER_EXCHANGEDB_ClosingTransfer *closing
+        struct TALER_DONAUDB_ClosingTransfer *closing
           = rh_head->details.closing;
 
         FAILIF (0 !=
@@ -1942,22 +1942,22 @@ run (void *cls)
                                        &fee_closing));
       }
       break;
-    case TALER_EXCHANGEDB_RO_PURSE_MERGE:
+    case TALER_DONAUDB_RO_PURSE_MERGE:
       {
         /* FIXME: not yet tested */
         break;
       }
-    case TALER_EXCHANGEDB_RO_HISTORY_REQUEST:
+    case TALER_DONAUDB_RO_HISTORY_REQUEST:
       {
         /* FIXME: not yet tested */
         break;
       }
-    case TALER_EXCHANGEDB_RO_OPEN_REQUEST:
+    case TALER_DONAUDB_RO_OPEN_REQUEST:
       {
         /* FIXME: not yet tested */
         break;
       }
-    case TALER_EXCHANGEDB_RO_CLOSE_REQUEST:
+    case TALER_DONAUDB_RO_CLOSE_REQUEST:
       {
         /* FIXME: not yet tested */
         break;
@@ -1998,9 +1998,9 @@ run (void *cls)
   {
     switch (tlp->type)
     {
-    case TALER_EXCHANGEDB_TT_DEPOSIT:
+    case TALER_DONAUDB_TT_DEPOSIT:
       {
-        struct TALER_EXCHANGEDB_DepositListEntry *have = tlp->details.deposit;
+        struct TALER_DONAUDB_DepositListEntry *have = tlp->details.deposit;
 
         /* Note: we're not comparing the denomination keys, as there is
            still the question of whether we should even bother exporting
@@ -2009,8 +2009,8 @@ run (void *cls)
                 GNUNET_memcmp (&have->csig,
                                &deposit.csig));
         FAILIF (0 !=
-                GNUNET_memcmp (&have->merchant_pub,
-                               &bd.merchant_pub));
+                GNUNET_memcmp (&have->charity_pub,
+                               &bd.charity_pub));
         FAILIF (0 !=
                 GNUNET_memcmp (&have->h_contract_terms,
                                &bd.h_contract_terms));
@@ -2032,23 +2032,23 @@ run (void *cls)
         break;
       }
     /* this coin pub was actually never melted... */
-    case TALER_EXCHANGEDB_TT_MELT:
+    case TALER_DONAUDB_TT_MELT:
       FAILIF (0 !=
               GNUNET_memcmp (&refresh.rc,
                              &tlp->details.melt->rc));
       matched |= 2;
       break;
-    case TALER_EXCHANGEDB_TT_REFUND:
+    case TALER_DONAUDB_TT_REFUND:
       {
-        struct TALER_EXCHANGEDB_RefundListEntry *have = tlp->details.refund;
+        struct TALER_DONAUDB_RefundListEntry *have = tlp->details.refund;
 
         /* Note: we're not comparing the denomination keys, as there is
            still the question of whether we should even bother exporting
            them here. */
-        FAILIF (0 != GNUNET_memcmp (&have->merchant_pub,
-                                    &refund.details.merchant_pub));
-        FAILIF (0 != GNUNET_memcmp (&have->merchant_sig,
-                                    &refund.details.merchant_sig));
+        FAILIF (0 != GNUNET_memcmp (&have->charity_pub,
+                                    &refund.details.charity_pub));
+        FAILIF (0 != GNUNET_memcmp (&have->charity_sig,
+                                    &refund.details.charity_sig));
         FAILIF (0 != GNUNET_memcmp (&have->h_contract_terms,
                                     &refund.details.h_contract_terms));
         FAILIF (have->rtransaction_id != refund.details.rtransaction_id);
@@ -2059,9 +2059,9 @@ run (void *cls)
         matched |= 4;
         break;
       }
-    case TALER_EXCHANGEDB_TT_RECOUP:
+    case TALER_DONAUDB_TT_RECOUP:
       {
-        struct TALER_EXCHANGEDB_RecoupListEntry *recoup =
+        struct TALER_DONAUDB_RecoupListEntry *recoup =
           tlp->details.recoup;
 
         FAILIF (0 != GNUNET_memcmp (&recoup->coin_sig,
@@ -2075,7 +2075,7 @@ run (void *cls)
         matched |= 8;
         break;
       }
-    case TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP:
+    case TALER_DONAUDB_TT_OLD_COIN_RECOUP:
       /* TODO: check fields better... */
       matched |= 16;
       break;
@@ -2109,12 +2109,12 @@ run (void *cls)
                                           &alg_values,
                                           &dkp->pub));
   RND_BLK (&deposit.csig);
-  RND_BLK (&bd.merchant_pub);
+  RND_BLK (&bd.charity_pub);
   RND_BLK (&bd.h_contract_terms);
   RND_BLK (&bd.wire_salt);
   bd.receiver_wire_account =
     "payto://iban/DE67830654080004822650?receiver-name=Test";
-  TALER_merchant_wire_signature_hash (
+  TALER_charity_wire_signature_hash (
     "payto://iban/DE67830654080004822650?receiver-name=Test",
     &bd.wire_salt,
     &h_wire_wt);
@@ -2127,7 +2127,7 @@ run (void *cls)
     struct TALER_DenominationHashP dph;
     struct TALER_AgeCommitmentHash agh;
 
-    FAILIF (TALER_EXCHANGEDB_CKS_ADDED !=
+    FAILIF (TALER_DONAUDB_CKS_ADDED !=
             plugin->ensure_coin_known (plugin->cls,
                                        &deposit.coin,
                                        &known_coin_id,
@@ -2138,7 +2138,7 @@ run (void *cls)
     struct GNUNET_TIME_Timestamp now;
     struct GNUNET_TIME_Timestamp r;
     struct TALER_Amount deposit_fee;
-    struct TALER_MerchantWireHashP h_wire;
+    struct TALER_CharityWireHashP h_wire;
     bool balance_ok;
     uint32_t bad_idx;
     bool ctr_conflict;
@@ -2153,7 +2153,7 @@ run (void *cls)
                                 &balance_ok,
                                 &bad_idx,
                                 &ctr_conflict));
-    TALER_merchant_wire_signature_hash (bd.receiver_wire_account,
+    TALER_charity_wire_signature_hash (bd.receiver_wire_account,
                                         &bd.wire_salt,
                                         &h_wire);
     FAILIF (1 !=
@@ -2161,7 +2161,7 @@ run (void *cls)
                                    &bd.h_contract_terms,
                                    &h_wire,
                                    &deposit.coin.coin_pub,
-                                   &bd.merchant_pub,
+                                   &bd.charity_pub,
                                    bd.refund_deadline,
                                    &deposit_fee,
                                    &r));
@@ -2197,17 +2197,17 @@ run (void *cls)
   result = 8;
   sleep (2); /* give deposit time to be ready */
   {
-    struct TALER_MerchantPublicKeyP merchant_pub2;
+    struct TALER_CharityPublicKeyP charity_pub2;
     char *payto_uri2;
 
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->get_ready_deposit (plugin->cls,
                                        0,
                                        INT32_MAX,
-                                       &merchant_pub2,
+                                       &charity_pub2,
                                        &payto_uri2));
-    FAILIF (0 != GNUNET_memcmp (&merchant_pub2,
-                                &bd.merchant_pub));
+    FAILIF (0 != GNUNET_memcmp (&charity_pub2,
+                                &bd.charity_pub));
     FAILIF (0 != strcmp (payto_uri2,
                          bd.receiver_wire_account));
     TALER_payto_hash (payto_uri2,
@@ -2225,7 +2225,7 @@ run (void *cls)
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->aggregate (plugin->cls,
                                &wire_target_h_payto,
-                               &bd.merchant_pub,
+                               &bd.charity_pub,
                                &wtid,
                                &total));
   }
@@ -2249,7 +2249,7 @@ run (void *cls)
     FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
             plugin->select_aggregation_transient (plugin->cls,
                                                   &wire_target_h_payto,
-                                                  &bd.merchant_pub,
+                                                  &bd.charity_pub,
                                                   "x-bank",
                                                   &wtid2,
                                                   &total2));
@@ -2257,14 +2257,14 @@ run (void *cls)
             plugin->create_aggregation_transient (plugin->cls,
                                                   &wire_target_h_payto,
                                                   "x-bank",
-                                                  &bd.merchant_pub,
+                                                  &bd.charity_pub,
                                                   &wtid,
                                                   0,
                                                   &total));
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->select_aggregation_transient (plugin->cls,
                                                   &wire_target_h_payto,
-                                                  &bd.merchant_pub,
+                                                  &bd.charity_pub,
                                                   "x-bank",
                                                   &wtid2,
                                                   &total2));
@@ -2286,7 +2286,7 @@ run (void *cls)
     FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
             plugin->select_aggregation_transient (plugin->cls,
                                                   &wire_target_h_payto,
-                                                  &bd.merchant_pub,
+                                                  &bd.charity_pub,
                                                   "x-bank",
                                                   &wtid2,
                                                   &total2));
@@ -2303,7 +2303,7 @@ run (void *cls)
     FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
             plugin->select_aggregation_transient (plugin->cls,
                                                   &wire_target_h_payto,
-                                                  &bd.merchant_pub,
+                                                  &bd.charity_pub,
                                                   "x-bank",
                                                   &wtid2,
                                                   &total2));
@@ -2315,13 +2315,13 @@ run (void *cls)
   FAILIF (GNUNET_OK !=
           plugin->start (plugin->cls,
                          "test-2"));
-  RND_BLK (&mpub2); /* should fail if merchant is different */
+  RND_BLK (&mpub2); /* should fail if charity is different */
   {
-    struct TALER_MerchantWireHashP h_wire;
+    struct TALER_CharityWireHashP h_wire;
     struct GNUNET_TIME_Timestamp r;
     struct TALER_Amount deposit_fee;
 
-    TALER_merchant_wire_signature_hash (bd.receiver_wire_account,
+    TALER_charity_wire_signature_hash (bd.receiver_wire_account,
                                         &bd.wire_salt,
                                         &h_wire);
     FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
@@ -2339,7 +2339,7 @@ run (void *cls)
                                    &bd.h_contract_terms,
                                    &h_wire,
                                    &cpub2,
-                                   &bd.merchant_pub,
+                                   &bd.charity_pub,
                                    bd.refund_deadline,
                                    &deposit_fee,
                                    &r));
@@ -2432,7 +2432,7 @@ cleanup:
   TALER_blinded_denom_sig_free (&cbc.sig);
   TALER_blinded_denom_sig_free (&cbc2.sig);
   dkp = NULL;
-  TALER_EXCHANGEDB_plugin_unload (plugin);
+  TALER_DONAUDB_plugin_unload (plugin);
   plugin = NULL;
 }
 
@@ -2458,7 +2458,7 @@ main (int argc,
                     NULL);
   plugin_name++;
   (void) GNUNET_asprintf (&testname,
-                          "test-exchange-db-%s",
+                          "test-donau-db-%s",
                           plugin_name);
   (void) GNUNET_asprintf (&config_filename,
                           "%s.conf",
@@ -2482,4 +2482,4 @@ main (int argc,
 }
 
 
-/* end of test_exchangedb.c */
+/* end of test_donaudb.c */
diff --git a/src/exchangedb/versioning.sql b/src/donaudb/versioning.sql
similarity index 99%
rename from src/exchangedb/versioning.sql
rename to src/donaudb/versioning.sql
index 444cf95..1bf45c5 100644
--- a/src/exchangedb/versioning.sql
+++ b/src/donaudb/versioning.sql
@@ -23,7 +23,7 @@
 --
 -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
--- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE
+-- IMPLIED WARRANTIES OF CHARITYABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE
 -- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
 -- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 -- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
diff --git a/src/exchange/.gitignore b/src/exchange/.gitignore
deleted file mode 100644
index bcfdb7e..0000000
--- a/src/exchange/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-taler-exchange-dbinit
-taler-exchange-keycheck
-taler-exchange-keyup
-taler-exchange-pursemod
-taler-exchange-reservemod
-taler-exchange-httpd
-taler-exchange-wirewatch
-test_taler_exchange_wirewatch-postgres
-test_taler_exchange_httpd_home/.config/taler/account-1.json
-taler-exchange-closer
-taler-exchange-transfer
-taler-exchange-router
-taler-exchange-expire
diff --git a/src/exchange/Makefile.am b/src/exchange/Makefile.am
deleted file mode 100644
index 607ea91..0000000
--- a/src/exchange/Makefile.am
+++ /dev/null
@@ -1,232 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = \
- -I$(top_srcdir)/src/include \
- $(LIBGCRYPT_CFLAGS) \
- $(POSTGRESQL_CPPFLAGS)
-
-if USE_COVERAGE
-  AM_CFLAGS = --coverage -O0
-  XLIB = -lgcov
-endif
-
-pkgcfgdir = $(prefix)/share/taler/config.d/
-
-pkgcfg_DATA = \
-  exchange.conf
-
-# Programs
-bin_SCRIPTS = \
-  taler-exchange-kyc-aml-pep-trigger.sh
-
-bin_PROGRAMS = \
-  taler-exchange-aggregator \
-  taler-exchange-closer \
-  taler-exchange-drain \
-  taler-exchange-expire \
-  taler-exchange-httpd \
-  taler-exchange-router \
-  taler-exchange-transfer \
-  taler-exchange-wirewatch
-
-taler_exchange_aggregator_SOURCES = \
-  taler-exchange-aggregator.c
-taler_exchange_aggregator_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/kyclogic/libtalerkyclogic.la \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-
-taler_exchange_closer_SOURCES = \
-  taler-exchange-closer.c
-taler_exchange_closer_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-taler_exchange_drain_SOURCES = \
-  taler-exchange-drain.c
-taler_exchange_drain_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-taler_exchange_expire_SOURCES = \
-  taler-exchange-expire.c
-taler_exchange_expire_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-taler_exchange_router_SOURCES = \
-  taler-exchange-router.c
-taler_exchange_router_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-taler_exchange_transfer_SOURCES = \
-  taler-exchange-transfer.c
-taler_exchange_transfer_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-taler_exchange_wirewatch_SOURCES = \
-  taler-exchange-wirewatch.c
-taler_exchange_wirewatch_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  -ljansson \
-  -lgnunetcurl \
-  -lgnunetutil \
-  $(XLIB)
-
-
-taler_exchange_httpd_SOURCES = \
-  taler-exchange-httpd.c taler-exchange-httpd.h \
-  taler-exchange-httpd_auditors.c taler-exchange-httpd_auditors.h \
-  taler-exchange-httpd_aml-decision.c taler-exchange-httpd_aml-decision.h \
-  taler-exchange-httpd_aml-decision-get.c \
-  taler-exchange-httpd_aml-decisions-get.c \
-  taler-exchange-httpd_batch-deposit.c taler-exchange-httpd_batch-deposit.h \
-  taler-exchange-httpd_batch-withdraw.c taler-exchange-httpd_batch-withdraw.h \
-  taler-exchange-httpd_age-withdraw.c taler-exchange-httpd_age-withdraw.h \
-  taler-exchange-httpd_age-withdraw_reveal.c 
taler-exchange-httpd_age-withdraw_reveal.h \
-  taler-exchange-httpd_common_deposit.c taler-exchange-httpd_common_deposit.h \
-  taler-exchange-httpd_common_kyc.c taler-exchange-httpd_common_kyc.h \
-  taler-exchange-httpd_config.c taler-exchange-httpd_config.h \
-  taler-exchange-httpd_contract.c taler-exchange-httpd_contract.h \
-  taler-exchange-httpd_csr.c taler-exchange-httpd_csr.h \
-  taler-exchange-httpd_db.c taler-exchange-httpd_db.h \
-  taler-exchange-httpd_deposits_get.c taler-exchange-httpd_deposits_get.h \
-  taler-exchange-httpd_extensions.c taler-exchange-httpd_extensions.h \
-  taler-exchange-httpd_keys.c taler-exchange-httpd_keys.h \
-  taler-exchange-httpd_kyc-check.c taler-exchange-httpd_kyc-check.h \
-  taler-exchange-httpd_kyc-proof.c taler-exchange-httpd_kyc-proof.h \
-  taler-exchange-httpd_kyc-wallet.c taler-exchange-httpd_kyc-wallet.h \
-  taler-exchange-httpd_kyc-webhook.c taler-exchange-httpd_kyc-webhook.h \
-  taler-exchange-httpd_link.c taler-exchange-httpd_link.h \
-  taler-exchange-httpd_management.h \
-  taler-exchange-httpd_management_aml-officers.c \
-  taler-exchange-httpd_management_auditors.c \
-  taler-exchange-httpd_management_auditors_AP_disable.c \
-  taler-exchange-httpd_management_denominations_HDP_revoke.c \
-  taler-exchange-httpd_management_drain.c \
-  taler-exchange-httpd_management_extensions.c \
-  taler-exchange-httpd_management_global_fees.c \
-  taler-exchange-httpd_management_partners.c \
-  taler-exchange-httpd_management_post_keys.c \
-  taler-exchange-httpd_management_signkey_EP_revoke.c \
-  taler-exchange-httpd_management_wire_enable.c \
-  taler-exchange-httpd_management_wire_disable.c \
-  taler-exchange-httpd_management_wire_fees.c \
-  taler-exchange-httpd_melt.c taler-exchange-httpd_melt.h \
-  taler-exchange-httpd_metrics.c taler-exchange-httpd_metrics.h \
-  taler-exchange-httpd_mhd.c taler-exchange-httpd_mhd.h \
-  taler-exchange-httpd_purses_create.c taler-exchange-httpd_purses_create.h \
-  taler-exchange-httpd_purses_deposit.c taler-exchange-httpd_purses_deposit.h \
-  taler-exchange-httpd_purses_delete.c taler-exchange-httpd_purses_delete.h \
-  taler-exchange-httpd_purses_get.c taler-exchange-httpd_purses_get.h \
-  taler-exchange-httpd_purses_merge.c taler-exchange-httpd_purses_merge.h \
-  taler-exchange-httpd_recoup.c taler-exchange-httpd_recoup.h \
-  taler-exchange-httpd_recoup-refresh.c taler-exchange-httpd_recoup-refresh.h \
-  taler-exchange-httpd_refreshes_reveal.c 
taler-exchange-httpd_refreshes_reveal.h \
-  taler-exchange-httpd_refund.c taler-exchange-httpd_refund.h \
-  taler-exchange-httpd_reserves_attest.c 
taler-exchange-httpd_reserves_attest.h \
-  taler-exchange-httpd_reserves_close.c taler-exchange-httpd_reserves_close.h \
-  taler-exchange-httpd_reserves_get.c taler-exchange-httpd_reserves_get.h \
-  taler-exchange-httpd_reserves_get_attest.c 
taler-exchange-httpd_reserves_get_attest.h \
-  taler-exchange-httpd_reserves_history.c 
taler-exchange-httpd_reserves_history.h \
-  taler-exchange-httpd_reserves_open.c taler-exchange-httpd_reserves_open.h \
-  taler-exchange-httpd_reserves_purse.c taler-exchange-httpd_reserves_purse.h \
-  taler-exchange-httpd_reserves_status.c 
taler-exchange-httpd_reserves_status.h \
-  taler-exchange-httpd_responses.c taler-exchange-httpd_responses.h \
-  taler-exchange-httpd_terms.c taler-exchange-httpd_terms.h \
-  taler-exchange-httpd_transfers_get.c taler-exchange-httpd_transfers_get.h \
-  taler-exchange-httpd_withdraw.c taler-exchange-httpd_withdraw.h
-
-taler_exchange_httpd_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/mhd/libtalermhd.la \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  $(top_builddir)/src/templating/libtalertemplating.la \
-  $(top_builddir)/src/kyclogic/libtalerkyclogic.la \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/extensions/libtalerextensions.la \
-  -lmicrohttpd \
-  -lgnunetcurl \
-  -lgnunetutil \
-  -lgnunetjson \
-  -ljansson \
-  -lcurl \
-  -lz \
-  $(XLIB)
-
-# Testcases
-
-AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export 
PATH=$${TALER_PREFIX:-@prefix@}/bin:$$PATH;
-
-check_SCRIPTS = \
-  test_taler_exchange_httpd.sh
-if HAVE_EXPENSIVE_TESTS
-check_SCRIPTS += \
-  test_taler_exchange_httpd_afl.sh
-endif
-
-.NOTPARALLEL:
-TESTS = \
-  $(check_SCRIPTS)
-
-# Distribution
-
-EXTRA_DIST = \
-  
test_taler_exchange_httpd_home/.local/share/taler/exchange/offline-keys/master.priv
 \
-  test_taler_exchange_httpd.conf \
-  test_taler_exchange_unix.conf \
-  test_taler_exchange_httpd.get \
-  test_taler_exchange_httpd.post \
-  exchange.conf \
-  $(bin_SCRIPTS) \
-  $(check_SCRIPTS)
diff --git a/src/exchangedb/.gitignore b/src/exchangedb/.gitignore
deleted file mode 100644
index 6e67fad..0000000
--- a/src/exchangedb/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-test-exchangedb-postgres
-bench-db-postgres
-perf_deposits_get_ready-postgres
-perf_get_link_data-postgres
-perf_reserves_in_insert-postgres
-perf_select_refunds_by_coin-postgres
-exchange-0002.sql
-procedures.sql
-exchange-0003.sql
-perf-exchangedb-reserves-in-insert-postgres
-test-exchangedb-batch-reserves-in-insert-postgres
-test-exchangedb-by-j-postgres
-test-exchangedb-populate-link-data-postgres
-test-exchangedb-populate-ready-deposit-postgres
-test-exchangedb-populate-select-refunds-by-coin-postgres
-exchange-0004.sql
diff --git a/src/exchangedb/procedures.sql.in b/src/exchangedb/procedures.sql.in
deleted file mode 100644
index cc67249..0000000
--- a/src/exchangedb/procedures.sql.in
+++ /dev/null
@@ -1,50 +0,0 @@
---
--- This file is part of TALER
--- Copyright (C) 2014--2022 Taler Systems SA
---
--- TALER is free software; you can redistribute it and/or modify it under the
--- terms of the GNU General Public License as published by the Free Software
--- Foundation; either version 3, or (at your option) any later version.
---
--- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
--- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
--- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License along with
--- TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
---
-
-BEGIN;
-
-SET search_path TO exchange;
-
-#include "exchange_do_amount_specific.sql"
-#include "exchange_do_withdraw.sql"
-#include "exchange_do_batch_withdraw.sql"
-#include "exchange_do_batch_withdraw_insert.sql"
-#include "exchange_do_age_withdraw.sql"
-#include "exchange_do_recoup_by_reserve.sql"
-#include "exchange_do_deposit.sql"
-#include "exchange_do_melt.sql"
-#include "exchange_do_refund.sql"
-#include "exchange_do_recoup_to_reserve.sql"
-#include "exchange_do_recoup_to_coin.sql"
-#include "exchange_do_gc.sql"
-#include "exchange_do_purse_delete.sql"
-#include "exchange_do_purse_deposit.sql"
-#include "exchange_do_purse_merge.sql"
-#include "exchange_do_reserve_purse.sql"
-#include "exchange_do_expire_purse.sql"
-#include "exchange_do_history_request.sql"
-#include "exchange_do_reserve_open_deposit.sql"
-#include "exchange_do_reserve_open.sql"
-#include "exchange_do_insert_or_update_policy_details.sql"
-#include "exchange_do_insert_aml_decision.sql"
-#include "exchange_do_insert_aml_officer.sql"
-#include "exchange_do_insert_kyc_attributes.sql"
-#include "exchange_do_reserves_in_insert.sql"
-#include "exchange_do_batch_reserves_update.sql"
-#include "exchange_do_get_link_data.sql"
-#include "exchange_do_batch_coin_known.sql"
-
-COMMIT;
diff --git a/src/include/Makefile.am b/src/include/Makefile.am
index 45d74ab..87f2500 100644
--- a/src/include/Makefile.am
+++ b/src/include/Makefile.am
@@ -13,9 +13,9 @@ talerinclude_HEADERS = \
   taler_curl_lib.h \
   taler_dbevents.h \
   taler_error_codes.h \
-  taler_exchange_service.h \
-  taler_exchangedb_lib.h \
-  taler_exchangedb_plugin.h \
+  taler_donau_service.h \
+  taler_donaudb_lib.h \
+  taler_donaudb_plugin.h \
   taler_extensions.h \
   taler_extensions_policy.h \
   taler_fakebank_lib.h \
diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index 67e5ff7..bc6ab67 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -161,40 +161,40 @@ struct TALER_AttributeKeyP
 
 
 /**
- * @brief Type of public keys to for merchant authorizations.
- * Merchants can issue refunds using the corresponding
+ * @brief Type of public keys to for charity authorizations.
+ * Charities can issue refunds using the corresponding
  * private key.
  */
-struct TALER_MerchantPublicKeyP
+struct TALER_CharityPublicKeyP
 {
   /**
-   * Taler uses EdDSA for merchants.
+   * Taler uses EdDSA for charities.
    */
   struct GNUNET_CRYPTO_EddsaPublicKey eddsa_pub;
 };
 
 
 /**
- * @brief Type of private keys for merchant authorizations.
- * Merchants can issue refunds using the corresponding
+ * @brief Type of private keys for charity authorizations.
+ * Charities can issue refunds using the corresponding
  * private key.
  */
-struct TALER_MerchantPrivateKeyP
+struct TALER_CharityPrivateKeyP
 {
   /**
-   * Taler uses EdDSA for merchants.
+   * Taler uses EdDSA for charities.
    */
   struct GNUNET_CRYPTO_EddsaPrivateKey eddsa_priv;
 };
 
 
 /**
- * @brief Type of signatures made by merchants.
+ * @brief Type of signatures made by charities.
  */
-struct TALER_MerchantSignatureP
+struct TALER_CharitySignatureP
 {
   /**
-   * Taler uses EdDSA for merchants.
+   * Taler uses EdDSA for charities.
    */
   struct GNUNET_CRYPTO_EddsaSignature eddsa_sig;
 };
@@ -253,23 +253,23 @@ struct TALER_ContractDiffiePrivateP
 
 
 /**
- * @brief Type of online public keys used by the exchange to sign
+ * @brief Type of online public keys used by the donau to sign
  * messages.
  */
-struct TALER_ExchangePublicKeyP
+struct TALER_DonauPublicKeyP
 {
   /**
-   * Taler uses EdDSA for online exchange message signing.
+   * Taler uses EdDSA for online donau message signing.
    */
   struct GNUNET_CRYPTO_EddsaPublicKey eddsa_pub;
 };
 
 
 /**
- * @brief Type of online public keys used by the exchange to
+ * @brief Type of online public keys used by the donau to
  * sign messages.
  */
-struct TALER_ExchangePrivateKeyP
+struct TALER_DonauPrivateKeyP
 {
   /**
    * Taler uses EdDSA for online signatures sessions.
@@ -279,9 +279,9 @@ struct TALER_ExchangePrivateKeyP
 
 
 /**
- * @brief Type of signatures used by the exchange to sign messages online.
+ * @brief Type of signatures used by the donau to sign messages online.
  */
-struct TALER_ExchangeSignatureP
+struct TALER_DonauSignatureP
 {
   /**
    * Taler uses EdDSA for online signatures sessions.
@@ -291,7 +291,7 @@ struct TALER_ExchangeSignatureP
 
 
 /**
- * @brief Type of the offline master public key used by the exchange.
+ * @brief Type of the offline master public key used by the donau.
  */
 struct TALER_MasterPublicKeyP
 {
@@ -303,7 +303,7 @@ struct TALER_MasterPublicKeyP
 
 
 /**
- * @brief Type of the offline master public keys used by the exchange.
+ * @brief Type of the offline master public keys used by the donau.
  */
 struct TALER_MasterPrivateKeyP
 {
@@ -315,7 +315,7 @@ struct TALER_MasterPrivateKeyP
 
 
 /**
- * @brief Type of signatures by the offline master public key used by the 
exchange.
+ * @brief Type of signatures by the offline master public key used by the 
donau.
  */
 struct TALER_MasterSignatureP
 {
@@ -588,7 +588,7 @@ enum TALER_AmlDecisionState
 /**
  * Possible algorithms for confirmation code generation.
  */
-enum TALER_MerchantConfirmationAlgorithm
+enum TALER_CharityConfirmationAlgorithm
 {
 
   /**
@@ -654,7 +654,7 @@ struct TALER_AttributeEncryptionKeyP
 
 
 /**
- * Token used for access control to the merchant's unclaimed
+ * Token used for access control to the charity's unclaimed
  * orders.
  */
 struct TALER_ClaimTokenP
@@ -667,7 +667,7 @@ struct TALER_ClaimTokenP
 
 
 /**
- * Salt used to hash a merchant's payto:// URI to
+ * Salt used to hash a charity's payto:// URI to
  * compute the "h_wire" (say for deposit requests).
  */
 struct TALER_WireSaltP
@@ -753,7 +753,7 @@ struct TALER_DenominationHashP
 
 /**
  * Hash used to represent the private part
- * of a contract between merchant and consumer.
+ * of a contract between charity and consumer.
  */
 struct TALER_PrivateContractHashP
 {
@@ -778,9 +778,9 @@ struct TALER_ExtensionPolicyHashP
 
 /**
  * Hash used to represent the salted hash of a
- * merchant's bank account.
+ * charity's bank account.
  */
-struct TALER_MerchantWireHashP
+struct TALER_CharityWireHashP
 {
   /**
    * Actual hash value.
@@ -872,26 +872,26 @@ struct TALER_DenomFeeSetNBOP
 {
 
   /**
-   * The fee the exchange charges when a coin of this type is withdrawn.
+   * The fee the donau charges when a coin of this type is withdrawn.
    * (can be zero).
    */
   struct TALER_AmountNBO withdraw;
 
   /**
-   * The fee the exchange charges when a coin of this type is deposited.
+   * The fee the donau charges when a coin of this type is deposited.
    * (can be zero).
    */
   struct TALER_AmountNBO deposit;
 
   /**
-   * The fee the exchange charges when a coin of this type is refreshed.
+   * The fee the donau charges when a coin of this type is refreshed.
    * (can be zero).
    */
   struct TALER_AmountNBO refresh;
 
   /**
-   * The fee the exchange charges when a coin of this type is refunded.
-   * (can be zero).  Note that refund fees are charged to the customer;
+   * The fee the donau charges when a coin of this type is refunded.
+   * (can be zero).  Note that refund fees are charged to the donor;
    * if a refund is given, the deposit fee is also refunded.
    */
   struct TALER_AmountNBO refund;
@@ -907,13 +907,13 @@ struct TALER_WireFeeSetNBOP
 {
 
   /**
-   * The fee the exchange charges for wiring funds
-   * to a merchant.
+   * The fee the donau charges for wiring funds
+   * to a charity.
    */
   struct TALER_AmountNBO wire;
 
   /**
-   * The fee the exchange charges for closing a reserve
+   * The fee the donau charges for closing a reserve
    * and wiring the funds back to the origin account.
    */
   struct TALER_AmountNBO closing;
@@ -929,19 +929,19 @@ struct TALER_GlobalFeeSetNBOP
 {
 
   /**
-   * The fee the exchange charges for returning the history of a reserve or
+   * The fee the donau charges for returning the history of a reserve or
    * account.
    */
   struct TALER_AmountNBO history;
 
   /**
-   * The fee the exchange charges for keeping an account or reserve open for a
+   * The fee the donau charges for keeping an account or reserve open for a
    * year.
    */
   struct TALER_AmountNBO account;
 
   /**
-   * The fee the exchange charges if a purse is abandoned and this was not
+   * The fee the donau charges if a purse is abandoned and this was not
    * covered by the account limit.
    */
   struct TALER_AmountNBO purse;
@@ -962,7 +962,7 @@ GNUNET_NETWORK_STRUCT_END
  */
 char *
 TALER_build_pos_confirmation (const char *pos_key,
-                              enum TALER_MerchantConfirmationAlgorithm pos_alg,
+                              enum TALER_CharityConfirmationAlgorithm pos_alg,
                               const struct TALER_Amount *total,
                               struct GNUNET_TIME_Timestamp ts);
 
@@ -974,26 +974,26 @@ struct TALER_DenomFeeSet
 {
 
   /**
-   * The fee the exchange charges when a coin of this type is withdrawn.
+   * The fee the donau charges when a coin of this type is withdrawn.
    * (can be zero).
    */
   struct TALER_Amount withdraw;
 
   /**
-   * The fee the exchange charges when a coin of this type is deposited.
+   * The fee the donau charges when a coin of this type is deposited.
    * (can be zero).
    */
   struct TALER_Amount deposit;
 
   /**
-   * The fee the exchange charges when a coin of this type is refreshed.
+   * The fee the donau charges when a coin of this type is refreshed.
    * (can be zero).
    */
   struct TALER_Amount refresh;
 
   /**
-   * The fee the exchange charges when a coin of this type is refunded.
-   * (can be zero).  Note that refund fees are charged to the customer;
+   * The fee the donau charges when a coin of this type is refunded.
+   * (can be zero).  Note that refund fees are charged to the donor;
    * if a refund is given, the deposit fee is also refunded.
    */
   struct TALER_Amount refund;
@@ -1008,12 +1008,12 @@ struct TALER_WireFeeSet
 {
 
   /**
-   * The fee the exchange charges for wiring funds to a merchant.
+   * The fee the donau charges for wiring funds to a charity.
    */
   struct TALER_Amount wire;
 
   /**
-   * The fee the exchange charges for closing a reserve
+   * The fee the donau charges for closing a reserve
    * and wiring the funds back to the origin account.
    */
   struct TALER_Amount closing;
@@ -1029,19 +1029,19 @@ struct TALER_GlobalFeeSet
 {
 
   /**
-   * The fee the exchange charges for returning the
+   * The fee the donau charges for returning the
    * history of a reserve or account.
    */
   struct TALER_Amount history;
 
   /**
-   * The fee the exchange charges for keeping
+   * The fee the donau charges for keeping
    * an account or reserve open for a year.
    */
   struct TALER_Amount account;
 
   /**
-   * The fee the exchange charges if a purse
+   * The fee the donau charges if a purse
    * is abandoned and this was not covered by
    * the account limit.
    */
@@ -1278,7 +1278,7 @@ struct TALER_BlindedDenominationSignature
  *   |      |         |         |         |
  *   oooooooo  oo1oo1o1  o1o1o1o1  ooooooo1
  *
- * A value of 0 means that the exchange does not support the extension for
+ * A value of 0 means that the donau does not support the extension for
  * age-restriction.
  *
  * For a non-0 age mask, the 0th bit always must be set, otherwise the age
@@ -1513,7 +1513,7 @@ struct TALER_CoinPublicInfo
 
 /**
  * Details for one of the /deposit operations that the
- * exchange combined into a single wire transfer.
+ * donau combined into a single wire transfer.
  */
 struct TALER_TrackTransferDetails
 {
@@ -1533,7 +1533,7 @@ struct TALER_TrackTransferDetails
   struct TALER_Amount coin_value;
 
   /**
-   * Fee charged by the exchange for the deposit.
+   * Fee charged by the donau for the deposit.
    */
   struct TALER_Amount coin_fee;
 
@@ -1543,7 +1543,7 @@ struct TALER_TrackTransferDetails
 /**
  * @brief Type of algorithm specific Values for withdrawal
  */
-struct TALER_ExchangeWithdrawValues
+struct TALER_DonauWithdrawValues
 {
 
   /**
@@ -1584,7 +1584,7 @@ TALER_denom_pub_free (struct TALER_DenominationPublicKey 
*denom_pub);
 void
 TALER_planchet_setup_coin_priv (
   const struct TALER_PlanchetMasterSecretP *ps,
-  const struct TALER_ExchangeWithdrawValues *alg_values,
+  const struct TALER_DonauWithdrawValues *alg_values,
   struct TALER_CoinSpendPrivateKeyP *coin_priv);
 
 
@@ -1674,7 +1674,7 @@ TALER_denom_blind (const struct 
TALER_DenominationPublicKey *dk,
                    const union TALER_DenominationBlindingKeyP *coin_bks,
                    const struct TALER_AgeCommitmentHash *age_commitment_hash,
                    const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                   const struct TALER_ExchangeWithdrawValues *alg_values,
+                   const struct TALER_DonauWithdrawValues *alg_values,
                    struct TALER_CoinPubHashP *c_hash,
                    struct TALER_BlindedPlanchet *blinded_planchet);
 
@@ -1712,7 +1712,7 @@ TALER_denom_sig_unblind (
   const struct TALER_BlindedDenominationSignature *bdenom_sig,
   const union TALER_DenominationBlindingKeyP *bks,
   const struct TALER_CoinPubHashP *c_hash,
-  const struct TALER_ExchangeWithdrawValues *alg_values,
+  const struct TALER_DonauWithdrawValues *alg_values,
   const struct TALER_DenominationPublicKey *denom_pub);
 
 
@@ -1951,9 +1951,9 @@ TALER_payto_hash (const char *payto,
 
 
 /**
- * Details about a planchet that the customer wants to obtain
+ * Details about a planchet that the donor wants to obtain
  * a withdrawal authorization.  This is the information that
- * will need to be sent to the exchange to obtain the blind
+ * will need to be sent to the donau to obtain the blind
  * signature required to turn a planchet into a coin.
  */
 struct TALER_PlanchetDetail
@@ -1979,7 +1979,7 @@ struct TALER_FreshCoin
 {
 
   /**
-   * The exchange's signature over the coin's public key.
+   * The donau's signature over the coin's public key.
    */
   struct TALER_DenominationSignature sig;
 
@@ -2034,7 +2034,7 @@ struct TALER_WireTransferIdentifierRawP
    * at least two lines of 27 ASCII characters to encode a transaction
    * subject or "details", for a total of 54 characters.  (The payment
    * system protocols often support more lines, but the forms presented
-   * to customers are usually limited to 54 characters.)
+   * to donors are usually limited to 54 characters.)
    *
    * With a Base32-encoding of 5 bit per character, this gives us 270
    * bits or (rounded down) 33 bytes.  So we use the first 32 bytes to
@@ -2060,9 +2060,9 @@ struct TALER_WadIdentifierP
 
 /**
  * Binary information encoded in Crockford's Base32 in wire transfer
- * subjects of transfers from Taler to a merchant.  The actual value
- * is chosen by the exchange and has no particular semantics, other than
- * being unique so that the exchange can lookup details about the wire
+ * subjects of transfers from Taler to a charity.  The actual value
+ * is chosen by the donau and has no particular semantics, other than
+ * being unique so that the donau can lookup details about the wire
  * transfer when needed.
  */
 struct TALER_WireTransferIdentifierP
@@ -2142,7 +2142,7 @@ TALER_refresh_master_setup_random (
 
 /**
  * Create a blinding secret @a bks given the client's @a ps and the alg_values
- * from the exchange.
+ * from the donau.
  *
  * @param ps secret to derive blindings from
  * @param alg_values withdraw values containing cipher and additional CS values
@@ -2151,7 +2151,7 @@ TALER_refresh_master_setup_random (
 void
 TALER_planchet_blinding_secret_create (
   const struct TALER_PlanchetMasterSecretP *ps,
-  const struct TALER_ExchangeWithdrawValues *alg_values,
+  const struct TALER_DonauWithdrawValues *alg_values,
   union TALER_DenominationBlindingKeyP *bks);
 
 
@@ -2164,14 +2164,14 @@ TALER_planchet_blinding_secret_create (
  * @param coin_priv coin private key
  * @param ach hash of age commitment to bind to this coin, maybe NULL
  * @param[out] c_hash set to the hash of the public key of the coin (needed 
later)
- * @param[out] pd set to the planchet detail for TALER_MERCHANT_tip_pickup() 
and
+ * @param[out] pd set to the planchet detail for TALER_CHARITY_tip_pickup() and
  *               other withdraw operations, `pd->blinded_planchet.cipher` will 
be set
  *               to cipher from @a dk
  * @return #GNUNET_OK on success
  */
 enum GNUNET_GenericReturnValue
 TALER_planchet_prepare (const struct TALER_DenominationPublicKey *dk,
-                        const struct TALER_ExchangeWithdrawValues *alg_values,
+                        const struct TALER_DonauWithdrawValues *alg_values,
                         const union TALER_DenominationBlindingKeyP *bks,
                         const struct TALER_CoinSpendPrivateKeyP *coin_priv,
                         const struct TALER_AgeCommitmentHash *ach,
@@ -2200,15 +2200,15 @@ TALER_planchet_detail_free (struct TALER_PlanchetDetail 
*pd);
 
 /**
  * Obtain a coin from the planchet's secrets and the blind signature
- * of the exchange.
+ * of the donau.
  *
  * @param dk denomination key, must match what was given to 
#TALER_planchet_prepare()
- * @param blind_sig blind signature from the exchange
+ * @param blind_sig blind signature from the donau
  * @param bks blinding key secret
  * @param coin_priv private key of the coin
  * @param ach hash of age commitment that is bound to this coin, maybe NULL
  * @param c_hash hash of the coin's public key for verification of the 
signature
- * @param alg_values values obtained from the exchange for the withdrawal
+ * @param alg_values values obtained from the donau for the withdrawal
  * @param[out] coin set to the details of the fresh coin
  * @return #GNUNET_OK on success
  */
@@ -2220,7 +2220,7 @@ TALER_planchet_to_coin (
   const struct TALER_CoinSpendPrivateKeyP *coin_priv,
   const struct TALER_AgeCommitmentHash *ach,
   const struct TALER_CoinPubHashP *c_hash,
-  const struct TALER_ExchangeWithdrawValues *alg_values,
+  const struct TALER_DonauWithdrawValues *alg_values,
   struct TALER_FreshCoin *coin);
 
 
@@ -2898,7 +2898,7 @@ TALER_CRYPTO_helper_cs_disconnect (
 /**
  * Handle for talking to an online key signing helper.
  */
-struct TALER_CRYPTO_ExchangeSignHelper;
+struct TALER_CRYPTO_DonauSignHelper;
 
 /**
  * Function called with information about available keys for signing.  Usually
@@ -2910,17 +2910,17 @@ struct TALER_CRYPTO_ExchangeSignHelper;
  *                 zero if the key has been revoked or purged
  * @param validity_duration how long does the key remain available for signing;
  *                 zero if the key has been revoked or purged
- * @param exchange_pub the public key itself, NULL if the key was revoked or 
purged
+ * @param donau_pub the public key itself, NULL if the key was revoked or 
purged
  * @param sm_pub public key of the security module, NULL if the key was 
revoked or purged
  * @param sm_sig signature from the security module, NULL if the key was 
revoked or purged
  *               The signature was already verified against @a sm_pub.
  */
 typedef void
-(*TALER_CRYPTO_ExchangeKeyStatusCallback)(
+(*TALER_CRYPTO_DonauKeyStatusCallback)(
   void *cls,
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Relative validity_duration,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_SecurityModulePublicKeyP *sm_pub,
   const struct TALER_SecurityModuleSignatureP *sm_sig);
 
@@ -2933,10 +2933,10 @@ typedef void
  * @param ekc_cls closure for @a ekc
  * @return NULL on error (such as bad @a cfg).
  */
-struct TALER_CRYPTO_ExchangeSignHelper *
+struct TALER_CRYPTO_DonauSignHelper *
 TALER_CRYPTO_helper_esign_connect (
   const struct GNUNET_CONFIGURATION_Handle *cfg,
-  TALER_CRYPTO_ExchangeKeyStatusCallback ekc,
+  TALER_CRYPTO_DonauKeyStatusCallback ekc,
   void *ekc_cls);
 
 
@@ -2945,12 +2945,12 @@ TALER_CRYPTO_helper_esign_connect (
  * Should be called whenever it is important that the key material status is
  * current, like when handling a "/keys" request.  This function basically
  * briefly checks if there are messages from the helper announcing changes to
- * exchange online signing keys.
+ * donau online signing keys.
  *
  * @param esh helper process connection
  */
 void
-TALER_CRYPTO_helper_esign_poll (struct TALER_CRYPTO_ExchangeSignHelper *esh);
+TALER_CRYPTO_helper_esign_poll (struct TALER_CRYPTO_DonauSignHelper *esh);
 
 
 /**
@@ -2965,16 +2965,16 @@ TALER_CRYPTO_helper_esign_poll (struct 
TALER_CRYPTO_ExchangeSignHelper *esh);
  *
  * @param esh helper process connection
  * @param purpose message to sign (must extend beyond the purpose)
- * @param[out] exchange_pub set to the public key used for the signature upon 
success
- * @param[out] exchange_sig set to the signature upon success
+ * @param[out] donau_pub set to the public key used for the signature upon 
success
+ * @param[out] donau_sig set to the signature upon success
  * @return the error code (or #TALER_EC_NONE on success)
  */
 enum TALER_ErrorCode
 TALER_CRYPTO_helper_esign_sign_ (
-  struct TALER_CRYPTO_ExchangeSignHelper *esh,
+  struct TALER_CRYPTO_DonauSignHelper *esh,
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *exchange_pub,
-  struct TALER_ExchangeSignatureP *exchange_sig);
+  struct TALER_DonauPublicKeyP *donau_pub,
+  struct TALER_DonauSignatureP *donau_sig);
 
 
 /**
@@ -3006,7 +3006,7 @@ TALER_CRYPTO_helper_esign_sign_ (
 
 
 /**
- * Ask the helper to revoke the public key @a exchange_pub .
+ * Ask the helper to revoke the public key @a donau_pub .
  * Will cause the helper to tell all clients that the key is now unavailable,
  * and to create a replacement key.
  *
@@ -3017,12 +3017,12 @@ TALER_CRYPTO_helper_esign_sign_ (
  * the revocation worked, clients must watch the signing key status callback.
  *
  * @param esh helper to process connection
- * @param exchange_pub the public key to revoke
+ * @param donau_pub the public key to revoke
  */
 void
 TALER_CRYPTO_helper_esign_revoke (
-  struct TALER_CRYPTO_ExchangeSignHelper *esh,
-  const struct TALER_ExchangePublicKeyP *exchange_pub);
+  struct TALER_CRYPTO_DonauSignHelper *esh,
+  const struct TALER_DonauPublicKeyP *donau_pub);
 
 
 /**
@@ -3032,7 +3032,7 @@ TALER_CRYPTO_helper_esign_revoke (
  */
 void
 TALER_CRYPTO_helper_esign_disconnect (
-  struct TALER_CRYPTO_ExchangeSignHelper *esh);
+  struct TALER_CRYPTO_DonauSignHelper *esh);
 
 
 /* ********************* wallet signing ************************** */
@@ -3190,7 +3190,7 @@ TALER_wallet_purse_status_verify (
 /**
  * Sign a request to deposit a coin into a purse.
  *
- * @param exchange_base_url URL of the exchange hosting the purse
+ * @param donau_base_url URL of the donau hosting the purse
  * @param purse_pub purse’s public key
  * @param amount amount of the coin's value to transfer to the purse
  * @param h_denom_pub hash of the coin's denomination
@@ -3200,7 +3200,7 @@ TALER_wallet_purse_status_verify (
  */
 void
 TALER_wallet_purse_deposit_sign (
-  const char *exchange_base_url,
+  const char *donau_base_url,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_Amount *amount,
   const struct TALER_DenominationHashP *h_denom_pub,
@@ -3212,7 +3212,7 @@ TALER_wallet_purse_deposit_sign (
 /**
  * Verify a purse deposit request.
  *
- * @param exchange_base_url URL of the exchange hosting the purse
+ * @param donau_base_url URL of the donau hosting the purse
  * @param purse_pub purse’s public key
  * @param amount amount of the coin's value to transfer to the purse
  * @param h_denom_pub hash of the coin's denomination
@@ -3223,7 +3223,7 @@ TALER_wallet_purse_deposit_sign (
  */
 enum GNUNET_GenericReturnValue
 TALER_wallet_purse_deposit_verify (
-  const char *exchange_base_url,
+  const char *donau_base_url,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_Amount *amount,
   const struct TALER_DenominationHashP *h_denom_pub,
@@ -3507,7 +3507,7 @@ TALER_wallet_account_setup_verify (
 
 
 /**
- * Sign request to the exchange to confirm certain
+ * Sign request to the donau to confirm certain
  * @a details about the owner of a reserve.
  *
  * @param request_timestamp when was the request created
@@ -3524,7 +3524,7 @@ TALER_wallet_reserve_attest_request_sign (
 
 
 /**
- * Verify request to the exchange to confirm certain
+ * Verify request to the donau to confirm certain
  * @a details about the owner of a reserve.
  *
  * @param request_timestamp when was the request created
@@ -3546,30 +3546,30 @@ TALER_wallet_reserve_attest_request_verify (
  *
  * @param amount the amount to be deposited
  * @param deposit_fee the deposit fee we expect to pay
- * @param h_wire hash of the merchant’s account details
- * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the exchange)
+ * @param h_wire hash of the charity’s account details
+ * @param h_contract_terms hash of the contact of the charity with the donor 
(further details are never disclosed to the donau)
  * @param wallet_data_hash hash over wallet inputs into the contract (maybe 
NULL)
  * @param h_age_commitment hash over the age commitment, if applicable to the 
denomination (maybe NULL)
  * @param h_policy hash over the policy extension
  * @param h_denom_pub hash of the coin denomination's public key
  * @param coin_priv coin’s private key
  * @param wallet_timestamp timestamp when the contract was finalized, must not 
be too far in the future
- * @param merchant_pub the public key of the merchant (used to identify the 
merchant for refund requests)
- * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the exchange (can be zero if refunds are not allowed); must 
not be after the @a wire_deadline
+ * @param charity_pub the public key of the charity (used to identify the 
charity for refund requests)
+ * @param refund_deadline date until which the charity can issue a refund to 
the donor via the donau (can be zero if refunds are not allowed); must not be 
after the @a wire_deadline
  * @param[out] coin_sig set to the signature made with purpose 
#TALER_SIGNATURE_WALLET_COIN_DEPOSIT
  */
 void
 TALER_wallet_deposit_sign (
   const struct TALER_Amount *amount,
   const struct TALER_Amount *deposit_fee,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct GNUNET_HashCode *wallet_data_hash,
   const struct TALER_AgeCommitmentHash *h_age_commitment,
   const struct TALER_ExtensionPolicyHashP *h_policy,
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp wallet_timestamp,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_CoinSpendPrivateKeyP *coin_priv,
   struct TALER_CoinSpendSignatureP *coin_sig);
@@ -3580,15 +3580,15 @@ TALER_wallet_deposit_sign (
  *
  * @param amount the amount to be deposited
  * @param deposit_fee the deposit fee we expect to pay
- * @param h_wire hash of the merchant’s account details
- * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the exchange)
+ * @param h_wire hash of the charity’s account details
+ * @param h_contract_terms hash of the contact of the charity with the donor 
(further details are never disclosed to the donau)
  * @param wallet_data_hash hash over wallet inputs into the contract (maybe 
NULL)
  * @param h_age_commitment hash over the age commitment (maybe all zeroes, if 
not applicable to the denomination)
  * @param h_policy hash over the policy extension
  * @param h_denom_pub hash of the coin denomination's public key
  * @param wallet_timestamp timestamp when the contract was finalized, must not 
be too far in the future
- * @param merchant_pub the public key of the merchant (used to identify the 
merchant for refund requests)
- * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the exchange (can be zero if refunds are not allowed); must 
not be after the @a wire_deadline
+ * @param charity_pub the public key of the charity (used to identify the 
charity for refund requests)
+ * @param refund_deadline date until which the charity can issue a refund to 
the donor via the donau (can be zero if refunds are not allowed); must not be 
after the @a wire_deadline
  * @param coin_pub coin’s public key
  * @param coin_sig the signature made with purpose 
#TALER_SIGNATURE_WALLET_COIN_DEPOSIT
  * @return #GNUNET_OK if the signature is valid
@@ -3597,14 +3597,14 @@ enum GNUNET_GenericReturnValue
 TALER_wallet_deposit_verify (
   const struct TALER_Amount *amount,
   const struct TALER_Amount *deposit_fee,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct GNUNET_HashCode *wallet_data_hash,
   const struct TALER_AgeCommitmentHash *h_age_commitment,
   const struct TALER_ExtensionPolicyHashP *h_policy,
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp wallet_timestamp,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendSignatureP *coin_sig);
@@ -3769,20 +3769,20 @@ TALER_wallet_age_withdraw_verify (
   const struct TALER_ReserveSignatureP *reserve_sig);
 
 /**
- * Verify exchange melt confirmation.
+ * Verify donau melt confirmation.
  *
  * @param rc refresh session this is about
- * @param noreveal_index gamma value chosen by the exchange
- * @param exchange_pub public signing key used
- * @param exchange_sig signature to check
+ * @param noreveal_index gamma value chosen by the donau
+ * @param donau_pub public signing key used
+ * @param donau_sig signature to check
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_melt_confirmation_verify (
+TALER_donau_melt_confirmation_verify (
   const struct TALER_RefreshCommitmentP *rc,
   uint32_t noreveal_index,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig);
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig);
 
 
 /**
@@ -3913,194 +3913,194 @@ TALER_wallet_reserve_status_sign (
   struct TALER_ReserveSignatureP *reserve_sig);
 
 
-/* ********************* merchant signing ************************** */
+/* ********************* charity signing ************************** */
 
 
 /**
- * Create merchant signature approving a refund.
+ * Create charity signature approving a refund.
  *
  * @param coin_pub coin to be refunded
  * @param h_contract_terms contract to be refunded
  * @param rtransaction_id unique ID for this (partial) refund
  * @param amount amount to be refunded
- * @param merchant_priv private key to sign with
- * @param[out] merchant_sig where to write the signature
+ * @param charity_priv private key to sign with
+ * @param[out] charity_sig where to write the signature
  */
 void
-TALER_merchant_refund_sign (
+TALER_charity_refund_sign (
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   uint64_t rtransaction_id,
   const struct TALER_Amount *amount,
-  const struct TALER_MerchantPrivateKeyP *merchant_priv,
-  struct TALER_MerchantSignatureP *merchant_sig);
+  const struct TALER_CharityPrivateKeyP *charity_priv,
+  struct TALER_CharitySignatureP *charity_sig);
 
 
 /**
- * Verify merchant signature approving a refund.
+ * Verify charity signature approving a refund.
  *
  * @param coin_pub coin to be refunded
  * @param h_contract_terms contract to be refunded
  * @param rtransaction_id unique ID for this (partial) refund
  * @param amount amount to be refunded
- * @param merchant_pub public key of the merchant
- * @param merchant_sig signature to verify
+ * @param charity_pub public key of the charity
+ * @param charity_sig signature to verify
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_merchant_refund_verify (
+TALER_charity_refund_verify (
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   uint64_t rtransaction_id,
   const struct TALER_Amount *amount,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_MerchantSignatureP *merchant_sig);
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_CharitySignatureP *charity_sig);
 
 
-/* ********************* exchange deposit signing ************************* */
+/* ********************* donau deposit signing ************************* */
 
 /**
  * Sign a deposit.
  *
  * @param h_contract_terms hash of contract terms
- * @param h_wire hash of the merchant account details
+ * @param h_wire hash of the charity account details
  * @param coin_pub coin to be deposited
- * @param merchant_priv private key to sign with
- * @param[out] merchant_sig where to write the signature
+ * @param charity_priv private key to sign with
+ * @param[out] charity_sig where to write the signature
  */
 void
-TALER_merchant_deposit_sign (
+TALER_charity_deposit_sign (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPrivateKeyP *merchant_priv,
-  struct TALER_MerchantSignatureP *merchant_sig);
+  const struct TALER_CharityPrivateKeyP *charity_priv,
+  struct TALER_CharitySignatureP *charity_sig);
 
 
 /**
  * Verify a deposit.
  *
- * @param merchant merchant public key
+ * @param charity charity public key
  * @param coin_pub public key of the deposited coin
  * @param h_contract_terms hash of contract terms
- * @param h_wire hash of the merchant account details
- * @param merchant_sig signature of the merchant
+ * @param h_wire hash of the charity account details
+ * @param charity_sig signature of the charity
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_merchant_deposit_verify (
-  const struct TALER_MerchantPublicKeyP *merchant,
+TALER_charity_deposit_verify (
+  const struct TALER_CharityPublicKeyP *charity,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
-  const struct TALER_MerchantSignatureP *merchant_sig);
+  const struct TALER_CharityWireHashP *h_wire,
+  const struct TALER_CharitySignatureP *charity_sig);
 
 
-/* ********************* exchange online signing ************************** */
+/* ********************* donau online signing ************************** */
 
 
 /**
  * Signature of a function that signs the message in @a purpose with the
- * exchange's signing key.
+ * donau's signing key.
  *
  * The @a purpose data is the beginning of the data of which the signature is
  * to be created. The `size` field in @a purpose must correctly indicate the
  * number of bytes of the data structure, including its header. *
  * @param purpose the message to sign
- * @param[out] pub set to the current public signing key of the exchange
+ * @param[out] pub set to the current public signing key of the donau
  * @param[out] sig signature over purpose using current signing key
  * @return #TALER_EC_NONE on success
  */
 typedef enum TALER_ErrorCode
-(*TALER_ExchangeSignCallback)(
+(*TALER_DonauSignCallback)(
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Signature of a function that signs the message in @a purpose with the
- * exchange's signing key.
+ * donau's signing key.
  *
  * The @a purpose data is the beginning of the data of which the signature is
  * to be created. The `size` field in @a purpose must correctly indicate the
  * number of bytes of the data structure, including its header. *
  * @param cls closure
  * @param purpose the message to sign
- * @param[out] pub set to the current public signing key of the exchange
+ * @param[out] pub set to the current public signing key of the donau
  * @param[out] sig signature over purpose using current signing key
  * @return #TALER_EC_NONE on success
  */
 typedef enum TALER_ErrorCode
-(*TALER_ExchangeSignCallback2)(
+(*TALER_DonauSignCallback2)(
   void *cls,
   const struct GNUNET_CRYPTO_EccSignaturePurpose *purpose,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Create deposit confirmation signature.
  *
  * @param scb function to call to create the signature
- * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the exchange)
- * @param h_wire hash of the merchant’s account details
+ * @param h_contract_terms hash of the contact of the charity with the donor 
(further details are never disclosed to the donau)
+ * @param h_wire hash of the charity’s account details
  * @param h_policy hash over the policy extension, can be NULL
- * @param exchange_timestamp timestamp when the contract was finalized, must 
not be too far off
- * @param wire_deadline date until which the exchange should wire the funds
- * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the exchange (can be zero if refunds are not allowed); must 
not be after the @a wire_deadline
+ * @param donau_timestamp timestamp when the contract was finalized, must not 
be too far off
+ * @param wire_deadline date until which the donau should wire the funds
+ * @param refund_deadline date until which the charity can issue a refund to 
the donor via the donau (can be zero if refunds are not allowed); must not be 
after the @a wire_deadline
  * @param amount_without_fee the amount to be deposited after fees
  * @param coin_pub public key of the deposited coin
- * @param merchant_pub the public key of the merchant (used to identify the 
merchant for refund requests)
+ * @param charity_pub the public key of the charity (used to identify the 
charity for refund requests)
  * @param[out] pub where to write the public key
  * @param[out] sig where to write the signature
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_deposit_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_deposit_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_ExtensionPolicyHashP *h_policy,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   struct GNUNET_TIME_Timestamp wire_deadline,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Verify deposit confirmation signature.
  *
- * @param h_contract_terms hash of the contact of the merchant with the 
customer (further details are never disclosed to the exchange)
- * @param h_wire hash of the merchant’s account details
+ * @param h_contract_terms hash of the contact of the charity with the donor 
(further details are never disclosed to the donau)
+ * @param h_wire hash of the charity’s account details
  * @param h_policy hash over the policy extension, can be NULL
- * @param exchange_timestamp timestamp when the contract was finalized, must 
not be too far off
- * @param wire_deadline date until which the exchange should wire the funds
- * @param refund_deadline date until which the merchant can issue a refund to 
the customer via the exchange (can be zero if refunds are not allowed); must 
not be after the @a wire_deadline
+ * @param donau_timestamp timestamp when the contract was finalized, must not 
be too far off
+ * @param wire_deadline date until which the donau should wire the funds
+ * @param refund_deadline date until which the charity can issue a refund to 
the donor via the donau (can be zero if refunds are not allowed); must not be 
after the @a wire_deadline
  * @param amount_without_fee the amount to be deposited after fees
  * @param coin_pub public key of the deposited coin
- * @param merchant_pub the public key of the merchant (used to identify the 
merchant for refund requests)
+ * @param charity_pub the public key of the charity (used to identify the 
charity for refund requests)
  * @param pub where to write the public key
  * @param sig where to write the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_deposit_confirmation_verify (
+TALER_donau_online_deposit_confirmation_verify (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_ExtensionPolicyHashP *h_policy,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   struct GNUNET_TIME_Timestamp wire_deadline,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4109,23 +4109,23 @@ TALER_exchange_online_deposit_confirmation_verify (
  * @param scb function to call to create the signature
  * @param h_contract_terms hash of contract being refunded
  * @param coin_pub public key of the coin receiving the refund
- * @param merchant public key of the merchant that granted the refund
- * @param rtransaction_id refund transaction ID used by the merchant
+ * @param charity public key of the charity that granted the refund
+ * @param rtransaction_id refund transaction ID used by the charity
  * @param refund_amount amount refunded
- * @param[out] pub where to write the exchange public key
- * @param[out] sig where to write the exchange signature
+ * @param[out] pub where to write the donau public key
+ * @param[out] sig where to write the donau signature
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_refund_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_refund_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant,
+  const struct TALER_CharityPublicKeyP *charity,
   uint64_t rtransaction_id,
   const struct TALER_Amount *refund_amount,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4133,22 +4133,22 @@ TALER_exchange_online_refund_confirmation_sign (
  *
  * @param h_contract_terms hash of contract being refunded
  * @param coin_pub public key of the coin receiving the refund
- * @param merchant public key of the merchant that granted the refund
- * @param rtransaction_id refund transaction ID used by the merchant
+ * @param charity public key of the charity that granted the refund
+ * @param rtransaction_id refund transaction ID used by the charity
  * @param refund_amount amount refunded
  * @param pub where to write the public key
  * @param sig where to write the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_refund_confirmation_verify (
+TALER_donau_online_refund_confirmation_verify (
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant,
+  const struct TALER_CharityPublicKeyP *charity,
   uint64_t rtransaction_id,
   const struct TALER_Amount *refund_amount,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4156,39 +4156,39 @@ TALER_exchange_online_refund_confirmation_verify (
  *
  * @param scb function to call to create the signature
  * @param rc refresh commitment that identifies the melt operation
- * @param noreveal_index gamma cut-and-choose value chosen by the exchange
- * @param[out] pub where to write the exchange public key
- * @param[out] sig where to write the exchange signature
+ * @param noreveal_index gamma cut-and-choose value chosen by the donau
+ * @param[out] pub where to write the donau public key
+ * @param[out] sig where to write the donau signature
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_melt_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_melt_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_RefreshCommitmentP *rc,
   uint32_t noreveal_index,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Verify refresh melt confirmation signature.
  *
  * @param rc refresh commitment that identifies the melt operation
- * @param noreveal_index gamma cut-and-choose value chosen by the exchange
+ * @param noreveal_index gamma cut-and-choose value chosen by the donau
  * @param pub where to write the public key
  * @param sig where to write the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_melt_confirmation_verify (
+TALER_donau_online_melt_confirmation_verify (
   const struct TALER_RefreshCommitmentP *rc,
   uint32_t noreveal_index,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Create exchange purse refund confirmation signature.
+ * Create donau purse refund confirmation signature.
  *
  * @param scb function to call to create the signature
  * @param amount_without_fee refunded amount
@@ -4200,18 +4200,18 @@ TALER_exchange_online_melt_confirmation_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_purse_refund_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_purse_refund_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *refund_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Verify signature of exchange affirming purse refund
+ * Verify signature of donau affirming purse refund
  * from purse expiration.
  *
  * @param amount_without_fee refunded amount
@@ -4223,17 +4223,17 @@ TALER_exchange_online_purse_refund_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_refund_verify (
+TALER_donau_online_purse_refund_verify (
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *refund_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Create exchange key set signature.
+ * Create donau key set signature.
  *
  * @param scb function to call to create the signature
  * @param cls closure for @a scb
@@ -4244,13 +4244,13 @@ TALER_exchange_online_purse_refund_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_key_set_sign (
-  TALER_ExchangeSignCallback2 scb,
+TALER_donau_online_key_set_sign (
+  TALER_DonauSignCallback2 scb,
   void *cls,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct GNUNET_HashCode *hc,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4263,11 +4263,11 @@ TALER_exchange_online_key_set_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_key_set_verify (
+TALER_donau_online_key_set_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct GNUNET_HashCode *hc,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4283,13 +4283,13 @@ TALER_exchange_online_key_set_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_account_setup_success_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_account_setup_success_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_PaytoHashP *h_payto,
   const json_t *kyc,
   struct GNUNET_TIME_Timestamp timestamp,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4304,12 +4304,12 @@ TALER_exchange_online_account_setup_success_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_account_setup_success_verify (
+TALER_donau_online_account_setup_success_verify (
   const struct TALER_PaytoHashP *h_payto,
   const json_t *kyc,
   struct GNUNET_TIME_Timestamp timestamp,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4336,7 +4336,7 @@ TALER_json_hash (const json_t *j,
  * @param deposit_fee how high was the deposit fee
  */
 void
-TALER_exchange_online_wire_deposit_append (
+TALER_donau_online_wire_deposit_append (
   struct GNUNET_HashContext *hash_context,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   struct GNUNET_TIME_Timestamp execution_time,
@@ -4349,55 +4349,55 @@ TALER_exchange_online_wire_deposit_append (
  * Create wire deposit signature.
  *
  * @param scb function to call to create the signature
- * @param total amount the merchant was credited
- * @param wire_fee fee charged by the exchange for the wire transfer
- * @param merchant_pub which merchant was credited
- * @param payto payto://-URI of the merchant account
+ * @param total amount the charity was credited
+ * @param wire_fee fee charged by the donau for the wire transfer
+ * @param charity_pub which charity was credited
+ * @param payto payto://-URI of the charity account
  * @param h_details hash over the aggregation details
  * @param[out] pub where to write the public key
  * @param[out] sig where to write the signature
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_wire_deposit_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_wire_deposit_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_Amount *total,
   const struct TALER_Amount *wire_fee,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const char *payto,
   const struct GNUNET_HashCode *h_details,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Verify wire deposit signature.
  *
- * @param total amount the merchant was credited
- * @param wire_fee fee charged by the exchange for the wire transfer
- * @param merchant_pub which merchant was credited
- * @param h_payto hash of the payto://-URI of the merchant account
+ * @param total amount the charity was credited
+ * @param wire_fee fee charged by the donau for the wire transfer
+ * @param charity_pub which charity was credited
+ * @param h_payto hash of the payto://-URI of the charity account
  * @param h_details hash over the aggregation details
  * @param pub where to write the public key
  * @param sig where to write the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_wire_deposit_verify (
+TALER_donau_online_wire_deposit_verify (
   const struct TALER_Amount *total,
   const struct TALER_Amount *wire_fee,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const struct TALER_PaytoHashP *h_payto,
   const struct GNUNET_HashCode *h_details,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Create wire confirmation signature.
  *
  * @param scb function to call to create the signature
- * @param h_wire hash of the merchant's account
+ * @param h_wire hash of the charity's account
  * @param h_contract_terms hash of the contract
  * @param wtid wire transfer this deposit was aggregated into
  * @param coin_pub public key of the deposited coin
@@ -4408,22 +4408,22 @@ TALER_exchange_online_wire_deposit_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_confirm_wire_sign (
-  TALER_ExchangeSignCallback scb,
-  const struct TALER_MerchantWireHashP *h_wire,
+TALER_donau_online_confirm_wire_sign (
+  TALER_DonauSignCallback scb,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct GNUNET_TIME_Timestamp execution_time,
   const struct TALER_Amount *coin_contribution,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Verify confirm wire signature.
  *
- * @param h_wire hash of the merchant's account
+ * @param h_wire hash of the charity's account
  * @param h_contract_terms hash of the contract
  * @param wtid wire transfer this deposit was aggregated into
  * @param coin_pub public key of the deposited coin
@@ -4434,15 +4434,15 @@ TALER_exchange_online_confirm_wire_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_confirm_wire_verify (
-  const struct TALER_MerchantWireHashP *h_wire,
+TALER_donau_online_confirm_wire_verify (
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct GNUNET_TIME_Timestamp execution_time,
   const struct TALER_Amount *coin_contribution,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4458,14 +4458,14 @@ TALER_exchange_online_confirm_wire_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_confirm_recoup_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_confirm_recoup_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4480,13 +4480,13 @@ TALER_exchange_online_confirm_recoup_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_confirm_recoup_verify (
+TALER_donau_online_confirm_recoup_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4502,14 +4502,14 @@ TALER_exchange_online_confirm_recoup_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_confirm_recoup_refresh_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_confirm_recoup_refresh_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4524,13 +4524,13 @@ TALER_exchange_online_confirm_recoup_refresh_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_confirm_recoup_refresh_verify (
+TALER_donau_online_confirm_recoup_refresh_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4544,12 +4544,12 @@ TALER_exchange_online_confirm_recoup_refresh_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_denomination_unknown_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_denomination_unknown_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4562,11 +4562,11 @@ TALER_exchange_online_denomination_unknown_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_denomination_unknown_verify (
+TALER_donau_online_denomination_unknown_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4582,13 +4582,13 @@ TALER_exchange_online_denomination_unknown_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_denomination_expired_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_denomination_expired_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
   const char *op,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4603,12 +4603,12 @@ TALER_exchange_online_denomination_expired_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_denomination_expired_verify (
+TALER_donau_online_denomination_expired_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
   const char *op,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4626,16 +4626,16 @@ TALER_exchange_online_denomination_expired_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_reserve_closed_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_reserve_closed_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *closing_amount,
   const struct TALER_Amount *closing_fee,
   const char *payto,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4647,24 +4647,24 @@ TALER_exchange_online_reserve_closed_sign (
  * @param payto target of the wire transfer
  * @param wtid wire transfer subject used
  * @param reserve_pub public key of the closed reserve
- * @param pub the public key of the exchange to check against
+ * @param pub the public key of the donau to check against
  * @param sig the signature to check
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_reserve_closed_verify (
+TALER_donau_online_reserve_closed_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *closing_amount,
   const struct TALER_Amount *closing_fee,
   const char *payto,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Create signature by exchange affirming that a reserve
+ * Create signature by donau affirming that a reserve
  * has had certain attributes verified via KYC.
  *
  * @param scb function to call to create the signature
@@ -4677,43 +4677,43 @@ TALER_exchange_online_reserve_closed_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_reserve_attest_details_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_reserve_attest_details_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp attest_timestamp,
   struct GNUNET_TIME_Timestamp expiration_time,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   const json_t *attributes,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Verify signature by exchange affirming that a reserve
+ * Verify signature by donau affirming that a reserve
  * has had certain attributes verified via KYC.
  *
  * @param attest_timestamp our time
  * @param expiration_time when does the KYC data expire
  * @param reserve_pub for which reserve are attributes attested
  * @param attributes JSON object with attributes being attested to
- * @param pub exchange public key
- * @param sig exchange signature to verify
+ * @param pub donau public key
+ * @param sig donau signature to verify
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_reserve_attest_details_verify (
+TALER_donau_online_reserve_attest_details_verify (
   struct GNUNET_TIME_Timestamp attest_timestamp,
   struct GNUNET_TIME_Timestamp expiration_time,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   const json_t *attributes,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Create signature by exchange affirming that a purse was created.
+ * Create signature by donau affirming that a purse was created.
  *
  * @param scb function to call to create the signature
- * @param exchange_time our time
+ * @param donau_time our time
  * @param purse_expiration when will the purse expire
  * @param amount_without_fee total amount to be put into the purse (without 
deposit fees)
  * @param total_deposited total currently in the purse
@@ -4724,97 +4724,97 @@ TALER_exchange_online_reserve_attest_details_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_purse_created_sign (
-  TALER_ExchangeSignCallback scb,
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_created_sign (
+  TALER_DonauSignCallback scb,
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *total_deposited,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Verify exchange signature about a purse creation and balance.
+ * Verify donau signature about a purse creation and balance.
  *
- * @param exchange_time our time
+ * @param donau_time our time
  * @param purse_expiration when will the purse expire
  * @param amount_without_fee total amount to be put into the purse (without 
deposit fees)
  * @param total_deposited total currently in the purse
  * @param purse_pub public key of the purse
  * @param h_contract_terms hash of the contract for the purse
- * @param pub the public key of the exchange to check against
+ * @param pub the public key of the donau to check against
  * @param sig the signature to check
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_created_verify (
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_created_verify (
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *total_deposited,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Sign affirmation that a purse was merged.
  *
  * @param scb function to call to create the signature
- * @param exchange_time our time
+ * @param donau_time our time
  * @param purse_expiration when does the purse expire
  * @param amount_without_fee total amount that should be in the purse without 
deposit fees
  * @param purse_pub public key of the purse
  * @param h_contract_terms hash of the contract of the purse
  * @param reserve_pub reserve the purse will be merged into
- * @param exchange_url exchange at which the @a reserve_pub lives
+ * @param donau_url donau at which the @a reserve_pub lives
  * @param[out] pub where to write the public key
  * @param[out] sig where to write the signature
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_purse_merged_sign (
-  TALER_ExchangeSignCallback scb,
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_merged_sign (
+  TALER_DonauSignCallback scb,
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const char *exchange_url,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  const char *donau_url,
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
  * Verify affirmation that a purse will be merged.
  *
- * @param exchange_time our time
+ * @param donau_time our time
  * @param purse_expiration when does the purse expire
  * @param amount_without_fee total amount that should be in the purse without 
deposit fees
  * @param purse_pub public key of the purse
  * @param h_contract_terms hash of the contract of the purse
  * @param reserve_pub reserve the purse will be merged into
- * @param exchange_url exchange at which the @a reserve_pub lives
- * @param pub the public key of the exchange to check against
+ * @param donau_url donau at which the @a reserve_pub lives
+ * @param pub the public key of the donau to check against
  * @param sig the signature to check
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_merged_verify (
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_merged_verify (
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const char *exchange_url,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig);
+  const char *donau_url,
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4829,13 +4829,13 @@ TALER_exchange_online_purse_merged_verify (
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_purse_status_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_purse_status_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp merge_timestamp,
   struct GNUNET_TIME_Timestamp deposit_timestamp,
   const struct TALER_Amount *balance,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
@@ -4844,17 +4844,17 @@ TALER_exchange_online_purse_status_sign (
  * @param merge_timestamp when was the purse merged (can be never)
  * @param deposit_timestamp when was the purse fully paid up (can be never)
  * @param balance current balance of the purse
- * @param exchange_pub the public key of the exchange to check against
- * @param exchange_sig the signature to check
+ * @param donau_pub the public key of the donau to check against
+ * @param donau_sig the signature to check
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_status_verify (
+TALER_donau_online_purse_status_verify (
   struct GNUNET_TIME_Timestamp merge_timestamp,
   struct GNUNET_TIME_Timestamp deposit_timestamp,
   const struct TALER_Amount *balance,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig);
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig);
 
 
 /**
@@ -4862,34 +4862,34 @@ TALER_exchange_online_purse_status_verify (
  *
  * @param scb function to call to create the signature
  * @param h_commitment age-withdraw commitment that identifies the n*kappa 
blinded coins
- * @param noreveal_index gamma cut-and-choose value chosen by the exchange
- * @param[out] pub where to write the exchange public key
- * @param[out] sig where to write the exchange signature
+ * @param noreveal_index gamma cut-and-choose value chosen by the donau
+ * @param[out] pub where to write the donau public key
+ * @param[out] sig where to write the donau signature
  * @return #TALER_EC_NONE on success
  */
 enum TALER_ErrorCode
-TALER_exchange_online_age_withdraw_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_age_withdraw_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_AgeWithdrawCommitmentHashP *h_commitment,
   uint32_t noreveal_index,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig);
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig);
 
 
 /**
- * Verfiy an exchange age-withdraw confirmation
+ * Verfiy an donau age-withdraw confirmation
  *
  * @param h_commitment Commitment over all n*kappa coin candidates from the 
original request to age-withdraw
- * @param noreveal_index The index returned by the exchange
- * @param exchange_pub The public key used for signing
- * @param exchange_sig The signature from the exchange
+ * @param noreveal_index The index returned by the donau
+ * @param donau_pub The public key used for signing
+ * @param donau_sig The signature from the donau
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_age_withdraw_confirmation_verify (
+TALER_donau_online_age_withdraw_confirmation_verify (
   const struct TALER_AgeWithdrawCommitmentHashP *h_commitment,
   uint32_t noreveal_index,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig);
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig);
 
 
 /* ********************* offline signing ************************** */
@@ -4907,7 +4907,7 @@ TALER_exchange_online_age_withdraw_confirmation_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_aml_officer_status_sign (
+TALER_donau_offline_aml_officer_status_sign (
   const struct TALER_AmlOfficerPublicKeyP *officer_pub,
   const char *officer_name,
   struct GNUNET_TIME_Timestamp change_date,
@@ -4930,7 +4930,7 @@ TALER_exchange_offline_aml_officer_status_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_aml_officer_status_verify (
+TALER_donau_offline_aml_officer_status_verify (
   const struct TALER_AmlOfficerPublicKeyP *officer_pub,
   const char *officer_name,
   struct GNUNET_TIME_Timestamp change_date,
@@ -4950,7 +4950,7 @@ TALER_exchange_offline_aml_officer_status_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_auditor_add_sign (
+TALER_donau_offline_auditor_add_sign (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   const char *auditor_url,
   struct GNUNET_TIME_Timestamp start_date,
@@ -4969,7 +4969,7 @@ TALER_exchange_offline_auditor_add_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_auditor_add_verify (
+TALER_donau_offline_auditor_add_verify (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   const char *auditor_url,
   struct GNUNET_TIME_Timestamp start_date,
@@ -4986,7 +4986,7 @@ TALER_exchange_offline_auditor_add_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_auditor_del_sign (
+TALER_donau_offline_auditor_del_sign (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   struct GNUNET_TIME_Timestamp end_date,
   const struct TALER_MasterPrivateKeyP *master_priv,
@@ -5003,7 +5003,7 @@ TALER_exchange_offline_auditor_del_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_auditor_del_verify (
+TALER_donau_offline_auditor_del_verify (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   struct GNUNET_TIME_Timestamp end_date,
   const struct TALER_MasterPublicKeyP *master_pub,
@@ -5018,7 +5018,7 @@ TALER_exchange_offline_auditor_del_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_denomination_revoke_sign (
+TALER_donau_offline_denomination_revoke_sign (
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig);
@@ -5033,7 +5033,7 @@ TALER_exchange_offline_denomination_revoke_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_denomination_revoke_verify (
+TALER_donau_offline_denomination_revoke_verify (
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig);
@@ -5042,13 +5042,13 @@ TALER_exchange_offline_denomination_revoke_verify (
 /**
  * Create signkey revocation signature.
  *
- * @param exchange_pub public signing key to revoke
+ * @param donau_pub public signing key to revoke
  * @param master_priv private key to sign with
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_signkey_revoke_sign (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_revoke_sign (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig);
 
@@ -5056,14 +5056,14 @@ TALER_exchange_offline_signkey_revoke_sign (
 /**
  * Verify signkey revocation signature.
  *
- * @param exchange_pub public signkey key to revoke
+ * @param donau_pub public signkey key to revoke
  * @param master_pub public key to verify against
  * @param master_sig the signature the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_signkey_revoke_verify (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_revoke_verify (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig);
 
@@ -5071,7 +5071,7 @@ TALER_exchange_offline_signkey_revoke_verify (
 /**
  * Create signkey validity signature.
  *
- * @param exchange_pub public signing key to validate
+ * @param donau_pub public signing key to validate
  * @param start_sign starting point of validity for signing
  * @param end_sign end point (exclusive) for validity for signing
  * @param end_legal legal end point of signature validity
@@ -5079,8 +5079,8 @@ TALER_exchange_offline_signkey_revoke_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_signkey_validity_sign (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_validity_sign (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct GNUNET_TIME_Timestamp start_sign,
   struct GNUNET_TIME_Timestamp end_sign,
   struct GNUNET_TIME_Timestamp end_legal,
@@ -5091,7 +5091,7 @@ TALER_exchange_offline_signkey_validity_sign (
 /**
  * Verify signkey validitity signature.
  *
- * @param exchange_pub public signkey key to validate
+ * @param donau_pub public signkey key to validate
  * @param start_sign starting point of validity for signing
  * @param end_sign end point (exclusive) for validity for signing
  * @param end_legal legal end point of signature validity
@@ -5100,8 +5100,8 @@ TALER_exchange_offline_signkey_validity_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_signkey_validity_verify (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_validity_verify (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct GNUNET_TIME_Timestamp start_sign,
   struct GNUNET_TIME_Timestamp end_sign,
   struct GNUNET_TIME_Timestamp end_legal,
@@ -5113,17 +5113,17 @@ TALER_exchange_offline_signkey_validity_verify (
  * Create denomination key validity signature.
  *
  * @param h_denom_pub hash of the denomination's public key
- * @param stamp_start when does the exchange begin signing with this key
- * @param stamp_expire_withdraw when does the exchange end signing with this 
key
- * @param stamp_expire_deposit how long does the exchange accept the deposit 
of coins with this key
- * @param stamp_expire_legal how long does the exchange preserve information 
for legal disputes with this key
+ * @param stamp_start when does the donau begin signing with this key
+ * @param stamp_expire_withdraw when does the donau end signing with this key
+ * @param stamp_expire_deposit how long does the donau accept the deposit of 
coins with this key
+ * @param stamp_expire_legal how long does the donau preserve information for 
legal disputes with this key
  * @param coin_value what is the value of coins signed with this key
  * @param fees fees for this denomination
  * @param master_priv private key to sign with
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_denom_validity_sign (
+TALER_donau_offline_denom_validity_sign (
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp stamp_start,
   struct GNUNET_TIME_Timestamp stamp_expire_withdraw,
@@ -5139,10 +5139,10 @@ TALER_exchange_offline_denom_validity_sign (
  * Verify denomination key validity signature.
  *
  * @param h_denom_pub hash of the denomination's public key
- * @param stamp_start when does the exchange begin signing with this key
- * @param stamp_expire_withdraw when does the exchange end signing with this 
key
- * @param stamp_expire_deposit how long does the exchange accept the deposit 
of coins with this key
- * @param stamp_expire_legal how long does the exchange preserve information 
for legal disputes with this key
+ * @param stamp_start when does the donau begin signing with this key
+ * @param stamp_expire_withdraw when does the donau end signing with this key
+ * @param stamp_expire_deposit how long does the donau accept the deposit of 
coins with this key
+ * @param stamp_expire_legal how long does the donau preserve information for 
legal disputes with this key
  * @param coin_value what is the value of coins signed with this key
  * @param fees fees for this denomination
  * @param master_pub public key to verify against
@@ -5150,7 +5150,7 @@ TALER_exchange_offline_denom_validity_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_denom_validity_verify (
+TALER_donau_offline_denom_validity_verify (
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp stamp_start,
   struct GNUNET_TIME_Timestamp stamp_expire_withdraw,
@@ -5163,19 +5163,19 @@ TALER_exchange_offline_denom_validity_verify (
 
 
 /**
- * Create offline signature about an exchange's partners.
+ * Create offline signature about an donau's partners.
  *
  * @param partner_pub master public key of the partner
  * @param start_date validity period start
  * @param end_date validity period end
  * @param wad_frequency how often will we do wad transfers to this partner
  * @param wad_fee what is the wad fee to this partner
- * @param partner_base_url what is the base URL of the @a partner_pub exchange
+ * @param partner_base_url what is the base URL of the @a partner_pub donau
  * @param master_priv private key to sign with
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_partner_details_sign (
+TALER_donau_offline_partner_details_sign (
   const struct TALER_MasterPublicKeyP *partner_pub,
   struct GNUNET_TIME_Timestamp start_date,
   struct GNUNET_TIME_Timestamp end_date,
@@ -5187,20 +5187,20 @@ TALER_exchange_offline_partner_details_sign (
 
 
 /**
- * Verify signature about an exchange's partners.
+ * Verify signature about an donau's partners.
  *
  * @param partner_pub master public key of the partner
  * @param start_date validity period start
  * @param end_date validity period end
  * @param wad_frequency how often will we do wad transfers to this partner
  * @param wad_fee what is the wad fee to this partner
- * @param partner_base_url what is the base URL of the @a partner_pub exchange
+ * @param partner_base_url what is the base URL of the @a partner_pub donau
  * @param master_pub public key to verify against
  * @param master_sig the signature the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_partner_details_verify (
+TALER_donau_offline_partner_details_verify (
   const struct TALER_MasterPublicKeyP *partner_pub,
   struct GNUNET_TIME_Timestamp start_date,
   struct GNUNET_TIME_Timestamp end_date,
@@ -5213,19 +5213,19 @@ TALER_exchange_offline_partner_details_verify (
 
 /**
  * Create offline signature about wiring profits to a
- * regular non-escrowed account of the exchange.
+ * regular non-escrowed account of the donau.
  *
  * @param wtid (random) wire transfer ID to be used
  * @param date when was the profit drain approved (not exact time of execution)
  * @param amount how much should be wired
  * @param account_section configuration section of the
- *        exchange specifying the account to be debited
+ *        donau specifying the account to be debited
  * @param payto_uri target account to be credited
  * @param master_priv private key to sign with
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_profit_drain_sign (
+TALER_donau_offline_profit_drain_sign (
   const struct TALER_WireTransferIdentifierRawP *wtid,
   struct GNUNET_TIME_Timestamp date,
   const struct TALER_Amount *amount,
@@ -5237,20 +5237,20 @@ TALER_exchange_offline_profit_drain_sign (
 
 /**
  * Verify offline signature about wiring profits to a
- * regular non-escrowed account of the exchange.
+ * regular non-escrowed account of the donau.
  *
  * @param wtid (random) wire transfer ID to be used
  * @param date when was the profit drain approved (not exact time of execution)
  * @param amount how much should be wired
  * @param account_section configuration section of the
- *        exchange specifying the account to be debited
+ *        donau specifying the account to be debited
  * @param payto_uri target account to be credited
  * @param master_pub public key to verify signature against
  * @param master_sig the signature
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_profit_drain_verify (
+TALER_donau_offline_profit_drain_verify (
   const struct TALER_WireTransferIdentifierRawP *wtid,
   struct GNUNET_TIME_Timestamp date,
   const struct TALER_Amount *amount,
@@ -5263,15 +5263,15 @@ TALER_exchange_offline_profit_drain_verify (
 /**
  * Create security module EdDSA signature.
  *
- * @param exchange_pub public signing key to validate
+ * @param donau_pub public signing key to validate
  * @param start_sign starting point of validity for signing
  * @param duration how long will the key be in use
  * @param secm_priv security module key to sign with
  * @param[out] secm_sig where to write the signature
  */
 void
-TALER_exchange_secmod_eddsa_sign (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_secmod_eddsa_sign (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct GNUNET_TIME_Timestamp start_sign,
   struct GNUNET_TIME_Relative duration,
   const struct TALER_SecurityModulePrivateKeyP *secm_priv,
@@ -5281,7 +5281,7 @@ TALER_exchange_secmod_eddsa_sign (
 /**
  * Verify security module EdDSA signature.
  *
- * @param exchange_pub public signing key to validate
+ * @param donau_pub public signing key to validate
  * @param start_sign starting point of validity for signing
  * @param duration how long will the key be in use
  * @param secm_pub public key to verify against
@@ -5289,8 +5289,8 @@ TALER_exchange_secmod_eddsa_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_secmod_eddsa_verify (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_secmod_eddsa_verify (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct GNUNET_TIME_Timestamp start_sign,
   struct GNUNET_TIME_Relative duration,
   const struct TALER_SecurityModulePublicKeyP *secm_pub,
@@ -5308,7 +5308,7 @@ TALER_exchange_secmod_eddsa_verify (
  * @param[out] secm_sig where to write the signature
  */
 void
-TALER_exchange_secmod_rsa_sign (
+TALER_donau_secmod_rsa_sign (
   const struct TALER_RsaPubHashP *h_rsa,
   const char *section_name,
   struct GNUNET_TIME_Timestamp start_sign,
@@ -5329,7 +5329,7 @@ TALER_exchange_secmod_rsa_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_secmod_rsa_verify (
+TALER_donau_secmod_rsa_verify (
   const struct TALER_RsaPubHashP *h_rsa,
   const char *section_name,
   struct GNUNET_TIME_Timestamp start_sign,
@@ -5349,7 +5349,7 @@ TALER_exchange_secmod_rsa_verify (
  * @param[out] secm_sig where to write the signature
  */
 void
-TALER_exchange_secmod_cs_sign (
+TALER_donau_secmod_cs_sign (
   const struct TALER_CsPubHashP *h_cs,
   const char *section_name,
   struct GNUNET_TIME_Timestamp start_sign,
@@ -5370,7 +5370,7 @@ TALER_exchange_secmod_cs_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_secmod_cs_verify (
+TALER_donau_secmod_cs_verify (
   const struct TALER_CsPubHashP *h_cs,
   const char *section_name,
   struct GNUNET_TIME_Timestamp start_sign,
@@ -5384,13 +5384,13 @@ TALER_exchange_secmod_cs_verify (
  *
  * @param auditor_url BASE URL of the auditor's API
  * @param h_denom_pub hash of the denomination's public key
- * @param master_pub master public key of the exchange
- * @param stamp_start when does the exchange begin signing with this key
- * @param stamp_expire_withdraw when does the exchange end signing with this 
key
- * @param stamp_expire_deposit how long does the exchange accept the deposit 
of coins with this key
- * @param stamp_expire_legal how long does the exchange preserve information 
for legal disputes with this key
+ * @param master_pub master public key of the donau
+ * @param stamp_start when does the donau begin signing with this key
+ * @param stamp_expire_withdraw when does the donau end signing with this key
+ * @param stamp_expire_deposit how long does the donau accept the deposit of 
coins with this key
+ * @param stamp_expire_legal how long does the donau preserve information for 
legal disputes with this key
  * @param coin_value what is the value of coins signed with this key
- * @param fees fees the exchange charges for this denomination
+ * @param fees fees the donau charges for this denomination
  * @param auditor_priv private key to sign with
  * @param[out] auditor_sig where to write the signature
  */
@@ -5414,13 +5414,13 @@ TALER_auditor_denom_validity_sign (
  *
  * @param auditor_url BASE URL of the auditor's API
  * @param h_denom_pub hash of the denomination's public key
- * @param master_pub master public key of the exchange
- * @param stamp_start when does the exchange begin signing with this key
- * @param stamp_expire_withdraw when does the exchange end signing with this 
key
- * @param stamp_expire_deposit how long does the exchange accept the deposit 
of coins with this key
- * @param stamp_expire_legal how long does the exchange preserve information 
for legal disputes with this key
+ * @param master_pub master public key of the donau
+ * @param stamp_start when does the donau begin signing with this key
+ * @param stamp_expire_withdraw when does the donau end signing with this key
+ * @param stamp_expire_deposit how long does the donau accept the deposit of 
coins with this key
+ * @param stamp_expire_legal how long does the donau preserve information for 
legal disputes with this key
  * @param coin_value what is the value of coins signed with this key
- * @param fees fees the exchange charges for this denomination
+ * @param fees fees the donau charges for this denomination
  * @param auditor_pub public key to verify against
  * @param auditor_sig the signature the signature
  * @return #GNUNET_OK if the signature is valid
@@ -5454,7 +5454,7 @@ TALER_auditor_denom_validity_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_wire_fee_sign (
+TALER_donau_offline_wire_fee_sign (
   const char *payment_method,
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
@@ -5475,7 +5475,7 @@ TALER_exchange_offline_wire_fee_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_wire_fee_verify (
+TALER_donau_offline_wire_fee_verify (
   const char *payment_method,
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
@@ -5497,7 +5497,7 @@ TALER_exchange_offline_wire_fee_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_global_fee_sign (
+TALER_donau_offline_global_fee_sign (
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
   const struct TALER_GlobalFeeSet *fees,
@@ -5522,7 +5522,7 @@ TALER_exchange_offline_global_fee_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_global_fee_verify (
+TALER_donau_offline_global_fee_verify (
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
   const struct TALER_GlobalFeeSet *fees,
@@ -5545,7 +5545,7 @@ TALER_exchange_offline_global_fee_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_wire_add_sign (
+TALER_donau_offline_wire_add_sign (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -5568,7 +5568,7 @@ TALER_exchange_offline_wire_add_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_wire_add_verify (
+TALER_donau_offline_wire_add_verify (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -5587,7 +5587,7 @@ TALER_exchange_offline_wire_add_verify (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_wire_del_sign (
+TALER_donau_offline_wire_del_sign (
   const char *payto_uri,
   struct GNUNET_TIME_Timestamp now,
   const struct TALER_MasterPrivateKeyP *master_priv,
@@ -5604,7 +5604,7 @@ TALER_exchange_offline_wire_del_sign (
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_wire_del_verify (
+TALER_donau_offline_wire_del_verify (
   const char *payto_uri,
   struct GNUNET_TIME_Timestamp sign_time,
   const struct TALER_MasterPublicKeyP *master_pub,
@@ -5618,12 +5618,12 @@ TALER_exchange_offline_wire_del_verify (
  * @param conversion_url URL of the conversion service, or NULL if none
  * @param debit_restrictions JSON encoding of debit restrictions on the 
account; see AccountRestriction in the spec
  * @param credit_restrictions JSON encoding of credit restrictions on the 
account; see AccountRestriction in the spec
- * @param master_pub master public key of the exchange
- * @param master_sig signature of the exchange
+ * @param master_pub master public key of the donau
+ * @param master_sig signature of the donau
  * @return #GNUNET_OK if signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_wire_signature_check (
+TALER_donau_wire_signature_check (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -5643,7 +5643,7 @@ TALER_exchange_wire_signature_check (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_wire_signature_make (
+TALER_donau_wire_signature_make (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -5654,17 +5654,17 @@ TALER_exchange_wire_signature_make (
 
 /**
  * Compute the hash of the given wire details.   The resulting
- * @a hc is what will be put into the contract between customer
- * and merchant for signing by both parties.
+ * @a hc is what will be put into the contract between donor
+ * and charity for signing by both parties.
  *
  * @param payto_uri bank account
  * @param salt salt used to eliminate brute-force inversion
  * @param[out] hc set to the hash
  */
 void
-TALER_merchant_wire_signature_hash (const char *payto_uri,
+TALER_charity_wire_signature_hash (const char *payto_uri,
                                     const struct TALER_WireSaltP *salt,
-                                    struct TALER_MerchantWireHashP *hc);
+                                    struct TALER_CharityWireHashP *hc);
 
 
 /**
@@ -5672,16 +5672,16 @@ TALER_merchant_wire_signature_hash (const char 
*payto_uri,
  *
  * @param payto_uri URL that is signed
  * @param salt the salt used to salt the @a payto_uri when hashing
- * @param merch_pub public key of the merchant
- * @param merch_sig signature of the merchant
+ * @param merch_pub public key of the charity
+ * @param merch_sig signature of the charity
  * @return #GNUNET_OK if signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_merchant_wire_signature_check (
+TALER_charity_wire_signature_check (
   const char *payto_uri,
   const struct TALER_WireSaltP *salt,
-  const struct TALER_MerchantPublicKeyP *merch_pub,
-  const struct TALER_MerchantSignatureP *merch_sig);
+  const struct TALER_CharityPublicKeyP *merch_pub,
+  const struct TALER_CharitySignatureP *merch_sig);
 
 
 /**
@@ -5693,53 +5693,53 @@ TALER_merchant_wire_signature_check (
  * @param[out] merch_sig where to write the signature
  */
 void
-TALER_merchant_wire_signature_make (
+TALER_charity_wire_signature_make (
   const char *payto_uri,
   const struct TALER_WireSaltP *salt,
-  const struct TALER_MerchantPrivateKeyP *merch_priv,
-  struct TALER_MerchantSignatureP *merch_sig);
+  const struct TALER_CharityPrivateKeyP *merch_priv,
+  struct TALER_CharitySignatureP *merch_sig);
 
 
 /**
  * Sign a payment confirmation.
  *
- * @param h_contract_terms hash of the contact of the merchant with the 
customer
+ * @param h_contract_terms hash of the contact of the charity with the donor
  * @param merch_priv private key to sign with
  * @param[out] merch_sig where to write the signature
  */
 void
-TALER_merchant_pay_sign (
+TALER_charity_pay_sign (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantPrivateKeyP *merch_priv,
+  const struct TALER_CharityPrivateKeyP *merch_priv,
   struct GNUNET_CRYPTO_EddsaSignature *merch_sig);
 
 
 /**
  * Verify payment confirmation signature.
  *
- * @param h_contract_terms hash of the contact of the merchant with the 
customer
- * @param merchant_pub public key of the merchant
- * @param merchant_sig signature to verify
+ * @param h_contract_terms hash of the contact of the charity with the donor
+ * @param charity_pub public key of the charity
+ * @param charity_sig signature to verify
  * @return #GNUNET_OK if the signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_merchant_pay_verify (
+TALER_charity_pay_verify (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_MerchantSignatureP *merchant_sig);
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_CharitySignatureP *charity_sig);
 
 
 /**
- * Sign contract sent by the merchant to the wallet.
+ * Sign contract sent by the charity to the wallet.
  *
  * @param h_contract_terms hash of the contract terms
  * @param merch_priv private key to sign with
  * @param[out] merch_sig where to write the signature
  */
 void
-TALER_merchant_contract_sign (
+TALER_charity_contract_sign (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantPrivateKeyP *merch_priv,
+  const struct TALER_CharityPrivateKeyP *merch_priv,
   struct GNUNET_CRYPTO_EddsaSignature *merch_sig);
 
 
@@ -5753,7 +5753,7 @@ TALER_merchant_contract_sign (
  * @param[out] master_sig where to write the signature
  */
 void
-TALER_exchange_offline_extension_manifests_hash_sign (
+TALER_donau_offline_extension_manifests_hash_sign (
   const struct TALER_ExtensionManifestsHashP *h_manifests,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig);
@@ -5764,12 +5764,12 @@ TALER_exchange_offline_extension_manifests_hash_sign (
  * blob representing the manifests of extensions
  *
  * @param h_manifest hash of the JSON blob of manifests of extensions
- * @param master_pub master public key of the exchange
- * @param master_sig signature of the exchange
+ * @param master_pub master public key of the donau
+ * @param master_sig signature of the donau
  * @return #GNUNET_OK if signature is valid
  */
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_extension_manifests_hash_verify (
+TALER_donau_offline_extension_manifests_hash_verify (
   const struct TALER_ExtensionManifestsHashP *h_manifest,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig
@@ -5860,7 +5860,7 @@ struct TALER_AgeCommitmentProof
   /**
    * The commitment is used to verify a particular attestation.  Its hash value
    * is bound to a particular coin with age restriction.  This structure is
-   * sent to the merchant in order to verify a particular attestation for a
+   * sent to the charity in order to verify a particular attestation for a
    * minimum age.
    * In itself, it does not convey any information about the maximum age that
    * went into the call to TALER_age_restriction_commit.
@@ -6021,7 +6021,7 @@ TALER_age_commitment_base_public_key;
  * private key as seed input and calculates the public keys in the slots larger
  * than the given age as derived from TALER_age_commitment_base_public_key.
  *
- * See 
https://docs.taler.net/core/api-exchange.html#withdraw-with-age-restriction
+ * See https://docs.taler.net/core/api-donau.html#withdraw-with-age-restriction
  *
  * @param secret The master secret of the coin from which we derive the age 
restriction
  * @param mask The age mask, defining the age groups
diff --git a/src/include/taler_donau_service.h 
b/src/include/taler_donau_service.h
index cf60194..cc2cbf8 100644
--- a/src/include/taler_donau_service.h
+++ b/src/include/taler_donau_service.h
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
 
    You should have received a copy of the GNU Affero General Public License 
along with
@@ -104,7 +104,7 @@ struct TALER_DONAU_BDRPublicKey
   /**
    * When do signatures with this BDR key become invalid?
    * After this point, these signatures cannot be used in (legal)
-   * disputes anymore, as the Exchange is then allowed to destroy its side
+   * disputes anymore, as the Donau is then allowed to destroy its side
    * of the evidence.  @e expire_legal is expected to be significantly
    * larger than @e expire_deposit (by a year or more).
    */
@@ -488,7 +488,7 @@ TALER_DONAU_keys_decref (struct TALER_DONAU_Keys *keys);
 enum GNUNET_GenericReturnValue
 TALER_DONAU_test_signing_key (
   const struct TALER_DONAU_Keys *keys,
-  const struct TALER_ExchangePublicKeyP *pub);
+  const struct TALER_DonauPublicKeyP *pub);
 
 
 /**
@@ -553,7 +553,7 @@ TALER_DONAU_get_BDR_key_by_hash (
 const struct TALER_DONAU_SigningPublicKey *
 TALER_DONAU_get_signing_key_info (
   const struct TALER_DONAU_Keys *keys,
-  const struct TALER_ExchangePublicKeyP *donau_pub);
+  const struct TALER_DonauPublicKeyP *donau_pub);
 
 
 /* *********************  wire helpers *********************** */
@@ -609,12 +609,12 @@ struct TALER_DONAU_BDRDetail
 
   /**
    * The signature made with purpose #TALER_SIGNATURE_WALLET_COIN_DEPOSIT made
-   * by the customer with the coin’s private key.
+   * by the donor with the coin’s private key.
    */
   struct TALER_CoinSpendSignatureP coin_sig;
 
   /**
-   * Exchange’s unblinded signature of the coin.
+   * Donau’s unblinded signature of the coin.
    */
   struct TALER_BDRSignature BDR_sig;
 
@@ -633,19 +633,19 @@ struct TALER_DONAU_DepositContractDetail
 {
 
   /**
-   * Hash of the contact of the merchant with the customer (further details
+   * Hash of the contact of the charity with the donor (further details
    * are never disclosed to the donau)
    */
   struct TALER_PrivateContractHashP h_contract_terms;
 
   /**
-   * The public key of the merchant (used to identify the merchant for refund
+   * The public key of the charity (used to identify the charity for refund
    * requests).
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
   /**
-   * Salt used to hash the @e merchant_payto_uri.
+   * Salt used to hash the @e charity_payto_uri.
    */
   struct TALER_WireSaltP wire_salt;
 
@@ -656,14 +656,14 @@ struct TALER_DONAU_DepositContractDetail
   struct GNUNET_HashCode wallet_data_hash;
 
   /**
-   * Date until which the merchant can issue a refund to the customer via the
+   * Date until which the charity can issue a refund to the donor via the
    * donau (can be zero if refunds are not allowed); must not be after the
    * @e wire_deadline.
    */
   struct GNUNET_TIME_Timestamp refund_deadline;
 
   /**
-   * Execution date, until which the merchant would like the donau to
+   * Execution date, until which the charity would like the donau to
    * settle the balance (advisory, the donau cannot be forced to settle in
    * the past or upon very short notice, but of course a well-behaved donau
    * will limit aggregation based on the advice received).
@@ -677,10 +677,10 @@ struct TALER_DONAU_DepositContractDetail
   struct GNUNET_TIME_Timestamp wallet_timestamp;
 
   /**
-   * The merchant’s account details, in the payto://-format supported by the
+   * The charity’s account details, in the payto://-format supported by the
    * donau.
    */
-  const char *merchant_payto_uri;
+  const char *charity_payto_uri;
 
   /**
    * Policy extension specific details about the deposit relevant to the donau.
@@ -724,12 +724,12 @@ struct TALER_DONAU_BatchDepositResult
       /**
        * Array of signatures provided by the donau
        */
-      const struct TALER_ExchangeSignatureP *donau_sigs;
+      const struct TALER_DonauSignatureP *donau_sigs;
 
       /**
        * donau key used to sign @a donau_sig.
        */
-      const struct TALER_ExchangePublicKeyP *donau_pub;
+      const struct TALER_DonauPublicKeyP *donau_pub;
 
       /**
        * Base URL for looking up wire transfers, or
@@ -772,7 +772,7 @@ typedef void
 
 /**
  * Submit a batch of deposit permissions to the donau and get the
- * donau's response.  This API is typically used by a merchant.  Note that
+ * donau's response.  This API is typically used by a charity.  Note that
  * while we return the response verbatim to the caller for further processing,
  * we do already verify that the response is well-formed (i.e. that signatures
  * included in the response are all valid).  If the donau's reply is not
@@ -864,7 +864,7 @@ struct TALER_DONAU_CsRWithdrawResponse
        * Values contributed by the donau for the
        * respective coin's withdraw operation.
        */
-      struct TALER_ExchangeWithdrawValues alg_values;
+      struct TALER_DonauWithdrawValues alg_values;
     } ok;
 
     /**
@@ -1083,12 +1083,12 @@ struct TALER_DONAU_ReserveHistoryEntry
        * Signature of the coin of type
        * #TALER_SIGNATURE_DONAU_CONFIRM_RECOUP.
        */
-      struct TALER_ExchangeSignatureP donau_sig;
+      struct TALER_DonauSignatureP donau_sig;
 
       /**
        * Public key of the donau that was used for @e donau_sig.
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
 
       /**
        * When did the /recoup operation happen?
@@ -1117,12 +1117,12 @@ struct TALER_DONAU_ReserveHistoryEntry
        * Signature of the coin of type
        * #TALER_SIGNATURE_DONAU_RESERVE_CLOSED.
        */
-      struct TALER_ExchangeSignatureP donau_sig;
+      struct TALER_DonauSignatureP donau_sig;
 
       /**
        * Public key of the donau that was used for @e donau_sig.
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
 
       /**
        * When did the wire transfer happen?
@@ -1669,7 +1669,7 @@ struct TALER_DONAU_PrivateCoinDetails
    * Values contributed from the donau during the
    * withdraw protocol.
    */
-  struct TALER_ExchangeWithdrawValues donau_vals;
+  struct TALER_DonauWithdrawValues donau_vals;
 };
 
 
@@ -1699,7 +1699,7 @@ struct TALER_DONAU_WithdrawResponse
     struct
     {
       /**
-       * Requirement row that the merchant should use
+       * Requirement row that the charity should use
        * to check for its KYC status.
        */
       uint64_t requirement_row;
@@ -1836,7 +1836,7 @@ struct TALER_DONAU_BatchWithdrawResponse
       struct TALER_PaytoHashP h_payto;
 
       /**
-       * Legitimization requirement that the merchant should use
+       * Legitimization requirement that the charity should use
        * to check for its KYC status, 0 if not known.
        */
       uint64_t requirement_row;
@@ -1967,15 +1967,15 @@ typedef void
  * This variant does not do the blinding/unblinding and only
  * fetches the blind signature on the already blinded planchet.
  * Used internally by the `struct TALER_DONAU_WithdrawHandle`
- * implementation as well as for the tipping logic of merchants.
+ * implementation as well as for the tipping logic of charities.
  */
 struct TALER_DONAU_Withdraw2Handle;
 
 
 /**
  * Withdraw a coin from the donau using a /reserves/$RESERVE_PUB/withdraw
- * request.  This API is typically used by a merchant to withdraw a tip
- * where the blinding factor is unknown to the merchant.
+ * request.  This API is typically used by a charity to withdraw a tip
+ * where the blinding factor is unknown to the charity.
  *
  * Note that to ensure that no money is lost in case of hardware
  * failures, the caller must have committed (most of) the arguments to
@@ -2068,15 +2068,15 @@ typedef void
  * This variant does not do the blinding/unblinding and only
  * fetches the blind signatures on the already blinded planchets.
  * Used internally by the `struct TALER_DONAU_BatchWithdrawHandle`
- * implementation as well as for the tipping logic of merchants.
+ * implementation as well as for the tipping logic of charities.
  */
 struct TALER_DONAU_BatchWithdraw2Handle;
 
 
 /**
  * Withdraw a coin from the donau using a /reserves/$RESERVE_PUB/batch-withdraw
- * request.  This API is typically used by a merchant to withdraw a tip
- * where the blinding factor is unknown to the merchant.
+ * request.  This API is typically used by a charity to withdraw a tip
+ * where the blinding factor is unknown to the charity.
  *
  * Note that to ensure that no money is lost in case of hardware
  * failures, the caller must have committed (most of) the arguments to
@@ -2176,7 +2176,7 @@ struct TALER_DONAU_AgeWithdrawCoinPrivateDetails
    * Values contributed from the donau during the
    * withdraw protocol.
    */
-  struct TALER_ExchangeWithdrawValues alg_values;
+  struct TALER_DonauWithdrawValues alg_values;
 
   /**
    * The planchet constructed
@@ -2241,7 +2241,7 @@ struct TALER_DONAU_AgeWithdrawResponse
       /**
        * Key used by the donau to sign the response.
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
     } ok;
   } details;
 };
@@ -2424,7 +2424,7 @@ TALER_DONAU_refreshes_reveal (
   const struct TALER_RefreshMasterSecretP *rms,
   const struct TALER_DONAU_RefreshData *rd,
   unsigned int num_coins,
-  const struct TALER_ExchangeWithdrawValues alg_values[static num_coins],
+  const struct TALER_DonauWithdrawValues alg_values[static num_coins],
   uint32_t noreveal_index,
   TALER_DONAU_RefreshesRevealCallback reveal_cb,
   void *reveal_cb_cls);
@@ -2589,12 +2589,12 @@ struct TALER_DONAU_TransferData
   /**
    * donau key used to sign
    */
-  struct TALER_ExchangePublicKeyP donau_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
    * donau signature over the transfer data
    */
-  struct TALER_ExchangeSignatureP donau_sig;
+  struct TALER_DonauSignatureP donau_sig;
 
   /**
    * hash of the payto:// URI the transfer went to
@@ -2737,13 +2737,13 @@ struct TALER_DONAU_GetDepositResponse
        * donau key used to sign, all zeros if donau did not
        * yet execute the transaction
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
 
       /**
        * signature from the donau over the deposit data, all zeros if donau 
did not
        * yet execute the transaction
        */
-      struct TALER_ExchangeSignatureP donau_sig;
+      struct TALER_DonauSignatureP donau_sig;
 
       /**
        * wire transfer identifier used by the donau, all zeros if donau did not
@@ -2776,7 +2776,7 @@ struct TALER_DONAU_GetDepositResponse
       struct GNUNET_TIME_Timestamp execution_time;
 
       /**
-       * KYC legitimization requirement that the merchant should use to check
+       * KYC legitimization requirement that the charity should use to check
        * for its KYC status.
        */
       uint64_t requirement_row;
@@ -2813,13 +2813,13 @@ typedef void
 /**
  * Obtain the wire transfer details for a given transaction.  Tells the client
  * which aggregate wire transfer the deposit operation identified by @a 
coin_pub,
- * @a merchant_priv and @a h_contract_terms contributed to.
+ * @a charity_priv and @a h_contract_terms contributed to.
  *
  * @param ctx curl context
  * @param url donau base URL
  * @param keys donau keys
- * @param merchant_priv the merchant's private key
- * @param h_wire hash of merchant's wire transfer details
+ * @param charity_priv the charity's private key
+ * @param h_wire hash of charity's wire transfer details
  * @param h_contract_terms hash of the proposal data
  * @param coin_pub public key of the coin
  * @param timeout timeout to use for long-polling, 0 for no long polling
@@ -2832,8 +2832,8 @@ TALER_DONAU_deposits_get (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
   struct TALER_DONAU_Keys *keys,
-  const struct TALER_MerchantPrivateKeyP *merchant_priv,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityPrivateKeyP *charity_priv,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct GNUNET_TIME_Relative timeout,
@@ -2969,7 +2969,7 @@ typedef void
 /**
  * Ask the donau to pay back a coin due to the donau triggering
  * the emergency recoup protocol for a given BDR.  The value
- * of the coin will be refunded to the original customer (without fees).
+ * of the coin will be refunded to the original donor (without fees).
  *
  * @param ctx curl context
  * @param url donau base URL
@@ -2991,7 +2991,7 @@ TALER_DONAU_recoup (
   struct TALER_DONAU_Keys *keys,
   const struct TALER_DONAU_BDRPublicKey *pk,
   const struct TALER_BDRSignature *BDR_sig,
-  const struct TALER_ExchangeWithdrawValues *donau_vals,
+  const struct TALER_DonauWithdrawValues *donau_vals,
   const struct TALER_PlanchetMasterSecretP *ps,
   TALER_DONAU_RecoupResultCallback recoup_cb,
   void *recoup_cb_cls);
@@ -3089,7 +3089,7 @@ TALER_DONAU_recoup_refresh (
   struct TALER_DONAU_Keys *keys,
   const struct TALER_DONAU_BDRPublicKey *pk,
   const struct TALER_BDRSignature *BDR_sig,
-  const struct TALER_ExchangeWithdrawValues *donau_vals,
+  const struct TALER_DonauWithdrawValues *donau_vals,
   const struct TALER_RefreshMasterSecretP *rms,
   const struct TALER_PlanchetMasterSecretP *ps,
   unsigned int idx,
@@ -3113,14 +3113,14 @@ struct TALER_DONAU_KycProofHandle;
 
 
 /**
- * @brief Future Exchange's signature key
+ * @brief Future Donau's signature key
  */
 struct TALER_DONAU_FutureSigningPublicKey
 {
   /**
    * The signing public key
    */
-  struct TALER_ExchangePublicKeyP key;
+  struct TALER_DonauPublicKeyP key;
 
   /**
    * Signature by the security module affirming it owns this key.
@@ -3178,7 +3178,7 @@ struct TALER_DONAU_FutureBDRPublicKey
   /**
    * When do signatures with this BDR key become invalid?
    * After this point, these signatures cannot be used in (legal)
-   * disputes anymore, as the Exchange is then allowed to destroy its side
+   * disputes anymore, as the Donau is then allowed to destroy its side
    * of the evidence.  @e expire_legal is expected to be significantly
    * larger than @e expire_deposit (by a year or more).
    */
@@ -3347,7 +3347,7 @@ struct TALER_DONAU_SigningKeySignature
   /**
    * The signing public key
    */
-  struct TALER_ExchangePublicKeyP donau_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
    * Signature over this signing key by the donau's master signature.
@@ -3468,7 +3468,7 @@ TALER_DONAU_post_management_keys_cancel (
 /**
  * Information needed for a POST /management/extensions operation.
  *
- * It represents the interface ExchangeKeysResponse as defined in
+ * It represents the interface DonauKeysResponse as defined in
  * https://docs.taler.net/design-documents/006-extensions.html#donau
  */
 struct TALER_DONAU_ManagementPostExtensionsData
@@ -3715,7 +3715,7 @@ struct TALER_DONAU_ManagementRevokeSigningKeyHandle *
 TALER_DONAU_management_revoke_signing_key (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  const struct TALER_ExchangePublicKeyP *donau_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterSignatureP *master_sig,
   TALER_DONAU_ManagementRevokeSigningKeyCallback cb,
   void *cb_cls);
@@ -4909,13 +4909,13 @@ struct TALER_DONAU_PurseCreateDepositResponse
        * Signing key used by the donau to sign the
        * purse create with deposit confirmation.
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
 
       /**
        * Signature from the donau on the
        * purse create with deposit confirmation.
        */
-      struct TALER_ExchangeSignatureP donau_sig;
+      struct TALER_DonauSignatureP donau_sig;
 
 
     } ok;
@@ -5111,12 +5111,12 @@ struct TALER_DONAU_AccountMergeResponse
       /**
        * Signature by the donau affirming the merge.
        */
-      struct TALER_ExchangeSignatureP donau_sig;
+      struct TALER_DonauSignatureP donau_sig;
 
       /**
        * Online signing key used by the donau.
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
 
       /**
        * Timestamp of the donau for @e donau_sig.
@@ -5131,7 +5131,7 @@ struct TALER_DONAU_AccountMergeResponse
     struct
     {
       /**
-       * Requirement row target that the merchant should use
+       * Requirement row target that the charity should use
        * to check for its KYC status.
        */
       uint64_t requirement_row;
@@ -5243,7 +5243,7 @@ struct TALER_DONAU_PurseCreateMergeResponse
     struct
     {
       /**
-       * Requirement row that the merchant should use
+       * Requirement row that the charity should use
        * to check for its KYC status.
        */
       uint64_t requirement_row;
@@ -5494,7 +5494,7 @@ struct TALER_DONAU_ReserveOpenResult
     struct
     {
       /**
-       * Requirement row that the merchant should use
+       * Requirement row that the charity should use
        * to check for its KYC status.
        */
       uint64_t requirement_row;
@@ -5704,12 +5704,12 @@ struct TALER_DONAU_ReservePostAttestResult
       /**
        * Signature by the donau affirming the attributes.
        */
-      struct TALER_ExchangeSignatureP donau_sig;
+      struct TALER_DonauSignatureP donau_sig;
 
       /**
        * Online signing key used by the donau.
        */
-      struct TALER_ExchangePublicKeyP donau_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
 
       /**
        * Attributes being confirmed by the donau.
@@ -5817,7 +5817,7 @@ struct TALER_DONAU_ReserveCloseResult
     struct
     {
       /**
-       * Requirement row that the merchant should use
+       * Requirement row that the charity should use
        * to check for its KYC status.
        */
       uint64_t requirement_row;
diff --git a/src/include/taler_donaudb_lib.h b/src/include/taler_donaudb_lib.h
index 90eb327..729abd8 100644
--- a/src/include/taler_donaudb_lib.h
+++ b/src/include/taler_donaudb_lib.h
@@ -7,24 +7,24 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file include/taler_exchangedb_lib.h
- * @brief IO operations for the exchange's private keys
+ * @file include/taler_donaudb_lib.h
+ * @brief IO operations for the donau's private keys
  * @author Florian Dold
  * @author Benedikt Mueller
  * @author Christian Grothoff
  */
-#ifndef TALER_EXCHANGEDB_LIB_H
-#define TALER_EXCHANGEDB_LIB_H
+#ifndef TALER_DONAUDB_LIB_H
+#define TALER_DONAUDB_LIB_H
 
 #include "taler_signatures.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_donaudb_plugin.h"
 #include "taler_bank_service.h"
 
 
@@ -34,8 +34,8 @@
  * @param cfg configuration to use
  * @return NULL on failure
  */
-struct TALER_EXCHANGEDB_Plugin *
-TALER_EXCHANGEDB_plugin_load (const struct GNUNET_CONFIGURATION_Handle *cfg);
+struct TALER_DONAUDB_Plugin *
+TALER_DONAUDB_plugin_load (const struct GNUNET_CONFIGURATION_Handle *cfg);
 
 
 /**
@@ -44,22 +44,22 @@ TALER_EXCHANGEDB_plugin_load (const struct 
GNUNET_CONFIGURATION_Handle *cfg);
  * @param plugin plugin to unload
  */
 void
-TALER_EXCHANGEDB_plugin_unload (struct TALER_EXCHANGEDB_Plugin *plugin);
+TALER_DONAUDB_plugin_unload (struct TALER_DONAUDB_Plugin *plugin);
 
 /**
  * Information about an account from the configuration.
  */
-struct TALER_EXCHANGEDB_AccountInfo
+struct TALER_DONAUDB_AccountInfo
 {
   /**
    * Authentication data. Only parsed if
-   * #TALER_EXCHANGEDB_ALO_AUTHDATA was set.
+   * #TALER_DONAUDB_ALO_AUTHDATA was set.
    */
   const struct TALER_BANK_AuthenticationData *auth;
 
   /**
    * Section in the configuration file that specifies the
-   * account. Must start with "exchange-account-".
+   * account. Must start with "donau-account-".
    */
   const char *section_name;
 
@@ -70,13 +70,13 @@ struct TALER_EXCHANGEDB_AccountInfo
 
   /**
    * true if this account is enabed to be debited
-   * by the taler-exchange-aggregator.
+   * by the taler-donau-aggregator.
    */
   bool debit_enabled;
 
   /**
    * true if this account is enabed to be credited by wallets
-   * and needs to be watched by the taler-exchange-wirewatch.
+   * and needs to be watched by the taler-donau-wirewatch.
    * Also, the account will only be included in /wire if credit
    * is enabled.
    */
@@ -95,8 +95,8 @@ struct TALER_EXCHANGEDB_AccountInfo
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGEDB_calculate_transaction_list_totals (
-  struct TALER_EXCHANGEDB_TransactionList *tl,
+TALER_DONAUDB_calculate_transaction_list_totals (
+  struct TALER_DONAUDB_TransactionList *tl,
   const struct TALER_Amount *off,
   struct TALER_Amount *ret);
 
@@ -108,75 +108,75 @@ TALER_EXCHANGEDB_calculate_transaction_list_totals (
  * @param ai account information
  */
 typedef void
-(*TALER_EXCHANGEDB_AccountCallback)(
+(*TALER_DONAUDB_AccountCallback)(
   void *cls,
-  const struct TALER_EXCHANGEDB_AccountInfo *ai);
+  const struct TALER_DONAUDB_AccountInfo *ai);
 
 
 /**
  * Return information about all accounts that
- * were loaded by #TALER_EXCHANGEDB_load_accounts().
+ * were loaded by #TALER_DONAUDB_load_accounts().
  *
  * @param cb callback to invoke
  * @param cb_cls closure for @a cb
  */
 void
-TALER_EXCHANGEDB_find_accounts (TALER_EXCHANGEDB_AccountCallback cb,
+TALER_DONAUDB_find_accounts (TALER_DONAUDB_AccountCallback cb,
                                 void *cb_cls);
 
 
 /**
  * Find the wire plugin for the given payto:// URL.
  * Only useful after the accounts have been loaded
- * using #TALER_EXCHANGEDB_load_accounts().
+ * using #TALER_DONAUDB_load_accounts().
  *
  * @param method wire method we need an account for
  * @return NULL on error
  */
-const struct TALER_EXCHANGEDB_AccountInfo *
-TALER_EXCHANGEDB_find_account_by_method (const char *method);
+const struct TALER_DONAUDB_AccountInfo *
+TALER_DONAUDB_find_account_by_method (const char *method);
 
 
 /**
  * Find the wire plugin for the given payto:// URL
  * Only useful after the accounts have been loaded
- * using #TALER_EXCHANGEDB_load_accounts().
+ * using #TALER_DONAUDB_load_accounts().
  *
  * @param url wire address we need an account for
  * @return NULL on error
  */
-const struct TALER_EXCHANGEDB_AccountInfo *
-TALER_EXCHANGEDB_find_account_by_payto_uri (const char *url);
+const struct TALER_DONAUDB_AccountInfo *
+TALER_DONAUDB_find_account_by_payto_uri (const char *url);
 
 
 /**
- * Options for #TALER_EXCHANGEDB_load_accounts()
+ * Options for #TALER_DONAUDB_load_accounts()
  */
-enum TALER_EXCHANGEDB_AccountLoaderOptions
+enum TALER_DONAUDB_AccountLoaderOptions
 {
-  TALER_EXCHANGEDB_ALO_NONE = 0,
+  TALER_DONAUDB_ALO_NONE = 0,
 
   /**
    * Load accounts enabled for DEBITs.
    */
-  TALER_EXCHANGEDB_ALO_DEBIT = 1,
+  TALER_DONAUDB_ALO_DEBIT = 1,
 
   /**
    * Load accounts enabled for CREDITs.
    */
-  TALER_EXCHANGEDB_ALO_CREDIT = 2,
+  TALER_DONAUDB_ALO_CREDIT = 2,
 
   /**
    * Load authentication data from the
    * "taler-accountcredentials-" section
    * to access the account at the bank.
    */
-  TALER_EXCHANGEDB_ALO_AUTHDATA = 4
+  TALER_DONAUDB_ALO_AUTHDATA = 4
 };
 
 
 /**
- * Load account information opf the exchange from
+ * Load account information opf the donau from
  * @a cfg.
  *
  * @param cfg configuration to load from
@@ -184,16 +184,16 @@ enum TALER_EXCHANGEDB_AccountLoaderOptions
  * @return #GNUNET_OK on success, #GNUNET_NO if no accounts are configured
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGEDB_load_accounts (
+TALER_DONAUDB_load_accounts (
   const struct GNUNET_CONFIGURATION_Handle *cfg,
-  enum TALER_EXCHANGEDB_AccountLoaderOptions options);
+  enum TALER_DONAUDB_AccountLoaderOptions options);
 
 
 /**
  * Free resources allocated by
- * #TALER_EXCHANGEDB_load_accounts().
+ * #TALER_DONAUDB_load_accounts().
  */
 void
-TALER_EXCHANGEDB_unload_accounts (void);
+TALER_DONAUDB_unload_accounts (void);
 
 #endif
diff --git a/src/include/taler_donaudb_plugin.h 
b/src/include/taler_donaudb_plugin.h
index 8be26a7..5eef401 100644
--- a/src/include/taler_donaudb_plugin.h
+++ b/src/include/taler_donaudb_plugin.h
@@ -7,21 +7,21 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file include/taler_exchangedb_plugin.h
- * @brief Low-level (statement-level) database access for the exchange
+ * @file include/taler_donaudb_plugin.h
+ * @brief Low-level (statement-level) database access for the donau
  * @author Florian Dold
  * @author Christian Grothoff
  * @author Özgür Kesim
  */
-#ifndef TALER_EXCHANGEDB_PLUGIN_H
-#define TALER_EXCHANGEDB_PLUGIN_H
+#ifndef TALER_DONAUDB_PLUGIN_H
+#define TALER_DONAUDB_PLUGIN_H
 #include <jansson.h>
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_db_lib.h>
@@ -33,7 +33,7 @@
 /**
  * Per-coin information returned when doing a batch insert.
  */
-struct TALER_EXCHANGEDB_CoinInfo
+struct TALER_DONAUDB_CoinInfo
 {
   /**
    * Row of the coin in the known_coins table.
@@ -74,7 +74,7 @@ struct TALER_EXCHANGEDB_CoinInfo
 /**
  * Information about a denomination key.
  */
-struct TALER_EXCHANGEDB_DenominationKeyInformation
+struct TALER_DONAUDB_DenominationKeyInformation
 {
 
   /**
@@ -88,14 +88,14 @@ struct TALER_EXCHANGEDB_DenominationKeyInformation
   struct GNUNET_TIME_Timestamp start;
 
   /**
-   * The exchange will sign fresh coins between @e start and this time.
+   * The donau will sign fresh coins between @e start and this time.
    * @e expire_withdraw will be somewhat larger than @e start to
    * ensure a sufficiently large anonymity set, while also allowing
-   * the Exchange to limit the financial damage in case of a key being
-   * compromised.  Thus, exchanges with low volume are expected to have a
-   * longer withdraw period (@e expire_withdraw - @e start) than exchanges
+   * the Donau to limit the financial damage in case of a key being
+   * compromised.  Thus, donaus with low volume are expected to have a
+   * longer withdraw period (@e expire_withdraw - @e start) than donaus
    * with high transaction volume.  The period may also differ between
-   * types of coins.  A exchange may also have a few denomination keys
+   * types of coins.  A donau may also have a few denomination keys
    * with the same value with overlapping validity periods, to address
    * issues such as clock skew.
    */
@@ -104,7 +104,7 @@ struct TALER_EXCHANGEDB_DenominationKeyInformation
   /**
    * Coins signed with the denomination key must be spent or refreshed
    * between @e start and this expiration time.  After this time, the
-   * exchange will refuse transactions involving this key as it will
+   * donau will refuse transactions involving this key as it will
    * "drop" the table with double-spending information (shortly after)
    * this time.  Note that wallets should refresh coins significantly
    * before this time to be on the safe side.  @e expire_deposit must be
@@ -116,7 +116,7 @@ struct TALER_EXCHANGEDB_DenominationKeyInformation
   /**
    * When do signatures with this denomination key become invalid?
    * After this point, these signatures cannot be used in (legal)
-   * disputes anymore, as the Exchange is then allowed to destroy its side
+   * disputes anymore, as the Donau is then allowed to destroy its side
    * of the evidence.  @e expire_legal is expected to be significantly
    * larger than @e expire_deposit (by a year or more).
    */
@@ -155,14 +155,14 @@ GNUNET_NETWORK_STRUCT_BEGIN
 struct TALER_CoinDepositEventP
 {
   /**
-   * Of type #TALER_DBEVENT_EXCHANGE_DEPOSIT_STATUS_CHANGED.
+   * Of type #TALER_DBEVENT_DONAU_DEPOSIT_STATUS_CHANGED.
    */
   struct GNUNET_DB_EventHeaderP header;
 
   /**
-   * Public key of the merchant.
+   * Public key of the charity.
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
 };
 
@@ -172,7 +172,7 @@ struct TALER_CoinDepositEventP
 struct TALER_ReserveEventP
 {
   /**
-   * Of type #TALER_DBEVENT_EXCHANGE_RESERVE_INCOMING.
+   * Of type #TALER_DBEVENT_DONAU_RESERVE_INCOMING.
    */
   struct GNUNET_DB_EventHeaderP header;
 
@@ -189,8 +189,8 @@ struct TALER_ReserveEventP
 struct TALER_PurseEventP
 {
   /**
-   * Of type #TALER_DBEVENT_EXCHANGE_PURSE_MERGED or
-   * #TALER_DBEVENT_EXCHANGE_PURSE_DEPOSITED.
+   * Of type #TALER_DBEVENT_DONAU_PURSE_MERGED or
+   * #TALER_DBEVENT_DONAU_PURSE_DEPOSITED.
    */
   struct GNUNET_DB_EventHeaderP header;
 
@@ -207,7 +207,7 @@ struct TALER_PurseEventP
 struct TALER_KycCompletedEventP
 {
   /**
-   * Of type #TALER_DBEVENT_EXCHANGE_KYC_COMPLETED.
+   * Of type #TALER_DBEVENT_DONAU_KYC_COMPLETED.
    */
   struct GNUNET_DB_EventHeaderP header;
 
@@ -221,9 +221,9 @@ struct TALER_KycCompletedEventP
 GNUNET_NETWORK_STRUCT_END
 
 /**
- * Meta data about an exchange online signing key.
+ * Meta data about an donau online signing key.
  */
-struct TALER_EXCHANGEDB_SignkeyMetaData
+struct TALER_DONAUDB_SignkeyMetaData
 {
   /**
    * Start time of the validity period for this key.
@@ -231,14 +231,14 @@ struct TALER_EXCHANGEDB_SignkeyMetaData
   struct GNUNET_TIME_Timestamp start;
 
   /**
-   * The exchange will sign messages with this key between @e start and this 
time.
+   * The donau will sign messages with this key between @e start and this time.
    */
   struct GNUNET_TIME_Timestamp expire_sign;
 
   /**
    * When do signatures with this sign key become invalid?
    * After this point, these signatures cannot be used in (legal)
-   * disputes anymore, as the Exchange is then allowed to destroy its side
+   * disputes anymore, as the Donau is then allowed to destroy its side
    * of the evidence.  @e expire_legal is expected to be significantly
    * larger than @e expire_sign (by a year or more).
    */
@@ -248,73 +248,73 @@ struct TALER_EXCHANGEDB_SignkeyMetaData
 
 
 /**
- * Enumeration of all of the tables replicated by exchange-auditor
+ * Enumeration of all of the tables replicated by donau-auditor
  * database replication.
  */
-enum TALER_EXCHANGEDB_ReplicatedTable
+enum TALER_DONAUDB_ReplicatedTable
 {
-  /* From exchange-0002.sql: */
-  TALER_EXCHANGEDB_RT_DENOMINATIONS,
-  TALER_EXCHANGEDB_RT_DENOMINATION_REVOCATIONS,
-  TALER_EXCHANGEDB_RT_WIRE_TARGETS,
-  TALER_EXCHANGEDB_RT_LEGITIMIZATION_PROCESSES,
-  TALER_EXCHANGEDB_RT_LEGITIMIZATION_REQUIREMENTS,
-  TALER_EXCHANGEDB_RT_RESERVES,
-  TALER_EXCHANGEDB_RT_RESERVES_IN,
-  TALER_EXCHANGEDB_RT_RESERVES_CLOSE,
-  TALER_EXCHANGEDB_RT_RESERVES_OPEN_REQUESTS,
-  TALER_EXCHANGEDB_RT_RESERVES_OPEN_DEPOSITS,
-  TALER_EXCHANGEDB_RT_RESERVES_OUT,
-  TALER_EXCHANGEDB_RT_AUDITORS,
-  TALER_EXCHANGEDB_RT_AUDITOR_DENOM_SIGS,
-  TALER_EXCHANGEDB_RT_EXCHANGE_SIGN_KEYS,
-  TALER_EXCHANGEDB_RT_SIGNKEY_REVOCATIONS,
-  TALER_EXCHANGEDB_RT_KNOWN_COINS,
-  TALER_EXCHANGEDB_RT_REFRESH_COMMITMENTS,
-  TALER_EXCHANGEDB_RT_REFRESH_REVEALED_COINS,
-  TALER_EXCHANGEDB_RT_REFRESH_TRANSFER_KEYS,
-  TALER_EXCHANGEDB_RT_BATCH_DEPOSITS,
-  TALER_EXCHANGEDB_RT_COIN_DEPOSITS,
-  TALER_EXCHANGEDB_RT_REFUNDS,
-  TALER_EXCHANGEDB_RT_WIRE_OUT,
-  TALER_EXCHANGEDB_RT_AGGREGATION_TRACKING,
-  TALER_EXCHANGEDB_RT_WIRE_FEE,
-  TALER_EXCHANGEDB_RT_GLOBAL_FEE,
-  TALER_EXCHANGEDB_RT_RECOUP,
-  TALER_EXCHANGEDB_RT_RECOUP_REFRESH,
-  TALER_EXCHANGEDB_RT_EXTENSIONS,
-  TALER_EXCHANGEDB_RT_POLICY_DETAILS,
-  TALER_EXCHANGEDB_RT_POLICY_FULFILLMENTS,
-  TALER_EXCHANGEDB_RT_PURSE_REQUESTS,
-  TALER_EXCHANGEDB_RT_PURSE_DECISION,
-  TALER_EXCHANGEDB_RT_PURSE_MERGES,
-  TALER_EXCHANGEDB_RT_PURSE_DEPOSITS,
-  TALER_EXCHANGEDB_RT_ACCOUNT_MERGES,
-  TALER_EXCHANGEDB_RT_HISTORY_REQUESTS,
-  TALER_EXCHANGEDB_RT_CLOSE_REQUESTS,
-  TALER_EXCHANGEDB_RT_WADS_OUT,
-  TALER_EXCHANGEDB_RT_WADS_OUT_ENTRIES,
-  TALER_EXCHANGEDB_RT_WADS_IN,
-  TALER_EXCHANGEDB_RT_WADS_IN_ENTRIES,
-  TALER_EXCHANGEDB_RT_PROFIT_DRAINS,
-  /* From exchange-0003.sql: */
-  TALER_EXCHANGEDB_RT_AML_STAFF,
-  TALER_EXCHANGEDB_RT_AML_HISTORY,
-  TALER_EXCHANGEDB_RT_KYC_ATTRIBUTES,
-  TALER_EXCHANGEDB_RT_PURSE_DELETION,
-  TALER_EXCHANGEDB_RT_AGE_WITHDRAW,
+  /* From donau-0002.sql: */
+  TALER_DONAUDB_RT_DENOMINATIONS,
+  TALER_DONAUDB_RT_DENOMINATION_REVOCATIONS,
+  TALER_DONAUDB_RT_WIRE_TARGETS,
+  TALER_DONAUDB_RT_LEGITIMIZATION_PROCESSES,
+  TALER_DONAUDB_RT_LEGITIMIZATION_REQUIREMENTS,
+  TALER_DONAUDB_RT_RESERVES,
+  TALER_DONAUDB_RT_RESERVES_IN,
+  TALER_DONAUDB_RT_RESERVES_CLOSE,
+  TALER_DONAUDB_RT_RESERVES_OPEN_REQUESTS,
+  TALER_DONAUDB_RT_RESERVES_OPEN_DEPOSITS,
+  TALER_DONAUDB_RT_RESERVES_OUT,
+  TALER_DONAUDB_RT_AUDITORS,
+  TALER_DONAUDB_RT_AUDITOR_DENOM_SIGS,
+  TALER_DONAUDB_RT_DONAU_SIGN_KEYS,
+  TALER_DONAUDB_RT_SIGNKEY_REVOCATIONS,
+  TALER_DONAUDB_RT_KNOWN_COINS,
+  TALER_DONAUDB_RT_REFRESH_COMMITMENTS,
+  TALER_DONAUDB_RT_REFRESH_REVEALED_COINS,
+  TALER_DONAUDB_RT_REFRESH_TRANSFER_KEYS,
+  TALER_DONAUDB_RT_BATCH_DEPOSITS,
+  TALER_DONAUDB_RT_COIN_DEPOSITS,
+  TALER_DONAUDB_RT_REFUNDS,
+  TALER_DONAUDB_RT_WIRE_OUT,
+  TALER_DONAUDB_RT_AGGREGATION_TRACKING,
+  TALER_DONAUDB_RT_WIRE_FEE,
+  TALER_DONAUDB_RT_GLOBAL_FEE,
+  TALER_DONAUDB_RT_RECOUP,
+  TALER_DONAUDB_RT_RECOUP_REFRESH,
+  TALER_DONAUDB_RT_EXTENSIONS,
+  TALER_DONAUDB_RT_POLICY_DETAILS,
+  TALER_DONAUDB_RT_POLICY_FULFILLMENTS,
+  TALER_DONAUDB_RT_PURSE_REQUESTS,
+  TALER_DONAUDB_RT_PURSE_DECISION,
+  TALER_DONAUDB_RT_PURSE_MERGES,
+  TALER_DONAUDB_RT_PURSE_DEPOSITS,
+  TALER_DONAUDB_RT_ACCOUNT_MERGES,
+  TALER_DONAUDB_RT_HISTORY_REQUESTS,
+  TALER_DONAUDB_RT_CLOSE_REQUESTS,
+  TALER_DONAUDB_RT_WADS_OUT,
+  TALER_DONAUDB_RT_WADS_OUT_ENTRIES,
+  TALER_DONAUDB_RT_WADS_IN,
+  TALER_DONAUDB_RT_WADS_IN_ENTRIES,
+  TALER_DONAUDB_RT_PROFIT_DRAINS,
+  /* From donau-0003.sql: */
+  TALER_DONAUDB_RT_AML_STAFF,
+  TALER_DONAUDB_RT_AML_HISTORY,
+  TALER_DONAUDB_RT_KYC_ATTRIBUTES,
+  TALER_DONAUDB_RT_PURSE_DELETION,
+  TALER_DONAUDB_RT_AGE_WITHDRAW,
 };
 
 
 /**
  * Record of a single entry in a replicated table.
  */
-struct TALER_EXCHANGEDB_TableData
+struct TALER_DONAUDB_TableData
 {
   /**
    * Data of which table is returned here?
    */
-  enum TALER_EXCHANGEDB_ReplicatedTable table;
+  enum TALER_DONAUDB_ReplicatedTable table;
 
   /**
    * Serial number of the record.
@@ -384,7 +384,7 @@ struct TALER_EXCHANGEDB_TableData
       uint64_t wire_reference;
       struct TALER_Amount credit;
       struct TALER_PaytoHashP sender_account_h_payto;
-      char *exchange_account_section;
+      char *donau_account_section;
       struct GNUNET_TIME_Timestamp execution_date;
       struct TALER_ReservePublicKeyP reserve_pub;
     } reserves_in;
@@ -447,10 +447,10 @@ struct TALER_EXCHANGEDB_TableData
 
     struct
     {
-      struct TALER_ExchangePublicKeyP exchange_pub;
+      struct TALER_DonauPublicKeyP donau_pub;
       struct TALER_MasterSignatureP master_sig;
-      struct TALER_EXCHANGEDB_SignkeyMetaData meta;
-    } exchange_sign_keys;
+      struct TALER_DONAUDB_SignkeyMetaData meta;
+    } donau_sign_keys;
 
     struct
     {
@@ -483,7 +483,7 @@ struct TALER_EXCHANGEDB_TableData
       uint64_t denominations_serial;
       void *coin_ev;
       size_t coin_ev_size;
-      struct TALER_ExchangeWithdrawValues ewv;
+      struct TALER_DonauWithdrawValues ewv;
       // h_coin_ev omitted, to be recomputed!
       struct TALER_BlindedDenominationSignature ev_sig;
     } refresh_revealed_coins;
@@ -498,9 +498,9 @@ struct TALER_EXCHANGEDB_TableData
     struct
     {
       uint64_t shard;
-      struct TALER_MerchantPublicKeyP merchant_pub;
+      struct TALER_CharityPublicKeyP charity_pub;
       struct GNUNET_TIME_Timestamp wallet_timestamp;
-      struct GNUNET_TIME_Timestamp exchange_timestamp;
+      struct GNUNET_TIME_Timestamp donau_timestamp;
       struct GNUNET_TIME_Timestamp refund_deadline;
       struct GNUNET_TIME_Timestamp wire_deadline;
       struct TALER_PrivateContractHashP h_contract_terms;
@@ -525,7 +525,7 @@ struct TALER_EXCHANGEDB_TableData
     {
       struct TALER_CoinSpendPublicKeyP coin_pub;
       uint64_t batch_deposit_serial_id;
-      struct TALER_MerchantSignatureP merchant_sig;
+      struct TALER_CharitySignatureP charity_sig;
       uint64_t rtransaction_id;
       struct TALER_Amount amount_with_fee;
     } refunds;
@@ -535,7 +535,7 @@ struct TALER_EXCHANGEDB_TableData
       struct GNUNET_TIME_Timestamp execution_date;
       struct TALER_WireTransferIdentifierRawP wtid_raw;
       struct TALER_PaytoHashP wire_target_h_payto;
-      char *exchange_account_section;
+      char *donau_account_section;
       struct TALER_Amount amount;
     } wire_out;
 
@@ -707,7 +707,7 @@ struct TALER_EXCHANGEDB_TableData
     struct
     {
       struct TALER_WadIdentifierP wad_id;
-      char *origin_exchange_url;
+      char *origin_donau_url;
       struct TALER_Amount amount;
       struct GNUNET_TIME_Timestamp arrival_time;
     } wads_in;
@@ -800,21 +800,21 @@ struct TALER_EXCHANGEDB_TableData
  * Function called on data to replicate in the auditor's database.
  *
  * @param cls closure
- * @param td record from an exchange table
+ * @param td record from an donau table
  * @return #GNUNET_OK to continue to iterate,
  *         #GNUNET_SYSERR to fail with an error
  */
 typedef int
-(*TALER_EXCHANGEDB_ReplicationCallback)(
+(*TALER_DONAUDB_ReplicationCallback)(
   void *cls,
-  const struct TALER_EXCHANGEDB_TableData *td);
+  const struct TALER_DONAUDB_TableData *td);
 
 
 /**
  * @brief All information about a denomination key (which is used to
  * sign coins into existence).
  */
-struct TALER_EXCHANGEDB_DenominationKey
+struct TALER_DONAUDB_DenominationKey
 {
   /**
    * The private key of the denomination.  Will be NULL if the private
@@ -832,14 +832,14 @@ struct TALER_EXCHANGEDB_DenominationKey
   /**
    * Signed public information about a denomination key.
    */
-  struct TALER_EXCHANGEDB_DenominationKeyInformation issue;
+  struct TALER_DONAUDB_DenominationKeyInformation issue;
 };
 
 
 /**
  * @brief Information we keep on bank transfer(s) that established a reserve.
  */
-struct TALER_EXCHANGEDB_BankTransfer
+struct TALER_DONAUDB_BankTransfer
 {
 
   /**
@@ -848,13 +848,13 @@ struct TALER_EXCHANGEDB_BankTransfer
   struct TALER_ReservePublicKeyP reserve_pub;
 
   /**
-   * Amount that was transferred to the exchange.
+   * Amount that was transferred to the donau.
    */
   struct TALER_Amount amount;
 
   /**
-   * When did the exchange receive the incoming transaction?
-   * (This is the execution date of the exchange's database,
+   * When did the donau receive the incoming transaction?
+   * (This is the execution date of the donau's database,
    * the execution date of the bank should be in @e wire).
    */
   struct GNUNET_TIME_Timestamp execution_date;
@@ -877,7 +877,7 @@ struct TALER_EXCHANGEDB_BankTransfer
  * @brief Information we keep on bank transfer(s) that
  * closed a reserve.
  */
-struct TALER_EXCHANGEDB_ClosingTransfer
+struct TALER_DONAUDB_ClosingTransfer
 {
 
   /**
@@ -886,17 +886,17 @@ struct TALER_EXCHANGEDB_ClosingTransfer
   struct TALER_ReservePublicKeyP reserve_pub;
 
   /**
-   * Amount that was transferred from the exchange.
+   * Amount that was transferred from the donau.
    */
   struct TALER_Amount amount;
 
   /**
-   * Amount that was charged by the exchange.
+   * Amount that was charged by the donau.
    */
   struct TALER_Amount closing_fee;
 
   /**
-   * When did the exchange execute the transaction?
+   * When did the donau execute the transaction?
    */
   struct GNUNET_TIME_Timestamp execution_date;
 
@@ -918,7 +918,7 @@ struct TALER_EXCHANGEDB_ClosingTransfer
 /**
  * @brief A summary of a Reserve
  */
-struct TALER_EXCHANGEDB_Reserve
+struct TALER_DONAUDB_Reserve
 {
   /**
    * The reserve's public key.  This uniquely identifies the reserve
@@ -947,7 +947,7 @@ struct TALER_EXCHANGEDB_Reserve
 /**
  * Meta data about a denomination public key.
  */
-struct TALER_EXCHANGEDB_DenominationKeyMetaData
+struct TALER_DONAUDB_DenominationKeyMetaData
 {
   /**
    * Serial of the denomination key as in the DB.
@@ -962,14 +962,14 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
   struct GNUNET_TIME_Timestamp start;
 
   /**
-   * The exchange will sign fresh coins between @e start and this time.
+   * The donau will sign fresh coins between @e start and this time.
    * @e expire_withdraw will be somewhat larger than @e start to
    * ensure a sufficiently large anonymity set, while also allowing
-   * the Exchange to limit the financial damage in case of a key being
-   * compromised.  Thus, exchanges with low volume are expected to have a
-   * longer withdraw period (@e expire_withdraw - @e start) than exchanges
+   * the Donau to limit the financial damage in case of a key being
+   * compromised.  Thus, donaus with low volume are expected to have a
+   * longer withdraw period (@e expire_withdraw - @e start) than donaus
    * with high transaction volume.  The period may also differ between
-   * types of coins.  A exchange may also have a few denomination keys
+   * types of coins.  A donau may also have a few denomination keys
    * with the same value with overlapping validity periods, to address
    * issues such as clock skew.
    */
@@ -978,7 +978,7 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
   /**
    * Coins signed with the denomination key must be spent or refreshed
    * between @e start and this expiration time.  After this time, the
-   * exchange will refuse transactions involving this key as it will
+   * donau will refuse transactions involving this key as it will
    * "drop" the table with double-spending information (shortly after)
    * this time.  Note that wallets should refresh coins significantly
    * before this time to be on the safe side.  @e expire_deposit must be
@@ -990,7 +990,7 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
   /**
    * When do signatures with this denomination key become invalid?
    * After this point, these signatures cannot be used in (legal)
-   * disputes anymore, as the Exchange is then allowed to destroy its side
+   * disputes anymore, as the Donau is then allowed to destroy its side
    * of the evidence.  @e expire_legal is expected to be significantly
    * larger than @e expire_deposit (by a year or more).
    */
@@ -1002,7 +1002,7 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
   struct TALER_Amount value;
 
   /**
-   * The fees the exchange charges for operations with
+   * The fees the donau charges for operations with
    * coins of this denomination.
    */
   struct TALER_DenomFeeSet fees;
@@ -1026,7 +1026,7 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
 
 
 /**
- * Signature of a function called with information about the exchange's
+ * Signature of a function called with information about the donau's
  * denomination keys.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
@@ -1038,29 +1038,29 @@ struct TALER_EXCHANGEDB_DenominationKeyMetaData
  *        coins of this denomination
  */
 typedef void
-(*TALER_EXCHANGEDB_DenominationsCallback)(
+(*TALER_DONAUDB_DenominationsCallback)(
   void *cls,
   const struct TALER_DenominationPublicKey *denom_pub,
   const struct TALER_DenominationHashP *h_denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
+  const struct TALER_DONAUDB_DenominationKeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig,
   bool recoup_possible);
 
 
 /**
- * Signature of a function called with information about the exchange's
+ * Signature of a function called with information about the donau's
  * online signing keys.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
- * @param exchange_pub public key of the exchange
+ * @param donau_pub public key of the donau
  * @param meta meta data information about the signing type (expirations)
  * @param master_sig master signature affirming the validity of this 
denomination
  */
 typedef void
-(*TALER_EXCHANGEDB_ActiveSignkeysCallback)(
+(*TALER_DONAUDB_ActiveSignkeysCallback)(
   void *cls,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DONAUDB_SignkeyMetaData *meta,
   const struct TALER_MasterSignatureP *master_sig);
 
 
@@ -1073,7 +1073,7 @@ typedef void
  *        of the respective KYC process
  */
 typedef void
-(*TALER_EXCHANGEDB_SatisfiedProviderCallback)(
+(*TALER_DONAUDB_SatisfiedProviderCallback)(
   void *cls,
   const char *kyc_provider_section_name);
 
@@ -1090,7 +1090,7 @@ typedef void
  * @param legi_id legitimization process ID (can be NULL)
  */
 typedef void
-(*TALER_EXCHANGEDB_LegitimizationProcessCallback)(
+(*TALER_DONAUDB_LegitimizationProcessCallback)(
   void *cls,
   const char *kyc_provider_section_name,
   const char *provider_user_id,
@@ -1098,7 +1098,7 @@ typedef void
 
 
 /**
- * Function called with information about the exchange's auditors.
+ * Function called with information about the donau's auditors.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
  * @param auditor_pub the public key of the auditor
@@ -1106,7 +1106,7 @@ typedef void
  * @param auditor_name human readable official name of the auditor
  */
 typedef void
-(*TALER_EXCHANGEDB_AuditorsCallback)(
+(*TALER_DONAUDB_AuditorsCallback)(
   void *cls,
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   const char *auditor_url,
@@ -1115,7 +1115,7 @@ typedef void
 
 /**
  * Function called with information about the denominations
- * audited by the exchange's auditors.
+ * audited by the donau's auditors.
  *
  * @param cls closure with a `struct TEH_KeyStateHandle *`
  * @param auditor_pub the public key of an auditor
@@ -1123,7 +1123,7 @@ typedef void
  * @param auditor_sig signature from the auditor affirming this
  */
 typedef void
-(*TALER_EXCHANGEDB_AuditorDenominationsCallback)(
+(*TALER_DONAUDB_AuditorDenominationsCallback)(
   void *cls,
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   const struct TALER_DenominationHashP *h_denom_pub,
@@ -1135,7 +1135,7 @@ typedef void
  * the /withdraw operation if needed, and to have proof
  * that a reserve was drained by this amount.
  */
-struct TALER_EXCHANGEDB_CollectableBlindcoin
+struct TALER_DONAUDB_CollectableBlindcoin
 {
 
   /**
@@ -1149,7 +1149,7 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
   struct TALER_DenominationHashP denom_pub_hash;
 
   /**
-   * Value of the coin being exchangeed (matching the denomination key)
+   * Value of the coin being donaued (matching the denomination key)
    * plus the transaction fee.  We include this in what is being
    * signed so that we can verify a reserve's remaining total balance
    * without needing to access the respective denomination key
@@ -1158,14 +1158,14 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
   struct TALER_Amount amount_with_fee;
 
   /**
-   * Withdrawal fee charged by the exchange.  This must match the Exchange's
+   * Withdrawal fee charged by the donau.  This must match the Donau's
    * denomination key's withdrawal fee.  If the client puts in an
    * invalid withdrawal fee (too high or too low) that does not match
-   * the Exchange's denomination key, the withdraw operation is invalid
-   * and will be rejected by the exchange.  The @e amount_with_fee minus
+   * the Donau's denomination key, the withdraw operation is invalid
+   * and will be rejected by the donau.  The @e amount_with_fee minus
    * the @e withdraw_fee is must match the value of the generated
    * coin.  We include this in what is being signed so that we can
-   * verify a exchange's accounting without needing to access the
+   * verify a donau's accounting without needing to access the
    * respective denomination key information each time.
    */
   struct TALER_Amount withdraw_fee;
@@ -1194,7 +1194,7 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
  * to reproduce the /age-withdraw operation if needed, and to have proof
  * that a reserve was drained by this amount.
  */
-struct TALER_EXCHANGEDB_AgeWithdraw
+struct TALER_DONAUDB_AgeWithdraw
 {
   /**
    * Total amount (with fee) committed to withdraw
@@ -1212,7 +1212,7 @@ struct TALER_EXCHANGEDB_AgeWithdraw
   struct TALER_AgeWithdrawCommitmentHashP h_commitment;
 
   /**
-   * Index (smaller #TALER_CNC_KAPPA) which the exchange has chosen to not have
+   * Index (smaller #TALER_CNC_KAPPA) which the donau has chosen to not have
    * revealed during cut and choose.  This value applies to all n coins in the
    * commitment.
    */
@@ -1263,10 +1263,10 @@ struct TALER_EXCHANGEDB_AgeWithdraw
 
 
 /**
- * Information the exchange records about a recoup request
+ * Information the donau records about a recoup request
  * in a reserve history.
  */
-struct TALER_EXCHANGEDB_Recoup
+struct TALER_DONAUDB_Recoup
 {
 
   /**
@@ -1275,7 +1275,7 @@ struct TALER_EXCHANGEDB_Recoup
   struct TALER_CoinPublicInfo coin;
 
   /**
-   * Blinding factor supplied to prove to the exchange that
+   * Blinding factor supplied to prove to the donau that
    * the coin came from this reserve.
    */
   union TALER_DenominationBlindingKeyP coin_blind;
@@ -1307,7 +1307,7 @@ struct TALER_EXCHANGEDB_Recoup
 /**
  * Public key to which a nonce is locked.
  */
-union TALER_EXCHANGEDB_NonceLockTargetP
+union TALER_DONAUDB_NonceLockTargetP
 {
   /**
    * Nonce is locked to this coin key.
@@ -1322,14 +1322,14 @@ union TALER_EXCHANGEDB_NonceLockTargetP
 
 
 /**
- * Information the exchange records about a recoup request
+ * Information the donau records about a recoup request
  * in a coin history.
  */
-struct TALER_EXCHANGEDB_RecoupListEntry
+struct TALER_DONAUDB_RecoupListEntry
 {
 
   /**
-   * Blinding factor supplied to prove to the exchange that
+   * Blinding factor supplied to prove to the donau that
    * the coin came from this reserve.
    */
   union TALER_DenominationBlindingKeyP coin_blind;
@@ -1364,10 +1364,10 @@ struct TALER_EXCHANGEDB_RecoupListEntry
 
 
 /**
- * Information the exchange records about a recoup-refresh request in
+ * Information the donau records about a recoup-refresh request in
  * a coin transaction history.
  */
-struct TALER_EXCHANGEDB_RecoupRefreshListEntry
+struct TALER_DONAUDB_RecoupRefreshListEntry
 {
 
   /**
@@ -1377,7 +1377,7 @@ struct TALER_EXCHANGEDB_RecoupRefreshListEntry
   struct TALER_CoinPublicInfo coin;
 
   /**
-   * Blinding factor supplied to prove to the exchange that
+   * Blinding factor supplied to prove to the donau that
    * the coin came from this @e old_coin_pub.
    */
   union TALER_DenominationBlindingKeyP coin_blind;
@@ -1409,7 +1409,7 @@ struct TALER_EXCHANGEDB_RecoupRefreshListEntry
 /**
  * Details about a purse merge operation.
  */
-struct TALER_EXCHANGEDB_PurseMerge
+struct TALER_DONAUDB_PurseMerge
 {
 
   /**
@@ -1479,7 +1479,7 @@ struct TALER_EXCHANGEDB_PurseMerge
 /**
  * Details about a (paid for) reserve history request.
  */
-struct TALER_EXCHANGEDB_HistoryRequest
+struct TALER_DONAUDB_HistoryRequest
 {
   /**
    * Public key of the reserve the history request was for.
@@ -1506,7 +1506,7 @@ struct TALER_EXCHANGEDB_HistoryRequest
 /**
  * Details about a (paid for) reserve open request.
  */
-struct TALER_EXCHANGEDB_OpenRequest
+struct TALER_DONAUDB_OpenRequest
 {
   /**
    * Public key of the reserve the open request was for.
@@ -1546,7 +1546,7 @@ struct TALER_EXCHANGEDB_OpenRequest
 /**
  * Details about an (explicit) reserve close request.
  */
-struct TALER_EXCHANGEDB_CloseRequest
+struct TALER_DONAUDB_CloseRequest
 {
   /**
    * Public key of the reserve the history request was for.
@@ -1576,50 +1576,50 @@ struct TALER_EXCHANGEDB_CloseRequest
 /**
  * @brief Types of operations on a reserve.
  */
-enum TALER_EXCHANGEDB_ReserveOperation
+enum TALER_DONAUDB_ReserveOperation
 {
   /**
    * Money was deposited into the reserve via a bank transfer.
-   * This is how customers establish a reserve at the exchange.
+   * This is how donors establish a reserve at the donau.
    */
-  TALER_EXCHANGEDB_RO_BANK_TO_EXCHANGE = 0,
+  TALER_DONAUDB_RO_BANK_TO_DONAU = 0,
 
   /**
    * A Coin was withdrawn from the reserve using /withdraw.
    */
-  TALER_EXCHANGEDB_RO_WITHDRAW_COIN = 1,
+  TALER_DONAUDB_RO_WITHDRAW_COIN = 1,
 
   /**
    * A coin was returned to the reserve using /recoup.
    */
-  TALER_EXCHANGEDB_RO_RECOUP_COIN = 2,
+  TALER_DONAUDB_RO_RECOUP_COIN = 2,
 
   /**
-   * The exchange send inactive funds back from the reserve to the
-   * customer's bank account.  This happens when the exchange
+   * The donau send inactive funds back from the reserve to the
+   * donor's bank account.  This happens when the donau
    * closes a reserve with a non-zero amount left in it.
    */
-  TALER_EXCHANGEDB_RO_EXCHANGE_TO_BANK = 3,
+  TALER_DONAUDB_RO_DONAU_TO_BANK = 3,
 
   /**
    * Event where a purse was merged into a reserve.
    */
-  TALER_EXCHANGEDB_RO_PURSE_MERGE = 4,
+  TALER_DONAUDB_RO_PURSE_MERGE = 4,
 
   /**
    * Event where a wallet paid for a full reserve history.
    */
-  TALER_EXCHANGEDB_RO_HISTORY_REQUEST = 5,
+  TALER_DONAUDB_RO_HISTORY_REQUEST = 5,
 
   /**
    * Event where a wallet paid to open a reserve for longer.
    */
-  TALER_EXCHANGEDB_RO_OPEN_REQUEST = 6,
+  TALER_DONAUDB_RO_OPEN_REQUEST = 6,
 
   /**
    * Event where a wallet requested a reserve to be closed.
    */
-  TALER_EXCHANGEDB_RO_CLOSE_REQUEST = 7
+  TALER_DONAUDB_RO_CLOSE_REQUEST = 7
 };
 
 
@@ -1629,18 +1629,18 @@ enum TALER_EXCHANGEDB_ReserveOperation
  * established the reserve and all /withdraw operations we have done
  * since).
  */
-struct TALER_EXCHANGEDB_ReserveHistory
+struct TALER_DONAUDB_ReserveHistory
 {
 
   /**
    * Next entry in the reserve history.
    */
-  struct TALER_EXCHANGEDB_ReserveHistory *next;
+  struct TALER_DONAUDB_ReserveHistory *next;
 
   /**
    * Type of the event, determines @e details.
    */
-  enum TALER_EXCHANGEDB_ReserveOperation type;
+  enum TALER_DONAUDB_ReserveOperation type;
 
   /**
    * Details of the operation, depending on @e type.
@@ -1649,46 +1649,46 @@ struct TALER_EXCHANGEDB_ReserveHistory
   {
 
     /**
-     * Details about a bank transfer to the exchange (reserve
+     * Details about a bank transfer to the donau (reserve
      * was established).
      */
-    struct TALER_EXCHANGEDB_BankTransfer *bank;
+    struct TALER_DONAUDB_BankTransfer *bank;
 
     /**
      * Details about a /withdraw operation.
      */
-    struct TALER_EXCHANGEDB_CollectableBlindcoin *withdraw;
+    struct TALER_DONAUDB_CollectableBlindcoin *withdraw;
 
     /**
      * Details about a /recoup operation.
      */
-    struct TALER_EXCHANGEDB_Recoup *recoup;
+    struct TALER_DONAUDB_Recoup *recoup;
 
     /**
-     * Details about a bank transfer from the exchange (reserve
+     * Details about a bank transfer from the donau (reserve
      * was closed).
      */
-    struct TALER_EXCHANGEDB_ClosingTransfer *closing;
+    struct TALER_DONAUDB_ClosingTransfer *closing;
 
     /**
      * Details about a purse merge operation.
      */
-    struct TALER_EXCHANGEDB_PurseMerge *merge;
+    struct TALER_DONAUDB_PurseMerge *merge;
 
     /**
      * Details about a (paid for) reserve history request.
      */
-    struct TALER_EXCHANGEDB_HistoryRequest *history;
+    struct TALER_DONAUDB_HistoryRequest *history;
 
     /**
      * Details about a (paid for) open reserve request.
      */
-    struct TALER_EXCHANGEDB_OpenRequest *open_request;
+    struct TALER_DONAUDB_OpenRequest *open_request;
 
     /**
      * Details about an (explicit) reserve close request.
      */
-    struct TALER_EXCHANGEDB_CloseRequest *close_request;
+    struct TALER_DONAUDB_CloseRequest *close_request;
 
   } details;
 
@@ -1698,7 +1698,7 @@ struct TALER_EXCHANGEDB_ReserveHistory
 /**
  * @brief Data about a coin for a deposit operation.
  */
-struct TALER_EXCHANGEDB_CoinDepositInformation
+struct TALER_DONAUDB_CoinDepositInformation
 {
   /**
    * Information about the coin that is being deposited.
@@ -1706,8 +1706,8 @@ struct TALER_EXCHANGEDB_CoinDepositInformation
   struct TALER_CoinPublicInfo coin;
 
   /**
-   * ECDSA signature affirming that the customer intends
-   * this coin to be deposited at the merchant identified
+   * ECDSA signature affirming that the donor intends
+   * this coin to be deposited at the charity identified
    * by @e h_wire in relation to the proposal data identified
    * by @e h_contract_terms.
    */
@@ -1725,18 +1725,18 @@ struct TALER_EXCHANGEDB_CoinDepositInformation
 /**
  * @brief Data from a batch deposit operation.
  */
-struct TALER_EXCHANGEDB_BatchDeposit
+struct TALER_DONAUDB_BatchDeposit
 {
 
   /**
-   * Public key of the merchant.  Enables later identification
-   * of the merchant in case of a need to rollback transactions.
+   * Public key of the charity.  Enables later identification
+   * of the charity in case of a need to rollback transactions.
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
   /**
-   * Hash over the proposal data between merchant and customer
-   * (remains unknown to the Exchange).
+   * Hash over the proposal data between charity and donor
+   * (remains unknown to the Donau).
    */
   struct TALER_PrivateContractHashP h_contract_terms;
 
@@ -1751,36 +1751,36 @@ struct TALER_EXCHANGEDB_BatchDeposit
   struct TALER_PaytoHashP wire_target_h_payto;
 
   /**
-   * Salt used by the merchant to compute "h_wire".
+   * Salt used by the charity to compute "h_wire".
    */
   struct TALER_WireSaltP wire_salt;
 
   /**
    * Time when this request was generated.  Used, for example, to
    * assess when (roughly) the income was achieved for tax purposes.
-   * Note that the Exchange will only check that the timestamp is not "too
+   * Note that the Donau will only check that the timestamp is not "too
    * far" into the future (i.e. several days).  The fact that the
    * timestamp falls within the validity period of the coin's
    * denomination key is irrelevant for the validity of the deposit
-   * request, as obviously the customer and merchant could conspire to
-   * set any timestamp.  Also, the Exchange must accept very old deposit
-   * requests, as the merchant might have been unable to transmit the
+   * request, as obviously the donor and charity could conspire to
+   * set any timestamp.  Also, the Donau must accept very old deposit
+   * requests, as the charity might have been unable to transmit the
    * deposit request in a timely fashion (so back-dating is not
    * prevented).
    */
   struct GNUNET_TIME_Timestamp wallet_timestamp;
 
   /**
-   * How much time does the merchant have to issue a refund request?
+   * How much time does the charity have to issue a refund request?
    * Zero if refunds are not allowed.  After this time, the coin
    * cannot be refunded.
    */
   struct GNUNET_TIME_Timestamp refund_deadline;
 
   /**
-   * How much time does the merchant have to execute the wire transfer?
+   * How much time does the charity have to execute the wire transfer?
    * This time is advisory for aggregating transactions, not a hard
-   * constraint (as the merchant can theoretically pick any time,
+   * constraint (as the charity can theoretically pick any time,
    * including one in the past).
    */
   struct GNUNET_TIME_Timestamp wire_deadline;
@@ -1799,7 +1799,7 @@ struct TALER_EXCHANGEDB_BatchDeposit
   /**
    * Array about the coins that are being deposited.
    */
-  const struct TALER_EXCHANGEDB_CoinDepositInformation *cdis;
+  const struct TALER_DONAUDB_CoinDepositInformation *cdis;
 
   /**
    * Length of the @e cdis array.
@@ -1821,15 +1821,15 @@ struct TALER_EXCHANGEDB_BatchDeposit
 
 /**
  * @brief Data from a deposit operation.  The combination of
- * the coin's public key, the merchant's public key and the
+ * the coin's public key, the charity's public key and the
  * transaction ID must be unique.  While a coin can (theoretically) be
- * deposited at the same merchant twice (with partial spending), the
- * merchant must either use a different public key or a different
+ * deposited at the same charity twice (with partial spending), the
+ * charity must either use a different public key or a different
  * transaction ID for the two transactions.  The same coin must not
- * be used twice at the same merchant for the same transaction
+ * be used twice at the same charity for the same transaction
  * (as determined by transaction ID).
  */
-struct TALER_EXCHANGEDB_Deposit
+struct TALER_DONAUDB_Deposit
 {
   /**
    * Information about the coin that is being deposited.
@@ -1837,27 +1837,27 @@ struct TALER_EXCHANGEDB_Deposit
   struct TALER_CoinPublicInfo coin;
 
   /**
-   * ECDSA signature affirming that the customer intends
-   * this coin to be deposited at the merchant identified
+   * ECDSA signature affirming that the donor intends
+   * this coin to be deposited at the charity identified
    * by @e h_wire in relation to the proposal data identified
    * by @e h_contract_terms.
    */
   struct TALER_CoinSpendSignatureP csig;
 
   /**
-   * Public key of the merchant.  Enables later identification
-   * of the merchant in case of a need to rollback transactions.
+   * Public key of the charity.  Enables later identification
+   * of the charity in case of a need to rollback transactions.
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
   /**
-   * Hash over the proposal data between merchant and customer
-   * (remains unknown to the Exchange).
+   * Hash over the proposal data between charity and donor
+   * (remains unknown to the Donau).
    */
   struct TALER_PrivateContractHashP h_contract_terms;
 
   /**
-   * Salt used by the merchant to compute "h_wire".
+   * Salt used by the charity to compute "h_wire".
    */
   struct TALER_WireSaltP wire_salt;
 
@@ -1868,36 +1868,36 @@ struct TALER_EXCHANGEDB_Deposit
 
   /**
    * Hash over the policy data for this deposit (remains unknown to the
-   * Exchange).  Needed for the verification of the deposit's signature
+   * Donau).  Needed for the verification of the deposit's signature
    */
   struct TALER_ExtensionPolicyHashP h_policy;
 
   /**
    * Time when this request was generated.  Used, for example, to
    * assess when (roughly) the income was achieved for tax purposes.
-   * Note that the Exchange will only check that the timestamp is not "too
+   * Note that the Donau will only check that the timestamp is not "too
    * far" into the future (i.e. several days).  The fact that the
    * timestamp falls within the validity period of the coin's
    * denomination key is irrelevant for the validity of the deposit
-   * request, as obviously the customer and merchant could conspire to
-   * set any timestamp.  Also, the Exchange must accept very old deposit
-   * requests, as the merchant might have been unable to transmit the
+   * request, as obviously the donor and charity could conspire to
+   * set any timestamp.  Also, the Donau must accept very old deposit
+   * requests, as the charity might have been unable to transmit the
    * deposit request in a timely fashion (so back-dating is not
    * prevented).
    */
   struct GNUNET_TIME_Timestamp timestamp;
 
   /**
-   * How much time does the merchant have to issue a refund request?
+   * How much time does the charity have to issue a refund request?
    * Zero if refunds are not allowed.  After this time, the coin
    * cannot be refunded.
    */
   struct GNUNET_TIME_Timestamp refund_deadline;
 
   /**
-   * How much time does the merchant have to execute the wire transfer?
+   * How much time does the charity have to execute the wire transfer?
    * This time is advisory for aggregating transactions, not a hard
-   * constraint (as the merchant can theoretically pick any time,
+   * constraint (as the charity can theoretically pick any time,
    * including one in the past).
    */
   struct GNUNET_TIME_Timestamp wire_deadline;
@@ -1934,28 +1934,28 @@ struct TALER_EXCHANGEDB_Deposit
 
 /**
  * @brief Specification for a deposit operation in the
- * `struct TALER_EXCHANGEDB_TransactionList`.
+ * `struct TALER_DONAUDB_TransactionList`.
  */
-struct TALER_EXCHANGEDB_DepositListEntry
+struct TALER_DONAUDB_DepositListEntry
 {
 
   /**
-   * ECDSA signature affirming that the customer intends
-   * this coin to be deposited at the merchant identified
+   * ECDSA signature affirming that the donor intends
+   * this coin to be deposited at the charity identified
    * by @e h_wire in relation to the proposal data identified
    * by @e h_contract_terms.
    */
   struct TALER_CoinSpendSignatureP csig;
 
   /**
-   * Public key of the merchant.  Enables later identification
-   * of the merchant in case of a need to rollback transactions.
+   * Public key of the charity.  Enables later identification
+   * of the charity in case of a need to rollback transactions.
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
   /**
-   * Hash over the proposa data between merchant and customer
-   * (remains unknown to the Exchange).
+   * Hash over the proposa data between charity and donor
+   * (remains unknown to the Donau).
    */
   struct TALER_PrivateContractHashP h_contract_terms;
 
@@ -1982,7 +1982,7 @@ struct TALER_EXCHANGEDB_DepositListEntry
 
   /**
    * Hash over the policy data for this deposit (remains unknown to the
-   * Exchange).  Needed for the verification of the deposit's signature
+   * Donau).  Needed for the verification of the deposit's signature
    */
   struct TALER_ExtensionPolicyHashP h_policy;
 
@@ -2000,29 +2000,29 @@ struct TALER_EXCHANGEDB_DepositListEntry
   /**
    * Time when this request was generated.  Used, for example, to
    * assess when (roughly) the income was achieved for tax purposes.
-   * Note that the Exchange will only check that the timestamp is not "too
+   * Note that the Donau will only check that the timestamp is not "too
    * far" into the future (i.e. several days).  The fact that the
    * timestamp falls within the validity period of the coin's
    * denomination key is irrelevant for the validity of the deposit
-   * request, as obviously the customer and merchant could conspire to
-   * set any timestamp.  Also, the Exchange must accept very old deposit
-   * requests, as the merchant might have been unable to transmit the
+   * request, as obviously the donor and charity could conspire to
+   * set any timestamp.  Also, the Donau must accept very old deposit
+   * requests, as the charity might have been unable to transmit the
    * deposit request in a timely fashion (so back-dating is not
    * prevented).
    */
   struct GNUNET_TIME_Timestamp timestamp;
 
   /**
-   * How much time does the merchant have to issue a refund request?
+   * How much time does the charity have to issue a refund request?
    * Zero if refunds are not allowed.  After this time, the coin
    * cannot be refunded.
    */
   struct GNUNET_TIME_Timestamp refund_deadline;
 
   /**
-   * How much time does the merchant have to execute the wire transfer?
+   * How much time does the charity have to execute the wire transfer?
    * This time is advisory for aggregating transactions, not a hard
-   * constraint (as the merchant can theoretically pick any time,
+   * constraint (as the charity can theoretically pick any time,
    * including one in the past).
    */
   struct GNUNET_TIME_Timestamp wire_deadline;
@@ -2059,27 +2059,27 @@ struct TALER_EXCHANGEDB_DepositListEntry
 /**
  * @brief Specification for a refund operation in a coin's transaction list.
  */
-struct TALER_EXCHANGEDB_RefundListEntry
+struct TALER_DONAUDB_RefundListEntry
 {
 
   /**
-   * Public key of the merchant.
+   * Public key of the charity.
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
   /**
-   * Signature from the merchant affirming the refund.
+   * Signature from the charity affirming the refund.
    */
-  struct TALER_MerchantSignatureP merchant_sig;
+  struct TALER_CharitySignatureP charity_sig;
 
   /**
-   * Hash over the proposal data between merchant and customer
-   * (remains unknown to the Exchange).
+   * Hash over the proposal data between charity and donor
+   * (remains unknown to the Donau).
    */
   struct TALER_PrivateContractHashP h_contract_terms;
 
   /**
-   * Merchant-generated REFUND transaction ID to detect duplicate
+   * Charity-generated REFUND transaction ID to detect duplicate
    * refunds.
    */
   uint64_t rtransaction_id;
@@ -2091,7 +2091,7 @@ struct TALER_EXCHANGEDB_RefundListEntry
   struct TALER_Amount refund_amount;
 
   /**
-   * Refund fee to be covered by the customer.
+   * Refund fee to be covered by the donor.
    */
   struct TALER_Amount refund_fee;
 
@@ -2100,16 +2100,16 @@ struct TALER_EXCHANGEDB_RefundListEntry
 
 /**
  * @brief Specification for a refund operation.  The combination of
- * the coin's public key, the merchant's public key and the
+ * the coin's public key, the charity's public key and the
  * transaction ID must be unique.  While a coin can (theoretically) be
- * deposited at the same merchant twice (with partial spending), the
- * merchant must either use a different public key or a different
+ * deposited at the same charity twice (with partial spending), the
+ * charity must either use a different public key or a different
  * transaction ID for the two transactions.  The same goes for
  * refunds, hence we also have a "rtransaction" ID which is disjoint
  * from the transaction ID.  The same coin must not be used twice at
- * the same merchant for the same transaction or rtransaction ID.
+ * the same charity for the same transaction or rtransaction ID.
  */
-struct TALER_EXCHANGEDB_Refund
+struct TALER_DONAUDB_Refund
 {
   /**
    * Information about the coin that is being refunded.
@@ -2119,7 +2119,7 @@ struct TALER_EXCHANGEDB_Refund
   /**
    * Details about the refund.
    */
-  struct TALER_EXCHANGEDB_RefundListEntry details;
+  struct TALER_DONAUDB_RefundListEntry details;
 
 };
 
@@ -2127,7 +2127,7 @@ struct TALER_EXCHANGEDB_Refund
 /**
  * @brief Specification for coin in a melt operation.
  */
-struct TALER_EXCHANGEDB_Refresh
+struct TALER_DONAUDB_Refresh
 {
   /**
    * Information about the coin that is being melted.
@@ -2155,7 +2155,7 @@ struct TALER_EXCHANGEDB_Refresh
   struct TALER_Amount amount_with_fee;
 
   /**
-   * Index (smaller #TALER_CNC_KAPPA) which the exchange has chosen to not
+   * Index (smaller #TALER_CNC_KAPPA) which the donau has chosen to not
    * have revealed during cut and choose.
    */
   uint32_t noreveal_index;
@@ -2166,7 +2166,7 @@ struct TALER_EXCHANGEDB_Refresh
 /**
  * Information about a /coins/$COIN_PUB/melt operation in a coin transaction 
history.
  */
-struct TALER_EXCHANGEDB_MeltListEntry
+struct TALER_DONAUDB_MeltListEntry
 {
 
   /**
@@ -2207,12 +2207,12 @@ struct TALER_EXCHANGEDB_MeltListEntry
   struct TALER_Amount amount_with_fee;
 
   /**
-   * Melt fee the exchange charged.
+   * Melt fee the donau charged.
    */
   struct TALER_Amount melt_fee;
 
   /**
-   * Index (smaller #TALER_CNC_KAPPA) which the exchange has chosen to not
+   * Index (smaller #TALER_CNC_KAPPA) which the donau has chosen to not
    * have revealed during cut and choose.
    */
   uint32_t noreveal_index;
@@ -2223,13 +2223,13 @@ struct TALER_EXCHANGEDB_MeltListEntry
 /**
  * Information about a /purses/$PID/deposit operation in a coin transaction 
history.
  */
-struct TALER_EXCHANGEDB_PurseDepositListEntry
+struct TALER_DONAUDB_PurseDepositListEntry
 {
 
   /**
-   * Exchange hosting the purse, NULL for this exchange.
+   * Donau hosting the purse, NULL for this donau.
    */
-  char *exchange_base_url;
+  char *donau_base_url;
 
   /**
    * Public key of the purse.
@@ -2274,7 +2274,7 @@ struct TALER_EXCHANGEDB_PurseDepositListEntry
 /**
  * @brief Specification for a purse refund operation in a coin's transaction 
list.
  */
-struct TALER_EXCHANGEDB_PurseRefundListEntry
+struct TALER_DONAUDB_PurseRefundListEntry
 {
 
   /**
@@ -2289,7 +2289,7 @@ struct TALER_EXCHANGEDB_PurseRefundListEntry
   struct TALER_Amount refund_amount;
 
   /**
-   * Refund fee to be covered by the customer.
+   * Refund fee to be covered by the donor.
    */
   struct TALER_Amount refund_fee;
 
@@ -2299,7 +2299,7 @@ struct TALER_EXCHANGEDB_PurseRefundListEntry
 /**
  * Information about a /reserves/$RID/open operation in a coin transaction 
history.
  */
-struct TALER_EXCHANGEDB_ReserveOpenListEntry
+struct TALER_DONAUDB_ReserveOpenListEntry
 {
 
   /**
@@ -2324,13 +2324,13 @@ struct TALER_EXCHANGEDB_ReserveOpenListEntry
 /**
  * Information about a /purses/$PID/deposit operation.
  */
-struct TALER_EXCHANGEDB_PurseDeposit
+struct TALER_DONAUDB_PurseDeposit
 {
 
   /**
-   * Exchange hosting the purse, NULL for this exchange.
+   * Donau hosting the purse, NULL for this donau.
    */
-  char *exchange_base_url;
+  char *donau_base_url;
 
   /**
    * Public key of the purse.
@@ -2375,16 +2375,16 @@ struct TALER_EXCHANGEDB_PurseDeposit
 /**
  * Information about a melt operation.
  */
-struct TALER_EXCHANGEDB_Melt
+struct TALER_DONAUDB_Melt
 {
 
   /**
    * Overall session data.
    */
-  struct TALER_EXCHANGEDB_Refresh session;
+  struct TALER_DONAUDB_Refresh session;
 
   /**
-   * Melt fee the exchange charged.
+   * Melt fee the donau charged.
    */
   struct TALER_Amount melt_fee;
 
@@ -2394,12 +2394,12 @@ struct TALER_EXCHANGEDB_Melt
 /**
  * @brief Linked list of refresh information linked to a coin.
  */
-struct TALER_EXCHANGEDB_LinkList
+struct TALER_DONAUDB_LinkList
 {
   /**
    * Information is stored in a NULL-terminated linked list.
    */
-  struct TALER_EXCHANGEDB_LinkList *next;
+  struct TALER_DONAUDB_LinkList *next;
 
   /**
    * Denomination public key, determines the value of the coin.
@@ -2412,9 +2412,9 @@ struct TALER_EXCHANGEDB_LinkList
   struct TALER_BlindedDenominationSignature ev_sig;
 
   /**
-   * Exchange-provided values during the coin generation.
+   * Donau-provided values during the coin generation.
    */
-  struct TALER_ExchangeWithdrawValues alg_values;
+  struct TALER_DonauWithdrawValues alg_values;
 
   /**
    * Signature of the original coin being refreshed over the
@@ -2444,53 +2444,53 @@ struct TALER_EXCHANGEDB_LinkList
  * @brief Enumeration to classify the different types of transactions
  * that can be done with a coin.
  */
-enum TALER_EXCHANGEDB_TransactionType
+enum TALER_DONAUDB_TransactionType
 {
 
   /**
    * Deposit operation.
    */
-  TALER_EXCHANGEDB_TT_DEPOSIT = 0,
+  TALER_DONAUDB_TT_DEPOSIT = 0,
 
   /**
    * Melt operation.
    */
-  TALER_EXCHANGEDB_TT_MELT = 1,
+  TALER_DONAUDB_TT_MELT = 1,
 
   /**
    * Refund operation.
    */
-  TALER_EXCHANGEDB_TT_REFUND = 2,
+  TALER_DONAUDB_TT_REFUND = 2,
 
   /**
    * Recoup-refresh operation (on the old coin, adding to the old coin's value)
    */
-  TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP = 3,
+  TALER_DONAUDB_TT_OLD_COIN_RECOUP = 3,
 
   /**
    * Recoup operation.
    */
-  TALER_EXCHANGEDB_TT_RECOUP = 4,
+  TALER_DONAUDB_TT_RECOUP = 4,
 
   /**
    * Recoup-refresh operation (on the new coin, eliminating its value)
    */
-  TALER_EXCHANGEDB_TT_RECOUP_REFRESH = 5,
+  TALER_DONAUDB_TT_RECOUP_REFRESH = 5,
 
   /**
    * Purse deposit operation.
    */
-  TALER_EXCHANGEDB_TT_PURSE_DEPOSIT = 6,
+  TALER_DONAUDB_TT_PURSE_DEPOSIT = 6,
 
   /**
    * Purse deposit operation.
    */
-  TALER_EXCHANGEDB_TT_PURSE_REFUND = 7,
+  TALER_DONAUDB_TT_PURSE_REFUND = 7,
 
   /**
    * Reserve open deposit operation.
    */
-  TALER_EXCHANGEDB_TT_RESERVE_OPEN = 8
+  TALER_DONAUDB_TT_RESERVE_OPEN = 8
 
 };
 
@@ -2498,18 +2498,18 @@ enum TALER_EXCHANGEDB_TransactionType
 /**
  * @brief List of transactions we performed for a particular coin.
  */
-struct TALER_EXCHANGEDB_TransactionList
+struct TALER_DONAUDB_TransactionList
 {
 
   /**
    * Next pointer in the NULL-terminated linked list.
    */
-  struct TALER_EXCHANGEDB_TransactionList *next;
+  struct TALER_DONAUDB_TransactionList *next;
 
   /**
    * Type of the transaction, determines what is stored in @e details.
    */
-  enum TALER_EXCHANGEDB_TransactionType type;
+  enum TALER_DONAUDB_TransactionType type;
 
   /**
    * Serial ID of this entry in the database.
@@ -2524,59 +2524,59 @@ struct TALER_EXCHANGEDB_TransactionList
 
     /**
      * Details if transaction was a deposit operation.
-     * (#TALER_EXCHANGEDB_TT_DEPOSIT)
+     * (#TALER_DONAUDB_TT_DEPOSIT)
      */
-    struct TALER_EXCHANGEDB_DepositListEntry *deposit;
+    struct TALER_DONAUDB_DepositListEntry *deposit;
 
     /**
      * Details if transaction was a melt operation.
-     * (#TALER_EXCHANGEDB_TT_MELT)
+     * (#TALER_DONAUDB_TT_MELT)
      */
-    struct TALER_EXCHANGEDB_MeltListEntry *melt;
+    struct TALER_DONAUDB_MeltListEntry *melt;
 
     /**
      * Details if transaction was a refund operation.
-     * (#TALER_EXCHANGEDB_TT_REFUND)
+     * (#TALER_DONAUDB_TT_REFUND)
      */
-    struct TALER_EXCHANGEDB_RefundListEntry *refund;
+    struct TALER_DONAUDB_RefundListEntry *refund;
 
     /**
      * Details if transaction was a recoup-refund operation where
      * this coin was the OLD coin.
-     * (#TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP).
+     * (#TALER_DONAUDB_TT_OLD_COIN_RECOUP).
      */
-    struct TALER_EXCHANGEDB_RecoupRefreshListEntry *old_coin_recoup;
+    struct TALER_DONAUDB_RecoupRefreshListEntry *old_coin_recoup;
 
     /**
      * Details if transaction was a recoup operation.
-     * (#TALER_EXCHANGEDB_TT_RECOUP)
+     * (#TALER_DONAUDB_TT_RECOUP)
      */
-    struct TALER_EXCHANGEDB_RecoupListEntry *recoup;
+    struct TALER_DONAUDB_RecoupListEntry *recoup;
 
     /**
      * Details if transaction was a recoup-refund operation where
      * this coin was the REFRESHED coin.
-     * (#TALER_EXCHANGEDB_TT_RECOUP_REFRESH)
+     * (#TALER_DONAUDB_TT_RECOUP_REFRESH)
      */
-    struct TALER_EXCHANGEDB_RecoupRefreshListEntry *recoup_refresh;
+    struct TALER_DONAUDB_RecoupRefreshListEntry *recoup_refresh;
 
     /**
      * Coin was deposited into a purse.
-     * (#TALER_EXCHANGEDB_TT_PURSE_DEPOSIT)
+     * (#TALER_DONAUDB_TT_PURSE_DEPOSIT)
      */
-    struct TALER_EXCHANGEDB_PurseDepositListEntry *purse_deposit;
+    struct TALER_DONAUDB_PurseDepositListEntry *purse_deposit;
 
     /**
      * Coin was refunded upon purse expiration
-     * (#TALER_EXCHANGEDB_TT_PURSE_REFUND)
+     * (#TALER_DONAUDB_TT_PURSE_REFUND)
      */
-    struct TALER_EXCHANGEDB_PurseRefundListEntry *purse_refund;
+    struct TALER_DONAUDB_PurseRefundListEntry *purse_refund;
 
     /**
      * Coin was used to pay to open a reserve.
-     * (#TALER_EXCHANGEDB_TT_RESERVE_OPEN)
+     * (#TALER_DONAUDB_TT_RESERVE_OPEN)
      */
-    struct TALER_EXCHANGEDB_ReserveOpenListEntry *reserve_open;
+    struct TALER_DONAUDB_ReserveOpenListEntry *reserve_open;
 
   } details;
 
@@ -2593,7 +2593,7 @@ struct TALER_EXCHANGEDB_TransactionList
  * @param buf_size number of bytes in @a buf, 0 on error
  */
 typedef void
-(*TALER_EXCHANGEDB_WirePreparationIterator) (void *cls,
+(*TALER_DONAUDB_WirePreparationIterator) (void *cls,
                                              uint64_t rowid,
                                              const char *wire_method,
                                              const char *buf,
@@ -2612,7 +2612,7 @@ typedef void
  * @param enc_attributes encrypted attribute data
  */
 typedef void
-(*TALER_EXCHANGEDB_AttributeCallback)(
+(*TALER_DONAUDB_AttributeCallback)(
   void *cls,
   const struct TALER_PaytoHashP *h_payto,
   const char *provider_section,
@@ -2628,18 +2628,18 @@ typedef void
  *
  * @param cls closure
  * @param rowid unique serial ID for the deposit in our DB
- * @param exchange_timestamp when did the deposit happen
+ * @param donau_timestamp when did the deposit happen
  * @param deposit deposit details
  * @param denom_pub denomination public key of @a coin_pub
  * @param done flag set if the deposit was already executed (or not)
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_DepositCallback)(
+(*TALER_DONAUDB_DepositCallback)(
   void *cls,
   uint64_t rowid,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
-  const struct TALER_EXCHANGEDB_Deposit *deposit,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
+  const struct TALER_DONAUDB_Deposit *deposit,
   const struct TALER_DenominationPublicKey *denom_pub,
   bool done);
 
@@ -2660,10 +2660,10 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_PurseDepositCallback)(
+(*TALER_DONAUDB_PurseDepositCallback)(
   void *cls,
   uint64_t rowid,
-  const struct TALER_EXCHANGEDB_PurseDeposit *deposit,
+  const struct TALER_DONAUDB_PurseDeposit *deposit,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   enum TALER_WalletAccountMergeFlags flags,
   const struct TALER_Amount *auditor_balance,
@@ -2691,7 +2691,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_AccountMergeCallback)(
+(*TALER_DONAUDB_AccountMergeCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_ReservePublicKeyP *reserve_pub,
@@ -2713,7 +2713,7 @@ typedef enum GNUNET_GenericReturnValue
  *
  * @param cls closure
  * @param rowid unique serial ID for the deposit in our DB
- * @param partner_base_url where is the reserve, NULL for this exchange
+ * @param partner_base_url where is the reserve, NULL for this donau
  * @param amount total amount expected in the purse
  * @param balance current balance in the purse (according to the auditor)
  * @param flags purse flags
@@ -2725,7 +2725,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_PurseMergeCallback)(
+(*TALER_DONAUDB_PurseMergeCallback)(
   void *cls,
   uint64_t rowid,
   const char *partner_base_url,
@@ -2753,7 +2753,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_HistoryRequestCallback)(
+(*TALER_DONAUDB_HistoryRequestCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_Amount *history_fee,
@@ -2774,7 +2774,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_PurseDecisionCallback)(
+(*TALER_DONAUDB_PurseDecisionCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
@@ -2793,7 +2793,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_AllPurseDecisionCallback)(
+(*TALER_DONAUDB_AllPurseDecisionCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
@@ -2812,7 +2812,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_PurseRefundCoinCallback)(
+(*TALER_DONAUDB_PurseRefundCoinCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_Amount *amount_with_fee,
@@ -2831,12 +2831,12 @@ typedef enum GNUNET_GenericReturnValue
  * @param coin_pub public key of the coin
  * @param coin_sig signature from the coin
  * @param amount_with_fee amount that was deposited including fee
- * @param noreveal_index which index was picked by the exchange in 
cut-and-choose
+ * @param noreveal_index which index was picked by the donau in cut-and-choose
  * @param rc what is the commitment
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_RefreshesCallback)(
+(*TALER_DONAUDB_RefreshesCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_DenominationPublicKey *denom_pub,
@@ -2857,16 +2857,16 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_RefundCoinCallback)(
+(*TALER_DONAUDB_RefundCoinCallback)(
   void *cls,
   const struct TALER_Amount *amount_with_fee);
 
 
 /**
- * Information about a coin that was revealed to the exchange
+ * Information about a coin that was revealed to the donau
  * during reveal.
  */
-struct TALER_EXCHANGEDB_RefreshRevealedCoin
+struct TALER_DONAUDB_RefreshRevealedCoin
 {
   /**
    * Hash of the public denomination key of the coin.
@@ -2885,15 +2885,15 @@ struct TALER_EXCHANGEDB_RefreshRevealedCoin
   struct TALER_BlindedCoinHashP coin_envelope_hash;
 
   /**
-   * Signature generated by the exchange over the coin (in blinded format).
+   * Signature generated by the donau over the coin (in blinded format).
    */
   struct TALER_BlindedDenominationSignature coin_sig;
 
   /**
-   * Values contributed from the exchange to the
+   * Values contributed from the donau to the
    * coin generation (see /csr).
    */
-  struct TALER_ExchangeWithdrawValues exchange_vals;
+  struct TALER_DonauWithdrawValues donau_vals;
 
   /**
    * Blinded message to be signed (in envelope).
@@ -2907,7 +2907,7 @@ struct TALER_EXCHANGEDB_RefreshRevealedCoin
  * Information per Clause-Schnorr (CS) fresh coin to
  * be persisted for idempotency during refreshes-reveal.
  */
-struct TALER_EXCHANGEDB_CsRevealFreshCoinData
+struct TALER_DONAUDB_CsRevealFreshCoinData
 {
   /**
    * Denomination of the fresh coin.
@@ -2933,7 +2933,7 @@ struct TALER_EXCHANGEDB_CsRevealFreshCoinData
 /**
  * Generic KYC status for some operation.
  */
-struct TALER_EXCHANGEDB_KycStatus
+struct TALER_DONAUDB_KycStatus
 {
   /**
    * Number that identifies the KYC requirement the operation
@@ -2949,13 +2949,13 @@ struct TALER_EXCHANGEDB_KycStatus
 };
 
 
-struct TALER_EXCHANGEDB_ReserveInInfo
+struct TALER_DONAUDB_ReserveInInfo
 {
   const struct TALER_ReservePublicKeyP *reserve_pub;
   const struct TALER_Amount *balance;
   struct GNUNET_TIME_Timestamp execution_time;
   const char *sender_account_details;
-  const char *exchange_account_name;
+  const char *donau_account_name;
   uint64_t wire_reference;
 };
 
@@ -2973,7 +2973,7 @@ struct TALER_EXCHANGEDB_ReserveInInfo
  *         #GNUNET_SYSERR on internal error (also abort itaration)
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_KycAmountCallback)(
+(*TALER_DONAUDB_KycAmountCallback)(
   void *cls,
   const struct TALER_Amount *amount,
   struct GNUNET_TIME_Absolute date);
@@ -2987,10 +2987,10 @@ typedef enum GNUNET_GenericReturnValue
  * @param rrcs array of @a num_freshcoins information about coins to be created
  */
 typedef void
-(*TALER_EXCHANGEDB_RefreshCallback)(
+(*TALER_DONAUDB_RefreshCallback)(
   void *cls,
   uint32_t num_freshcoins,
-  const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs);
+  const struct TALER_DONAUDB_RefreshRevealedCoin *rrcs);
 
 
 /**
@@ -3001,22 +3001,22 @@ typedef void
  * @param rowid unique serial ID for the refund in our DB
  * @param denom_pub denomination public key of @a coin_pub
  * @param coin_pub public key of the coin
- * @param merchant_pub public key of the merchant
- * @param merchant_sig signature of the merchant
- * @param h_contract_terms hash of the proposal data known to merchant and 
customer
- * @param rtransaction_id refund transaction ID chosen by the merchant
+ * @param charity_pub public key of the charity
+ * @param charity_sig signature of the charity
+ * @param h_contract_terms hash of the proposal data known to charity and donor
+ * @param rtransaction_id refund transaction ID chosen by the charity
  * @param full_refund true if the refunds total up to the entire value of the 
deposit
  * @param amount_with_fee amount that was deposited including fee
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_RefundCallback)(
+(*TALER_DONAUDB_RefundCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_DenominationPublicKey *denom_pub,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_MerchantSignatureP *merchant_sig,
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_CharitySignatureP *charity_sig,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   uint64_t rtransaction_id,
   bool full_refund,
@@ -3036,7 +3036,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_ReserveInCallback)(
+(*TALER_DONAUDB_ReserveInCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_ReservePublicKeyP *reserve_pub,
@@ -3050,15 +3050,15 @@ typedef enum GNUNET_GenericReturnValue
  * Provide information about a wire account.
  *
  * @param cls closure
- * @param payto_uri the exchange bank account URI
+ * @param payto_uri the donau bank account URI
  * @param conversion_url URL of a conversion service, NULL if there is no 
conversion
  * @param debit_restrictions JSON array with debit restrictions on the account
  * @param credit_restrictions JSON array with credit restrictions on the 
account
  * @param master_sig master key signature affirming that this is a bank
- *                   account of the exchange (of purpose 
#TALER_SIGNATURE_MASTER_WIRE_DETAILS)
+ *                   account of the donau (of purpose 
#TALER_SIGNATURE_MASTER_WIRE_DETAILS)
  */
 typedef void
-(*TALER_EXCHANGEDB_WireAccountCallback)(
+(*TALER_DONAUDB_WireAccountCallback)(
   void *cls,
   const char *payto_uri,
   const char *conversion_url,
@@ -3078,7 +3078,7 @@ typedef void
  *                   fee (of purpose #TALER_SIGNATURE_MASTER_WIRE_FEES)
  */
 typedef void
-(*TALER_EXCHANGEDB_WireFeeCallback)(
+(*TALER_DONAUDB_WireFeeCallback)(
   void *cls,
   const struct TALER_WireFeeSet *fees,
   struct GNUNET_TIME_Timestamp start_date,
@@ -3100,7 +3100,7 @@ typedef void
  *                   fee (of purpose #TALER_SIGNATURE_MASTER_GLOBAL_FEES)
  */
 typedef void
-(*TALER_EXCHANGEDB_GlobalFeeCallback)(
+(*TALER_DONAUDB_GlobalFeeCallback)(
   void *cls,
   const struct TALER_GlobalFeeSet *fees,
   struct GNUNET_TIME_Relative purse_timeout,
@@ -3125,7 +3125,7 @@ typedef void
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_WithdrawCallback)(
+(*TALER_DONAUDB_WithdrawCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_BlindedCoinHashP *h_blind_ev,
@@ -3145,10 +3145,10 @@ typedef enum GNUNET_GenericReturnValue
  * @param ldl link data for @a transfer_pub
  */
 typedef void
-(*TALER_EXCHANGEDB_LinkCallback)(
+(*TALER_DONAUDB_LinkCallback)(
   void *cls,
   const struct TALER_TransferPublicKeyP *transfer_pub,
-  const struct TALER_EXCHANGEDB_LinkList *ldl);
+  const struct TALER_DONAUDB_LinkList *ldl);
 
 
 /**
@@ -3157,7 +3157,7 @@ typedef void
  *
  * @param cls closure
  * @param rowid which row in the table is the information from (for 
diagnostics)
- * @param merchant_pub public key of the merchant (should be same for all 
callbacks with the same @e cls)
+ * @param charity_pub public key of the charity (should be same for all 
callbacks with the same @e cls)
  * @param account_payto_uri which account did the transfer go to?
  * @param h_payto hash over @a account_payto_uri as it is in the DB
  * @param exec_time execution time of the wire transfer (should be same for 
all callbacks with the same @e cls)
@@ -3168,10 +3168,10 @@ typedef void
  * @param coin_fee applicable fee for this coin
  */
 typedef void
-(*TALER_EXCHANGEDB_AggregationDataCallback)(
+(*TALER_DONAUDB_AggregationDataCallback)(
   void *cls,
   uint64_t rowid,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const char *account_payto_uri,
   const struct TALER_PaytoHashP *h_payto,
   struct GNUNET_TIME_Timestamp exec_time,
@@ -3184,7 +3184,7 @@ typedef void
 
 /**
  * Function called with the results of the lookup of the
- * wire transfer data of the exchange.
+ * wire transfer data of the donau.
  *
  * @param cls closure
  * @param rowid identifier of the respective row in the database
@@ -3195,7 +3195,7 @@ typedef void
  * @return #GNUNET_OK to continue, #GNUNET_SYSERR to stop iteration
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_WireTransferOutCallback)(
+(*TALER_DONAUDB_WireTransferOutCallback)(
   void *cls,
   uint64_t rowid,
   struct GNUNET_TIME_Timestamp date,
@@ -3211,16 +3211,16 @@ typedef enum GNUNET_GenericReturnValue
  * @param cls
  * @param payto_uri corresponding payto URI
  * @param wtid wire transfer identifier of transient aggregation
- * @param merchant_pub public key of the merchant
+ * @param charity_pub public key of the charity
  * @param total amount aggregated so far
  * @return true to continue iterating
  */
 typedef bool
-(*TALER_EXCHANGEDB_TransientAggregationCallback)(
+(*TALER_DONAUDB_TransientAggregationCallback)(
   void *cls,
   const char *payto_uri,
   const struct TALER_WireTransferIdentifierRawP *wtid,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const struct TALER_Amount *total);
 
 
@@ -3236,7 +3236,7 @@ typedef bool
  * @return #GNUNET_OK to continue, #GNUNET_SYSERR to stop iteration
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_WirePreparationCallback)(void *cls,
+(*TALER_DONAUDB_WirePreparationCallback)(void *cls,
                                             uint64_t rowid,
                                             const char *wire_method,
                                             const char *buf,
@@ -3245,7 +3245,7 @@ typedef enum GNUNET_GenericReturnValue
 
 
 /**
- * Function called about recoups the exchange has to perform.
+ * Function called about recoups the donau has to perform.
  *
  * @param cls closure
  * @param rowid row identifier used to uniquely identify the recoup operation
@@ -3259,7 +3259,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_RecoupCallback)(
+(*TALER_DONAUDB_RecoupCallback)(
   void *cls,
   uint64_t rowid,
   struct GNUNET_TIME_Timestamp timestamp,
@@ -3272,7 +3272,7 @@ typedef enum GNUNET_GenericReturnValue
 
 
 /**
- * Function called about recoups on refreshed coins the exchange has to
+ * Function called about recoups on refreshed coins the donau has to
  * perform.
  *
  * @param cls closure
@@ -3288,7 +3288,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_RecoupRefreshCallback)(
+(*TALER_DONAUDB_RecoupRefreshCallback)(
   void *cls,
   uint64_t rowid,
   struct GNUNET_TIME_Timestamp timestamp,
@@ -3317,7 +3317,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_ReserveOpenCallback)(
+(*TALER_DONAUDB_ReserveOpenCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_Amount *reserve_payment,
@@ -3345,7 +3345,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_ReserveClosedCallback)(
+(*TALER_DONAUDB_ReserveClosedCallback)(
   void *cls,
   uint64_t rowid,
   struct GNUNET_TIME_Timestamp execution_date,
@@ -3365,7 +3365,7 @@ typedef enum GNUNET_GenericReturnValue
  * @param val one of the withdrawn amounts
  */
 typedef void
-(*TALER_EXCHANGEDB_WithdrawHistoryCallback)(
+(*TALER_DONAUDB_WithdrawHistoryCallback)(
   void *cls,
   const struct TALER_Amount *val);
 
@@ -3384,7 +3384,7 @@ typedef void
  *         #GNUNET_SYSERR on hard failures (exit)
  */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_ReserveExpiredCallback)(
+(*TALER_DONAUDB_ReserveExpiredCallback)(
   void *cls,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   const struct TALER_Amount *left,
@@ -3402,11 +3402,11 @@ typedef enum GNUNET_GenericReturnValue
  * @param coin information about the coin
  * @param coin_sig signature of the coin of type 
#TALER_SIGNATURE_WALLET_COIN_RECOUP
  * @param coin_blind blinding key of the coin
- * @param h_blinded_ev blinded envelope, as calculated by the exchange
+ * @param h_blinded_ev blinded envelope, as calculated by the donau
  * @param amount total amount to be paid back
  */
 typedef void
-(*TALER_EXCHANGEDB_RecoupJustificationCallback)(
+(*TALER_DONAUDB_RecoupJustificationCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_CoinPublicInfo *coin,
@@ -3426,10 +3426,10 @@ typedef void
  * @param amount value of the deposit, including fee
  * @param payto_uri where should the funds be wired; URI in payto://-format
  * @param deadline what was the requested wire transfer deadline
- * @param done did the exchange claim that it made a transfer?
+ * @param done did the donau claim that it made a transfer?
  */
 typedef void
-(*TALER_EXCHANGEDB_WireMissingCallback)(
+(*TALER_DONAUDB_WireMissingCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -3455,7 +3455,7 @@ typedef void
  * @return #GNUNET_OK to continue to iterate
    */
 typedef enum GNUNET_GenericReturnValue
-(*TALER_EXCHANGEDB_PurseRequestCallback)(
+(*TALER_DONAUDB_PurseRequestCallback)(
   void *cls,
   uint64_t rowid,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
@@ -3469,7 +3469,7 @@ typedef enum GNUNET_GenericReturnValue
 
 
 /**
- * Function called with information about the exchange's denomination keys.
+ * Function called with information about the donau's denomination keys.
  * Note that the 'master' field in @a issue will not yet be initialized when
  * this function is called!
  *
@@ -3478,10 +3478,10 @@ typedef enum GNUNET_GenericReturnValue
  * @param issue detailed information about the denomination (value, expiration 
times, fees);
  */
 typedef void
-(*TALER_EXCHANGEDB_DenominationCallback)(
+(*TALER_DONAUDB_DenominationCallback)(
   void *cls,
   const struct TALER_DenominationPublicKey *denom_pub,
-  const struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
+  const struct TALER_DONAUDB_DenominationKeyInformation *issue);
 
 
 /**
@@ -3494,7 +3494,7 @@ typedef void
  * @param status what is the current AML decision
  */
 typedef void
-(*TALER_EXCHANGEDB_AmlStatusCallback)(
+(*TALER_DONAUDB_AmlStatusCallback)(
   void *cls,
   uint64_t row_id,
   const struct TALER_PaytoHashP *h_payto,
@@ -3514,7 +3514,7 @@ typedef void
  * @param decider_sig signature of the staff member
  */
 typedef void
-(*TALER_EXCHANGEDB_AmlHistoryCallback)(
+(*TALER_DONAUDB_AmlHistoryCallback)(
   void *cls,
   const struct TALER_Amount *new_threshold,
   enum TALER_AmlDecisionState new_status,
@@ -3528,7 +3528,7 @@ typedef void
  * @brief The plugin API, returned from the plugin's "init" function.
  * The argument given to "init" is simply a configuration handle.
  */
-struct TALER_EXCHANGEDB_Plugin
+struct TALER_DONAUDB_Plugin
 {
 
   /**
@@ -3697,7 +3697,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*insert_denomination_info)(
     void *cls,
     const struct TALER_DenominationPublicKey *denom_pub,
-    const struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
+    const struct TALER_DONAUDB_DenominationKeyInformation *issue);
 
 
   /**
@@ -3712,7 +3712,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*get_denomination_info)(
     void *cls,
     const struct TALER_DenominationHashP *denom_pub_hash,
-    struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
+    struct TALER_DONAUDB_DenominationKeyInformation *issue);
 
 
   /**
@@ -3728,7 +3728,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*iterate_denomination_info)(void *cls,
-                               TALER_EXCHANGEDB_DenominationCallback cb,
+                               TALER_DONAUDB_DenominationCallback cb,
                                void *cb_cls);
 
 
@@ -3744,11 +3744,11 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*iterate_denominations)(void *cls,
-                           TALER_EXCHANGEDB_DenominationsCallback cb,
+                           TALER_DONAUDB_DenominationsCallback cb,
                            void *cb_cls);
 
   /**
-   * Function called to invoke @a cb on every non-revoked exchange signing key
+   * Function called to invoke @a cb on every non-revoked donau signing key
    * that has been signed by the master key.  Revoked and (for signing!)
    * expired keys are skipped. Runs in its own read-only transaction.
    *
@@ -3759,7 +3759,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*iterate_active_signkeys)(void *cls,
-                             TALER_EXCHANGEDB_ActiveSignkeysCallback cb,
+                             TALER_DONAUDB_ActiveSignkeysCallback cb,
                              void *cb_cls);
 
 
@@ -3774,7 +3774,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*iterate_active_auditors)(void *cls,
-                             TALER_EXCHANGEDB_AuditorsCallback cb,
+                             TALER_DONAUDB_AuditorsCallback cb,
                              void *cb_cls);
 
 
@@ -3791,7 +3791,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*iterate_auditor_denominations)(
     void *cls,
-    TALER_EXCHANGEDB_AuditorDenominationsCallback cb,
+    TALER_DONAUDB_AuditorDenominationsCallback cb,
     void *cb_cls);
 
 
@@ -3806,7 +3806,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*reserves_get)(void *cls,
-                  struct TALER_EXCHANGEDB_Reserve *reserve);
+                  struct TALER_DONAUDB_Reserve *reserve);
 
 
   /**
@@ -3851,7 +3851,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*reserves_in_insert)(
     void *cls,
-    const struct TALER_EXCHANGEDB_ReserveInInfo *reserves,
+    const struct TALER_DONAUDB_ReserveInInfo *reserves,
     unsigned int reserves_length,
     enum GNUNET_DB_QueryStatus *results);
 
@@ -3869,7 +3869,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*lock_nonce)(void *cls,
                 const struct TALER_CsNonce *nonce,
                 const struct TALER_DenominationHashP *denom_pub_hash,
-                const union TALER_EXCHANGEDB_NonceLockTargetP *target);
+                const union TALER_DONAUDB_NonceLockTargetP *target);
 
 
   /**
@@ -3886,7 +3886,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_withdraw_info)(void *cls,
                        const struct TALER_BlindedCoinHashP *bch,
-                       struct TALER_EXCHANGEDB_CollectableBlindcoin 
*collectable);
+                       struct TALER_DONAUDB_CollectableBlindcoin *collectable);
 
 
   /**
@@ -3910,7 +3910,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*do_withdraw)(
     void *cls,
     const struct TALER_CsNonce *nonce,
-    const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
+    const struct TALER_DONAUDB_CollectableBlindcoin *collectable,
     struct GNUNET_TIME_Timestamp now,
     bool do_age_check,
     bool *found,
@@ -3979,7 +3979,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*do_batch_withdraw_insert)(
     void *cls,
     const struct TALER_CsNonce *nonce,
-    const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
+    const struct TALER_DONAUDB_CollectableBlindcoin *collectable,
     struct GNUNET_TIME_Timestamp now,
     uint64_t ruuid,
     bool *denom_unknown,
@@ -4002,7 +4002,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_ReservePublicKeyP *reserve_pub,
     const struct TALER_AgeWithdrawCommitmentHashP *ach,
-    struct TALER_EXCHANGEDB_AgeWithdraw *aw);
+    struct TALER_DONAUDB_AgeWithdraw *aw);
 
   /**
    * Perform an age-withdraw operation, checking for sufficient balance and
@@ -4021,7 +4021,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*do_age_withdraw)(
     void *cls,
-    const struct TALER_EXCHANGEDB_AgeWithdraw *commitment,
+    const struct TALER_DONAUDB_AgeWithdraw *commitment,
     struct GNUNET_TIME_Timestamp now,
     bool *found,
     bool *balance_ok,
@@ -4071,7 +4071,7 @@ struct TALER_EXCHANGEDB_Plugin
    *
    * @param cls the `struct PostgresClosure` with the plugin-specific state
    * @param bd batch deposit operation details
-   * @param[in,out] exchange_timestamp time to use for the deposit (possibly 
updated)
+   * @param[in,out] donau_timestamp time to use for the deposit (possibly 
updated)
    * @param[out] balance_ok set to true if the balance was sufficient
    * @param[out] bad_balance_index set to the first index of a coin for which 
the balance was insufficient,
    *             only used if @a balance_ok is set to false.
@@ -4081,8 +4081,8 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*do_deposit)(
     void *cls,
-    const struct TALER_EXCHANGEDB_BatchDeposit *bd,
-    struct GNUNET_TIME_Timestamp *exchange_timestamp,
+    const struct TALER_DONAUDB_BatchDeposit *bd,
+    struct GNUNET_TIME_Timestamp *donau_timestamp,
     bool *balance_ok,
     uint32_t *bad_balance_index,
     bool *ctr_conflict);
@@ -4105,7 +4105,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*do_melt)(
     void *cls,
     const struct TALER_RefreshMasterSecretP *rms,
-    struct TALER_EXCHANGEDB_Refresh *refresh,
+    struct TALER_DONAUDB_Refresh *refresh,
     uint64_t known_coin_id,
     bool *zombie_required,
     bool *balance_ok);
@@ -4143,7 +4143,7 @@ struct TALER_EXCHANGEDB_Plugin
     const struct TALER_CsNonce *nonce,
     const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
     unsigned int num_fresh_coins,
-    struct TALER_EXCHANGEDB_CsRevealFreshCoinData *crfcds);
+    struct TALER_DONAUDB_CsRevealFreshCoinData *crfcds);
 
 
   /**
@@ -4156,14 +4156,14 @@ struct TALER_EXCHANGEDB_Plugin
    * @param known_coin_id row of the coin in the known_coins table
    * @param[out] not_found set if the deposit was not found
    * @param[out] refund_ok  set if the refund succeeded (below deposit amount)
-   * @param[out] gone if the merchant was already paid
+   * @param[out] gone if the charity was already paid
    * @param[out] conflict set if the refund ID was re-used
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
   (*do_refund)(
     void *cls,
-    const struct TALER_EXCHANGEDB_Refund *refund,
+    const struct TALER_DONAUDB_Refund *refund,
     const struct TALER_Amount *deposit_fee,
     uint64_t known_coin_id,
     bool *not_found,
@@ -4246,7 +4246,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*get_reserve_history)(void *cls,
                          const struct TALER_ReservePublicKeyP *reserve_pub,
                          struct TALER_Amount *balance,
-                         struct TALER_EXCHANGEDB_ReserveHistory **rhp);
+                         struct TALER_DONAUDB_ReserveHistory **rhp);
 
 
   /**
@@ -4267,7 +4267,7 @@ struct TALER_EXCHANGEDB_Plugin
                         const struct TALER_ReservePublicKeyP *reserve_pub,
                         struct TALER_Amount *balance_in,
                         struct TALER_Amount *balance_out,
-                        struct TALER_EXCHANGEDB_ReserveHistory **rhp);
+                        struct TALER_DONAUDB_ReserveHistory **rhp);
 
 
   /**
@@ -4292,7 +4292,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   void
   (*free_reserve_history) (void *cls,
-                           struct TALER_EXCHANGEDB_ReserveHistory *rh);
+                           struct TALER_DONAUDB_ReserveHistory *rh);
 
 
   /**
@@ -4317,37 +4317,37 @@ struct TALER_EXCHANGEDB_Plugin
    * @param[out] age_hash set to the conflicting age hash on conflict
    * @return database transaction status, non-negative on success
    */
-  enum TALER_EXCHANGEDB_CoinKnownStatus
+  enum TALER_DONAUDB_CoinKnownStatus
   {
     /**
      * The coin was successfully added.
      */
-    TALER_EXCHANGEDB_CKS_ADDED = 1,
+    TALER_DONAUDB_CKS_ADDED = 1,
 
     /**
      * The coin was already present.
      */
-    TALER_EXCHANGEDB_CKS_PRESENT = 0,
+    TALER_DONAUDB_CKS_PRESENT = 0,
 
     /**
      * Serialization failure.
      */
-    TALER_EXCHANGEDB_CKS_SOFT_FAIL = -1,
+    TALER_DONAUDB_CKS_SOFT_FAIL = -1,
 
     /**
      * Hard database failure.
      */
-    TALER_EXCHANGEDB_CKS_HARD_FAIL = -2,
+    TALER_DONAUDB_CKS_HARD_FAIL = -2,
 
     /**
      * Conflicting coin (different denomination key) already in database.
      */
-    TALER_EXCHANGEDB_CKS_DENOM_CONFLICT = -3,
+    TALER_DONAUDB_CKS_DENOM_CONFLICT = -3,
 
     /**
      * Conflicting coin (different age hash) already in database.
      */
-    TALER_EXCHANGEDB_CKS_AGE_CONFLICT = -4,
+    TALER_DONAUDB_CKS_AGE_CONFLICT = -4,
   }
   (*ensure_coin_known)(void *cls,
                        const struct TALER_CoinPublicInfo *coin,
@@ -4370,7 +4370,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*batch_ensure_coin_known)(
     void *cls,
     const struct TALER_CoinPublicInfo *coin,
-    struct TALER_EXCHANGEDB_CoinInfo *result,
+    struct TALER_DONAUDB_CoinInfo *result,
     unsigned int coin_length,
     unsigned int batch_size);
 
@@ -4411,10 +4411,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @param h_contract_terms contract to check for
    * @param h_wire wire hash to check for
    * @param coin_pub public key of the coin to check for
-   * @param merchant merchant public key to check for
+   * @param charity charity public key to check for
    * @param refund_deadline expected refund deadline
-   * @param[out] deposit_fee set to the deposit fee the exchange charged
-   * @param[out] exchange_timestamp set to the time when the exchange received 
the deposit
+   * @param[out] deposit_fee set to the deposit fee the donau charged
+   * @param[out] donau_timestamp set to the time when the donau received the 
deposit
    * @return 1 if we know this operation,
    *         0 if this exact deposit is unknown to us,
    *         otherwise transaction error status
@@ -4424,12 +4424,12 @@ struct TALER_EXCHANGEDB_Plugin
   (*have_deposit2)(
     void *cls,
     const struct TALER_PrivateContractHashP *h_contract_terms,
-    const struct TALER_MerchantWireHashP *h_wire,
+    const struct TALER_CharityWireHashP *h_wire,
     const struct TALER_CoinSpendPublicKeyP *coin_pub,
-    const struct TALER_MerchantPublicKeyP *merchant,
+    const struct TALER_CharityPublicKeyP *charity,
     struct GNUNET_TIME_Timestamp refund_deadline,
     struct TALER_Amount *deposit_fee,
-    struct GNUNET_TIME_Timestamp *exchange_timestamp);
+    struct GNUNET_TIME_Timestamp *donau_timestamp);
 
 
   /**
@@ -4442,15 +4442,15 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*insert_refund)(void *cls,
-                   const struct TALER_EXCHANGEDB_Refund *refund);
+                   const struct TALER_DONAUDB_Refund *refund);
 
 
   /**
-   * Select refunds by @a coin_pub, @a merchant_pub and @a h_contract.
+   * Select refunds by @a coin_pub, @a charity_pub and @a h_contract.
    *
    * @param cls closure of plugin
    * @param coin_pub coin to get refunds for
-   * @param merchant_pub merchant to get refunds for
+   * @param charity_pub charity to get refunds for
    * @param h_contract_pub contract (hash) to get refunds for
    * @param cb function to call for each refund found
    * @param cb_cls closure for @a cb
@@ -4459,9 +4459,9 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_refunds_by_coin)(void *cls,
                             const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                            const struct TALER_MerchantPublicKeyP 
*merchant_pub,
+                            const struct TALER_CharityPublicKeyP *charity_pub,
                             const struct TALER_PrivateContractHashP 
*h_contract,
-                            TALER_EXCHANGEDB_RefundCoinCallback cb,
+                            TALER_DONAUDB_RefundCoinCallback cb,
                             void *cb_cls);
 
 
@@ -4474,25 +4474,25 @@ struct TALER_EXCHANGEDB_Plugin
    * @param cls the @e cls of this struct with the plugin-specific state
    * @param start_shard_row minimum shard row to select
    * @param end_shard_row maximum shard row to select (inclusive)
-   * @param[out] merchant_pub set to the public key of a merchant with a ready 
deposit
-   * @param[out] payto_uri set to the account of the merchant, to be freed by 
caller
+   * @param[out] charity_pub set to the public key of a charity with a ready 
deposit
+   * @param[out] payto_uri set to the account of the charity, to be freed by 
caller
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
   (*get_ready_deposit)(void *cls,
                        uint64_t start_shard_row,
                        uint64_t end_shard_row,
-                       struct TALER_MerchantPublicKeyP *merchant_pub,
+                       struct TALER_CharityPublicKeyP *charity_pub,
                        char **payto_uri);
 
 
   /**
    * Aggregate all matching deposits for @a h_payto and
-   * @a merchant_pub, returning the total amounts.
+   * @a charity_pub, returning the total amounts.
    *
    * @param cls the @e cls of this struct with the plugin-specific state
    * @param h_payto destination of the wire transfer
-   * @param merchant_pub public key of the merchant
+   * @param charity_pub public key of the charity
    * @param wtid wire transfer ID to set for the aggregate
    * @param[out] total set to the sum of the total deposits minus applicable 
deposit fees and refunds
    * @return transaction status
@@ -4501,7 +4501,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*aggregate)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    const struct TALER_MerchantPublicKeyP *merchant_pub,
+    const struct TALER_CharityPublicKeyP *charity_pub,
     const struct TALER_WireTransferIdentifierRawP *wtid,
     struct TALER_Amount *total);
 
@@ -4511,8 +4511,8 @@ struct TALER_EXCHANGEDB_Plugin
    *
    * @param cls the @e cls of this struct with the plugin-specific state
    * @param h_payto destination of the wire transfer
-   * @param exchange_account_section exchange account to use
-   * @param merchant_pub public key of the merchant
+   * @param donau_account_section donau account to use
+   * @param charity_pub public key of the charity
    * @param wtid the raw wire transfer identifier to be used
    * @param kyc_requirement_row row in legitimization_requirements that need 
to be satisfied to continue, or 0 for none
    * @param total amount to be wired in the future
@@ -4522,8 +4522,8 @@ struct TALER_EXCHANGEDB_Plugin
   (*create_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    const char *exchange_account_section,
-    const struct TALER_MerchantPublicKeyP *merchant_pub,
+    const char *donau_account_section,
+    const struct TALER_CharityPublicKeyP *charity_pub,
     const struct TALER_WireTransferIdentifierRawP *wtid,
     uint64_t kyc_requirement_row,
     const struct TALER_Amount *total);
@@ -4534,8 +4534,8 @@ struct TALER_EXCHANGEDB_Plugin
    *
    * @param cls the @e cls of this struct with the plugin-specific state
    * @param h_payto destination of the wire transfer
-   * @param merchant_pub public key of the merchant
-   * @param exchange_account_section exchange account to use
+   * @param charity_pub public key of the charity
+   * @param donau_account_section donau account to use
    * @param[out] wtid set to the raw wire transfer identifier to be used
    * @param[out] total existing amount to be wired in the future
    * @return transaction status
@@ -4544,8 +4544,8 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    const struct TALER_MerchantPublicKeyP *merchant_pub,
-    const char *exchange_account_section,
+    const struct TALER_CharityPublicKeyP *charity_pub,
+    const char *donau_account_section,
     struct TALER_WireTransferIdentifierRawP *wtid,
     struct TALER_Amount *total);
 
@@ -4563,7 +4563,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*find_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    TALER_EXCHANGEDB_TransientAggregationCallback cb,
+    TALER_DONAUDB_TransientAggregationCallback cb,
     void *cb_cls);
 
 
@@ -4617,7 +4617,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_melt)(void *cls,
               const struct TALER_RefreshCommitmentP *rc,
-              struct TALER_EXCHANGEDB_Melt *melt,
+              struct TALER_DONAUDB_Melt *melt,
               uint64_t *melt_serial_id);
 
 
@@ -4640,7 +4640,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     uint64_t melt_serial_id,
     uint32_t num_rrcs,
-    const struct TALER_EXCHANGEDB_RefreshRevealedCoin *rrcs,
+    const struct TALER_DONAUDB_RefreshRevealedCoin *rrcs,
     unsigned int num_tprivs,
     const struct TALER_TransferPrivateKeyP *tprivs,
     const struct TALER_TransferPublicKeyP *tp);
@@ -4659,7 +4659,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_refresh_reveal)(void *cls,
                         const struct TALER_RefreshCommitmentP *rc,
-                        TALER_EXCHANGEDB_RefreshCallback cb,
+                        TALER_DONAUDB_RefreshCallback cb,
                         void *cb_cls);
 
 
@@ -4678,7 +4678,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_link_data)(void *cls,
                    const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                   TALER_EXCHANGEDB_LinkCallback ldc,
+                   TALER_DONAUDB_LinkCallback ldc,
                    void *tdc_cls);
 
 
@@ -4694,7 +4694,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_coin_transactions)(void *cls,
                            const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                           struct TALER_EXCHANGEDB_TransactionList **tlp);
+                           struct TALER_DONAUDB_TransactionList **tlp);
 
 
   /**
@@ -4705,7 +4705,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   void
   (*free_coin_transaction_list) (void *cls,
-                                 struct TALER_EXCHANGEDB_TransactionList 
*list);
+                                 struct TALER_DONAUDB_TransactionList *list);
 
 
   /**
@@ -4721,7 +4721,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*lookup_wire_transfer)(void *cls,
                           const struct TALER_WireTransferIdentifierRawP *wtid,
-                          TALER_EXCHANGEDB_AggregationDataCallback cb,
+                          TALER_DONAUDB_AggregationDataCallback cb,
                           void *cb_cls);
 
 
@@ -4732,14 +4732,14 @@ struct TALER_EXCHANGEDB_Plugin
    *
    * @param cls closure
    * @param h_contract_terms hash of the proposal data
-   * @param h_wire hash of merchant wire details
+   * @param h_wire hash of charity wire details
    * @param coin_pub public key of deposited coin
-   * @param merchant_pub merchant public key
+   * @param charity_pub charity public key
    * @param[out] pending set to true if the transaction is still pending
    * @param[out] wtid wire transfer identifier, only set if @a pending is false
    * @param[out] coin_contribution how much did the coin we asked about
    *        contribute to the total transfer value? (deposit value including 
fee)
-   * @param[out] coin_fee how much did the exchange charge for the deposit fee
+   * @param[out] coin_fee how much did the donau charge for the deposit fee
    * @param[out] execution_time when was the transaction done, or
    *         when we expect it to be done (if @a pending is false)
    * @param[out] kyc set to the kyc status of the receiver (if @a pending)
@@ -4750,15 +4750,15 @@ struct TALER_EXCHANGEDB_Plugin
   (*lookup_transfer_by_deposit)(
     void *cls,
     const struct TALER_PrivateContractHashP *h_contract_terms,
-    const struct TALER_MerchantWireHashP *h_wire,
+    const struct TALER_CharityWireHashP *h_wire,
     const struct TALER_CoinSpendPublicKeyP *coin_pub,
-    const struct TALER_MerchantPublicKeyP *merchant_pub,
+    const struct TALER_CharityPublicKeyP *charity_pub,
     bool *pending,
     struct TALER_WireTransferIdentifierRawP *wtid,
     struct GNUNET_TIME_Timestamp *exec_time,
     struct TALER_Amount *amount_with_fee,
     struct TALER_Amount *deposit_fee,
-    struct TALER_EXCHANGEDB_KycStatus *kyc,
+    struct TALER_DONAUDB_KycStatus *kyc,
     enum TALER_AmlDecisionState *aml_decision);
 
 
@@ -4770,7 +4770,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param start_date when does the fee go into effect
    * @param end_date when does the fee end being valid
    * @param fees how high is are the wire fees
-   * @param master_sig signature over the above by the exchange master key
+   * @param master_sig signature over the above by the donau master key
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
@@ -4792,7 +4792,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param purse_timeout when do purses time out
    * @param history_expiration how long are account histories preserved
    * @param purse_account_limit how many purses are free per account
-   * @param master_sig signature over the above by the exchange master key
+   * @param master_sig signature over the above by the donau master key
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
@@ -4816,7 +4816,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param[out] start_date when does the fee go into effect
    * @param[out] end_date when does the fee end being valid
    * @param[out] fees how high are the wire fees
-   * @param[out] master_sig signature over the above by the exchange master key
+   * @param[out] master_sig signature over the above by the donau master key
    * @return query status of the transaction
    */
   enum GNUNET_DB_QueryStatus
@@ -4840,7 +4840,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param[out] purse_timeout when do purses time out
    * @param[out] history_expiration how long are account histories preserved
    * @param[out] purse_account_limit how many purses are free per account
-   * @param[out] master_sig signature over the above by the exchange master key
+   * @param[out] master_sig signature over the above by the donau master key
    * @return query status of the transaction
    */
   enum GNUNET_DB_QueryStatus
@@ -4868,7 +4868,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_expired_reserves)(void *cls,
                           struct GNUNET_TIME_Timestamp now,
-                          TALER_EXCHANGEDB_ReserveExpiredCallback rec,
+                          TALER_DONAUDB_ReserveExpiredCallback rec,
                           void *rec_cls);
 
 
@@ -4886,7 +4886,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_unfinished_close_requests)(
     void *cls,
-    TALER_EXCHANGEDB_ReserveExpiredCallback rec,
+    TALER_DONAUDB_ReserveExpiredCallback rec,
     void *rec_cls);
 
 
@@ -4927,7 +4927,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param reserve_sig signature by the reserve for the operation
    * @param desired_expiration when should the reserve expire (earliest time)
    * @param now when did we the client initiate the action
-   * @param open_fee annual fee to be charged for the open operation by the 
exchange
+   * @param open_fee annual fee to be charged for the open operation by the 
donau
    * @param[out] no_funds set to true if reserve balance is insufficient
    * @param[out] open_cost set to the actual cost
    * @param[out] final_expiration when will the reserve expire now
@@ -5012,7 +5012,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
-    TALER_EXCHANGEDB_KycAmountCallback kac,
+    TALER_DONAUDB_KycAmountCallback kac,
     void *kac_cls);
 
 
@@ -5095,7 +5095,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*wire_prepare_data_get)(void *cls,
                            uint64_t start_row,
                            uint64_t limit,
-                           TALER_EXCHANGEDB_WirePreparationIterator cb,
+                           TALER_DONAUDB_WirePreparationIterator cb,
                            void *cb_cls);
 
 
@@ -5120,8 +5120,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @param wire_account details about the receiver account of the wire 
transfer,
    *        including 'url' in payto://-format
    * @param amount amount that was transmitted
-   * @param exchange_account_section configuration section of the exchange 
specifying the
-   *        exchange's bank account being used
+   * @param donau_account_section configuration section of the donau 
specifying the
+   *        donau's bank account being used
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
@@ -5130,7 +5130,7 @@ struct TALER_EXCHANGEDB_Plugin
     struct GNUNET_TIME_Timestamp date,
     const struct TALER_WireTransferIdentifierRawP *wtid,
     const struct TALER_PaytoHashP *h_payto,
-    const char *exchange_account_section,
+    const char *donau_account_section,
     const struct TALER_Amount *amount);
 
 
@@ -5159,7 +5159,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_coin_deposits_above_serial_id)(void *cls,
                                           uint64_t serial_id,
-                                          TALER_EXCHANGEDB_DepositCallback cb,
+                                          TALER_DONAUDB_DepositCallback cb,
                                           void *cb_cls);
 
 
@@ -5177,7 +5177,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_purse_requests_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_PurseRequestCallback cb,
+    TALER_DONAUDB_PurseRequestCallback cb,
     void *cb_cls);
 
 
@@ -5195,7 +5195,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_purse_deposits_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_PurseDepositCallback cb,
+    TALER_DONAUDB_PurseDepositCallback cb,
     void *cb_cls);
 
 
@@ -5213,7 +5213,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_account_merges_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_AccountMergeCallback cb,
+    TALER_DONAUDB_AccountMergeCallback cb,
     void *cb_cls);
 
 
@@ -5231,7 +5231,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_purse_merges_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_PurseMergeCallback cb,
+    TALER_DONAUDB_PurseMergeCallback cb,
     void *cb_cls);
 
 
@@ -5249,7 +5249,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_history_requests_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_HistoryRequestCallback cb,
+    TALER_DONAUDB_HistoryRequestCallback cb,
     void *cb_cls);
 
 
@@ -5269,7 +5269,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     uint64_t serial_id,
     bool refunded,
-    TALER_EXCHANGEDB_PurseDecisionCallback cb,
+    TALER_DONAUDB_PurseDecisionCallback cb,
     void *cb_cls);
 
 
@@ -5287,7 +5287,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_all_purse_decisions_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_AllPurseDecisionCallback cb,
+    TALER_DONAUDB_AllPurseDecisionCallback cb,
     void *cb_cls);
 
 
@@ -5304,7 +5304,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_purse_deposits_by_purse)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
-    TALER_EXCHANGEDB_PurseRefundCoinCallback cb,
+    TALER_DONAUDB_PurseRefundCoinCallback cb,
     void *cb_cls);
 
 
@@ -5321,7 +5321,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_refreshes_above_serial_id)(void *cls,
                                       uint64_t serial_id,
-                                      TALER_EXCHANGEDB_RefreshesCallback cb,
+                                      TALER_DONAUDB_RefreshesCallback cb,
                                       void *cb_cls);
 
 
@@ -5338,7 +5338,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_refunds_above_serial_id)(void *cls,
                                     uint64_t serial_id,
-                                    TALER_EXCHANGEDB_RefundCallback cb,
+                                    TALER_DONAUDB_RefundCallback cb,
                                     void *cb_cls);
 
 
@@ -5355,7 +5355,7 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_reserves_in_above_serial_id)(void *cls,
                                         uint64_t serial_id,
-                                        TALER_EXCHANGEDB_ReserveInCallback cb,
+                                        TALER_DONAUDB_ReserveInCallback cb,
                                         void *cb_cls);
 
 
@@ -5375,7 +5375,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const char *account_name,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_ReserveInCallback cb,
+    TALER_DONAUDB_ReserveInCallback cb,
     void *cb_cls);
 
 
@@ -5394,12 +5394,12 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_withdrawals_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_WithdrawCallback cb,
+    TALER_DONAUDB_WithdrawCallback cb,
     void *cb_cls);
 
 
   /**
-   * Function called to select outgoing wire transfers the exchange
+   * Function called to select outgoing wire transfers the donau
    * executed, ordered by serial ID (monotonically increasing).
    *
    * @param cls closure
@@ -5411,11 +5411,11 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_wire_out_above_serial_id)(void *cls,
                                      uint64_t serial_id,
-                                     TALER_EXCHANGEDB_WireTransferOutCallback 
cb,
+                                     TALER_DONAUDB_WireTransferOutCallback cb,
                                      void *cb_cls);
 
   /**
-   * Function called to select outgoing wire transfers the exchange
+   * Function called to select outgoing wire transfers the donau
    * executed, ordered by serial ID (monotonically increasing).
    *
    * @param cls closure
@@ -5430,12 +5430,12 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const char *account_name,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_WireTransferOutCallback cb,
+    TALER_DONAUDB_WireTransferOutCallback cb,
     void *cb_cls);
 
 
   /**
-   * Function called to select recoup requests the exchange
+   * Function called to select recoup requests the donau
    * received, ordered by serial ID (monotonically increasing).
    *
    * @param cls closure
@@ -5447,12 +5447,12 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*select_recoup_above_serial_id)(void *cls,
                                    uint64_t serial_id,
-                                   TALER_EXCHANGEDB_RecoupCallback cb,
+                                   TALER_DONAUDB_RecoupCallback cb,
                                    void *cb_cls);
 
 
   /**
-   * Function called to select recoup requests the exchange received for
+   * Function called to select recoup requests the donau received for
    * refreshed coins, ordered by serial ID (monotonically increasing).
    *
    * @param cls closure
@@ -5465,7 +5465,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_recoup_refresh_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_RecoupRefreshCallback cb,
+    TALER_DONAUDB_RecoupRefreshCallback cb,
     void *cb_cls);
 
 
@@ -5483,7 +5483,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_reserve_open_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_ReserveOpenCallback cb,
+    TALER_DONAUDB_ReserveOpenCallback cb,
     void *cb_cls);
 
 
@@ -5501,7 +5501,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_reserve_closed_above_serial_id)(
     void *cls,
     uint64_t serial_id,
-    TALER_EXCHANGEDB_ReserveClosedCallback cb,
+    TALER_DONAUDB_ReserveClosedCallback cb,
     void *cb_cls);
 
 
@@ -5592,7 +5592,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     struct GNUNET_TIME_Timestamp start_date,
     struct GNUNET_TIME_Timestamp end_date,
-    TALER_EXCHANGEDB_WireMissingCallback cb,
+    TALER_DONAUDB_WireMissingCallback cb,
     void *cb_cls);
 
 
@@ -5630,7 +5630,7 @@ struct TALER_EXCHANGEDB_Plugin
 
 
   /**
-   * Insert information about an auditor that will audit this exchange.
+   * Insert information about an auditor that will audit this donau.
    *
    * @param cls closure
    * @param auditor_pub key of the auditor
@@ -5650,7 +5650,7 @@ struct TALER_EXCHANGEDB_Plugin
 
 
   /**
-   * Update information about an auditor that will audit this exchange.
+   * Update information about an auditor that will audit this donau.
    *
    * @param cls closure
    * @param auditor_pub key of the auditor (primary key for the existing 
record)
@@ -5672,7 +5672,7 @@ struct TALER_EXCHANGEDB_Plugin
 
 
   /**
-   * Check the last date an exchange wire account was modified.
+   * Check the last date an donau wire account was modified.
    *
    * @param cls closure
    * @param payto_uri key to look up information for
@@ -5686,10 +5686,10 @@ struct TALER_EXCHANGEDB_Plugin
 
 
   /**
-   * Insert information about an wire account used by this exchange.
+   * Insert information about an wire account used by this donau.
    *
    * @param cls closure
-   * @param payto_uri wire account of the exchange
+   * @param payto_uri wire account of the donau
    * @param conversion_url URL of a conversion service, NULL if there is no 
conversion
    * @param debit_restrictions JSON array with debit restrictions on the 
account
    * @param credit_restrictions JSON array with credit restrictions on the 
account
@@ -5710,7 +5710,7 @@ struct TALER_EXCHANGEDB_Plugin
 
 
   /**
-   * Update information about a wire account of the exchange.
+   * Update information about a wire account of the donau.
    *
    * @param cls closure
    * @param payto_uri account the update is about
@@ -5733,7 +5733,7 @@ struct TALER_EXCHANGEDB_Plugin
 
 
   /**
-   * Obtain information about the enabled wire accounts of the exchange.
+   * Obtain information about the enabled wire accounts of the donau.
    *
    * @param cls closure
    * @param cb function to call on each account
@@ -5742,12 +5742,12 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*get_wire_accounts)(void *cls,
-                       TALER_EXCHANGEDB_WireAccountCallback cb,
+                       TALER_DONAUDB_WireAccountCallback cb,
                        void *cb_cls);
 
 
   /**
-   * Obtain information about the fee structure of the exchange for
+   * Obtain information about the fee structure of the donau for
    * a given @a wire_method
    *
    * @param cls closure
@@ -5759,12 +5759,12 @@ struct TALER_EXCHANGEDB_Plugin
   enum GNUNET_DB_QueryStatus
   (*get_wire_fees)(void *cls,
                    const char *wire_method,
-                   TALER_EXCHANGEDB_WireFeeCallback cb,
+                   TALER_DONAUDB_WireFeeCallback cb,
                    void *cb_cls);
 
 
   /**
-   * Obtain information about the global fee structure of the exchange.
+   * Obtain information about the global fee structure of the donau.
    *
    * @param cls closure
    * @param cb function to call on each fee entry
@@ -5773,7 +5773,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*get_global_fees)(void *cls,
-                     TALER_EXCHANGEDB_GlobalFeeCallback cb,
+                     TALER_DONAUDB_GlobalFeeCallback cb,
                      void *cb_cls);
 
 
@@ -5781,14 +5781,14 @@ struct TALER_EXCHANGEDB_Plugin
    * Store information about a revoked online signing key.
    *
    * @param cls closure
-   * @param exchange_pub exchange online signing key that was revoked
+   * @param donau_pub donau online signing key that was revoked
    * @param master_sig signature affirming the revocation
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
   (*insert_signkey_revocation)(
     void *cls,
-    const struct TALER_ExchangePublicKeyP *exchange_pub,
+    const struct TALER_DonauPublicKeyP *donau_pub,
     const struct TALER_MasterSignatureP *master_sig);
 
 
@@ -5796,14 +5796,14 @@ struct TALER_EXCHANGEDB_Plugin
    * Obtain information about a revoked online signing key.
    *
    * @param cls closure
-   * @param exchange_pub exchange online signing key that was revoked
+   * @param donau_pub donau online signing key that was revoked
    * @param[out] master_sig signature affirming the revocation
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
   (*lookup_signkey_revocation)(
     void *cls,
-    const struct TALER_ExchangePublicKeyP *exchange_pub,
+    const struct TALER_DonauPublicKeyP *donau_pub,
     struct TALER_MasterSignatureP *master_sig);
 
 
@@ -5819,7 +5819,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*lookup_denomination_key)(
     void *cls,
     const struct TALER_DenominationHashP *h_denom_pub,
-    struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
+    struct TALER_DONAUDB_DenominationKeyMetaData *meta);
 
 
   /**
@@ -5837,7 +5837,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_DenominationHashP *h_denom_pub,
     const struct TALER_DenominationPublicKey *denom_pub,
-    const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
+    const struct TALER_DONAUDB_DenominationKeyMetaData *meta,
     const struct TALER_MasterSignatureP *master_sig);
 
 
@@ -5846,16 +5846,16 @@ struct TALER_EXCHANGEDB_Plugin
    * denomination key by adding the master signature.
    *
    * @param cls closure
-   * @param exchange_pub the exchange online signing public key
-   * @param meta meta data about @a exchange_pub
+   * @param donau_pub the donau online signing public key
+   * @param meta meta data about @a donau_pub
    * @param master_sig master signature to add
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
   (*activate_signing_key)(
     void *cls,
-    const struct TALER_ExchangePublicKeyP *exchange_pub,
-    const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
+    const struct TALER_DonauPublicKeyP *donau_pub,
+    const struct TALER_DONAUDB_SignkeyMetaData *meta,
     const struct TALER_MasterSignatureP *master_sig);
 
 
@@ -5863,15 +5863,15 @@ struct TALER_EXCHANGEDB_Plugin
    * Lookup signing key meta data.
    *
    * @param cls closure
-   * @param exchange_pub the exchange online signing public key
-   * @param[out] meta meta data about @a exchange_pub
+   * @param donau_pub the donau online signing public key
+   * @param[out] meta meta data about @a donau_pub
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
   (*lookup_signing_key)(
     void *cls,
-    const struct TALER_ExchangePublicKeyP *exchange_pub,
-    struct TALER_EXCHANGEDB_SignkeyMetaData *meta);
+    const struct TALER_DonauPublicKeyP *donau_pub,
+    struct TALER_DONAUDB_SignkeyMetaData *meta);
 
 
   /**
@@ -5956,7 +5956,7 @@ struct TALER_EXCHANGEDB_Plugin
 
   /**
    * Lookup the latest serial number of @a table.  Used in
-   * exchange-auditor database replication.
+   * donau-auditor database replication.
    *
    * @param cls closure
    * @param table table for which we should return the serial
@@ -5966,12 +5966,12 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*lookup_serial_by_table)(void *cls,
-                            enum TALER_EXCHANGEDB_ReplicatedTable table,
+                            enum TALER_DONAUDB_ReplicatedTable table,
                             uint64_t *serial);
 
   /**
    * Lookup records above @a serial number in @a table. Used in
-   * exchange-auditor database replication.
+   * donau-auditor database replication.
    *
    * @param cls closure
    * @param table table for which we should return the serial
@@ -5983,14 +5983,14 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*lookup_records_by_table)(void *cls,
-                             enum TALER_EXCHANGEDB_ReplicatedTable table,
+                             enum TALER_DONAUDB_ReplicatedTable table,
                              uint64_t serial,
-                             TALER_EXCHANGEDB_ReplicationCallback cb,
+                             TALER_DONAUDB_ReplicationCallback cb,
                              void *cb_cls);
 
 
   /**
-   * Insert record set into @a table.  Used in exchange-auditor database
+   * Insert record set into @a table.  Used in donau-auditor database
    * replication.
    *
   memset (&awc, 0, sizeof (awc));
@@ -6001,7 +6001,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   enum GNUNET_DB_QueryStatus
   (*insert_records_by_table)(void *cls,
-                             const struct TALER_EXCHANGEDB_TableData *td);
+                             const struct TALER_DONAUDB_TableData *td);
 
 
   /**
@@ -6138,15 +6138,15 @@ struct TALER_EXCHANGEDB_Plugin
 
   /**
    * Function called to store configuration data about a partner
-   * exchange that we are federated with.
+   * donau that we are federated with.
    *
    * @param cls the @e cls of this struct with the plugin-specific state
-   * @param master_pub public offline signing key of the partner exchange
+   * @param master_pub public offline signing key of the partner donau
    * @param start_date when does the following data start to be valid
    * @param end_date when does the validity end (exclusive)
-   * @param wad_frequency how often do we do exchange-to-exchange settlements?
+   * @param wad_frequency how often do we do donau-to-donau settlements?
    * @param wad_fee how much do we charge for transfers to the partner
-   * @param partner_base_url base URL of the partner exchange
+   * @param partner_base_url base URL of the partner donau
    * @param master_sig signature with our offline signing key affirming the 
above
    * @return transaction status code
    */
@@ -6433,7 +6433,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param[out] h_denom_pub set to hash of denomination of the coin
    * @param[out] phac set to hash of age restriction on the coin
    * @param[out] coin_sig set to signature affirming the operation
-   * @param[out] partner_url set to the URL of the partner exchange, or NULL 
for ourselves, must be freed by caller
+   * @param[out] partner_url set to the URL of the partner donau, or NULL for 
ourselves, must be freed by caller
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
@@ -6458,7 +6458,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param merge_sig signature affirming the merge
    * @param merge_timestamp time of the merge
    * @param reserve_sig signature of the reserve affirming the merge
-   * @param partner_url URL of the partner exchange, can be NULL if the 
reserves lives with us
+   * @param partner_url URL of the partner donau, can be NULL if the reserves 
lives with us
    * @param reserve_pub public key of the reserve to credit
    * @param[out] no_partner set to true if @a partner_url is unknown
    * @param[out] no_balance set to true if the @a purse_pub is not paid up yet
@@ -6519,7 +6519,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @param purse_pub public key of the purse
    * @param[out] merge_sig set to the signature confirming the merge
    * @param[out] merge_timestamp set to the time of the merge
-   * @param[out] partner_url set to the URL of the target exchange, or NULL if 
the target exchange is us. To be freed by the caller.
+   * @param[out] partner_url set to the URL of the target donau, or NULL if 
the target donau is us. To be freed by the caller.
    * @param[out] reserve_pub set to the public key of the reserve/account 
being credited
    * @return transaction status code
    */
@@ -6806,7 +6806,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_satisfied_kyc_processes)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    TALER_EXCHANGEDB_SatisfiedProviderCallback spc,
+    TALER_DONAUDB_SatisfiedProviderCallback spc,
     void *spc_cls);
 
 
@@ -6824,7 +6824,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*iterate_kyc_reference)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    TALER_EXCHANGEDB_LegitimizationProcessCallback lpc,
+    TALER_DONAUDB_LegitimizationProcessCallback lpc,
     void *lpc_cls);
 
 
@@ -6844,7 +6844,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
-    TALER_EXCHANGEDB_KycAmountCallback kac,
+    TALER_DONAUDB_KycAmountCallback kac,
     void *kac_cls);
 
 
@@ -6864,7 +6864,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
-    TALER_EXCHANGEDB_KycAmountCallback kac,
+    TALER_DONAUDB_KycAmountCallback kac,
     void *kac_cls);
 
 
@@ -6884,7 +6884,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
-    TALER_EXCHANGEDB_KycAmountCallback kac,
+    TALER_DONAUDB_KycAmountCallback kac,
     void *kac_cls);
 
 
@@ -6937,7 +6937,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_similar_kyc_attributes)(
     void *cls,
     const struct GNUNET_ShortHashCode *kyc_prox,
-    TALER_EXCHANGEDB_AttributeCallback cb,
+    TALER_DONAUDB_AttributeCallback cb,
     void *cb_cls);
 
 
@@ -6954,7 +6954,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_kyc_attributes)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    TALER_EXCHANGEDB_AttributeCallback cb,
+    TALER_DONAUDB_AttributeCallback cb,
     void *cb_cls);
 
 
@@ -7034,7 +7034,7 @@ struct TALER_EXCHANGEDB_Plugin
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     enum TALER_AmlDecisionState *decision,
-    struct TALER_EXCHANGEDB_KycStatus *kyc,
+    struct TALER_DONAUDB_KycStatus *kyc,
     struct TALER_Amount *threshold);
 
 
@@ -7072,7 +7072,7 @@ struct TALER_EXCHANGEDB_Plugin
     uint64_t row_off,
     uint64_t limit,
     bool forward,
-    TALER_EXCHANGEDB_AmlStatusCallback cb,
+    TALER_DONAUDB_AmlStatusCallback cb,
     void *cb_cls);
 
 
@@ -7089,7 +7089,7 @@ struct TALER_EXCHANGEDB_Plugin
   (*select_aml_history)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
-    TALER_EXCHANGEDB_AmlHistoryCallback cb,
+    TALER_DONAUDB_AmlHistoryCallback cb,
     void *cb_cls);
 
 
@@ -7130,4 +7130,4 @@ struct TALER_EXCHANGEDB_Plugin
 
 };
 
-#endif /* _TALER_EXCHANGE_DB_H */
+#endif /* _TALER_DONAU_DB_H */
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index 367b54b..aedfa02 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -32,7 +32,7 @@
 #include "taler_json_lib.h"
 #include "taler_auditor_service.h"
 #include "taler_bank_service.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_fakebank_lib.h"
 
 
@@ -120,7 +120,7 @@
 struct TALER_TESTING_Credentials
 {
   /**
-   * Bank authentication details for the exchange bank
+   * Bank authentication details for the donau bank
    * account.
    */
   struct TALER_BANK_AuthenticationData ba;
@@ -131,9 +131,9 @@ struct TALER_TESTING_Credentials
   struct GNUNET_CONFIGURATION_Handle *cfg;
 
   /**
-   * Base URL of the exchange.
+   * Base URL of the donau.
    */
-  char *exchange_url;
+  char *donau_url;
 
   /**
    * Base URL of the auditor.
@@ -141,9 +141,9 @@ struct TALER_TESTING_Credentials
   char *auditor_url;
 
   /**
-   * RFC 8905 URI of the exchange.
+   * RFC 8905 URI of the donau.
    */
-  char *exchange_payto;
+  char *donau_payto;
 
   /**
    * RFC 8905 URI of a user.
@@ -169,11 +169,11 @@ enum TALER_TESTING_BankSystem
 
 /**
  * Obtain bank credentials for a given @a cfg_file using
- * @a exchange_account_section as the basis for the
- * exchange account.
+ * @a donau_account_section as the basis for the
+ * donau account.
  *
  * @param cfg_file name of configuration to parse
- * @param exchange_account_section configuration section name for the exchange 
account to use
+ * @param donau_account_section configuration section name for the donau 
account to use
  * @param bs type of bank to use
  * @param[out] ua where to write user account details
  *         and other credentials
@@ -181,7 +181,7 @@ enum TALER_TESTING_BankSystem
 enum GNUNET_GenericReturnValue
 TALER_TESTING_get_credentials (
   const char *cfg_file,
-  const char *exchange_account_section,
+  const char *donau_account_section,
   enum TALER_TESTING_BankSystem bs,
   struct TALER_TESTING_Credentials *ua);
 
@@ -218,8 +218,8 @@ TALER_TESTING_cleanup_files_cfg (void *cls,
  * @param age_restricted must the denomination be age restricted?
  * @return NULL if no matching key was found
  */
-const struct TALER_EXCHANGE_DenomPublicKey *
-TALER_TESTING_find_pk (const struct TALER_EXCHANGE_Keys *keys,
+const struct TALER_DONAU_DenomPublicKey *
+TALER_TESTING_find_pk (const struct TALER_DONAU_Keys *keys,
                        const struct TALER_Amount *amount,
                        bool age_restricted);
 
@@ -505,8 +505,8 @@ TALER_TESTING_loop (TALER_TESTING_Main main_cb,
  * @param argv command-line arguments given
  * @param loglevel log level to use
  * @param cfg_file configuration file to use
- * @param exchange_account_section configuration section
- *   with exchange bank account to use
+ * @param donau_account_section configuration section
+ *   with donau bank account to use
  * @param bs bank system to use
  * @param[in,out] cred global credentials to initialize
  * @param main_cb main test function to run
@@ -517,7 +517,7 @@ int
 TALER_TESTING_main (char *const *argv,
                     const char *loglevel,
                     const char *cfg_file,
-                    const char *exchange_account_section,
+                    const char *donau_account_section,
                     enum TALER_TESTING_BankSystem bs,
                     struct TALER_TESTING_Credentials *cred,
                     TALER_TESTING_Main main_cb,
@@ -568,7 +568,7 @@ TALER_TESTING_has_in_name (const char *prog,
  * Wait for an HTTPD service to have started. Waits for at
  * most 10s, after that returns 77 to indicate an error.
  *
- * @param base_url what URL should we expect the exchange
+ * @param base_url what URL should we expect the donau
  *        to be running at
  * @return 0 on success
  */
@@ -600,8 +600,8 @@ TALER_TESTING_parse_coin_reference (
  */
 int
 TALER_TESTING_history_entry_cmp (
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *h1,
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *h2);
+  const struct TALER_DONAU_ReserveHistoryEntry *h1,
+  const struct TALER_DONAU_ReserveHistoryEntry *h2);
 
 
 /* ************** Specific interpreter commands ************ */
@@ -645,7 +645,7 @@ TALER_TESTING_cmd_system_start (
 
 
 /**
- * Connects to the exchange.
+ * Connects to the donau.
  *
  * @param label command label
  * @param cfg configuration to use
@@ -655,7 +655,7 @@ TALER_TESTING_cmd_system_start (
  * @return the command.
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_get_exchange (
+TALER_TESTING_cmd_get_donau (
   const char *label,
   const struct GNUNET_CONFIGURATION_Handle *cfg,
   const char *last_keys_ref,
@@ -684,15 +684,15 @@ TALER_TESTING_cmd_get_auditor (
  *
  * @param label command label
  * @param cfg configuration to use
- * @param exchange_account_section configuration section
- *   to use to determine bank account of the exchange
+ * @param donau_account_section configuration section
+ *   to use to determine bank account of the donau
  * @return the command.
  */
 struct TALER_TESTING_Command
 TALER_TESTING_cmd_run_fakebank (
   const char *label,
   const struct GNUNET_CONFIGURATION_Handle *cfg,
-  const char *exchange_account_section);
+  const char *donau_account_section);
 
 
 /**
@@ -757,7 +757,7 @@ TALER_TESTING_cmd_bank_debits (const char *label,
  * @param payto_debit_account which account to withdraw money from
  * @param payto_credit_account which account receives money
  * @param wtid wire transfer identifier to use
- * @param exchange_base_url exchange URL to use
+ * @param donau_base_url donau URL to use
  * @return the command.
  */
 struct TALER_TESTING_Command
@@ -767,7 +767,7 @@ TALER_TESTING_cmd_transfer (const char *label,
                             const char *payto_debit_account,
                             const char *payto_credit_account,
                             const struct TALER_WireTransferIdentifierRawP 
*wtid,
-                            const char *exchange_base_url);
+                            const char *donau_base_url);
 
 
 /**
@@ -840,41 +840,41 @@ TALER_TESTING_cmd_deposit_confirmation_with_retry (
 
 
 /**
- * Create a "list exchanges" command.
+ * Create a "list donaus" command.
  *
  * @param label command label.
  * @param expected_response_code expected HTTP response code.
  * @return the command.
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_exchanges (const char *label,
+TALER_TESTING_cmd_donaus (const char *label,
                              unsigned int expected_response_code);
 
 
 /**
- * Create a "list exchanges" command and check whether
- * a particular exchange belongs to the returned bundle.
+ * Create a "list donaus" command and check whether
+ * a particular donau belongs to the returned bundle.
  *
  * @param label command label.
  * @param expected_response_code expected HTTP response code.
- * @param exchange_url URL of the exchange supposed to
+ * @param donau_url URL of the donau supposed to
  *  be included in the response.
  * @return the command.
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_exchanges_with_url (const char *label,
+TALER_TESTING_cmd_donaus_with_url (const char *label,
                                       unsigned int expected_response_code,
-                                      const char *exchange_url);
+                                      const char *donau_url);
 
 /**
- * Modify an exchanges command to enable retries when we get
+ * Modify an donaus command to enable retries when we get
  * transient errors from the auditor.
  *
  * @param cmd a deposit confirmation command
  * @return the command with retries enabled
  */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_exchanges_with_retry (struct TALER_TESTING_Command cmd);
+TALER_TESTING_cmd_donaus_with_retry (struct TALER_TESTING_Command cmd);
 
 
 /**
@@ -1012,7 +1012,7 @@ TALER_TESTING_cmd_exec_router (const char *label,
 
 
 /**
- * Run a "taler-exchange-aggregator" CMD.
+ * Run a "taler-donau-aggregator" CMD.
  *
  * @param label command label.
  * @param config_filename configuration file for the
@@ -1096,7 +1096,7 @@ TALER_TESTING_cmd_exec_transfer (const char *label,
  * @param amount how much we withdraw.
  * @param age if > 0, age restriction applies
  * @param expected_response_code which HTTP response code
- *        we expect from the exchange.
+ *        we expect from the donau.
  * @return the withdraw command to be executed by the interpreter.
  */
 struct TALER_TESTING_Command
@@ -1117,7 +1117,7 @@ TALER_TESTING_cmd_withdraw_amount (const char *label,
  * @param reserve_reference command providing us with a reserve to withdraw 
from
  * @param age if > 0, age restriction applies (same for all coins)
  * @param expected_response_code which HTTP response code
- *        we expect from the exchange.
+ *        we expect from the donau.
  * @param amount how much we withdraw for the first coin
  * @param ... NULL-terminated list of additional amounts to withdraw (one per 
coin)
  * @return the withdraw command to be executed by the interpreter.
@@ -1140,7 +1140,7 @@ TALER_TESTING_cmd_batch_withdraw (const char *label,
  * @param reserve_reference command providing us with a reserve to withdraw 
from
  * @param max_age maximum allowed age, same for each coin
  * @param expected_response_code which HTTP response code
- *        we expect from the exchange.
+ *        we expect from the donau.
  * @param amount how much we withdraw for the first coin
  * @param ... NULL-terminated list of additional amounts to withdraw (one per 
coin)
  * @return the withdraw command to be executed by the interpreter.
@@ -1180,7 +1180,7 @@ TALER_TESTING_cmd_age_withdraw_reveal (
  * @param coin_ref reference to (withdraw/reveal) command of a coin
  *        from which we should re-use the private key
  * @param expected_response_code which HTTP response code
- *        we expect from the exchange.
+ *        we expect from the donau.
  * @return the withdraw command to be executed by the interpreter.
  */
 struct TALER_TESTING_Command
@@ -1208,14 +1208,14 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_withdraw_denomination (
   const char *label,
   const char *reserve_reference,
-  const struct TALER_EXCHANGE_DenomPublicKey *dk,
+  const struct TALER_DONAU_DenomPublicKey *dk,
   unsigned int expected_response_code);
 
 
 /**
  * Modify a withdraw command to enable retries when the
  * reserve is not yet full or we get other transient
- * errors from the exchange.
+ * errors from the donau.
  *
  * @param cmd a withdraw command
  * @return the command with retries enabled
@@ -1405,7 +1405,7 @@ TALER_TESTING_cmd_deposit (const char *label,
                            unsigned int expected_response_code);
 
 /**
- * Create a "deposit" command that references an existing merchant key.
+ * Create a "deposit" command that references an existing charity key.
  *
  * @param label command label.
  * @param coin_reference reference to any operation that can
@@ -1423,8 +1423,8 @@ TALER_TESTING_cmd_deposit (const char *label,
  *        one day and disrupt tests meaning.
  * @param amount how much is going to be deposited.
  * @param expected_response_code expected HTTP response code.
- * @param merchant_priv_reference reference to another operation
- *        that has a merchant private key trait
+ * @param charity_priv_reference reference to another operation
+ *        that has a charity private key trait
  *
  * @return the command.
  */
@@ -1437,11 +1437,11 @@ TALER_TESTING_cmd_deposit_with_ref (const char *label,
                                     struct GNUNET_TIME_Relative 
refund_deadline,
                                     const char *amount,
                                     unsigned int expected_response_code,
-                                    const char *merchant_priv_reference);
+                                    const char *charity_priv_reference);
 
 /**
  * Modify a deposit command to enable retries when we get transient
- * errors from the exchange.
+ * errors from the donau.
  *
  * @param cmd a deposit command
  * @return the command with retries enabled
@@ -1614,7 +1614,7 @@ TALER_TESTING_cmd_track_transaction (const char *label,
  * @param wtid_reference reference to any command which can provide
  *        a wtid.  If NULL is given, then a all zeroed WTID is
  *        used that will at 99.9999% probability NOT match any
- *        existing WTID known to the exchange.
+ *        existing WTID known to the donau.
  * @param expected_response_code expected HTTP response code.
  * @return the command.
  */
@@ -1647,10 +1647,10 @@ TALER_TESTING_cmd_track_transfer (const char *label,
 
 /**
  * Make a "bank check" CMD.  It checks whether a particular wire transfer from
- * the exchange (debit) has been made or not.
+ * the donau (debit) has been made or not.
  *
  * @param label the command label.
- * @param exchange_base_url base url of the exchange involved in
+ * @param donau_base_url base url of the donau involved in
  *        the wire transfer.
  * @param amount the amount expected to be transferred.
  * @param debit_payto the account that gave money.
@@ -1659,7 +1659,7 @@ TALER_TESTING_cmd_track_transfer (const char *label,
  */
 struct TALER_TESTING_Command
 TALER_TESTING_cmd_check_bank_transfer (const char *label,
-                                       const char *exchange_base_url,
+                                       const char *donau_base_url,
                                        const char *amount,
                                        const char *debit_payto,
                                        const char *credit_payto);
@@ -1667,7 +1667,7 @@ TALER_TESTING_cmd_check_bank_transfer (const char *label,
 
 /**
  * Make a "bank check" CMD.  It checks whether a particular wire transfer to
- * the exchange (credit) has been made or not.
+ * the donau (credit) has been made or not.
  *
  * @param label the command label.
  * @param amount the amount expected to be transferred.
@@ -1909,11 +1909,11 @@ TALER_TESTING_cmd_batch_set_current (const struct 
TALER_TESTING_Command *cmd,
  *
  * @param label command label.
  * @param db_cfg configuration to talk to the DB
- * @param merchant_name Human-readable name of the merchant.
- * @param merchant_account merchant's account name (NOT a payto:// URI)
- * @param exchange_timestamp when did the exchange receive the deposit
+ * @param charity_name Human-readable name of the charity.
+ * @param charity_account charity's account name (NOT a payto:// URI)
+ * @param donau_timestamp when did the donau receive the deposit
  * @param wire_deadline point in time where the aggregator should have
- *        wired money to the merchant.
+ *        wired money to the charity.
  * @param amount_with_fee amount to deposit (inclusive of deposit fee)
  * @param deposit_fee deposit fee
  * @return the command.
@@ -1922,9 +1922,9 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_insert_deposit (
   const char *label,
   const struct GNUNET_CONFIGURATION_Handle *db_cfg,
-  const char *merchant_name,
-  const char *merchant_account,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  const char *charity_name,
+  const char *charity_account,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   struct GNUNET_TIME_Relative wire_deadline,
   const char *amount_with_fee,
   const char *deposit_fee);
@@ -1974,12 +1974,12 @@ TALER_TESTING_cmd_stat (struct TALER_TESTING_Timer 
*timers);
 
 
 /**
- * Add the auditor to the exchange's list of auditors.
+ * Add the auditor to the donau's list of auditors.
  * The information about the auditor is taken from the
  * "[auditor]" section in the configuration file.
  *
  * @param label command label.
- * @param expected_http_status expected HTTP status from exchange
+ * @param expected_http_status expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @return the command
  */
@@ -1990,12 +1990,12 @@ TALER_TESTING_cmd_auditor_add (const char *label,
 
 
 /**
- * Remove the auditor from the exchange's list of auditors.
+ * Remove the auditor from the donau's list of auditors.
  * The information about the auditor is taken from the
  * "[auditor]" section in the configuration file.
  *
  * @param label command label.
- * @param expected_http_status expected HTTP status from exchange
+ * @param expected_http_status expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @return the command
  */
@@ -2012,7 +2012,7 @@ TALER_TESTING_cmd_auditor_del (const char *label,
  * "[auditor]" section in the configuration file.
  *
  * @param label command label.
- * @param expected_http_status expected HTTP status from exchange
+ * @param expected_http_status expected HTTP status from donau
  * @param denom_ref reference to a command identifying a denomination key
  * @param bad_sig should we use a bogus signature?
  * @return the command
@@ -2025,14 +2025,14 @@ TALER_TESTING_cmd_auditor_add_denom_sig (const char 
*label,
 
 
 /**
- * Add statement about wire fees of the exchange. This is always
+ * Add statement about wire fees of the donau. This is always
  * done for a few hours around the current time (for the test).
  *
  * @param label command label.
  * @param wire_method wire method to set wire fees for
  * @param wire_fee the wire fee to affirm
  * @param closing_fee the closing fee to affirm
- * @param expected_http_status expected HTTP status from exchange
+ * @param expected_http_status expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @return the command
  */
@@ -2047,11 +2047,11 @@ TALER_TESTING_cmd_set_wire_fee (const char *label,
 
 /**
  * Add the given payto-URI bank account to the list of bank
- * accounts used by the exchange.
+ * accounts used by the donau.
  *
  * @param label command label.
  * @param payto_uri URI identifying the bank account
- * @param expected_http_status expected HTTP status from exchange
+ * @param expected_http_status expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @return the command
  */
@@ -2064,11 +2064,11 @@ TALER_TESTING_cmd_wire_add (const char *label,
 
 /**
  * Remove the given payto-URI bank account from the list of bank
- * accounts used by the exchange.
+ * accounts used by the donau.
  *
  * @param label command label.
  * @param payto_uri URI identifying the bank account
- * @param expected_http_status expected HTTP status from exchange
+ * @param expected_http_status expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @return the command
  */
@@ -2079,7 +2079,7 @@ TALER_TESTING_cmd_wire_del (const char *label,
                             bool bad_sig);
 
 /**
- * Sign all extensions that the exchange has to offer, f. e. the extension for
+ * Sign all extensions that the donau has to offer, f. e. the extension for
  * age restriction.  This has to be run before any withdrawal of age restricted
  * can be performed.
  *
@@ -2093,9 +2093,9 @@ TALER_TESTING_cmd_exec_offline_sign_extensions (const 
char *label,
 
 
 /**
- * Sign all exchange denomination and online signing keys
+ * Sign all donau denomination and online signing keys
  * with the "offline" key and provide those signatures to
- * the exchange. (Downloads the keys, makes the signature
+ * the donau. (Downloads the keys, makes the signature
  * and uploads the result, all in one.)
  *
  * @param label command label.
@@ -2149,10 +2149,10 @@ TALER_TESTING_cmd_exec_offline_sign_global_fees (
 
 
 /**
- * Revoke an exchange denomination key.
+ * Revoke an donau denomination key.
  *
  * @param label command label.
- * @param expected_response_code expected HTTP status from exchange
+ * @param expected_response_code expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @param denom_ref reference to a command that identifies
  *        a denomination key (i.e. because it was used to
@@ -2168,10 +2168,10 @@ TALER_TESTING_cmd_revoke_denom_key (
 
 
 /**
- * Revoke an exchange online signing key.
+ * Revoke an donau online signing key.
  *
  * @param label command label.
- * @param expected_response_code expected HTTP status from exchange
+ * @param expected_response_code expected HTTP status from donau
  * @param bad_sig should we use a bogus signature?
  * @param signkey_ref reference to a command that identifies
  *        a signing key (i.e. because it was used to
@@ -2191,7 +2191,7 @@ TALER_TESTING_cmd_revoke_sign_key (
  *
  * @param label command label.
  * @param reserve_reference command with reserve private key to use (or NULL 
to create a fresh reserve key).
- * @param threshold_balance balance amount to pass to the exchange
+ * @param threshold_balance balance amount to pass to the donau
  * @param expected_response_code expected HTTP status
  * @return the command
  */
@@ -2223,7 +2223,7 @@ TALER_TESTING_cmd_check_kyc_get (const char *label,
  * @param label command label.
  * @param payment_target_reference command with a payment target to query
  * @param logic_section name of the KYC provider section
- *         in the exchange configuration for this proof
+ *         in the donau configuration for this proof
  * @param code OAuth 2.0 code to use
  * @param expected_response_code expected HTTP status
  * @return the command
@@ -2268,7 +2268,7 @@ TALER_TESTING_cmd_oauth_with_birthdate (const char *label,
  * Creates a purse with deposits.
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param contract_terms contract, JSON string
  * @param upload_contract should we upload the contract
  * @param purse_expiration how long until the purse expires
@@ -2289,7 +2289,7 @@ TALER_TESTING_cmd_purse_create_with_deposit (
  * Deletes a purse.
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param purse_cmd command that created the purse
  * @return the command
  */
@@ -2305,7 +2305,7 @@ TALER_TESTING_cmd_purse_delete (
  * the upload command).
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param for_merge true if for merge, false if for deposit
  * @param contract_ref reference to a command providing us with the contract 
private key
  * @return the command
@@ -2322,7 +2322,7 @@ TALER_TESTING_cmd_contract_get (
  * Retrieve purse state by merge private key.
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param merge_ref reference to a command providing us with the merge private 
key
  * @param reserve_ref reference to a command providing us with a reserve 
private key; if NULL, we create a fresh reserve
  * @return the command
@@ -2339,7 +2339,7 @@ TALER_TESTING_cmd_purse_merge (
  * Retrieve purse state.
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param purse_ref reference to a command providing us with the purse private 
key
  * @param expected_balance how much should be in the purse
  * @param wait_for_merge true to wait for a merge event, otherwise wait for a 
deposit event
@@ -2374,7 +2374,7 @@ TALER_TESTING_cmd_purse_poll_finish (const char *label,
  * Creates a purse with reserve.
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param contract_terms contract, JSON string
  * @param upload_contract should we upload the contract
  * @param pay_purse_fee should we pay a fee to create the purse
@@ -2397,7 +2397,7 @@ TALER_TESTING_cmd_purse_create_with_reserve (
  * Deposit coins into a purse.
  *
  * @param label command label
- * @param expected_http_status what HTTP status do we expect to get returned 
from the exchange
+ * @param expected_http_status what HTTP status do we expect to get returned 
from the donau
  * @param min_age age restriction of the purse
  * @param purse_ref reference to the purse
  * @param ... NULL-terminated list of references to coins to be deposited
@@ -2499,23 +2499,23 @@ TALER_TESTING_cmd_check_aml_decisions (
 /* ****************** convenience functions ************** */
 
 /**
- * Get exchange URL from interpreter. Convenience function.
+ * Get donau URL from interpreter. Convenience function.
  *
  * @param is interpreter state.
- * @return the exchange URL, or NULL on error
+ * @return the donau URL, or NULL on error
  */
 const char *
-TALER_TESTING_get_exchange_url (
+TALER_TESTING_get_donau_url (
   struct TALER_TESTING_Interpreter *is);
 
 
 /**
- * Get exchange keys from interpreter. Convenience function.
+ * Get donau keys from interpreter. Convenience function.
  *
  * @param is interpreter state.
- * @return the exchange keys, or NULL on error
+ * @return the donau keys, or NULL on error
  */
-struct TALER_EXCHANGE_Keys *
+struct TALER_DONAU_Keys *
 TALER_TESTING_get_keys (
   struct TALER_TESTING_Interpreter *is);
 
@@ -2696,16 +2696,16 @@ TALER_TESTING_get_trait (const struct 
TALER_TESTING_Trait *traits,
   op (planchet_secret, const struct TALER_PlanchetMasterSecretP)   \
   op (refresh_secret, const struct TALER_RefreshMasterSecretP)     \
   op (reserve_pub, const struct TALER_ReservePublicKeyP)           \
-  op (merchant_priv, const struct TALER_MerchantPrivateKeyP)       \
-  op (merchant_pub, const struct TALER_MerchantPublicKeyP)         \
-  op (merchant_sig, const struct TALER_MerchantSignatureP)         \
+  op (charity_priv, const struct TALER_CharityPrivateKeyP)       \
+  op (charity_pub, const struct TALER_CharityPublicKeyP)         \
+  op (charity_sig, const struct TALER_CharitySignatureP)         \
   op (wtid, const struct TALER_WireTransferIdentifierRawP)         \
   op (bank_auth_data, const struct TALER_BANK_AuthenticationData)  \
   op (contract_terms, const json_t)                                \
   op (wire_details, const json_t)                                  \
-  op (exchange_url, const char)                                    \
+  op (donau_url, const char)                                    \
   op (auditor_url, const char)                                     \
-  op (exchange_bank_account_url, const char)                       \
+  op (donau_bank_account_url, const char)                       \
   op (taler_uri, const char)                                       \
   op (payto_uri, const char)                                       \
   op (kyc_url, const char)                                         \
@@ -2724,7 +2724,7 @@ TALER_TESTING_get_trait (const struct TALER_TESTING_Trait 
*traits,
   op (claim_token, const struct TALER_ClaimTokenP)                 \
   op (relative_time, const struct GNUNET_TIME_Relative)            \
   op (fakebank, struct TALER_FAKEBANK_Handle)                      \
-  op (keys, struct TALER_EXCHANGE_Keys)                            \
+  op (keys, struct TALER_DONAU_Keys)                            \
   op (process, struct GNUNET_OS_Process *)
 
 
@@ -2732,7 +2732,7 @@ TALER_TESTING_get_trait (const struct TALER_TESTING_Trait 
*traits,
  * Call #op on all indexed traits.
  */
 #define TALER_TESTING_INDEXED_TRAITS(op)                                \
-  op (denom_pub, const struct TALER_EXCHANGE_DenomPublicKey)            \
+  op (denom_pub, const struct TALER_DONAU_DenomPublicKey)            \
   op (denom_sig, const struct TALER_DenominationSignature)              \
   op (amounts, const struct TALER_Amount)                               \
   op (deposit_amount, const struct TALER_Amount)                        \
@@ -2740,17 +2740,17 @@ TALER_TESTING_get_trait (const struct 
TALER_TESTING_Trait *traits,
   op (age_commitment, const struct TALER_AgeCommitment)                 \
   op (age_commitment_proof, const struct TALER_AgeCommitmentProof)      \
   op (h_age_commitment, const struct TALER_AgeCommitmentHash)           \
-  op (reserve_history, const struct TALER_EXCHANGE_ReserveHistoryEntry) \
+  op (reserve_history, const struct TALER_DONAU_ReserveHistoryEntry) \
   op (planchet_secrets, const struct TALER_PlanchetMasterSecretP)       \
-  op (exchange_wd_value, const struct TALER_ExchangeWithdrawValues)     \
+  op (donau_wd_value, const struct TALER_DonauWithdrawValues)     \
   op (coin_priv, const struct TALER_CoinSpendPrivateKeyP)               \
   op (coin_pub, const struct TALER_CoinSpendPublicKeyP)                 \
   op (absolute_time, const struct GNUNET_TIME_Absolute)                 \
   op (timestamp, const struct GNUNET_TIME_Timestamp)                    \
   op (wire_deadline, const struct GNUNET_TIME_Timestamp)                \
   op (refund_deadline, const struct GNUNET_TIME_Timestamp)              \
-  op (exchange_pub, const struct TALER_ExchangePublicKeyP)              \
-  op (exchange_sig, const struct TALER_ExchangeSignatureP)              \
+  op (donau_pub, const struct TALER_DonauPublicKeyP)              \
+  op (donau_sig, const struct TALER_DonauSignatureP)              \
   op (blinding_key, const union TALER_DenominationBlindingKeyP)         \
   op (h_blinded_coin, const struct TALER_BlindedCoinHashP)
 
diff --git a/src/include/taler_util.h b/src/include/taler_util.h
index 8762f7d..c82d449 100644
--- a/src/include/taler_util.h
+++ b/src/include/taler_util.h
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -424,15 +424,15 @@ TALER_payto_validate (const char *payto_uri);
 
 
 /**
- * Create payto://-URI for a given exchange base URL
+ * Create payto://-URI for a given donau base URL
  * and a @a reserve_pub.
  *
- * @param exchange_url the base URL of the exchange
+ * @param donau_url the base URL of the donau
  * @param reserve_pub the public key of the reserve
  * @return payto://-URI for the reserve (without receiver-name!)
  */
 char *
-TALER_reserve_make_payto (const char *exchange_url,
+TALER_reserve_make_payto (const char *donau_url,
                           const struct TALER_ReservePublicKeyP *reserve_pub);
 
 
@@ -453,22 +453,22 @@ TALER_iban_validate (const char *iban);
 /**
  * Possible values for a binary filter.
  */
-enum TALER_EXCHANGE_YesNoAll
+enum TALER_DONAU_YesNoAll
 {
   /**
    * If condition is yes.
    */
-  TALER_EXCHANGE_YNA_YES = 1,
+  TALER_DONAU_YNA_YES = 1,
 
   /**
   * If condition is no.
   */
-  TALER_EXCHANGE_YNA_NO = 2,
+  TALER_DONAU_YNA_NO = 2,
 
   /**
    * Condition disabled.
    */
-  TALER_EXCHANGE_YNA_ALL = 3
+  TALER_DONAU_YNA_ALL = 3
 };
 
 
@@ -484,8 +484,8 @@ enum TALER_EXCHANGE_YesNoAll
 bool
 TALER_arg_to_yna (struct MHD_Connection *connection,
                   const char *arg,
-                  enum TALER_EXCHANGE_YesNoAll default_val,
-                  enum TALER_EXCHANGE_YesNoAll *yna);
+                  enum TALER_DONAU_YesNoAll default_val,
+                  enum TALER_DONAU_YesNoAll *yna);
 
 
 /**
@@ -495,7 +495,7 @@ TALER_arg_to_yna (struct MHD_Connection *connection,
  * @return string representation ("yes"/"no"/"all").
  */
 const char *
-TALER_yna_to_string (enum TALER_EXCHANGE_YesNoAll yna);
+TALER_yna_to_string (enum TALER_DONAU_YesNoAll yna);
 
 
 #ifdef __APPLE__
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 6ff8e23..9bcecb3 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -15,70 +15,70 @@ endif
 
 lib_LTLIBRARIES = \
   libtalerauditor.la \
-  libtalerexchange.la
+  libtalerdonau.la
 
-libtalerexchange_la_LDFLAGS = \
+libtalerdonau_la_LDFLAGS = \
   -version-info 5:0:0 \
   -no-undefined
-libtalerexchange_la_SOURCES = \
-  exchange_api_add_aml_decision.c \
-  exchange_api_age_withdraw.c \
-  exchange_api_age_withdraw_reveal.c \
-  exchange_api_auditor_add_denomination.c \
-  exchange_api_batch_deposit.c \
-  exchange_api_batch_withdraw.c \
-  exchange_api_batch_withdraw2.c \
-  exchange_api_curl_defaults.c exchange_api_curl_defaults.h \
-  exchange_api_common.c exchange_api_common.h \
-  exchange_api_contracts_get.c \
-  exchange_api_csr_melt.c \
-  exchange_api_csr_withdraw.c \
-  exchange_api_handle.c exchange_api_handle.h \
-  exchange_api_deposits_get.c \
-  exchange_api_kyc_check.c \
-  exchange_api_kyc_proof.c \
-  exchange_api_kyc_wallet.c \
-  exchange_api_link.c \
-  exchange_api_lookup_aml_decision.c \
-  exchange_api_lookup_aml_decisions.c \
-  exchange_api_management_add_partner.c \
-  exchange_api_management_auditor_disable.c \
-  exchange_api_management_auditor_enable.c \
-  exchange_api_management_drain_profits.c \
-  exchange_api_management_get_keys.c \
-  exchange_api_management_post_keys.c \
-  exchange_api_management_post_extensions.c \
-  exchange_api_management_revoke_denomination_key.c \
-  exchange_api_management_revoke_signing_key.c \
-  exchange_api_management_set_global_fee.c \
-  exchange_api_management_set_wire_fee.c \
-  exchange_api_management_update_aml_officer.c \
-  exchange_api_management_wire_disable.c \
-  exchange_api_management_wire_enable.c \
-  exchange_api_melt.c \
-  exchange_api_purse_create_with_deposit.c \
-  exchange_api_purse_create_with_merge.c \
-  exchange_api_purse_delete.c \
-  exchange_api_purse_deposit.c \
-  exchange_api_purse_merge.c \
-  exchange_api_purses_get.c \
-  exchange_api_recoup.c \
-  exchange_api_recoup_refresh.c \
-  exchange_api_refresh_common.c exchange_api_refresh_common.h \
-  exchange_api_refreshes_reveal.c \
-  exchange_api_refund.c \
-  exchange_api_reserves_attest.c \
-  exchange_api_reserves_close.c \
-  exchange_api_reserves_get.c \
-  exchange_api_reserves_get_attestable.c \
-  exchange_api_reserves_history.c \
-  exchange_api_reserves_open.c \
-  exchange_api_reserves_status.c \
-  exchange_api_stefan.c \
-  exchange_api_transfers_get.c \
-  exchange_api_withdraw.c \
-  exchange_api_withdraw2.c
-libtalerexchange_la_LIBADD = \
+libtalerdonau_la_SOURCES = \
+  donau_api_add_aml_decision.c \
+  donau_api_age_withdraw.c \
+  donau_api_age_withdraw_reveal.c \
+  donau_api_auditor_add_denomination.c \
+  donau_api_batch_deposit.c \
+  donau_api_batch_withdraw.c \
+  donau_api_batch_withdraw2.c \
+  donau_api_curl_defaults.c donau_api_curl_defaults.h \
+  donau_api_common.c donau_api_common.h \
+  donau_api_contracts_get.c \
+  donau_api_csr_melt.c \
+  donau_api_csr_withdraw.c \
+  donau_api_handle.c donau_api_handle.h \
+  donau_api_deposits_get.c \
+  donau_api_kyc_check.c \
+  donau_api_kyc_proof.c \
+  donau_api_kyc_wallet.c \
+  donau_api_link.c \
+  donau_api_lookup_aml_decision.c \
+  donau_api_lookup_aml_decisions.c \
+  donau_api_management_add_partner.c \
+  donau_api_management_auditor_disable.c \
+  donau_api_management_auditor_enable.c \
+  donau_api_management_drain_profits.c \
+  donau_api_management_get_keys.c \
+  donau_api_management_post_keys.c \
+  donau_api_management_post_extensions.c \
+  donau_api_management_revoke_denomination_key.c \
+  donau_api_management_revoke_signing_key.c \
+  donau_api_management_set_global_fee.c \
+  donau_api_management_set_wire_fee.c \
+  donau_api_management_update_aml_officer.c \
+  donau_api_management_wire_disable.c \
+  donau_api_management_wire_enable.c \
+  donau_api_melt.c \
+  donau_api_purse_create_with_deposit.c \
+  donau_api_purse_create_with_merge.c \
+  donau_api_purse_delete.c \
+  donau_api_purse_deposit.c \
+  donau_api_purse_merge.c \
+  donau_api_purses_get.c \
+  donau_api_recoup.c \
+  donau_api_recoup_refresh.c \
+  donau_api_refresh_common.c donau_api_refresh_common.h \
+  donau_api_refreshes_reveal.c \
+  donau_api_refund.c \
+  donau_api_reserves_attest.c \
+  donau_api_reserves_close.c \
+  donau_api_reserves_get.c \
+  donau_api_reserves_get_attestable.c \
+  donau_api_reserves_history.c \
+  donau_api_reserves_open.c \
+  donau_api_reserves_status.c \
+  donau_api_stefan.c \
+  donau_api_transfers_get.c \
+  donau_api_withdraw.c \
+  donau_api_withdraw2.c
+libtalerdonau_la_LIBADD = \
   libtalerauditor.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/kyclogic/libtalerkyclogic.la \
@@ -99,7 +99,7 @@ libtalerauditor_la_SOURCES = \
   auditor_api_curl_defaults.c auditor_api_curl_defaults.h \
   auditor_api_get_config.c \
   auditor_api_deposit_confirmation.c \
-  auditor_api_exchanges.c
+  auditor_api_donaus.c
 libtalerauditor_la_LIBADD = \
   $(top_builddir)/src/curl/libtalercurl.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -123,6 +123,6 @@ TESTS = \
 test_stefan_SOURCES = \
   test_stefan.c
 test_stefan_LDADD = \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/util/libtalerutil.la \
   -lgnunetutil
diff --git a/src/lib/exchange_api_batch_deposit.c 
b/src/lib/donau_api_batch_deposit.c
similarity index 78%
rename from src/lib/exchange_api_batch_deposit.c
rename to src/lib/donau_api_batch_deposit.c
index 3aea22b..c0e2065 100644
--- a/src/lib/exchange_api_batch_deposit.c
+++ b/src/lib/donau_api_batch_deposit.c
@@ -7,7 +7,7 @@
    Foundation; either version 3, or (at your option) any later version.
 
    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+   WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along with
@@ -15,8 +15,8 @@
    <http://www.gnu.org/licenses/>
  */
 /**
- * @file lib/exchange_api_batch_deposit.c
- * @brief Implementation of the /batch-deposit request of the exchange's HTTP 
API
+ * @file lib/donau_api_batch_deposit.c
+ * @brief Implementation of the /batch-deposit request of the donau's HTTP API
  * @author Sree Harsha Totakura <sreeharsha@totakura.in>
  * @author Christian Grothoff
  */
@@ -28,11 +28,11 @@
 #include <gnunet/gnunet_curl_lib.h>
 #include "taler_json_lib.h"
 #include "taler_auditor_service.h"
-#include "taler_exchange_service.h"
-#include "exchange_api_common.h"
-#include "exchange_api_handle.h"
+#include "taler_donau_service.h"
+#include "donau_api_common.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
@@ -73,20 +73,20 @@ struct TEAH_AuditorInteractionEntry
   /**
    * Batch deposit this is for.
    */
-  struct TALER_EXCHANGE_BatchDepositHandle *dh;
+  struct TALER_DONAU_BatchDepositHandle *dh;
 };
 
 
 /**
  * @brief A Deposit Handle
  */
-struct TALER_EXCHANGE_BatchDepositHandle
+struct TALER_DONAU_BatchDepositHandle
 {
 
   /**
-   * The keys of the exchange.
+   * The keys of the donau.
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * Context for our curl request(s).
@@ -112,7 +112,7 @@ struct TALER_EXCHANGE_BatchDepositHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_BatchDepositResultCallback cb;
+  TALER_DONAU_BatchDepositResultCallback cb;
 
   /**
    * Closure for @a cb.
@@ -122,17 +122,17 @@ struct TALER_EXCHANGE_BatchDepositHandle
   /**
    * Details about the contract.
    */
-  struct TALER_EXCHANGE_DepositContractDetail dcd;
+  struct TALER_DONAU_DepositContractDetail dcd;
 
   /**
    * Array with details about the coins.
    */
-  struct TALER_EXCHANGE_CoinDepositDetail *cdds;
+  struct TALER_DONAU_CoinDepositDetail *cdds;
 
   /**
-   * Hash of the merchant's wire details.
+   * Hash of the charity's wire details.
    */
-  struct TALER_MerchantWireHashP h_wire;
+  struct TALER_CharityWireHashP h_wire;
 
   /**
    * Hash over the extensions, or all zero.
@@ -140,15 +140,15 @@ struct TALER_EXCHANGE_BatchDepositHandle
   struct TALER_ExtensionPolicyHashP h_policy;
 
   /**
-   * Time when this confirmation was generated / when the exchange received
+   * Time when this confirmation was generated / when the donau received
    * the deposit request.
    */
-  struct GNUNET_TIME_Timestamp exchange_timestamp;
+  struct GNUNET_TIME_Timestamp donau_timestamp;
 
   /**
-   * Exchange signatures, set for #auditor_cb.
+   * Donau signatures, set for #auditor_cb.
    */
-  struct TALER_ExchangeSignatureP *exchange_sigs;
+  struct TALER_DonauSignatureP *donau_sigs;
 
   /**
    * Head of DLL of interactions with this auditor.
@@ -163,12 +163,12 @@ struct TALER_EXCHANGE_BatchDepositHandle
   /**
    * Result to return to the application once @e ai_head is empty.
    */
-  struct TALER_EXCHANGE_BatchDepositResult dr;
+  struct TALER_DONAU_BatchDepositResult dr;
 
   /**
-   * Exchange signing public key, set for #auditor_cb.
+   * Donau signing public key, set for #auditor_cb.
    */
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
    * Response object to free at the end.
@@ -195,11 +195,11 @@ struct TALER_EXCHANGE_BatchDepositHandle
  * @param[in] dh handle to finished batch deposit operation
  */
 static void
-finish_dh (struct TALER_EXCHANGE_BatchDepositHandle *dh)
+finish_dh (struct TALER_DONAU_BatchDepositHandle *dh)
 {
   dh->cb (dh->cb_cls,
           &dh->dr);
-  TALER_EXCHANGE_batch_deposit_cancel (dh);
+  TALER_DONAU_batch_deposit_cancel (dh);
 }
 
 
@@ -216,7 +216,7 @@ acc_confirmation_cb (
   const struct TALER_AUDITOR_DepositConfirmationResponse *dcr)
 {
   struct TEAH_AuditorInteractionEntry *aie = cls;
-  struct TALER_EXCHANGE_BatchDepositHandle *dh = aie->dh;
+  struct TALER_DONAU_BatchDepositHandle *dh = aie->dh;
 
   if (MHD_HTTP_OK != dcr->hr.http_status)
   {
@@ -248,11 +248,11 @@ auditor_cb (void *cls,
             const char *auditor_url,
             const struct TALER_AuditorPublicKeyP *auditor_pub)
 {
-  struct TALER_EXCHANGE_BatchDepositHandle *dh = cls;
-  const struct TALER_EXCHANGE_SigningPublicKey *spk;
+  struct TALER_DONAU_BatchDepositHandle *dh = cls;
+  const struct TALER_DONAU_SigningPublicKey *spk;
   struct TEAH_AuditorInteractionEntry *aie;
   struct TALER_Amount amount_without_fee;
-  const struct TALER_EXCHANGE_DenomPublicKey *dki;
+  const struct TALER_DONAU_DenomPublicKey *dki;
   unsigned int coin;
 
   if (0 !=
@@ -268,11 +268,11 @@ auditor_cb (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Will provide deposit confirmation to auditor `%s'\n",
               TALER_B2S (auditor_pub));
-  dki = TALER_EXCHANGE_get_denomination_key_by_hash (dh->keys,
+  dki = TALER_DONAU_get_denomination_key_by_hash (dh->keys,
                                                      
&dh->cdds[coin].h_denom_pub);
   GNUNET_assert (NULL != dki);
-  spk = TALER_EXCHANGE_get_signing_key_info (dh->keys,
-                                             &dh->exchange_pub);
+  spk = TALER_DONAU_get_signing_key_info (dh->keys,
+                                             &dh->donau_pub);
   if (NULL == spk)
   {
     GNUNET_break_op (0);
@@ -291,14 +291,14 @@ auditor_cb (void *cls,
     &dh->h_wire,
     &dh->h_policy,
     &dh->dcd.h_contract_terms,
-    dh->exchange_timestamp,
+    dh->donau_timestamp,
     dh->dcd.wire_deadline,
     dh->dcd.refund_deadline,
     &amount_without_fee,
     &dh->cdds[coin].coin_pub,
-    &dh->dcd.merchant_pub,
-    &dh->exchange_pub,
-    &dh->exchange_sigs[coin],
+    &dh->dcd.charity_pub,
+    &dh->donau_pub,
+    &dh->donau_sigs[coin],
     &dh->keys->master_pub,
     spk->valid_from,
     spk->valid_until,
@@ -316,7 +316,7 @@ auditor_cb (void *cls,
  * Function called when we're done processing the
  * HTTP /deposit request.
  *
- * @param cls the `struct TALER_EXCHANGE_BatchDepositHandle`
+ * @param cls the `struct TALER_DONAU_BatchDepositHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -325,9 +325,9 @@ handle_deposit_finished (void *cls,
                          long response_code,
                          const void *response)
 {
-  struct TALER_EXCHANGE_BatchDepositHandle *dh = cls;
+  struct TALER_DONAU_BatchDepositHandle *dh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_BatchDepositResult *dr = &dh->dr;
+  struct TALER_DONAU_BatchDepositResult *dr = &dh->dr;
 
   dh->job = NULL;
   dh->response = json_incref ((json_t*) j);
@@ -344,16 +344,16 @@ handle_deposit_finished (void *cls,
       json_t *sig;
       unsigned int idx;
       struct GNUNET_JSON_Specification spec[] = {
-        GNUNET_JSON_spec_array_const ("exchange_sigs",
+        GNUNET_JSON_spec_array_const ("donau_sigs",
                                       &sigs),
-        GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                     &dh->exchange_pub),
+        GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                     &dh->donau_pub),
         GNUNET_JSON_spec_mark_optional (
           GNUNET_JSON_spec_string ("transaction_base_url",
                                    &dr->details.ok.transaction_base_url),
           NULL),
-        GNUNET_JSON_spec_timestamp ("exchange_timestamp",
-                                    &dh->exchange_timestamp),
+        GNUNET_JSON_spec_timestamp ("donau_timestamp",
+                                    &dh->donau_timestamp),
         GNUNET_JSON_spec_end ()
       };
 
@@ -374,26 +374,26 @@ handle_deposit_finished (void *cls,
         dr->hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
         break;
       }
-      dh->exchange_sigs = GNUNET_new_array (dh->num_cdds,
-                                            struct TALER_ExchangeSignatureP);
+      dh->donau_sigs = GNUNET_new_array (dh->num_cdds,
+                                            struct TALER_DonauSignatureP);
       if (GNUNET_OK !=
-          TALER_EXCHANGE_test_signing_key (dh->keys,
-                                           &dh->exchange_pub))
+          TALER_DONAU_test_signing_key (dh->keys,
+                                           &dh->donau_pub))
       {
         GNUNET_break_op (0);
         dr->hr.http_status = 0;
-        dr->hr.ec = TALER_EC_EXCHANGE_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE;
+        dr->hr.ec = TALER_EC_DONAU_DEPOSIT_INVALID_SIGNATURE_BY_DONAU;
         break;
       }
       json_array_foreach (sigs, idx, sig)
       {
         struct GNUNET_JSON_Specification ispec[] = {
-          GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                       &dh->exchange_sigs[idx]),
+          GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                       &dh->donau_sigs[idx]),
           GNUNET_JSON_spec_end ()
         };
         struct TALER_Amount amount_without_fee;
-        const struct TALER_EXCHANGE_DenomPublicKey *dki;
+        const struct TALER_DONAU_DenomPublicKey *dki;
 
         if (GNUNET_OK !=
             GNUNET_JSON_parse (sig,
@@ -405,7 +405,7 @@ handle_deposit_finished (void *cls,
           dr->hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
           break;
         }
-        dki = TALER_EXCHANGE_get_denomination_key_by_hash (dh->keys,
+        dki = TALER_DONAU_get_denomination_key_by_hash (dh->keys,
                                                            &dh->cdds[idx].
                                                            h_denom_pub);
         GNUNET_assert (NULL != dki);
@@ -415,22 +415,22 @@ handle_deposit_finished (void *cls,
                                               &dki->fees.deposit));
 
         if (GNUNET_OK !=
-            TALER_exchange_online_deposit_confirmation_verify (
+            TALER_donau_online_deposit_confirmation_verify (
               &dh->dcd.h_contract_terms,
               &dh->h_wire,
               &dh->h_policy,
-              dh->exchange_timestamp,
+              dh->donau_timestamp,
               dh->dcd.wire_deadline,
               dh->dcd.refund_deadline,
               &amount_without_fee,
               &dh->cdds[idx].coin_pub,
-              &dh->dcd.merchant_pub,
-              &dh->exchange_pub,
-              &dh->exchange_sigs[idx]))
+              &dh->dcd.charity_pub,
+              &dh->donau_pub,
+              &dh->donau_sigs[idx]))
         {
           GNUNET_break_op (0);
           dr->hr.http_status = 0;
-          dr->hr.ec = TALER_EC_EXCHANGE_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE;
+          dr->hr.ec = TALER_EC_DONAU_DEPOSIT_INVALID_SIGNATURE_BY_DONAU;
           break;
         }
       }
@@ -438,13 +438,13 @@ handle_deposit_finished (void *cls,
                                 &auditor_cb,
                                 dh);
     }
-    dr->details.ok.exchange_sigs = dh->exchange_sigs;
-    dr->details.ok.exchange_pub = &dh->exchange_pub;
-    dr->details.ok.deposit_timestamp = dh->exchange_timestamp;
+    dr->details.ok.donau_sigs = dh->donau_sigs;
+    dr->details.ok.donau_pub = &dh->donau_pub;
+    dr->details.ok.deposit_timestamp = dh->donau_timestamp;
     dr->details.ok.num_signatures = dh->num_cdds;
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     dr->hr.ec = TALER_JSON_get_error_code (j);
     dr->hr.hint = TALER_JSON_get_error_hint (j);
@@ -452,7 +452,7 @@ handle_deposit_finished (void *cls,
   case MHD_HTTP_FORBIDDEN:
     dr->hr.ec = TALER_JSON_get_error_code (j);
     dr->hr.hint = TALER_JSON_get_error_hint (j);
-    /* Nothing really to verify, exchange says one of the signatures is
+    /* Nothing really to verify, donau says one of the signatures is
        invalid; as we checked them, this should never happen, we
        should pass the JSON reply to the application */
     break;
@@ -470,7 +470,7 @@ handle_deposit_finished (void *cls,
                                      &coin_pub),
         GNUNET_JSON_spec_end ()
       };
-      const struct TALER_EXCHANGE_DenomPublicKey *dki;
+      const struct TALER_DONAU_DenomPublicKey *dki;
       bool found = false;
 
       if (GNUNET_OK !=
@@ -489,12 +489,12 @@ handle_deposit_finished (void *cls,
             GNUNET_memcmp (&coin_pub,
                            &dh->cdds[i].coin_pub))
           continue;
-        dki = TALER_EXCHANGE_get_denomination_key_by_hash (dh->keys,
+        dki = TALER_DONAU_get_denomination_key_by_hash (dh->keys,
                                                            &dh->cdds[i].
                                                            h_denom_pub);
         GNUNET_assert (NULL != dki);
         if (GNUNET_OK !=
-            TALER_EXCHANGE_check_coin_conflict_ (
+            TALER_DONAU_check_coin_conflict_ (
               dh->keys,
               j,
               dki,
@@ -540,7 +540,7 @@ handle_deposit_finished (void *cls,
     dr->hr.ec = TALER_JSON_get_error_code (j);
     dr->hr.hint = TALER_JSON_get_error_hint (j);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Unexpected response code %u/%d for exchange deposit\n",
+                "Unexpected response code %u/%d for donau deposit\n",
                 (unsigned int) response_code,
                 dr->hr.ec);
     GNUNET_break_op (0);
@@ -552,19 +552,19 @@ handle_deposit_finished (void *cls,
 }
 
 
-struct TALER_EXCHANGE_BatchDepositHandle *
-TALER_EXCHANGE_batch_deposit (
+struct TALER_DONAU_BatchDepositHandle *
+TALER_DONAU_batch_deposit (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *keys,
-  const struct TALER_EXCHANGE_DepositContractDetail *dcd,
+  struct TALER_DONAU_Keys *keys,
+  const struct TALER_DONAU_DepositContractDetail *dcd,
   unsigned int num_cdds,
-  const struct TALER_EXCHANGE_CoinDepositDetail cdds[static num_cdds],
-  TALER_EXCHANGE_BatchDepositResultCallback cb,
+  const struct TALER_DONAU_CoinDepositDetail cdds[static num_cdds],
+  TALER_DONAU_BatchDepositResultCallback cb,
   void *cb_cls,
   enum TALER_ErrorCode *ec)
 {
-  struct TALER_EXCHANGE_BatchDepositHandle *dh;
+  struct TALER_DONAU_BatchDepositHandle *dh;
   json_t *deposit_obj;
   json_t *deposits;
   CURL *eh;
@@ -576,10 +576,10 @@ TALER_EXCHANGE_batch_deposit (
                                  dcd->wire_deadline))
   {
     GNUNET_break_op (0);
-    *ec = TALER_EC_EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE;
+    *ec = TALER_EC_DONAU_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE;
     return NULL;
   }
-  dh = GNUNET_new (struct TALER_EXCHANGE_BatchDepositHandle);
+  dh = GNUNET_new (struct TALER_DONAU_BatchDepositHandle);
   dh->auditor_chance = AUDITOR_CHANCE;
   dh->cb = cb;
   dh->cb_cls = cb_cls;
@@ -591,22 +591,22 @@ TALER_EXCHANGE_batch_deposit (
   if (NULL != dcd->policy_details)
     TALER_deposit_policy_hash (dcd->policy_details,
                                &dh->h_policy);
-  TALER_merchant_wire_signature_hash (dcd->merchant_payto_uri,
+  TALER_charity_wire_signature_hash (dcd->charity_payto_uri,
                                       &dcd->wire_salt,
                                       &dh->h_wire);
   deposits = json_array ();
   GNUNET_assert (NULL != deposits);
   for (unsigned int i = 0; i<num_cdds; i++)
   {
-    const struct TALER_EXCHANGE_CoinDepositDetail *cdd = &cdds[i];
-    const struct TALER_EXCHANGE_DenomPublicKey *dki;
+    const struct TALER_DONAU_CoinDepositDetail *cdd = &cdds[i];
+    const struct TALER_DONAU_DenomPublicKey *dki;
     const struct TALER_AgeCommitmentHash *h_age_commitmentp;
 
-    dki = TALER_EXCHANGE_get_denomination_key_by_hash (keys,
+    dki = TALER_DONAU_get_denomination_key_by_hash (keys,
                                                        &cdd->h_denom_pub);
     if (NULL == dki)
     {
-      *ec = TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN;
+      *ec = TALER_EC_DONAU_GENERIC_DENOMINATION_KEY_UNKNOWN;
       GNUNET_break_op (0);
       return NULL;
     }
@@ -615,7 +615,7 @@ TALER_EXCHANGE_batch_deposit (
                                &cdd->amount,
                                &dki->fees.deposit))
     {
-      *ec = TALER_EC_EXCHANGE_DEPOSIT_FEE_ABOVE_AMOUNT;
+      *ec = TALER_EC_DONAU_DEPOSIT_FEE_ABOVE_AMOUNT;
       GNUNET_break_op (0);
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Amount: %s\n",
@@ -629,13 +629,13 @@ TALER_EXCHANGE_batch_deposit (
     }
 
     if (GNUNET_OK !=
-        TALER_EXCHANGE_verify_deposit_signature_ (dcd,
+        TALER_DONAU_verify_deposit_signature_ (dcd,
                                                   &dh->h_policy,
                                                   &dh->h_wire,
                                                   cdd,
                                                   dki))
     {
-      *ec = TALER_EC_EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID;
+      *ec = TALER_EC_DONAU_DEPOSIT_COIN_SIGNATURE_INVALID;
       GNUNET_break_op (0);
       GNUNET_free (dh->cdds);
       GNUNET_free (dh);
@@ -684,8 +684,8 @@ TALER_EXCHANGE_batch_deposit (
     wallet_data_hashp = &dcd->wallet_data_hash;
 
   deposit_obj = GNUNET_JSON_PACK (
-    GNUNET_JSON_pack_string ("merchant_payto_uri",
-                             dcd->merchant_payto_uri),
+    GNUNET_JSON_pack_string ("charity_payto_uri",
+                             dcd->charity_payto_uri),
     GNUNET_JSON_pack_data_auto ("wire_salt",
                                 &dcd->wire_salt),
     GNUNET_JSON_pack_data_auto ("h_contract_terms",
@@ -700,15 +700,15 @@ TALER_EXCHANGE_batch_deposit (
                                      (json_t *) dcd->policy_details)),
     GNUNET_JSON_pack_timestamp ("timestamp",
                                 dcd->wallet_timestamp),
-    GNUNET_JSON_pack_data_auto ("merchant_pub",
-                                &dcd->merchant_pub),
+    GNUNET_JSON_pack_data_auto ("charity_pub",
+                                &dcd->charity_pub),
     GNUNET_JSON_pack_allow_null (
       GNUNET_JSON_pack_timestamp ("refund_deadline",
                                   dcd->refund_deadline)),
     GNUNET_JSON_pack_timestamp ("wire_transfer_deadline",
                                 dcd->wire_deadline));
   GNUNET_assert (NULL != deposit_obj);
-  eh = TALER_EXCHANGE_curl_easy_get_ (dh->url);
+  eh = TALER_DONAU_curl_easy_get_ (dh->url);
   if ( (NULL == eh) ||
        (GNUNET_OK !=
         TALER_curl_easy_post (&dh->post_ctx,
@@ -730,7 +730,7 @@ TALER_EXCHANGE_batch_deposit (
               "URL for deposit: `%s'\n",
               dh->url);
   dh->ctx = ctx;
-  dh->keys = TALER_EXCHANGE_keys_incref (keys);
+  dh->keys = TALER_DONAU_keys_incref (keys);
   dh->job = GNUNET_CURL_job_add2 (ctx,
                                   eh,
                                   dh->post_ctx.headers,
@@ -741,16 +741,16 @@ TALER_EXCHANGE_batch_deposit (
 
 
 void
-TALER_EXCHANGE_batch_deposit_force_dc (
-  struct TALER_EXCHANGE_BatchDepositHandle *deposit)
+TALER_DONAU_batch_deposit_force_dc (
+  struct TALER_DONAU_BatchDepositHandle *deposit)
 {
   deposit->auditor_chance = 1;
 }
 
 
 void
-TALER_EXCHANGE_batch_deposit_cancel (
-  struct TALER_EXCHANGE_BatchDepositHandle *deposit)
+TALER_DONAU_batch_deposit_cancel (
+  struct TALER_DONAU_BatchDepositHandle *deposit)
 {
   struct TEAH_AuditorInteractionEntry *aie;
 
@@ -771,14 +771,14 @@ TALER_EXCHANGE_batch_deposit_cancel (
     GNUNET_CURL_job_cancel (deposit->job);
     deposit->job = NULL;
   }
-  TALER_EXCHANGE_keys_decref (deposit->keys);
+  TALER_DONAU_keys_decref (deposit->keys);
   GNUNET_free (deposit->url);
   GNUNET_free (deposit->cdds);
-  GNUNET_free (deposit->exchange_sigs);
+  GNUNET_free (deposit->donau_sigs);
   TALER_curl_easy_post_finished (&deposit->post_ctx);
   json_decref (deposit->response);
   GNUNET_free (deposit);
 }
 
 
-/* end of exchange_api_batch_deposit.c */
+/* end of donau_api_batch_deposit.c */
diff --git a/src/lib/exchange_api_batch_withdraw.c 
b/src/lib/donau_api_batch_withdraw.c
similarity index 79%
rename from src/lib/exchange_api_batch_withdraw.c
rename to src/lib/donau_api_batch_withdraw.c
index a1fcccc..5962c00 100644
--- a/src/lib/exchange_api_batch_withdraw.c
+++ b/src/lib/donau_api_batch_withdraw.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_batch_withdraw.c
+ * @file lib/donau_api_batch_withdraw.c
  * @brief Implementation of /reserves/$RESERVE_PUB/batch-withdraw requests 
with blinding/unblinding
  * @author Christian Grothoff
  */
@@ -25,11 +25,11 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
@@ -41,7 +41,7 @@ struct CoinData
   /**
    * Denomination key we are withdrawing.
    */
-  struct TALER_EXCHANGE_DenomPublicKey pk;
+  struct TALER_DONAU_DenomPublicKey pk;
 
   /**
    * Master key material for the coin.
@@ -71,7 +71,7 @@ struct CoinData
   /**
    * Values of the @cipher selected
    */
-  struct TALER_ExchangeWithdrawValues alg_values;
+  struct TALER_DonauWithdrawValues alg_values;
 
   /**
    * Hash of the public key of the coin we are signing.
@@ -81,19 +81,19 @@ struct CoinData
   /**
    * Handler for the CS R request (only used for TALER_DENOMINATION_CS 
denominations)
    */
-  struct TALER_EXCHANGE_CsRWithdrawHandle *csrh;
+  struct TALER_DONAU_CsRWithdrawHandle *csrh;
 
   /**
    * Batch withdraw this coin is part of.
    */
-  struct TALER_EXCHANGE_BatchWithdrawHandle *wh;
+  struct TALER_DONAU_BatchWithdrawHandle *wh;
 };
 
 
 /**
  * @brief A batch withdraw handle
  */
-struct TALER_EXCHANGE_BatchWithdrawHandle
+struct TALER_DONAU_BatchWithdrawHandle
 {
 
   /**
@@ -102,25 +102,25 @@ struct TALER_EXCHANGE_BatchWithdrawHandle
   struct GNUNET_CURL_Context *curl_ctx;
 
   /**
-   * The base URL to the exchange
+   * The base URL to the donau
    */
-  const char *exchange_url;
+  const char *donau_url;
 
   /**
-   * The /keys information from the exchange
+   * The /keys information from the donau
    */
-  const struct TALER_EXCHANGE_Keys *keys;
+  const struct TALER_DONAU_Keys *keys;
 
 
   /**
    * Handle for the actual (internal) batch withdraw operation.
    */
-  struct TALER_EXCHANGE_BatchWithdraw2Handle *wh2;
+  struct TALER_DONAU_BatchWithdraw2Handle *wh2;
 
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_BatchWithdrawCallback cb;
+  TALER_DONAU_BatchWithdrawCallback cb;
 
   /**
    * Closure for @a cb.
@@ -154,19 +154,19 @@ struct TALER_EXCHANGE_BatchWithdrawHandle
  * Function called when we're done processing the
  * HTTP /reserves/$RESERVE_PUB/batch-withdraw request.
  *
- * @param cls the `struct TALER_EXCHANGE_BatchWithdrawHandle`
+ * @param cls the `struct TALER_DONAU_BatchWithdrawHandle`
  * @param bw2r response data
  */
 static void
 handle_reserve_batch_withdraw_finished (
   void *cls,
-  const struct TALER_EXCHANGE_BatchWithdraw2Response *bw2r)
+  const struct TALER_DONAU_BatchWithdraw2Response *bw2r)
 {
-  struct TALER_EXCHANGE_BatchWithdrawHandle *wh = cls;
-  struct TALER_EXCHANGE_BatchWithdrawResponse wr = {
+  struct TALER_DONAU_BatchWithdrawHandle *wh = cls;
+  struct TALER_DONAU_BatchWithdrawResponse wr = {
     .hr = bw2r->hr
   };
-  struct TALER_EXCHANGE_PrivateCoinDetails coins[GNUNET_NZL (wh->num_coins)];
+  struct TALER_DONAU_PrivateCoinDetails coins[GNUNET_NZL (wh->num_coins)];
 
   wh->wh2 = NULL;
   memset (coins,
@@ -186,7 +186,7 @@ handle_reserve_batch_withdraw_finished (
       for (unsigned int i = 0; i<wh->num_coins; i++)
       {
         struct CoinData *cd = &wh->coins[i];
-        struct TALER_EXCHANGE_PrivateCoinDetails *coin = &coins[i];
+        struct TALER_DONAU_PrivateCoinDetails *coin = &coins[i];
         struct TALER_FreshCoin fc;
 
         if (GNUNET_OK !=
@@ -200,13 +200,13 @@ handle_reserve_batch_withdraw_finished (
                                     &fc))
         {
           wr.hr.http_status = 0;
-          wr.hr.ec = TALER_EC_EXCHANGE_WITHDRAW_UNBLIND_FAILURE;
+          wr.hr.ec = TALER_EC_DONAU_WITHDRAW_UNBLIND_FAILURE;
           break;
         }
         coin->coin_priv = cd->priv;
         coin->bks = cd->bks;
         coin->sig = fc.sig;
-        coin->exchange_vals = cd->alg_values;
+        coin->donau_vals = cd->alg_values;
       }
       wr.details.ok.coins = coins;
       wr.details.ok.num_coins = wh->num_coins;
@@ -243,7 +243,7 @@ handle_reserve_batch_withdraw_finished (
           &wr);
   for (unsigned int i = 0; i<wh->num_coins; i++)
     TALER_denom_sig_free (&coins[i].sig);
-  TALER_EXCHANGE_batch_withdraw_cancel (wh);
+  TALER_DONAU_batch_withdraw_cancel (wh);
 }
 
 
@@ -255,7 +255,7 @@ handle_reserve_batch_withdraw_finished (
  * @param[in,out] wh batch withdraw to start phase 2 for
  */
 static void
-phase_two (struct TALER_EXCHANGE_BatchWithdrawHandle *wh)
+phase_two (struct TALER_DONAU_BatchWithdrawHandle *wh)
 {
   struct TALER_PlanchetDetail pds[wh->num_coins];
 
@@ -265,9 +265,9 @@ phase_two (struct TALER_EXCHANGE_BatchWithdrawHandle *wh)
 
     pds[i] = cd->pd;
   }
-  wh->wh2 = TALER_EXCHANGE_batch_withdraw2 (
+  wh->wh2 = TALER_DONAU_batch_withdraw2 (
     wh->curl_ctx,
-    wh->exchange_url,
+    wh->donau_url,
     wh->keys,
     wh->reserve_priv,
     wh->num_coins,
@@ -286,11 +286,11 @@ phase_two (struct TALER_EXCHANGE_BatchWithdrawHandle *wh)
 static void
 withdraw_cs_stage_two_callback (
   void *cls,
-  const struct TALER_EXCHANGE_CsRWithdrawResponse *csrr)
+  const struct TALER_DONAU_CsRWithdrawResponse *csrr)
 {
   struct CoinData *cd = cls;
-  struct TALER_EXCHANGE_BatchWithdrawHandle *wh = cd->wh;
-  struct TALER_EXCHANGE_BatchWithdrawResponse wr = {
+  struct TALER_DONAU_BatchWithdrawHandle *wh = cd->wh;
+  struct TALER_DONAU_BatchWithdrawResponse wr = {
     .hr = csrr->hr
   };
 
@@ -318,7 +318,7 @@ withdraw_cs_stage_two_callback (
                                 &cd->pd))
     {
       GNUNET_break (0);
-      TALER_EXCHANGE_batch_withdraw_cancel (wh);
+      TALER_DONAU_batch_withdraw_cancel (wh);
     }
     wh->cs_pending--;
     if (0 == wh->cs_pending)
@@ -329,26 +329,26 @@ withdraw_cs_stage_two_callback (
   }
   wh->cb (wh->cb_cls,
           &wr);
-  TALER_EXCHANGE_batch_withdraw_cancel (wh);
+  TALER_DONAU_batch_withdraw_cancel (wh);
 }
 
 
-struct TALER_EXCHANGE_BatchWithdrawHandle *
-TALER_EXCHANGE_batch_withdraw (
+struct TALER_DONAU_BatchWithdrawHandle *
+TALER_DONAU_batch_withdraw (
   struct GNUNET_CURL_Context *curl_ctx,
-  const char *exchange_url,
-  const struct TALER_EXCHANGE_Keys *keys,
+  const char *donau_url,
+  const struct TALER_DONAU_Keys *keys,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
   unsigned int wci_length,
-  const struct TALER_EXCHANGE_WithdrawCoinInput wcis[static wci_length],
-  TALER_EXCHANGE_BatchWithdrawCallback res_cb,
+  const struct TALER_DONAU_WithdrawCoinInput wcis[static wci_length],
+  TALER_DONAU_BatchWithdrawCallback res_cb,
   void *res_cb_cls)
 {
-  struct TALER_EXCHANGE_BatchWithdrawHandle *wh;
+  struct TALER_DONAU_BatchWithdrawHandle *wh;
 
-  wh = GNUNET_new (struct TALER_EXCHANGE_BatchWithdrawHandle);
+  wh = GNUNET_new (struct TALER_DONAU_BatchWithdrawHandle);
   wh->curl_ctx = curl_ctx;
-  wh->exchange_url = exchange_url;
+  wh->donau_url = donau_url;
   wh->keys = keys;
   wh->cb = res_cb;
   wh->cb_cls = res_cb_cls;
@@ -359,7 +359,7 @@ TALER_EXCHANGE_batch_withdraw (
   for (unsigned int i = 0; i<wci_length; i++)
   {
     struct CoinData *cd = &wh->coins[i];
-    const struct TALER_EXCHANGE_WithdrawCoinInput *wci = &wcis[i];
+    const struct TALER_DONAU_WithdrawCoinInput *wci = &wcis[i];
 
     cd->wh = wh;
     cd->ps = *wci->ps;
@@ -388,7 +388,7 @@ TALER_EXCHANGE_batch_withdraw (
                                     &cd->pd))
         {
           GNUNET_break (0);
-          TALER_EXCHANGE_batch_withdraw_cancel (wh);
+          TALER_DONAU_batch_withdraw_cancel (wh);
           return NULL;
         }
         break;
@@ -402,9 +402,9 @@ TALER_EXCHANGE_batch_withdraw (
            of the blinded_planchet here; the other part
            will be done after the /csr-withdraw request! */
         cd->pd.blinded_planchet.cipher = TALER_DENOMINATION_CS;
-        cd->csrh = TALER_EXCHANGE_csr_withdraw (
+        cd->csrh = TALER_DONAU_csr_withdraw (
           curl_ctx,
-          exchange_url,
+          donau_url,
           &cd->pk,
           &cd->pd.blinded_planchet.details.cs_blinded_planchet.nonce,
           &withdraw_cs_stage_two_callback,
@@ -412,7 +412,7 @@ TALER_EXCHANGE_batch_withdraw (
         if (NULL == cd->csrh)
         {
           GNUNET_break (0);
-          TALER_EXCHANGE_batch_withdraw_cancel (wh);
+          TALER_DONAU_batch_withdraw_cancel (wh);
           return NULL;
         }
         wh->cs_pending++;
@@ -420,7 +420,7 @@ TALER_EXCHANGE_batch_withdraw (
       }
     default:
       GNUNET_break (0);
-      TALER_EXCHANGE_batch_withdraw_cancel (wh);
+      TALER_DONAU_batch_withdraw_cancel (wh);
       return NULL;
     }
   }
@@ -431,8 +431,8 @@ TALER_EXCHANGE_batch_withdraw (
 
 
 void
-TALER_EXCHANGE_batch_withdraw_cancel (
-  struct TALER_EXCHANGE_BatchWithdrawHandle *wh)
+TALER_DONAU_batch_withdraw_cancel (
+  struct TALER_DONAU_BatchWithdrawHandle *wh)
 {
   for (unsigned int i = 0; i<wh->num_coins; i++)
   {
@@ -440,7 +440,7 @@ TALER_EXCHANGE_batch_withdraw_cancel (
 
     if (NULL != cd->csrh)
     {
-      TALER_EXCHANGE_csr_withdraw_cancel (cd->csrh);
+      TALER_DONAU_csr_withdraw_cancel (cd->csrh);
       cd->csrh = NULL;
     }
     TALER_blinded_planchet_free (&cd->pd.blinded_planchet);
@@ -449,7 +449,7 @@ TALER_EXCHANGE_batch_withdraw_cancel (
   GNUNET_free (wh->coins);
   if (NULL != wh->wh2)
   {
-    TALER_EXCHANGE_batch_withdraw2_cancel (wh->wh2);
+    TALER_DONAU_batch_withdraw2_cancel (wh->wh2);
     wh->wh2 = NULL;
   }
   GNUNET_free (wh);
diff --git a/src/lib/exchange_api_batch_withdraw2.c 
b/src/lib/donau_api_batch_withdraw2.c
similarity index 84%
rename from src/lib/exchange_api_batch_withdraw2.c
rename to src/lib/donau_api_batch_withdraw2.c
index 1f59a69..b2cb7aa 100644
--- a/src/lib/exchange_api_batch_withdraw2.c
+++ b/src/lib/donau_api_batch_withdraw2.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_batch_withdraw2.c
+ * @file lib/donau_api_batch_withdraw2.c
  * @brief Implementation of /reserves/$RESERVE_PUB/batch-withdraw requests 
without blinding/unblinding
  * @author Christian Grothoff
  */
@@ -25,17 +25,17 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A batch withdraw handle
  */
-struct TALER_EXCHANGE_BatchWithdraw2Handle
+struct TALER_DONAU_BatchWithdraw2Handle
 {
 
   /**
@@ -44,9 +44,9 @@ struct TALER_EXCHANGE_BatchWithdraw2Handle
   char *url;
 
   /**
-   * The /keys material from the exchange
+   * The /keys material from the donau
    */
-  const struct TALER_EXCHANGE_Keys *keys;
+  const struct TALER_DONAU_Keys *keys;
 
   /**
    * Handle for the request.
@@ -56,7 +56,7 @@ struct TALER_EXCHANGE_BatchWithdraw2Handle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_BatchWithdraw2Callback cb;
+  TALER_DONAU_BatchWithdraw2Callback cb;
 
   /**
    * Closure for @a cb.
@@ -89,18 +89,18 @@ struct TALER_EXCHANGE_BatchWithdraw2Handle
 /**
  * We got a 200 OK response for the /reserves/$RESERVE_PUB/batch-withdraw 
operation.
  * Extract the coin's signature and return it to the caller.  The signature we
- * get from the exchange is for the blinded value.  Thus, we first must
+ * get from the donau is for the blinded value.  Thus, we first must
  * unblind it and then should verify its validity against our coin's hash.
  *
  * If everything checks out, we return the unblinded signature
  * to the application via the callback.
  *
  * @param wh operation handle
- * @param json reply from the exchange
+ * @param json reply from the donau
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 static enum GNUNET_GenericReturnValue
-reserve_batch_withdraw_ok (struct TALER_EXCHANGE_BatchWithdraw2Handle *wh,
+reserve_batch_withdraw_ok (struct TALER_DONAU_BatchWithdraw2Handle *wh,
                            const json_t *json)
 {
   struct TALER_BlindedDenominationSignature blind_sigs[wh->num_coins];
@@ -108,7 +108,7 @@ reserve_batch_withdraw_ok (struct 
TALER_EXCHANGE_BatchWithdraw2Handle *wh,
                                       "ev_sigs");
   const json_t *j;
   unsigned int index;
-  struct TALER_EXCHANGE_BatchWithdraw2Response bwr = {
+  struct TALER_DONAU_BatchWithdraw2Response bwr = {
     .hr.reply = json,
     .hr.http_status = MHD_HTTP_OK
   };
@@ -159,16 +159,16 @@ reserve_batch_withdraw_ok (struct 
TALER_EXCHANGE_BatchWithdraw2Handle *wh,
  * Check the signatures on the batch withdraw transactions in the provided
  * history and that the balances add up.  We don't do anything directly
  * with the information, as the JSON will be returned to the application.
- * However, our job is ensuring that the exchange followed the protocol, and
+ * However, our job is ensuring that the donau followed the protocol, and
  * this in particular means checking all of the signatures in the history.
  *
  * @param wh operation handle
- * @param json reply from the exchange
+ * @param json reply from the donau
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 static enum GNUNET_GenericReturnValue
 reserve_batch_withdraw_payment_required (
-  struct TALER_EXCHANGE_BatchWithdraw2Handle *wh,
+  struct TALER_DONAU_BatchWithdraw2Handle *wh,
   const json_t *json)
 {
   struct TALER_Amount balance;
@@ -202,14 +202,14 @@ reserve_batch_withdraw_payment_required (
      total incoming and outgoing amounts */
   len = json_array_size (history);
   {
-    struct TALER_EXCHANGE_ReserveHistoryEntry *rhistory;
+    struct TALER_DONAU_ReserveHistoryEntry *rhistory;
 
     /* Use heap allocation as "len" may be very big and thus this may
        not fit on the stack. Use "GNUNET_malloc_large" as a malicious
-       exchange may theoretically try to crash us by giving a history
+       donau may theoretically try to crash us by giving a history
        that does not fit into our memory. */
     rhistory = GNUNET_malloc_large (
-      sizeof (struct TALER_EXCHANGE_ReserveHistoryEntry)
+      sizeof (struct TALER_DONAU_ReserveHistoryEntry)
       * len);
     if (NULL == rhistory)
     {
@@ -218,7 +218,7 @@ reserve_batch_withdraw_payment_required (
     }
 
     if (GNUNET_OK !=
-        TALER_EXCHANGE_parse_reserve_history (
+        TALER_DONAU_parse_reserve_history (
           wh->keys,
           history,
           &wh->reserve_pub,
@@ -229,11 +229,11 @@ reserve_batch_withdraw_payment_required (
           rhistory))
     {
       GNUNET_break_op (0);
-      TALER_EXCHANGE_free_reserve_history (len,
+      TALER_DONAU_free_reserve_history (len,
                                            rhistory);
       return GNUNET_SYSERR;
     }
-    TALER_EXCHANGE_free_reserve_history (len,
+    TALER_DONAU_free_reserve_history (len,
                                          rhistory);
   }
 
@@ -254,7 +254,7 @@ reserve_batch_withdraw_payment_required (
  * Function called when we're done processing the
  * HTTP /reserves/$RESERVE_PUB/batch-withdraw request.
  *
- * @param cls the `struct TALER_EXCHANGE_BatchWithdraw2Handle`
+ * @param cls the `struct TALER_DONAU_BatchWithdraw2Handle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -263,9 +263,9 @@ handle_reserve_batch_withdraw_finished (void *cls,
                                         long response_code,
                                         const void *response)
 {
-  struct TALER_EXCHANGE_BatchWithdraw2Handle *wh = cls;
+  struct TALER_DONAU_BatchWithdraw2Handle *wh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_BatchWithdraw2Response bwr = {
+  struct TALER_DONAU_BatchWithdraw2Response bwr = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -287,7 +287,7 @@ handle_reserve_batch_withdraw_finished (void *cls,
       break;
     }
     GNUNET_assert (NULL == wh->cb);
-    TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+    TALER_DONAU_batch_withdraw2_cancel (wh);
     return;
   case MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS:
     /* only validate reply is well-formed */
@@ -312,21 +312,21 @@ handle_reserve_batch_withdraw_finished (void *cls,
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     bwr.hr.ec = TALER_JSON_get_error_code (j);
     bwr.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_FORBIDDEN:
     GNUNET_break_op (0);
-    /* Nothing really to verify, exchange says one of the signatures is
+    /* Nothing really to verify, donau says one of the signatures is
        invalid; as we checked them, this should never happen, we
        should pass the JSON reply to the application */
     bwr.hr.ec = TALER_JSON_get_error_code (j);
     bwr.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_NOT_FOUND:
-    /* Nothing really to verify, the exchange basically just says
+    /* Nothing really to verify, the donau basically just says
        that it doesn't know this reserve.  Can happen if we
        query before the wire transfer went through.
        We should simply pass the JSON reply to the application. */
@@ -334,7 +334,7 @@ handle_reserve_batch_withdraw_finished (void *cls,
     bwr.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_CONFLICT:
-    /* The exchange says that the reserve has insufficient funds;
+    /* The donau says that the reserve has insufficient funds;
        check the signatures in the history... */
     if (GNUNET_OK !=
         reserve_batch_withdraw_payment_required (wh,
@@ -370,7 +370,7 @@ handle_reserve_batch_withdraw_finished (void *cls,
     bwr.hr.ec = TALER_JSON_get_error_code (j);
     bwr.hr.hint = TALER_JSON_get_error_hint (j);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Unexpected response code %u/%d for exchange batch withdraw\n",
+                "Unexpected response code %u/%d for donau batch withdraw\n",
                 (unsigned int) response_code,
                 (int) bwr.hr.ec);
     break;
@@ -381,30 +381,30 @@ handle_reserve_batch_withdraw_finished (void *cls,
             &bwr);
     wh->cb = NULL;
   }
-  TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+  TALER_DONAU_batch_withdraw2_cancel (wh);
 }
 
 
-struct TALER_EXCHANGE_BatchWithdraw2Handle *
-TALER_EXCHANGE_batch_withdraw2 (
+struct TALER_DONAU_BatchWithdraw2Handle *
+TALER_DONAU_batch_withdraw2 (
   struct GNUNET_CURL_Context *curl_ctx,
-  const char *exchange_url,
-  const struct TALER_EXCHANGE_Keys *keys,
+  const char *donau_url,
+  const struct TALER_DONAU_Keys *keys,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
   unsigned int pds_length,
   const struct TALER_PlanchetDetail pds[static pds_length],
-  TALER_EXCHANGE_BatchWithdraw2Callback res_cb,
+  TALER_DONAU_BatchWithdraw2Callback res_cb,
   void *res_cb_cls)
 {
-  struct TALER_EXCHANGE_BatchWithdraw2Handle *wh;
-  const struct TALER_EXCHANGE_DenomPublicKey *dk;
+  struct TALER_DONAU_BatchWithdraw2Handle *wh;
+  const struct TALER_DONAU_DenomPublicKey *dk;
   struct TALER_ReserveSignatureP reserve_sig;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 32];
   struct TALER_BlindedCoinHashP bch;
   json_t *jc;
 
   GNUNET_assert (NULL != keys);
-  wh = GNUNET_new (struct TALER_EXCHANGE_BatchWithdraw2Handle);
+  wh = GNUNET_new (struct TALER_DONAU_BatchWithdraw2Handle);
   wh->keys = keys;
   wh->cb = res_cb;
   wh->cb_cls = res_cb_cls;
@@ -432,13 +432,13 @@ TALER_EXCHANGE_batch_withdraw2 (
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Attempting to batch-withdraw from reserve %s\n",
               TALER_B2S (&wh->reserve_pub));
-  wh->url = TALER_url_join (exchange_url,
+  wh->url = TALER_url_join (donau_url,
                             arg_str,
                             NULL);
   if (NULL == wh->url)
   {
     GNUNET_break (0);
-    TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+    TALER_DONAU_batch_withdraw2_cancel (wh);
     return NULL;
   }
   jc = json_array ();
@@ -449,11 +449,11 @@ TALER_EXCHANGE_batch_withdraw2 (
     struct TALER_Amount coin_total;
     json_t *withdraw_obj;
 
-    dk = TALER_EXCHANGE_get_denomination_key_by_hash (keys,
+    dk = TALER_DONAU_get_denomination_key_by_hash (keys,
                                                       &pd->denom_pub_hash);
     if (NULL == dk)
     {
-      TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+      TALER_DONAU_batch_withdraw2_cancel (wh);
       json_decref (jc);
       GNUNET_break (0);
       return NULL;
@@ -466,7 +466,7 @@ TALER_EXCHANGE_batch_withdraw2 (
     {
       /* Overflow here? Very strange, our CPU must be fried... */
       GNUNET_break (0);
-      TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+      TALER_DONAU_batch_withdraw2_cancel (wh);
       json_decref (jc);
       return NULL;
     }
@@ -477,7 +477,7 @@ TALER_EXCHANGE_batch_withdraw2 (
     {
       /* Overflow here? Very strange, our CPU must be fried... */
       GNUNET_break (0);
-      TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+      TALER_DONAU_batch_withdraw2_cancel (wh);
       json_decref (jc);
       return NULL;
     }
@@ -487,7 +487,7 @@ TALER_EXCHANGE_batch_withdraw2 (
                             &bch))
     {
       GNUNET_break (0);
-      TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+      TALER_DONAU_batch_withdraw2_cancel (wh);
       json_decref (jc);
       return NULL;
     }
@@ -515,7 +515,7 @@ TALER_EXCHANGE_batch_withdraw2 (
     req = GNUNET_JSON_PACK (
       GNUNET_JSON_pack_array_steal ("planchets",
                                     jc));
-    eh = TALER_EXCHANGE_curl_easy_get_ (wh->url);
+    eh = TALER_DONAU_curl_easy_get_ (wh->url);
     if ( (NULL == eh) ||
          (GNUNET_OK !=
           TALER_curl_easy_post (&wh->post_ctx,
@@ -526,7 +526,7 @@ TALER_EXCHANGE_batch_withdraw2 (
       if (NULL != eh)
         curl_easy_cleanup (eh);
       json_decref (req);
-      TALER_EXCHANGE_batch_withdraw2_cancel (wh);
+      TALER_DONAU_batch_withdraw2_cancel (wh);
       return NULL;
     }
     json_decref (req);
@@ -541,8 +541,8 @@ TALER_EXCHANGE_batch_withdraw2 (
 
 
 void
-TALER_EXCHANGE_batch_withdraw2_cancel (
-  struct TALER_EXCHANGE_BatchWithdraw2Handle *wh)
+TALER_DONAU_batch_withdraw2_cancel (
+  struct TALER_DONAU_BatchWithdraw2Handle *wh)
 {
   if (NULL != wh->job)
   {
diff --git a/src/lib/exchange_api_common.c b/src/lib/donau_api_common.c
similarity index 86%
rename from src/lib/exchange_api_common.c
rename to src/lib/donau_api_common.c
index 609a2f7..d458b18 100644
--- a/src/lib/exchange_api_common.c
+++ b/src/lib/donau_api_common.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,15 +15,15 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_common.c
- * @brief common functions for the exchange API
+ * @file lib/donau_api_common.c
+ * @brief common functions for the donau API
  * @author Christian Grothoff
  */
 #include "platform.h"
 #include "taler_json_lib.h"
 #include <gnunet/gnunet_curl_lib.h>
-#include "exchange_api_common.h"
-#include "exchange_api_handle.h"
+#include "donau_api_common.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
 
 
@@ -34,9 +34,9 @@ struct HistoryParseContext
 {
 
   /**
-   * Keys of the exchange we use.
+   * Keys of the donau we use.
    */
-  const struct TALER_EXCHANGE_Keys *keys;
+  const struct TALER_DONAU_Keys *keys;
 
   /**
    * Our reserve public key.
@@ -75,7 +75,7 @@ struct HistoryParseContext
  * @return #GNUNET_OK on success
  */
 typedef enum GNUNET_GenericReturnValue
-(*ParseHelper)(struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+(*ParseHelper)(struct TALER_DONAU_ReserveHistoryEntry *rh,
                struct HistoryParseContext *uc,
                const json_t *transaction);
 
@@ -89,7 +89,7 @@ typedef enum GNUNET_GenericReturnValue
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_credit (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_credit (struct TALER_DONAU_ReserveHistoryEntry *rh,
               struct HistoryParseContext *uc,
               const json_t *transaction)
 {
@@ -106,13 +106,13 @@ parse_credit (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_CREDIT;
+  rh->type = TALER_DONAU_RTT_CREDIT;
   if (0 >
       TALER_amount_add (uc->total_in,
                         uc->total_in,
                         &rh->amount))
   {
-    /* overflow in history already!? inconceivable! Bad exchange! */
+    /* overflow in history already!? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
@@ -140,7 +140,7 @@ parse_credit (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_withdraw (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_withdraw (struct TALER_DONAU_ReserveHistoryEntry *rh,
                 struct HistoryParseContext *uc,
                 const json_t *transaction)
 {
@@ -160,7 +160,7 @@ parse_withdraw (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_WITHDRAWAL;
+  rh->type = TALER_DONAU_RTT_WITHDRAWAL;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          withdraw_spec,
@@ -184,11 +184,11 @@ parse_withdraw (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
   }
   /* check that withdraw fee matches expectations! */
   {
-    const struct TALER_EXCHANGE_Keys *key_state;
-    const struct TALER_EXCHANGE_DenomPublicKey *dki;
+    const struct TALER_DONAU_Keys *key_state;
+    const struct TALER_DONAU_DenomPublicKey *dki;
 
     key_state = uc->keys;
-    dki = TALER_EXCHANGE_get_denomination_key_by_hash (key_state,
+    dki = TALER_DONAU_get_denomination_key_by_hash (key_state,
                                                        &h_denom_pub);
     if ( (GNUNET_YES !=
           TALER_amount_cmp_currency (&withdraw_fee,
@@ -207,7 +207,7 @@ parse_withdraw (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
     = json_object_get (transaction,
                        "signature");
   /* Check check that the same withdraw transaction
-       isn't listed twice by the exchange. We use the
+       isn't listed twice by the donau. We use the
        "uuid" array to remember the hashes of all
        signatures, and compare the hashes to find
        duplicates. */
@@ -231,7 +231,7 @@ parse_withdraw (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
                         uc->total_out,
                         &rh->amount))
   {
-    /* overflow in history already!? inconceivable! Bad exchange! */
+    /* overflow in history already!? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     GNUNET_JSON_parse_free (withdraw_spec);
     return GNUNET_SYSERR;
@@ -249,24 +249,24 @@ parse_withdraw (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_recoup (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_recoup (struct TALER_DONAU_ReserveHistoryEntry *rh,
               struct HistoryParseContext *uc,
               const json_t *transaction)
 {
-  const struct TALER_EXCHANGE_Keys *key_state;
+  const struct TALER_DONAU_Keys *key_state;
   struct GNUNET_JSON_Specification recoup_spec[] = {
     GNUNET_JSON_spec_fixed_auto ("coin_pub",
                                  &rh->details.recoup_details.coin_pub),
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &rh->details.recoup_details.exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &rh->details.recoup_details.exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &rh->details.recoup_details.donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &rh->details.recoup_details.donau_pub),
     GNUNET_JSON_spec_timestamp ("timestamp",
                                 &rh->details.recoup_details.timestamp),
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_RECOUP;
+  rh->type = TALER_DONAU_RTT_RECOUP;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          recoup_spec,
@@ -277,21 +277,21 @@ parse_recoup (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
   }
   key_state = uc->keys;
   if (GNUNET_OK !=
-      TALER_EXCHANGE_test_signing_key (key_state,
+      TALER_DONAU_test_signing_key (key_state,
                                        &rh->details.
-                                       recoup_details.exchange_pub))
+                                       recoup_details.donau_pub))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_exchange_online_confirm_recoup_verify (
+      TALER_donau_online_confirm_recoup_verify (
         rh->details.recoup_details.timestamp,
         &rh->amount,
         &rh->details.recoup_details.coin_pub,
         uc->reserve_pub,
-        &rh->details.recoup_details.exchange_pub,
-        &rh->details.recoup_details.exchange_sig))
+        &rh->details.recoup_details.donau_pub,
+        &rh->details.recoup_details.donau_sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -301,7 +301,7 @@ parse_recoup (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
                         uc->total_in,
                         &rh->amount))
   {
-    /* overflow in history already!? inconceivable! Bad exchange! */
+    /* overflow in history already!? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
@@ -318,21 +318,21 @@ parse_recoup (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_closing (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_closing (struct TALER_DONAU_ReserveHistoryEntry *rh,
                struct HistoryParseContext *uc,
                const json_t *transaction)
 {
-  const struct TALER_EXCHANGE_Keys *key_state;
+  const struct TALER_DONAU_Keys *key_state;
   struct GNUNET_JSON_Specification closing_spec[] = {
     GNUNET_JSON_spec_string (
       "receiver_account_details",
       &rh->details.close_details.receiver_account_details),
     GNUNET_JSON_spec_fixed_auto ("wtid",
                                  &rh->details.close_details.wtid),
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &rh->details.close_details.exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &rh->details.close_details.exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &rh->details.close_details.donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &rh->details.close_details.donau_pub),
     TALER_JSON_spec_amount_any ("closing_fee",
                                 &rh->details.close_details.fee),
     GNUNET_JSON_spec_timestamp ("timestamp",
@@ -340,7 +340,7 @@ parse_closing (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_CLOSING;
+  rh->type = TALER_DONAU_RTT_CLOSING;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          closing_spec,
@@ -351,23 +351,23 @@ parse_closing (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
   }
   key_state = uc->keys;
   if (GNUNET_OK !=
-      TALER_EXCHANGE_test_signing_key (
+      TALER_DONAU_test_signing_key (
         key_state,
-        &rh->details.close_details.exchange_pub))
+        &rh->details.close_details.donau_pub))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_exchange_online_reserve_closed_verify (
+      TALER_donau_online_reserve_closed_verify (
         rh->details.close_details.timestamp,
         &rh->amount,
         &rh->details.close_details.fee,
         rh->details.close_details.receiver_account_details,
         &rh->details.close_details.wtid,
         uc->reserve_pub,
-        &rh->details.close_details.exchange_pub,
-        &rh->details.close_details.exchange_sig))
+        &rh->details.close_details.donau_pub,
+        &rh->details.close_details.donau_sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -377,7 +377,7 @@ parse_closing (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
                         uc->total_out,
                         &rh->amount))
   {
-    /* overflow in history already!? inconceivable! Bad exchange! */
+    /* overflow in history already!? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
@@ -394,7 +394,7 @@ parse_closing (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_merge (struct TALER_DONAU_ReserveHistoryEntry *rh,
              struct HistoryParseContext *uc,
              const json_t *transaction)
 {
@@ -423,7 +423,7 @@ parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_MERGE;
+  rh->type = TALER_DONAU_RTT_MERGE;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          merge_spec,
@@ -457,7 +457,7 @@ parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
                           uc->total_in,
                           &rh->amount))
     {
-      /* overflow in history already!? inconceivable! Bad exchange! */
+      /* overflow in history already!? inconceivable! Bad donau! */
       GNUNET_break_op (0);
       return GNUNET_SYSERR;
     }
@@ -469,7 +469,7 @@ parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
                           uc->total_out,
                           &rh->details.merge_details.purse_fee))
     {
-      /* overflow in history already!? inconceivable! Bad exchange! */
+      /* overflow in history already!? inconceivable! Bad donau! */
       GNUNET_break_op (0);
       return GNUNET_SYSERR;
     }
@@ -487,7 +487,7 @@ parse_merge (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_history (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_history (struct TALER_DONAU_ReserveHistoryEntry *rh,
                struct HistoryParseContext *uc,
                const json_t *transaction)
 {
@@ -499,7 +499,7 @@ parse_history (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_HISTORY;
+  rh->type = TALER_DONAU_RTT_HISTORY;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          history_spec,
@@ -523,7 +523,7 @@ parse_history (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
                         uc->total_out,
                         &rh->amount))
   {
-    /* overflow in history already!? inconceivable! Bad exchange! */
+    /* overflow in history already!? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
@@ -540,7 +540,7 @@ parse_history (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_open (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_open (struct TALER_DONAU_ReserveHistoryEntry *rh,
             struct HistoryParseContext *uc,
             const json_t *transaction)
 {
@@ -558,7 +558,7 @@ parse_open (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_OPEN;
+  rh->type = TALER_DONAU_RTT_OPEN;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          open_spec,
@@ -584,7 +584,7 @@ parse_open (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
                         uc->total_out,
                         &rh->amount))
   {
-    /* overflow in history already!? inconceivable! Bad exchange! */
+    /* overflow in history already!? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
@@ -601,7 +601,7 @@ parse_open (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-parse_close (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
+parse_close (struct TALER_DONAU_ReserveHistoryEntry *rh,
              struct HistoryParseContext *uc,
              const json_t *transaction)
 {
@@ -618,7 +618,7 @@ parse_close (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
     GNUNET_JSON_spec_end ()
   };
 
-  rh->type = TALER_EXCHANGE_RTT_CLOSE;
+  rh->type = TALER_DONAU_RTT_CLOSE;
   if (GNUNET_OK !=
       GNUNET_JSON_parse (transaction,
                          close_spec,
@@ -646,15 +646,15 @@ parse_close (struct TALER_EXCHANGE_ReserveHistoryEntry 
*rh,
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_parse_reserve_history (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_parse_reserve_history (
+  const struct TALER_DONAU_Keys *keys,
   const json_t *history,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   const char *currency,
   struct TALER_Amount *total_in,
   struct TALER_Amount *total_out,
   unsigned int history_length,
-  struct TALER_EXCHANGE_ReserveHistoryEntry rhistory[static history_length])
+  struct TALER_DONAU_ReserveHistoryEntry rhistory[static history_length])
 {
   const struct
   {
@@ -688,7 +688,7 @@ TALER_EXCHANGE_parse_reserve_history (
                                         total_out));
   for (unsigned int off = 0; off<history_length; off++)
   {
-    struct TALER_EXCHANGE_ReserveHistoryEntry *rh = &rhistory[off];
+    struct TALER_DONAU_ReserveHistoryEntry *rh = &rhistory[off];
     json_t *transaction;
     struct TALER_Amount amount;
     const char *type;
@@ -752,32 +752,32 @@ TALER_EXCHANGE_parse_reserve_history (
 
 
 void
-TALER_EXCHANGE_free_reserve_history (
+TALER_DONAU_free_reserve_history (
   unsigned int len,
-  struct TALER_EXCHANGE_ReserveHistoryEntry rhistory[static len])
+  struct TALER_DONAU_ReserveHistoryEntry rhistory[static len])
 {
   for (unsigned int i = 0; i<len; i++)
   {
     switch (rhistory[i].type)
     {
-    case TALER_EXCHANGE_RTT_CREDIT:
+    case TALER_DONAU_RTT_CREDIT:
       GNUNET_free (rhistory[i].details.in_details.sender_url);
       break;
-    case TALER_EXCHANGE_RTT_WITHDRAWAL:
+    case TALER_DONAU_RTT_WITHDRAWAL:
       break;
-    case TALER_EXCHANGE_RTT_AGEWITHDRAWAL:
+    case TALER_DONAU_RTT_AGEWITHDRAWAL:
       break;
-    case TALER_EXCHANGE_RTT_RECOUP:
+    case TALER_DONAU_RTT_RECOUP:
       break;
-    case TALER_EXCHANGE_RTT_CLOSING:
+    case TALER_DONAU_RTT_CLOSING:
       break;
-    case TALER_EXCHANGE_RTT_HISTORY:
+    case TALER_DONAU_RTT_HISTORY:
       break;
-    case TALER_EXCHANGE_RTT_MERGE:
+    case TALER_DONAU_RTT_MERGE:
       break;
-    case TALER_EXCHANGE_RTT_OPEN:
+    case TALER_DONAU_RTT_OPEN:
       break;
-    case TALER_EXCHANGE_RTT_CLOSE:
+    case TALER_DONAU_RTT_CLOSE:
       break;
     }
   }
@@ -794,7 +794,7 @@ struct CoinHistoryParseContext
   /**
    * Denomination of the coin.
    */
-  const struct TALER_EXCHANGE_DenomPublicKey *dk;
+  const struct TALER_DONAU_DenomPublicKey *dk;
 
   /**
    * Our coin public key.
@@ -844,14 +844,14 @@ help_deposit (struct CoinHistoryParseContext *pc,
               const struct TALER_Amount *amount,
               json_t *transaction)
 {
-  struct TALER_MerchantWireHashP h_wire;
+  struct TALER_CharityWireHashP h_wire;
   struct TALER_PrivateContractHashP h_contract_terms;
   struct TALER_ExtensionPolicyHashP h_policy;
   bool no_h_policy;
   struct GNUNET_HashCode wallet_data_hash;
   bool no_wallet_data_hash;
   struct GNUNET_TIME_Timestamp wallet_timestamp;
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
   struct GNUNET_TIME_Timestamp refund_deadline = {0};
   struct TALER_CoinSpendSignatureP sig;
   struct TALER_AgeCommitmentHash hac;
@@ -884,8 +884,8 @@ help_deposit (struct CoinHistoryParseContext *pc,
       NULL),
     TALER_JSON_spec_amount_any ("deposit_fee",
                                 &deposit_fee),
-    GNUNET_JSON_spec_fixed_auto ("merchant_pub",
-                                 &merchant_pub),
+    GNUNET_JSON_spec_fixed_auto ("charity_pub",
+                                 &charity_pub),
     GNUNET_JSON_spec_end ()
   };
 
@@ -908,7 +908,7 @@ help_deposit (struct CoinHistoryParseContext *pc,
         no_h_policy ? NULL : &h_policy,
         &pc->dk->h_key,
         wallet_timestamp,
-        &merchant_pub,
+        &charity_pub,
         refund_deadline,
         pc->coin_pub,
         &sig))
@@ -1018,20 +1018,20 @@ help_refund (struct CoinHistoryParseContext *pc,
              json_t *transaction)
 {
   struct TALER_PrivateContractHashP h_contract_terms;
-  struct TALER_MerchantPublicKeyP merchant_pub;
-  struct TALER_MerchantSignatureP sig;
+  struct TALER_CharityPublicKeyP charity_pub;
+  struct TALER_CharitySignatureP sig;
   struct TALER_Amount refund_fee;
   struct TALER_Amount sig_amount;
   uint64_t rtransaction_id;
   struct GNUNET_JSON_Specification spec[] = {
     TALER_JSON_spec_amount_any ("refund_fee",
                                 &refund_fee),
-    GNUNET_JSON_spec_fixed_auto ("merchant_sig",
+    GNUNET_JSON_spec_fixed_auto ("charity_sig",
                                  &sig),
     GNUNET_JSON_spec_fixed_auto ("h_contract_terms",
                                  &h_contract_terms),
-    GNUNET_JSON_spec_fixed_auto ("merchant_pub",
-                                 &merchant_pub),
+    GNUNET_JSON_spec_fixed_auto ("charity_pub",
+                                 &charity_pub),
     GNUNET_JSON_spec_uint64 ("rtransaction_id",
                              &rtransaction_id),
     GNUNET_JSON_spec_end ()
@@ -1054,22 +1054,22 @@ help_refund (struct CoinHistoryParseContext *pc,
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_merchant_refund_verify (pc->coin_pub,
+      TALER_charity_refund_verify (pc->coin_pub,
                                     &h_contract_terms,
                                     rtransaction_id,
                                     &sig_amount,
-                                    &merchant_pub,
+                                    &charity_pub,
                                     &sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
   /* NOTE: theoretically, we could also check that the given
-     merchant_pub and h_contract_terms appear in the
+     charity_pub and h_contract_terms appear in the
      history under deposits.  However, there is really no benefit
-     for the exchange to lie here, so not checking is probably OK
+     for the donau to lie here, so not checking is probably OK
      (an auditor ought to check, though). Then again, we similarly
-     had no reason to check the merchant's signature (other than a
+     had no reason to check the charity's signature (other than a
      well-formendess check). */
 
   /* check that refund fee matches our expectations from /keys! */
@@ -1104,14 +1104,14 @@ help_recoup (struct CoinHistoryParseContext *pc,
   struct TALER_ReservePublicKeyP reserve_pub;
   struct GNUNET_TIME_Timestamp timestamp;
   union TALER_DenominationBlindingKeyP coin_bks;
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangeSignatureP exchange_sig;
+  struct TALER_DonauPublicKeyP donau_pub;
+  struct TALER_DonauSignatureP donau_sig;
   struct TALER_CoinSpendSignatureP coin_sig;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &donau_pub),
     GNUNET_JSON_spec_fixed_auto ("reserve_pub",
                                  &reserve_pub),
     GNUNET_JSON_spec_fixed_auto ("coin_sig",
@@ -1132,13 +1132,13 @@ help_recoup (struct CoinHistoryParseContext *pc,
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_exchange_online_confirm_recoup_verify (
+      TALER_donau_online_confirm_recoup_verify (
         timestamp,
         amount,
         pc->coin_pub,
         &reserve_pub,
-        &exchange_pub,
-        &exchange_sig))
+        &donau_pub,
+        &donau_sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -1175,14 +1175,14 @@ help_recoup_refresh (struct CoinHistoryParseContext *pc,
   struct TALER_CoinSpendPublicKeyP old_coin_pub;
   union TALER_DenominationBlindingKeyP coin_bks;
   struct GNUNET_TIME_Timestamp timestamp;
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangeSignatureP exchange_sig;
+  struct TALER_DonauPublicKeyP donau_pub;
+  struct TALER_DonauSignatureP donau_sig;
   struct TALER_CoinSpendSignatureP coin_sig;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &donau_pub),
     GNUNET_JSON_spec_fixed_auto ("coin_sig",
                                  &coin_sig),
     GNUNET_JSON_spec_fixed_auto ("old_coin_pub",
@@ -1203,13 +1203,13 @@ help_recoup_refresh (struct CoinHistoryParseContext *pc,
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_exchange_online_confirm_recoup_refresh_verify (
+      TALER_donau_online_confirm_recoup_refresh_verify (
         timestamp,
         amount,
         pc->coin_pub,
         &old_coin_pub,
-        &exchange_pub,
-        &exchange_sig))
+        &donau_pub,
+        &donau_sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -1243,15 +1243,15 @@ help_old_coin_recoup (struct CoinHistoryParseContext 
*pc,
 {
   /* This is the coin that was credited in a recoup,
        the value being credited to the this coin. */
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangeSignatureP exchange_sig;
+  struct TALER_DonauPublicKeyP donau_pub;
+  struct TALER_DonauSignatureP donau_sig;
   struct TALER_CoinSpendPublicKeyP new_coin_pub;
   struct GNUNET_TIME_Timestamp timestamp;
   struct GNUNET_JSON_Specification spec[] = {
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &donau_pub),
     GNUNET_JSON_spec_fixed_auto ("coin_pub",
                                  &new_coin_pub),
     GNUNET_JSON_spec_timestamp ("timestamp",
@@ -1268,13 +1268,13 @@ help_old_coin_recoup (struct CoinHistoryParseContext 
*pc,
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_exchange_online_confirm_recoup_refresh_verify (
+      TALER_donau_online_confirm_recoup_refresh_verify (
         timestamp,
         amount,
         &new_coin_pub,
         pc->coin_pub,
-        &exchange_pub,
-        &exchange_sig))
+        &donau_pub,
+        &donau_sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -1299,7 +1299,7 @@ help_purse_deposit (struct CoinHistoryParseContext *pc,
 {
   struct TALER_PurseContractPublicKeyP purse_pub;
   struct TALER_CoinSpendSignatureP coin_sig;
-  const char *exchange_base_url;
+  const char *donau_base_url;
   bool refunded;
   struct TALER_AgeCommitmentHash phac = { 0 };
   struct GNUNET_JSON_Specification spec[] = {
@@ -1311,8 +1311,8 @@ help_purse_deposit (struct CoinHistoryParseContext *pc,
       GNUNET_JSON_spec_fixed_auto ("h_age_commitment",
                                    &coin_sig),
       NULL),
-    GNUNET_JSON_spec_string ("exchange_base_url",
-                             &exchange_base_url),
+    GNUNET_JSON_spec_string ("donau_base_url",
+                             &donau_base_url),
     GNUNET_JSON_spec_mark_optional (
       GNUNET_JSON_spec_fixed_auto ("h_age_commitment",
                                    &phac),
@@ -1332,7 +1332,7 @@ help_purse_deposit (struct CoinHistoryParseContext *pc,
   }
   if (GNUNET_OK !=
       TALER_wallet_purse_deposit_verify (
-        exchange_base_url,
+        donau_base_url,
         &purse_pub,
         amount,
         &pc->dk->h_key,
@@ -1351,7 +1351,7 @@ help_purse_deposit (struct CoinHistoryParseContext *pc,
                           &pc->rtotal,
                           &pc->dk->fees.deposit))
     {
-      /* overflow in refund history? inconceivable! Bad exchange! */
+      /* overflow in refund history? inconceivable! Bad donau! */
       GNUNET_break_op (0);
       return GNUNET_SYSERR;
     }
@@ -1376,17 +1376,17 @@ help_purse_refund (struct CoinHistoryParseContext *pc,
 {
   struct TALER_PurseContractPublicKeyP purse_pub;
   struct TALER_Amount refund_fee;
-  struct TALER_ExchangePublicKeyP exchange_pub;
-  struct TALER_ExchangeSignatureP exchange_sig;
+  struct TALER_DonauPublicKeyP donau_pub;
+  struct TALER_DonauSignatureP donau_sig;
   struct GNUNET_JSON_Specification spec[] = {
     TALER_JSON_spec_amount_any ("refund_fee",
                                 &refund_fee),
     GNUNET_JSON_spec_fixed_auto ("purse_pub",
                                  &purse_pub),
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &donau_pub),
     GNUNET_JSON_spec_end ()
   };
 
@@ -1399,13 +1399,13 @@ help_purse_refund (struct CoinHistoryParseContext *pc,
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_exchange_online_purse_refund_verify (
+      TALER_donau_online_purse_refund_verify (
         amount,
         &refund_fee,
         pc->coin_pub,
         &purse_pub,
-        &exchange_pub,
-        &exchange_sig))
+        &donau_pub,
+        &donau_sig))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -1471,8 +1471,8 @@ help_reserve_open_deposit (struct CoinHistoryParseContext 
*pc,
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_verify_coin_history (
-  const struct TALER_EXCHANGE_DenomPublicKey *dk,
+TALER_DONAU_verify_coin_history (
+  const struct TALER_DONAU_DenomPublicKey *dk,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const json_t *history,
   struct TALER_Amount *total)
@@ -1581,7 +1581,7 @@ TALER_EXCHANGE_verify_coin_history (
                             total,
                             &amount))
       {
-        /* overflow in history already!? inconceivable! Bad exchange! */
+        /* overflow in history already!? inconceivable! Bad donau! */
         GNUNET_break_op (0);
         return GNUNET_SYSERR;
       }
@@ -1591,14 +1591,14 @@ TALER_EXCHANGE_verify_coin_history (
 
          However, for the implementation, we first *add* up all of
          these negative amounts, as we might get refunds before
-         deposits from a semi-evil exchange.  Then, at the end, we do
+         deposits from a semi-evil donau.  Then, at the end, we do
          the subtraction by calculating "total = total - rtotal" */
       if (0 >
           TALER_amount_add (&pc.rtotal,
                             &pc.rtotal,
                             &amount))
       {
-        /* overflow in refund history? inconceivable! Bad exchange! */
+        /* overflow in refund history? inconceivable! Bad donau! */
         GNUNET_break_op (0);
         return GNUNET_SYSERR;
       }
@@ -1611,7 +1611,7 @@ TALER_EXCHANGE_verify_coin_history (
                              total,
                              &pc.rtotal))
   {
-    /* underflow in history? inconceivable! Bad exchange! */
+    /* underflow in history? inconceivable! Bad donau! */
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
@@ -1619,17 +1619,17 @@ TALER_EXCHANGE_verify_coin_history (
 }
 
 
-const struct TALER_EXCHANGE_SigningPublicKey *
-TALER_EXCHANGE_get_signing_key_info (
-  const struct TALER_EXCHANGE_Keys *keys,
-  const struct TALER_ExchangePublicKeyP *exchange_pub)
+const struct TALER_DONAU_SigningPublicKey *
+TALER_DONAU_get_signing_key_info (
+  const struct TALER_DONAU_Keys *keys,
+  const struct TALER_DonauPublicKeyP *donau_pub)
 {
   for (unsigned int i = 0; i<keys->num_sign_keys; i++)
   {
-    const struct TALER_EXCHANGE_SigningPublicKey *spk
+    const struct TALER_DONAU_SigningPublicKey *spk
       = &keys->sign_keys[i];
 
-    if (0 == GNUNET_memcmp (exchange_pub,
+    if (0 == GNUNET_memcmp (donau_pub,
                             &spk->key))
       return spk;
   }
@@ -1638,7 +1638,7 @@ TALER_EXCHANGE_get_signing_key_info (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_create_conflict_ (
+TALER_DONAU_check_purse_create_conflict_ (
   const struct TALER_PurseContractSignatureP *cpurse_sig,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const json_t *proof)
@@ -1698,11 +1698,11 @@ TALER_EXCHANGE_check_purse_create_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_merge_conflict_ (
+TALER_DONAU_check_purse_merge_conflict_ (
   const struct TALER_PurseMergeSignatureP *cmerge_sig,
   const struct TALER_PurseMergePublicKeyP *merge_pub,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  const char *exchange_url,
+  const char *donau_url,
   const json_t *proof)
 {
   struct TALER_PurseMergeSignatureP merge_sig;
@@ -1733,7 +1733,7 @@ TALER_EXCHANGE_check_purse_merge_conflict_ (
     return GNUNET_SYSERR;
   }
   if (NULL == partner_url)
-    partner_url = exchange_url;
+    partner_url = donau_url;
   payto_uri = TALER_reserve_make_payto (partner_url,
                                         &reserve_pub);
   if (GNUNET_OK !=
@@ -1762,9 +1762,9 @@ TALER_EXCHANGE_check_purse_merge_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_coin_conflict_ (
+TALER_DONAU_check_purse_coin_conflict_ (
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  const char *exchange_url,
+  const char *donau_url,
   const json_t *proof,
   struct TALER_DenominationHashP *h_denom_pub,
   struct TALER_AgeCommitmentHash *phac,
@@ -1800,7 +1800,7 @@ TALER_EXCHANGE_check_purse_coin_conflict_ (
     return GNUNET_SYSERR;
   }
   if (NULL == partner_url)
-    partner_url = exchange_url;
+    partner_url = donau_url;
   if (GNUNET_OK !=
       TALER_wallet_purse_deposit_verify (
         partner_url,
@@ -1819,7 +1819,7 @@ TALER_EXCHANGE_check_purse_coin_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_econtract_conflict_ (
+TALER_DONAU_check_purse_econtract_conflict_ (
   const struct TALER_PurseContractSignatureP *ccontract_sig,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const json_t *proof)
@@ -1868,8 +1868,8 @@ TALER_EXCHANGE_check_purse_econtract_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_amount_conflict_ (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_check_coin_amount_conflict_ (
+  const struct TALER_DONAU_Keys *keys,
   const json_t *proof,
   struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct TALER_Amount *remaining)
@@ -1877,7 +1877,7 @@ TALER_EXCHANGE_check_coin_amount_conflict_ (
   const json_t *history;
   struct TALER_Amount total;
   struct TALER_DenominationHashP h_denom_pub;
-  const struct TALER_EXCHANGE_DenomPublicKey *dki;
+  const struct TALER_DONAU_DenomPublicKey *dki;
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_fixed_auto ("coin_pub",
                                  coin_pub),
@@ -1896,7 +1896,7 @@ TALER_EXCHANGE_check_coin_amount_conflict_ (
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
-  dki = TALER_EXCHANGE_get_denomination_key_by_hash (
+  dki = TALER_DONAU_get_denomination_key_by_hash (
     keys,
     &h_denom_pub);
   if (NULL == dki)
@@ -1905,7 +1905,7 @@ TALER_EXCHANGE_check_coin_amount_conflict_ (
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_EXCHANGE_verify_coin_history (dki,
+      TALER_DONAU_verify_coin_history (dki,
                                           coin_pub,
                                           history,
                                           &total))
@@ -1938,7 +1938,7 @@ TALER_EXCHANGE_check_coin_amount_conflict_ (
  * @return #GNUNET_OK if @a coin_sig is not in @a proof
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_signature_conflict_ (
+TALER_DONAU_check_coin_signature_conflict_ (
   const json_t *proof,
   const struct TALER_CoinSpendSignatureP *coin_sig)
 {
@@ -1980,7 +1980,7 @@ TALER_EXCHANGE_check_coin_signature_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_denomination_conflict_ (
+TALER_DONAU_check_coin_denomination_conflict_ (
   const json_t *proof,
   const struct TALER_DenominationHashP *ch_denom_pub)
 {
@@ -2012,10 +2012,10 @@ TALER_EXCHANGE_check_coin_denomination_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_conflict_ (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_check_coin_conflict_ (
+  const struct TALER_DONAU_Keys *keys,
   const json_t *proof,
-  const struct TALER_EXCHANGE_DenomPublicKey *dk,
+  const struct TALER_DONAU_DenomPublicKey *dk,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendSignatureP *coin_sig,
   const struct TALER_Amount *required)
@@ -2025,13 +2025,13 @@ TALER_EXCHANGE_check_coin_conflict_ (
   ec = TALER_JSON_get_error_code (proof);
   switch (ec)
   {
-  case TALER_EC_EXCHANGE_GENERIC_INSUFFICIENT_FUNDS:
+  case TALER_EC_DONAU_GENERIC_INSUFFICIENT_FUNDS:
     {
       struct TALER_Amount left;
       struct TALER_CoinSpendPublicKeyP pcoin_pub;
 
       if (GNUNET_OK !=
-          TALER_EXCHANGE_check_coin_amount_conflict_ (
+          TALER_DONAU_check_coin_amount_conflict_ (
             keys,
             proof,
             &pcoin_pub,
@@ -2057,7 +2057,7 @@ TALER_EXCHANGE_check_coin_conflict_ (
         return GNUNET_SYSERR;
       }
       if (GNUNET_OK !=
-          TALER_EXCHANGE_check_coin_signature_conflict_ (
+          TALER_DONAU_check_coin_signature_conflict_ (
             proof,
             coin_sig))
       {
@@ -2067,13 +2067,13 @@ TALER_EXCHANGE_check_coin_conflict_ (
       }
       break;
     }
-  case TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY:
+  case TALER_EC_DONAU_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY:
     {
       struct TALER_Amount left;
       struct TALER_CoinSpendPublicKeyP pcoin_pub;
 
       if (GNUNET_OK !=
-          TALER_EXCHANGE_check_coin_amount_conflict_ (
+          TALER_DONAU_check_coin_amount_conflict_ (
             keys,
             proof,
             &pcoin_pub,
@@ -2091,7 +2091,7 @@ TALER_EXCHANGE_check_coin_conflict_ (
         return GNUNET_SYSERR;
       }
       if (GNUNET_OK !=
-          TALER_EXCHANGE_check_coin_denomination_conflict_ (
+          TALER_DONAU_check_coin_denomination_conflict_ (
             proof,
             &dk->h_key))
       {
@@ -2110,14 +2110,14 @@ TALER_EXCHANGE_check_coin_conflict_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_get_min_denomination_ (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_get_min_denomination_ (
+  const struct TALER_DONAU_Keys *keys,
   struct TALER_Amount *min)
 {
   bool have_min = false;
   for (unsigned int i = 0; i<keys->num_denom_keys; i++)
   {
-    const struct TALER_EXCHANGE_DenomPublicKey *dk = &keys->denom_keys[i];
+    const struct TALER_DONAU_DenomPublicKey *dk = &keys->denom_keys[i];
 
     if (! have_min)
     {
@@ -2140,12 +2140,12 @@ TALER_EXCHANGE_get_min_denomination_ (
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_verify_deposit_signature_ (
-  const struct TALER_EXCHANGE_DepositContractDetail *dcd,
+TALER_DONAU_verify_deposit_signature_ (
+  const struct TALER_DONAU_DepositContractDetail *dcd,
   const struct TALER_ExtensionPolicyHashP *ech,
-  const struct TALER_MerchantWireHashP *h_wire,
-  const struct TALER_EXCHANGE_CoinDepositDetail *cdd,
-  const struct TALER_EXCHANGE_DenomPublicKey *dki)
+  const struct TALER_CharityWireHashP *h_wire,
+  const struct TALER_DONAU_CoinDepositDetail *cdd,
+  const struct TALER_DONAU_DenomPublicKey *dki)
 {
   if (GNUNET_OK !=
       TALER_wallet_deposit_verify (&cdd->amount,
@@ -2157,7 +2157,7 @@ TALER_EXCHANGE_verify_deposit_signature_ (
                                    ech,
                                    &cdd->h_denom_pub,
                                    dcd->wallet_timestamp,
-                                   &dcd->merchant_pub,
+                                   &dcd->charity_pub,
                                    dcd->refund_deadline,
                                    &cdd->coin_pub,
                                    &cdd->coin_sig))
@@ -2213,7 +2213,7 @@ TALER_EXCHANGE_verify_deposit_signature_ (
 static enum GNUNET_GenericReturnValue
 parse_restrictions (const json_t *jresta,
                     unsigned int *resta_len,
-                    struct TALER_EXCHANGE_AccountRestriction **resta)
+                    struct TALER_DONAU_AccountRestriction **resta)
 {
   if (! json_is_array (jresta))
   {
@@ -2228,12 +2228,12 @@ parse_restrictions (const json_t *jresta,
     return GNUNET_OK;
   }
   *resta = GNUNET_new_array (*resta_len,
-                             struct TALER_EXCHANGE_AccountRestriction);
+                             struct TALER_DONAU_AccountRestriction);
   for (unsigned int i = 0; i<*resta_len; i++)
   {
     const json_t *jr = json_array_get (jresta,
                                        i);
-    struct TALER_EXCHANGE_AccountRestriction *ar = &(*resta)[i];
+    struct TALER_DONAU_AccountRestriction *ar = &(*resta)[i];
     const char *type = json_string_value (json_object_get (jr,
                                                            "type"));
 
@@ -2245,7 +2245,7 @@ parse_restrictions (const json_t *jresta,
     if (0 == strcmp (type,
                      "deny"))
     {
-      ar->type = TALER_EXCHANGE_AR_DENY;
+      ar->type = TALER_DONAU_AR_DENY;
       continue;
     }
     if (0 == strcmp (type,
@@ -2277,7 +2277,7 @@ parse_restrictions (const json_t *jresta,
         GNUNET_break_op (0);
         goto fail;
       }
-      ar->type = TALER_EXCHANGE_AR_REGEX;
+      ar->type = TALER_DONAU_AR_REGEX;
       ar->details.regex.posix_egrep = GNUNET_strdup (regex);
       ar->details.regex.human_hint = GNUNET_strdup (hint);
       continue;
@@ -2295,22 +2295,22 @@ fail:
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_parse_accounts (
+TALER_DONAU_parse_accounts (
   const struct TALER_MasterPublicKeyP *master_pub,
   const json_t *accounts,
   unsigned int was_length,
-  struct TALER_EXCHANGE_WireAccount was[static was_length])
+  struct TALER_DONAU_WireAccount was[static was_length])
 {
   memset (was,
           0,
-          sizeof (struct TALER_EXCHANGE_WireAccount) * was_length);
+          sizeof (struct TALER_DONAU_WireAccount) * was_length);
   GNUNET_assert (was_length ==
                  json_array_size (accounts));
   for (unsigned int i = 0;
        i<was_length;
        i++)
   {
-    struct TALER_EXCHANGE_WireAccount *wa = &was[i];
+    struct TALER_DONAU_WireAccount *wa = &was[i];
     const char *payto_uri;
     const char *conversion_url;
     const json_t *credit_restrictions;
@@ -2357,7 +2357,7 @@ TALER_EXCHANGE_parse_accounts (
 
     if ( (NULL != master_pub) &&
          (GNUNET_OK !=
-          TALER_exchange_wire_signature_check (
+          TALER_donau_wire_signature_check (
             payto_uri,
             conversion_url,
             debit_restrictions,
@@ -2398,19 +2398,19 @@ TALER_EXCHANGE_parse_accounts (
  */
 static void
 free_restrictions (unsigned int ar_len,
-                   struct TALER_EXCHANGE_AccountRestriction ar[static ar_len])
+                   struct TALER_DONAU_AccountRestriction ar[static ar_len])
 {
   for (unsigned int i = 0; i<ar_len; i++)
   {
-    struct TALER_EXCHANGE_AccountRestriction *a = &ar[i];
+    struct TALER_DONAU_AccountRestriction *a = &ar[i];
     switch (a->type)
     {
-    case TALER_EXCHANGE_AR_INVALID:
+    case TALER_DONAU_AR_INVALID:
       GNUNET_break (0);
       break;
-    case TALER_EXCHANGE_AR_DENY:
+    case TALER_DONAU_AR_DENY:
       break;
-    case TALER_EXCHANGE_AR_REGEX:
+    case TALER_DONAU_AR_REGEX:
       GNUNET_free (ar->details.regex.posix_egrep);
       GNUNET_free (ar->details.regex.human_hint);
       json_decref (ar->details.regex.human_hint_i18n);
@@ -2421,13 +2421,13 @@ free_restrictions (unsigned int ar_len,
 
 
 void
-TALER_EXCHANGE_free_accounts (
+TALER_DONAU_free_accounts (
   unsigned int was_len,
-  struct TALER_EXCHANGE_WireAccount was[static was_len])
+  struct TALER_DONAU_WireAccount was[static was_len])
 {
   for (unsigned int i = 0; i<was_len; i++)
   {
-    struct TALER_EXCHANGE_WireAccount *wa = &was[i];
+    struct TALER_DONAU_WireAccount *wa = &was[i];
 
     GNUNET_free (wa->payto_uri);
     GNUNET_free (wa->conversion_url);
@@ -2445,4 +2445,4 @@ TALER_EXCHANGE_free_accounts (
 }
 
 
-/* end of exchange_api_common.c */
+/* end of donau_api_common.c */
diff --git a/src/lib/exchange_api_common.h b/src/lib/donau_api_common.h
similarity index 82%
rename from src/lib/exchange_api_common.h
rename to src/lib/donau_api_common.h
index d17493b..bd1d93c 100644
--- a/src/lib/exchange_api_common.h
+++ b/src/lib/donau_api_common.h
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,15 +15,15 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_common.h
- * @brief common functions for the exchange API
+ * @file lib/donau_api_common.h
+ * @brief common functions for the donau API
  * @author Christian Grothoff
  */
-#ifndef EXCHANGE_API_COMMON_H
-#define EXCHANGE_API_COMMON_H
+#ifndef DONAU_API_COMMON_H
+#define DONAU_API_COMMON_H
 
 #include "taler_json_lib.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 
 
 /**
@@ -37,7 +37,7 @@
  * @return #GNUNET_OK if the @a proof is OK for @a purse_pub and conflicts 
with @a cpurse_sig
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_create_conflict_ (
+TALER_DONAU_check_purse_create_conflict_ (
   const struct TALER_PurseContractSignatureP *cpurse_sig,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const json_t *proof);
@@ -51,16 +51,16 @@ TALER_EXCHANGE_check_purse_create_conflict_ (
  * @param merge_pub the public key (must match
  *        the signature from the proof)
  * @param purse_pub the public key of the purse
- * @param exchange_url the base URL of this exchange
+ * @param donau_url the base URL of this donau
  * @param proof the proof to check
  * @return #GNUNET_OK if the @a proof is OK for @a purse_pub and @a merge_pub 
and conflicts with @a cmerge_sig
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_merge_conflict_ (
+TALER_DONAU_check_purse_merge_conflict_ (
   const struct TALER_PurseMergeSignatureP *cmerge_sig,
   const struct TALER_PurseMergePublicKeyP *merge_pub,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  const char *exchange_url,
+  const char *donau_url,
   const json_t *proof);
 
 
@@ -73,7 +73,7 @@ TALER_EXCHANGE_check_purse_merge_conflict_ (
  * caller used.
  *
  * @param purse_pub the public key of the purse
- * @param exchange_url base URL of our exchange
+ * @param donau_url base URL of our donau
  * @param proof the proof to check
  * @param[out] h_denom_pub hash of the coin's denomination
  * @param[out] phac age commitment hash of the coin
@@ -82,9 +82,9 @@ TALER_EXCHANGE_check_purse_merge_conflict_ (
  * @return #GNUNET_OK if the @a proof is OK for @a purse_pub and showing that 
@a coin_pub was spent using @a coin_sig.
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_coin_conflict_ (
+TALER_DONAU_check_purse_coin_conflict_ (
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  const char *exchange_url,
+  const char *donau_url,
   const json_t *proof,
   struct TALER_DenominationHashP *h_denom_pub,
   struct TALER_AgeCommitmentHash *phac,
@@ -102,7 +102,7 @@ TALER_EXCHANGE_check_purse_coin_conflict_ (
  * @return #GNUNET_OK if the @a proof is OK for @a purse_pub and conflicts 
with @a ccontract_sig
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_purse_econtract_conflict_ (
+TALER_DONAU_check_purse_econtract_conflict_ (
   const struct TALER_PurseContractSignatureP *ccontract_sig,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const json_t *proof);
@@ -111,7 +111,7 @@ TALER_EXCHANGE_check_purse_econtract_conflict_ (
 /**
  * Check proof of a coin spend value conflict.
  *
- * @param keys exchange /keys structure
+ * @param keys donau /keys structure
  * @param proof the proof to check
  * @param[out] coin_pub set to the public key of the
  *        coin that is claimed to have an insufficient
@@ -121,8 +121,8 @@ TALER_EXCHANGE_check_purse_econtract_conflict_ (
  * @return #GNUNET_OK if the @a proof is OK for @a purse_pub demonstrating 
that @a coin_pub has only @a remaining balance.
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_amount_conflict_ (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_check_coin_amount_conflict_ (
+  const struct TALER_DONAU_Keys *keys,
   const json_t *proof,
   struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct TALER_Amount *remaining);
@@ -132,7 +132,7 @@ TALER_EXCHANGE_check_coin_amount_conflict_ (
  * Verify that @a proof contains a coin history that demonstrates that @a
  * coin_pub was previously used with a denomination key that is different from
  * @a ch_denom_pub.  Note that the coin history MUST have been checked before
- * using #TALER_EXCHANGE_check_coin_amount_conflict_().
+ * using #TALER_DONAU_check_coin_amount_conflict_().
  *
  * @param proof a proof to check
  * @param ch_denom_pub hash of the conflicting denomination
@@ -140,7 +140,7 @@ TALER_EXCHANGE_check_coin_amount_conflict_ (
  *         denomination hash given by the history of the coin
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_denomination_conflict_ (
+TALER_DONAU_check_coin_denomination_conflict_ (
   const json_t *proof,
   const struct TALER_DenominationHashP *ch_denom_pub);
 
@@ -156,7 +156,7 @@ TALER_EXCHANGE_check_coin_denomination_conflict_ (
  * @return #GNUNET_OK if @a coin_sig is not in @a proof
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_signature_conflict_ (
+TALER_DONAU_check_coin_signature_conflict_ (
   const json_t *proof,
   const struct TALER_CoinSpendSignatureP *coin_sig);
 
@@ -165,7 +165,7 @@ TALER_EXCHANGE_check_coin_signature_conflict_ (
  * Check that the provided @a proof indeeds indicates
  * a conflict for @a coin_pub.
  *
- * @param keys exchange keys
+ * @param keys donau keys
  * @param proof provided conflict proof
  * @param dk denomination of @a coin_pub that the client
  *           used
@@ -175,10 +175,10 @@ TALER_EXCHANGE_check_coin_signature_conflict_ (
  * @return #GNUNET_OK if @a proof holds
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_check_coin_conflict_ (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_check_coin_conflict_ (
+  const struct TALER_DONAU_Keys *keys,
   const json_t *proof,
-  const struct TALER_EXCHANGE_DenomPublicKey *dk,
+  const struct TALER_DONAU_DenomPublicKey *dk,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendSignatureP *coin_sig,
   const struct TALER_Amount *required);
@@ -192,8 +192,8 @@ TALER_EXCHANGE_check_coin_conflict_ (
  * @return #GNUNET_SYSERR if there are no denominations in @a keys
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_get_min_denomination_ (
-  const struct TALER_EXCHANGE_Keys *keys,
+TALER_DONAU_get_min_denomination_ (
+  const struct TALER_DONAU_Keys *keys,
   struct TALER_Amount *min);
 
 
@@ -208,12 +208,12 @@ TALER_EXCHANGE_get_min_denomination_ (
  * @return #GNUNET_OK if signatures are OK, #GNUNET_SYSERR if not
  */
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_verify_deposit_signature_ (
-  const struct TALER_EXCHANGE_DepositContractDetail *dcd,
+TALER_DONAU_verify_deposit_signature_ (
+  const struct TALER_DONAU_DepositContractDetail *dcd,
   const struct TALER_ExtensionPolicyHashP *ech,
-  const struct TALER_MerchantWireHashP *h_wire,
-  const struct TALER_EXCHANGE_CoinDepositDetail *cdd,
-  const struct TALER_EXCHANGE_DenomPublicKey *dki);
+  const struct TALER_CharityWireHashP *h_wire,
+  const struct TALER_DONAU_CoinDepositDetail *cdd,
+  const struct TALER_DONAU_DenomPublicKey *dki);
 
 
 #endif
diff --git a/src/lib/exchange_api_csr_withdraw.c 
b/src/lib/donau_api_csr_withdraw.c
similarity index 78%
rename from src/lib/exchange_api_csr_withdraw.c
rename to src/lib/donau_api_csr_withdraw.c
index 4c1d83a..9da869b 100644
--- a/src/lib/exchange_api_csr_withdraw.c
+++ b/src/lib/donau_api_csr_withdraw.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,8 +15,8 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_csr_withdraw.c
- * @brief Implementation of /csr-withdraw requests (get R in exchange used for 
Clause Schnorr withdraw and refresh)
+ * @file lib/donau_api_csr_withdraw.c
+ * @brief Implementation of /csr-withdraw requests (get R in donau used for 
Clause Schnorr withdraw and refresh)
  * @author Lucien Heuzeveldt
  * @author Gian Demarmels
  */
@@ -26,22 +26,22 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A Clause Schnorr R Handle
  */
-struct TALER_EXCHANGE_CsRWithdrawHandle
+struct TALER_DONAU_CsRWithdrawHandle
 {
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_CsRWithdrawCallback cb;
+  TALER_DONAU_CsRWithdrawCallback cb;
 
   /**
    * Closure for @a cb.
@@ -69,27 +69,27 @@ struct TALER_EXCHANGE_CsRWithdrawHandle
 /**
  * We got a 200 OK response for the /reserves/$RESERVE_PUB/withdraw operation.
  * Extract the coin's signature and return it to the caller.  The signature we
- * get from the exchange is for the blinded value.  Thus, we first must
+ * get from the donau is for the blinded value.  Thus, we first must
  * unblind it and then should verify its validity against our coin's hash.
  *
  * If everything checks out, we return the unblinded signature
  * to the application via the callback.
  *
  * @param csrh operation handle
- * @param av reply from the exchange
+ * @param av reply from the donau
  * @param hr http response details
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 static enum GNUNET_GenericReturnValue
-csr_ok (struct TALER_EXCHANGE_CsRWithdrawHandle *csrh,
+csr_ok (struct TALER_DONAU_CsRWithdrawHandle *csrh,
         const json_t *av,
-        struct TALER_EXCHANGE_HttpResponse *hr)
+        struct TALER_DONAU_HttpResponse *hr)
 {
-  struct TALER_EXCHANGE_CsRWithdrawResponse csrr = {
+  struct TALER_DONAU_CsRWithdrawResponse csrr = {
     .hr = *hr,
   };
   struct GNUNET_JSON_Specification spec[] = {
-    TALER_JSON_spec_exchange_withdraw_values (
+    TALER_JSON_spec_donau_withdraw_values (
       "ewv",
       &csrr.details.ok.alg_values),
     GNUNET_JSON_spec_end ()
@@ -112,7 +112,7 @@ csr_ok (struct TALER_EXCHANGE_CsRWithdrawHandle *csrh,
 /**
  * Function called when we're done processing the HTTP /csr request.
  *
- * @param cls the `struct TALER_EXCHANGE_CsRWithdrawHandle`
+ * @param cls the `struct TALER_DONAU_CsRWithdrawHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -121,13 +121,13 @@ handle_csr_finished (void *cls,
                      long response_code,
                      const void *response)
 {
-  struct TALER_EXCHANGE_CsRWithdrawHandle *csrh = cls;
+  struct TALER_DONAU_CsRWithdrawHandle *csrh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_HttpResponse hr = {
+  struct TALER_DONAU_HttpResponse hr = {
     .reply = j,
     .http_status = (unsigned int) response_code
   };
-  struct TALER_EXCHANGE_CsRWithdrawResponse csrr = {
+  struct TALER_DONAU_CsRWithdrawResponse csrr = {
     .hr = hr
   };
 
@@ -150,18 +150,18 @@ handle_csr_finished (void *cls,
         break;
       }
     }
-    TALER_EXCHANGE_csr_withdraw_cancel (csrh);
+    TALER_DONAU_csr_withdraw_cancel (csrh);
     return;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     csrr.hr.ec = TALER_JSON_get_error_code (j);
     csrr.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_NOT_FOUND:
-    /* Nothing really to verify, the exchange basically just says
+    /* Nothing really to verify, the donau basically just says
        that it doesn't know the /csr endpoint or denomination.
-       Can happen if the exchange doesn't support Clause Schnorr.
+       Can happen if the donau doesn't support Clause Schnorr.
        We should simply pass the JSON reply to the application. */
     csrr.hr.ec = TALER_JSON_get_error_code (j);
     csrr.hr.hint = TALER_JSON_get_error_hint (j);
@@ -194,30 +194,30 @@ handle_csr_finished (void *cls,
   csrh->cb (csrh->cb_cls,
             &csrr);
   csrh->cb = NULL;
-  TALER_EXCHANGE_csr_withdraw_cancel (csrh);
+  TALER_DONAU_csr_withdraw_cancel (csrh);
 }
 
 
-struct TALER_EXCHANGE_CsRWithdrawHandle *
-TALER_EXCHANGE_csr_withdraw (
+struct TALER_DONAU_CsRWithdrawHandle *
+TALER_DONAU_csr_withdraw (
   struct GNUNET_CURL_Context *curl_ctx,
-  const char *exchange_url,
-  const struct TALER_EXCHANGE_DenomPublicKey *pk,
+  const char *donau_url,
+  const struct TALER_DONAU_DenomPublicKey *pk,
   const struct TALER_CsNonce *nonce,
-  TALER_EXCHANGE_CsRWithdrawCallback res_cb,
+  TALER_DONAU_CsRWithdrawCallback res_cb,
   void *res_cb_cls)
 {
-  struct TALER_EXCHANGE_CsRWithdrawHandle *csrh;
+  struct TALER_DONAU_CsRWithdrawHandle *csrh;
 
   if (TALER_DENOMINATION_CS != pk->key.cipher)
   {
     GNUNET_break (0);
     return NULL;
   }
-  csrh = GNUNET_new (struct TALER_EXCHANGE_CsRWithdrawHandle);
+  csrh = GNUNET_new (struct TALER_DONAU_CsRWithdrawHandle);
   csrh->cb = res_cb;
   csrh->cb_cls = res_cb_cls;
-  csrh->url = TALER_url_join (exchange_url,
+  csrh->url = TALER_url_join (donau_url,
                               "csr-withdraw",
                               NULL);
   if (NULL == csrh->url)
@@ -238,7 +238,7 @@ TALER_EXCHANGE_csr_withdraw (
                                      &pk->h_key,
                                      sizeof(struct TALER_DenominationHashP)));
     GNUNET_assert (NULL != req);
-    eh = TALER_EXCHANGE_curl_easy_get_ (csrh->url);
+    eh = TALER_DONAU_curl_easy_get_ (csrh->url);
     if ( (NULL == eh) ||
          (GNUNET_OK !=
           TALER_curl_easy_post (&csrh->post_ctx,
@@ -265,8 +265,8 @@ TALER_EXCHANGE_csr_withdraw (
 
 
 void
-TALER_EXCHANGE_csr_withdraw_cancel (struct
-                                    TALER_EXCHANGE_CsRWithdrawHandle *csrh)
+TALER_DONAU_csr_withdraw_cancel (struct
+                                    TALER_DONAU_CsRWithdrawHandle *csrh)
 {
   if (NULL != csrh->job)
   {
diff --git a/src/lib/exchange_api_curl_defaults.c 
b/src/lib/donau_api_curl_defaults.c
similarity index 89%
rename from src/lib/exchange_api_curl_defaults.c
rename to src/lib/donau_api_curl_defaults.c
index 9627db9..4999007 100644
--- a/src/lib/exchange_api_curl_defaults.c
+++ b/src/lib/donau_api_curl_defaults.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,16 +15,16 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_curl_defaults.c
+ * @file lib/donau_api_curl_defaults.c
  * @brief curl easy handle defaults
  * @author Florian Dold
  */
 
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 CURL *
-TALER_EXCHANGE_curl_easy_get_ (const char *url)
+TALER_DONAU_curl_easy_get_ (const char *url)
 {
   CURL *eh;
 
diff --git a/src/lib/exchange_api_curl_defaults.h 
b/src/lib/donau_api_curl_defaults.h
similarity index 78%
rename from src/lib/exchange_api_curl_defaults.h
rename to src/lib/donau_api_curl_defaults.h
index c4ba04f..cf1daaf 100644
--- a/src/lib/exchange_api_curl_defaults.h
+++ b/src/lib/donau_api_curl_defaults.h
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -16,7 +16,7 @@
 */
 
 /**
- * @file lib/exchange_api_curl_defaults.h
+ * @file lib/donau_api_curl_defaults.h
  * @brief curl easy handle defaults
  * @author Florian Dold
  */
@@ -30,11 +30,11 @@
 
 /**
  * Get a curl handle with the right defaults
- * for the exchange lib.  In the future, we might manage a pool of connections 
here.
+ * for the donau lib.  In the future, we might manage a pool of connections 
here.
  *
  * @param url URL to query
  */
 CURL *
-TALER_EXCHANGE_curl_easy_get_ (const char *url);
+TALER_DONAU_curl_easy_get_ (const char *url);
 
 #endif /* _TALER_CURL_DEFAULTS_H */
diff --git a/src/lib/exchange_api_deposits_get.c 
b/src/lib/donau_api_deposits_get.c
similarity index 73%
rename from src/lib/exchange_api_deposits_get.c
rename to src/lib/donau_api_deposits_get.c
index 8b145da..8ccd82b 100644
--- a/src/lib/exchange_api_deposits_get.c
+++ b/src/lib/donau_api_deposits_get.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_deposits_get.c
+ * @file lib/donau_api_deposits_get.c
  * @brief Implementation of the /deposits/ GET request
  * @author Christian Grothoff
  */
@@ -26,22 +26,22 @@
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
 #include "taler_json_lib.h"
-#include "taler_exchange_service.h"
-#include "exchange_api_handle.h"
+#include "taler_donau_service.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A Deposit Get Handle
  */
-struct TALER_EXCHANGE_DepositGetHandle
+struct TALER_DONAU_DepositGetHandle
 {
 
   /**
    * The keys of the this request handle will use
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * The url for this request.
@@ -62,7 +62,7 @@ struct TALER_EXCHANGE_DepositGetHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_DepositGetCallback cb;
+  TALER_DONAU_DepositGetCallback cb;
 
   /**
    * Closure for @a cb.
@@ -70,9 +70,9 @@ struct TALER_EXCHANGE_DepositGetHandle
   void *cb_cls;
 
   /**
-   * Hash over the wiring information of the merchant.
+   * Hash over the wiring information of the charity.
    */
-  struct TALER_MerchantWireHashP h_wire;
+  struct TALER_CharityWireHashP h_wire;
 
   /**
    * Hash over the contract for which this deposit is made.
@@ -81,7 +81,7 @@ struct TALER_EXCHANGE_DepositGetHandle
 
   /**
    * The coin's public key.  This is the value that must have been
-   * signed (blindly) by the Exchange.
+   * signed (blindly) by the Donau.
    */
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
@@ -92,7 +92,7 @@ struct TALER_EXCHANGE_DepositGetHandle
  * Function called when we're done processing the
  * HTTP /track/transaction request.
  *
- * @param cls the `struct TALER_EXCHANGE_DepositGetHandle`
+ * @param cls the `struct TALER_DONAU_DepositGetHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -101,9 +101,9 @@ handle_deposit_wtid_finished (void *cls,
                               long response_code,
                               const void *response)
 {
-  struct TALER_EXCHANGE_DepositGetHandle *dwh = cls;
+  struct TALER_DONAU_DepositGetHandle *dwh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_GetDepositResponse dr = {
+  struct TALER_DONAU_GetDepositResponse dr = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -123,13 +123,13 @@ handle_deposit_wtid_finished (void *cls,
                                     &dr.details.ok.execution_time),
         TALER_JSON_spec_amount_any ("coin_contribution",
                                     &dr.details.ok.coin_contribution),
-        GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                     &dr.details.ok.exchange_sig),
-        GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                     &dr.details.ok.exchange_pub),
+        GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                     &dr.details.ok.donau_sig),
+        GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                     &dr.details.ok.donau_pub),
         GNUNET_JSON_spec_end ()
       };
-      const struct TALER_EXCHANGE_Keys *key_state;
+      const struct TALER_DONAU_Keys *key_state;
 
       key_state = dwh->keys;
       GNUNET_assert (NULL != key_state);
@@ -144,33 +144,33 @@ handle_deposit_wtid_finished (void *cls,
         break;
       }
       if (GNUNET_OK !=
-          TALER_EXCHANGE_test_signing_key (key_state,
-                                           &dr.details.ok.exchange_pub))
+          TALER_DONAU_test_signing_key (key_state,
+                                           &dr.details.ok.donau_pub))
       {
         GNUNET_break_op (0);
         dr.hr.http_status = 0;
-        dr.hr.ec = 
TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_SIGNATURE_BY_EXCHANGE;
+        dr.hr.ec = TALER_EC_DONAU_DEPOSITS_GET_INVALID_SIGNATURE_BY_DONAU;
         break;
       }
       if (GNUNET_OK !=
-          TALER_exchange_online_confirm_wire_verify (
+          TALER_donau_online_confirm_wire_verify (
             &dwh->h_wire,
             &dwh->h_contract_terms,
             &dr.details.ok.wtid,
             &dwh->coin_pub,
             dr.details.ok.execution_time,
             &dr.details.ok.coin_contribution,
-            &dr.details.ok.exchange_pub,
-            &dr.details.ok.exchange_sig))
+            &dr.details.ok.donau_pub,
+            &dr.details.ok.donau_sig))
       {
         GNUNET_break_op (0);
         dr.hr.http_status = 0;
-        dr.hr.ec = 
TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_SIGNATURE_BY_EXCHANGE;
+        dr.hr.ec = TALER_EC_DONAU_DEPOSITS_GET_INVALID_SIGNATURE_BY_DONAU;
         break;
       }
       dwh->cb (dwh->cb_cls,
                &dr);
-      TALER_EXCHANGE_deposits_get_cancel (dwh);
+      TALER_DONAU_deposits_get_cancel (dwh);
       return;
     }
   case MHD_HTTP_ACCEPTED:
@@ -208,26 +208,26 @@ handle_deposit_wtid_finished (void *cls,
         dr.details.accepted.requirement_row = 0;
       dwh->cb (dwh->cb_cls,
                &dr);
-      TALER_EXCHANGE_deposits_get_cancel (dwh);
+      TALER_DONAU_deposits_get_cancel (dwh);
       return;
     }
   case MHD_HTTP_BAD_REQUEST:
     dr.hr.ec = TALER_JSON_get_error_code (j);
     dr.hr.hint = TALER_JSON_get_error_hint (j);
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     break;
   case MHD_HTTP_FORBIDDEN:
     dr.hr.ec = TALER_JSON_get_error_code (j);
     dr.hr.hint = TALER_JSON_get_error_hint (j);
-    /* Nothing really to verify, exchange says one of the signatures is
+    /* Nothing really to verify, donau says one of the signatures is
        invalid; as we checked them, this should never happen, we
        should pass the JSON reply to the application */
     break;
   case MHD_HTTP_NOT_FOUND:
     dr.hr.ec = TALER_JSON_get_error_code (j);
     dr.hr.hint = TALER_JSON_get_error_hint (j);
-    /* Exchange does not know about transaction;
+    /* Donau does not know about transaction;
        we should pass the reply to the application */
     break;
   case MHD_HTTP_INTERNAL_SERVER_ERROR:
@@ -241,7 +241,7 @@ handle_deposit_wtid_finished (void *cls,
     dr.hr.ec = TALER_JSON_get_error_code (j);
     dr.hr.hint = TALER_JSON_get_error_hint (j);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Unexpected response code %u/%d for exchange GET deposits\n",
+                "Unexpected response code %u/%d for donau GET deposits\n",
                 (unsigned int) response_code,
                 (int) dr.hr.ec);
     GNUNET_break_op (0);
@@ -249,46 +249,46 @@ handle_deposit_wtid_finished (void *cls,
   }
   dwh->cb (dwh->cb_cls,
            &dr);
-  TALER_EXCHANGE_deposits_get_cancel (dwh);
+  TALER_DONAU_deposits_get_cancel (dwh);
 }
 
 
-struct TALER_EXCHANGE_DepositGetHandle *
-TALER_EXCHANGE_deposits_get (
+struct TALER_DONAU_DepositGetHandle *
+TALER_DONAU_deposits_get (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *keys,
-  const struct TALER_MerchantPrivateKeyP *merchant_priv,
-  const struct TALER_MerchantWireHashP *h_wire,
+  struct TALER_DONAU_Keys *keys,
+  const struct TALER_CharityPrivateKeyP *charity_priv,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct GNUNET_TIME_Relative timeout,
-  TALER_EXCHANGE_DepositGetCallback cb,
+  TALER_DONAU_DepositGetCallback cb,
   void *cb_cls)
 {
-  struct TALER_MerchantPublicKeyP merchant;
-  struct TALER_MerchantSignatureP merchant_sig;
-  struct TALER_EXCHANGE_DepositGetHandle *dwh;
+  struct TALER_CharityPublicKeyP charity;
+  struct TALER_CharitySignatureP charity_sig;
+  struct TALER_DONAU_DepositGetHandle *dwh;
   CURL *eh;
   char arg_str[(sizeof (struct TALER_CoinSpendPublicKeyP)
-                + sizeof (struct TALER_MerchantWireHashP)
-                + sizeof (struct TALER_MerchantPublicKeyP)
+                + sizeof (struct TALER_CharityWireHashP)
+                + sizeof (struct TALER_CharityPublicKeyP)
                 + sizeof (struct TALER_PrivateContractHashP)
-                + sizeof (struct TALER_MerchantSignatureP)) * 2 + 48];
+                + sizeof (struct TALER_CharitySignatureP)) * 2 + 48];
 
-  GNUNET_CRYPTO_eddsa_key_get_public (&merchant_priv->eddsa_priv,
-                                      &merchant.eddsa_pub);
-  TALER_merchant_deposit_sign (h_contract_terms,
+  GNUNET_CRYPTO_eddsa_key_get_public (&charity_priv->eddsa_priv,
+                                      &charity.eddsa_pub);
+  TALER_charity_deposit_sign (h_contract_terms,
                                h_wire,
                                coin_pub,
-                               merchant_priv,
-                               &merchant_sig);
+                               charity_priv,
+                               &charity_sig);
   {
     char cpub_str[sizeof (struct TALER_CoinSpendPublicKeyP) * 2];
-    char mpub_str[sizeof (struct TALER_MerchantPublicKeyP) * 2];
-    char msig_str[sizeof (struct TALER_MerchantSignatureP) * 2];
+    char mpub_str[sizeof (struct TALER_CharityPublicKeyP) * 2];
+    char msig_str[sizeof (struct TALER_CharitySignatureP) * 2];
     char chash_str[sizeof (struct TALER_PrivateContractHashP) * 2];
-    char whash_str[sizeof (struct TALER_MerchantWireHashP) * 2];
+    char whash_str[sizeof (struct TALER_CharityWireHashP) * 2];
     char timeout_str[24];
     char *end;
 
@@ -297,8 +297,8 @@ TALER_EXCHANGE_deposits_get (
                                          whash_str,
                                          sizeof (whash_str));
     *end = '\0';
-    end = GNUNET_STRINGS_data_to_string (&merchant,
-                                         sizeof (merchant),
+    end = GNUNET_STRINGS_data_to_string (&charity,
+                                         sizeof (charity),
                                          mpub_str,
                                          sizeof (mpub_str));
     *end = '\0';
@@ -312,8 +312,8 @@ TALER_EXCHANGE_deposits_get (
                                          cpub_str,
                                          sizeof (cpub_str));
     *end = '\0';
-    end = GNUNET_STRINGS_data_to_string (&merchant_sig,
-                                         sizeof (merchant_sig),
+    end = GNUNET_STRINGS_data_to_string (&charity_sig,
+                                         sizeof (charity_sig),
                                          msig_str,
                                          sizeof (msig_str));
     *end = '\0';
@@ -334,7 +334,7 @@ TALER_EXCHANGE_deposits_get (
 
     GNUNET_snprintf (arg_str,
                      sizeof (arg_str),
-                     "deposits/%s/%s/%s/%s?merchant_sig=%s%s%s",
+                     "deposits/%s/%s/%s/%s?charity_sig=%s%s%s",
                      whash_str,
                      mpub_str,
                      chash_str,
@@ -346,7 +346,7 @@ TALER_EXCHANGE_deposits_get (
                      timeout_str);
   }
 
-  dwh = GNUNET_new (struct TALER_EXCHANGE_DepositGetHandle);
+  dwh = GNUNET_new (struct TALER_DONAU_DepositGetHandle);
   dwh->cb = cb;
   dwh->cb_cls = cb_cls;
   dwh->url = TALER_url_join (url,
@@ -360,7 +360,7 @@ TALER_EXCHANGE_deposits_get (
   dwh->h_wire = *h_wire;
   dwh->h_contract_terms = *h_contract_terms;
   dwh->coin_pub = *coin_pub;
-  eh = TALER_EXCHANGE_curl_easy_get_ (dwh->url);
+  eh = TALER_DONAU_curl_easy_get_ (dwh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -372,13 +372,13 @@ TALER_EXCHANGE_deposits_get (
                                   eh,
                                   &handle_deposit_wtid_finished,
                                   dwh);
-  dwh->keys = TALER_EXCHANGE_keys_incref (keys);
+  dwh->keys = TALER_DONAU_keys_incref (keys);
   return dwh;
 }
 
 
 void
-TALER_EXCHANGE_deposits_get_cancel (struct TALER_EXCHANGE_DepositGetHandle 
*dwh)
+TALER_DONAU_deposits_get_cancel (struct TALER_DONAU_DepositGetHandle *dwh)
 {
   if (NULL != dwh->job)
   {
@@ -387,9 +387,9 @@ TALER_EXCHANGE_deposits_get_cancel (struct 
TALER_EXCHANGE_DepositGetHandle *dwh)
   }
   GNUNET_free (dwh->url);
   TALER_curl_easy_post_finished (&dwh->ctx);
-  TALER_EXCHANGE_keys_decref (dwh->keys);
+  TALER_DONAU_keys_decref (dwh->keys);
   GNUNET_free (dwh);
 }
 
 
-/* end of exchange_api_deposits_get.c */
+/* end of donau_api_deposits_get.c */
diff --git a/src/lib/exchange_api_handle.c b/src/lib/donau_api_handle.c
similarity index 88%
rename from src/lib/exchange_api_handle.c
rename to src/lib/donau_api_handle.c
index 5562936..8767309 100644
--- a/src/lib/exchange_api_handle.c
+++ b/src/lib/donau_api_handle.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -18,8 +18,8 @@
 */
 
 /**
- * @file lib/exchange_api_handle.c
- * @brief Implementation of the "handle" component of the exchange's HTTP API
+ * @file lib/donau_api_handle.c
+ * @brief Implementation of the "handle" component of the donau's HTTP API
  * @author Sree Harsha Totakura <sreeharsha@totakura.in>
  * @author Christian Grothoff
  */
@@ -27,12 +27,12 @@
 #include <microhttpd.h>
 #include <gnunet/gnunet_curl_lib.h>
 #include "taler_json_lib.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_auditor_service.h"
 #include "taler_signatures.h"
 #include "taler_extensions.h"
-#include "exchange_api_handle.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_handle.h"
+#include "donau_api_curl_defaults.h"
 #include "backoff.h"
 #include "taler_curl_lib.h"
 
@@ -40,12 +40,12 @@
  * Which version of the Taler protocol is implemented
  * by this library?  Used to determine compatibility.
  */
-#define EXCHANGE_PROTOCOL_CURRENT 17
+#define DONAU_PROTOCOL_CURRENT 17
 
 /**
  * How many versions are we backwards compatible with?
  */
-#define EXCHANGE_PROTOCOL_AGE 0
+#define DONAU_PROTOCOL_AGE 0
 
 /**
  * Set to 1 for extra debug logging.
@@ -56,7 +56,7 @@
  * Current version for (local) JSON serialization of persisted
  * /keys data.
  */
-#define EXCHANGE_SERIALIZATION_FORMAT_VERSION 0
+#define DONAU_SERIALIZATION_FORMAT_VERSION 0
 
 /**
  * How far off do we allow key liftimes to be?
@@ -80,13 +80,13 @@
 /**
  * Handle for a GET /keys request.
  */
-struct TALER_EXCHANGE_GetKeysHandle
+struct TALER_DONAU_GetKeysHandle
 {
 
   /**
-   * The exchange base URL (i.e. "http://exchange.taler.net/";)
+   * The donau base URL (i.e. "http://donau.taler.net/";)
    */
-  char *exchange_url;
+  char *donau_url;
 
   /**
    * The url for the /keys request.
@@ -96,7 +96,7 @@ struct TALER_EXCHANGE_GetKeysHandle
   /**
    * Previous /keys response, NULL for none.
    */
-  struct TALER_EXCHANGE_Keys *prev_keys;
+  struct TALER_DONAU_Keys *prev_keys;
 
   /**
    * Entry for this request with the `struct GNUNET_CURL_Context`.
@@ -110,10 +110,10 @@ struct TALER_EXCHANGE_GetKeysHandle
   struct GNUNET_TIME_Timestamp expire;
 
   /**
-   * Function to call with the exchange's certification data,
+   * Function to call with the donau's certification data,
    * NULL if this has already been done.
    */
-  TALER_EXCHANGE_GetKeysCallback cert_cb;
+  TALER_DONAU_GetKeysCallback cert_cb;
 
   /**
    * Closure to pass to @e cert_cb.
@@ -130,16 +130,16 @@ struct TALER_EXCHANGE_GetKeysHandle
  * @param wfm_len length of the @a wfm array
  */
 static void
-free_fees (struct TALER_EXCHANGE_WireFeesByMethod *wfm,
+free_fees (struct TALER_DONAU_WireFeesByMethod *wfm,
            unsigned int wfm_len)
 {
   for (unsigned int i = 0; i<wfm_len; i++)
   {
-    struct TALER_EXCHANGE_WireFeesByMethod *wfmi = &wfm[i];
+    struct TALER_DONAU_WireFeesByMethod *wfmi = &wfm[i];
 
     while (NULL != wfmi->fees_head)
     {
-      struct TALER_EXCHANGE_WireAggregateFees *fe
+      struct TALER_DONAU_WireAggregateFees *fe
         = wfmi->fees_head;
 
       wfmi->fees_head = fe->next;
@@ -160,23 +160,23 @@ free_fees (struct TALER_EXCHANGE_WireFeesByMethod *wfm,
  * @param[out] fees_len set to length of returned array
  * @return NULL on error
  */
-static struct TALER_EXCHANGE_WireFeesByMethod *
+static struct TALER_DONAU_WireFeesByMethod *
 parse_fees (const struct TALER_MasterPublicKeyP *master_pub,
             const char *currency,
             const json_t *fees,
             unsigned int *fees_len)
 {
-  struct TALER_EXCHANGE_WireFeesByMethod *fbm;
+  struct TALER_DONAU_WireFeesByMethod *fbm;
   unsigned int fbml = json_object_size (fees);
   unsigned int i = 0;
   const char *key;
   const json_t *fee_array;
 
   fbm = GNUNET_new_array (fbml,
-                          struct TALER_EXCHANGE_WireFeesByMethod);
+                          struct TALER_DONAU_WireFeesByMethod);
   *fees_len = fbml;
   json_object_foreach ((json_t *) fees, key, fee_array) {
-    struct TALER_EXCHANGE_WireFeesByMethod *fe = &fbm[i++];
+    struct TALER_DONAU_WireFeesByMethod *fe = &fbm[i++];
     unsigned int idx;
     json_t *fee;
 
@@ -184,8 +184,8 @@ parse_fees (const struct TALER_MasterPublicKeyP *master_pub,
     fe->fees_head = NULL;
     json_array_foreach (fee_array, idx, fee)
     {
-      struct TALER_EXCHANGE_WireAggregateFees *wa
-        = GNUNET_new (struct TALER_EXCHANGE_WireAggregateFees);
+      struct TALER_DONAU_WireAggregateFees *wa
+        = GNUNET_new (struct TALER_DONAU_WireAggregateFees);
       struct GNUNET_JSON_Specification spec[] = {
         GNUNET_JSON_spec_fixed_auto ("sig",
                                      &wa->master_sig),
@@ -216,7 +216,7 @@ parse_fees (const struct TALER_MasterPublicKeyP *master_pub,
         return NULL;
       }
       if (GNUNET_OK !=
-          TALER_exchange_offline_wire_fee_verify (
+          TALER_donau_offline_wire_fee_verify (
             key,
             wa->start_date,
             wa->end_date,
@@ -238,7 +238,7 @@ parse_fees (const struct TALER_MasterPublicKeyP *master_pub,
 
 void
 TEAH_get_auditors_for_dc (
-  struct TALER_EXCHANGE_Keys *keys,
+  struct TALER_DONAU_Keys *keys,
   TEAH_AuditorCallback ac,
   void *ac_cls)
 {
@@ -250,7 +250,7 @@ TEAH_get_auditors_for_dc (
   }
   for (unsigned int i = 0; i<keys->num_auditors; i++)
   {
-    const struct TALER_EXCHANGE_AuditorInformation *auditor
+    const struct TALER_DONAU_AuditorInformation *auditor
       = &keys->auditors[i];
 
     ac (ac_cls,
@@ -267,7 +267,7 @@ TEAH_get_auditors_for_dc (
 
 
 /**
- * Parse a exchange's signing key encoded in JSON.
+ * Parse a donau's signing key encoded in JSON.
  *
  * @param[out] sign_key where to return the result
  * @param check_sigs should we check signatures?
@@ -277,7 +277,7 @@ TEAH_get_auditors_for_dc (
  *        invalid or the @a sign_key_obj is malformed.
  */
 static enum GNUNET_GenericReturnValue
-parse_json_signkey (struct TALER_EXCHANGE_SigningPublicKey *sign_key,
+parse_json_signkey (struct TALER_DONAU_SigningPublicKey *sign_key,
                     bool check_sigs,
                     const json_t *sign_key_obj,
                     const struct TALER_MasterPublicKeyP *master_key)
@@ -307,7 +307,7 @@ parse_json_signkey (struct TALER_EXCHANGE_SigningPublicKey 
*sign_key,
   if (! check_sigs)
     return GNUNET_OK;
   if (GNUNET_OK !=
-      TALER_exchange_offline_signkey_validity_verify (
+      TALER_donau_offline_signkey_validity_verify (
         &sign_key->key,
         sign_key->valid_from,
         sign_key->valid_until,
@@ -323,7 +323,7 @@ parse_json_signkey (struct TALER_EXCHANGE_SigningPublicKey 
*sign_key,
 
 
 /**
- * Parse a exchange's denomination key encoded in JSON partially.
+ * Parse a donau's denomination key encoded in JSON partially.
  *
  * Only the values for master_sig, timestamps and the cipher-specific public
  * key are parsed.  All other fields (fees, age_mask, value) MUST have been set
@@ -341,7 +341,7 @@ parse_json_signkey (struct TALER_EXCHANGE_SigningPublicKey 
*sign_key,
  */
 static enum GNUNET_GenericReturnValue
 parse_json_denomkey_partially (
-  struct TALER_EXCHANGE_DenomPublicKey *denom_key,
+  struct TALER_DONAU_DenomPublicKey *denom_key,
   enum TALER_DenominationCipher cipher,
   bool check_sigs,
   const json_t *denom_key_obj,
@@ -386,7 +386,7 @@ parse_json_denomkey_partially (
   if (! check_sigs)
     return GNUNET_OK;
   EXITIF (GNUNET_SYSERR ==
-          TALER_exchange_offline_denom_validity_verify (
+          TALER_donau_offline_denom_validity_verify (
             &denom_key->h_key,
             denom_key->valid_from,
             denom_key->withdraw_valid_until,
@@ -408,7 +408,7 @@ EXITIF_exit:
 
 
 /**
- * Parse a exchange's auditor information encoded in JSON.
+ * Parse a donau's auditor information encoded in JSON.
  *
  * @param[out] auditor where to return the result
  * @param check_sigs should we check signatures
@@ -418,10 +418,10 @@ EXITIF_exit:
  *        invalid or the json malformed.
  */
 static enum GNUNET_GenericReturnValue
-parse_json_auditor (struct TALER_EXCHANGE_AuditorInformation *auditor,
+parse_json_auditor (struct TALER_DONAU_AuditorInformation *auditor,
                     bool check_sigs,
                     const json_t *auditor_obj,
-                    const struct TALER_EXCHANGE_Keys *key_data)
+                    const struct TALER_DONAU_Keys *key_data)
 {
   const json_t *keys;
   json_t *key;
@@ -454,12 +454,12 @@ parse_json_auditor (struct 
TALER_EXCHANGE_AuditorInformation *auditor,
   auditor->auditor_url = GNUNET_strdup (auditor_url);
   auditor->denom_keys
     = GNUNET_new_array (json_array_size (keys),
-                        struct TALER_EXCHANGE_AuditorDenominationInfo);
+                        struct TALER_DONAU_AuditorDenominationInfo);
   pos = 0;
   json_array_foreach (keys, off, key) {
     struct TALER_AuditorSignatureP auditor_sig;
     struct TALER_DenominationHashP denom_h;
-    const struct TALER_EXCHANGE_DenomPublicKey *dk = NULL;
+    const struct TALER_DONAU_DenomPublicKey *dk = NULL;
     unsigned int dk_off = UINT_MAX;
     struct GNUNET_JSON_Specification kspec[] = {
       GNUNET_JSON_spec_fixed_auto ("auditor_sig",
@@ -524,20 +524,20 @@ parse_json_auditor (struct 
TALER_EXCHANGE_AuditorInformation *auditor,
 
 
 /**
- * Parse a exchange's global fee information encoded in JSON.
+ * Parse a donau's global fee information encoded in JSON.
  *
  * @param[out] gf where to return the result
  * @param check_sigs should we check signatures
  * @param fee_obj json to parse
- * @param key_data already parsed information about the exchange
+ * @param key_data already parsed information about the donau
  * @return #GNUNET_OK if all is fine, #GNUNET_SYSERR if the signature is
  *        invalid or the json malformed.
  */
 static enum GNUNET_GenericReturnValue
-parse_global_fee (struct TALER_EXCHANGE_GlobalFee *gf,
+parse_global_fee (struct TALER_DONAU_GlobalFee *gf,
                   bool check_sigs,
                   const json_t *fee_obj,
-                  const struct TALER_EXCHANGE_Keys *key_data)
+                  const struct TALER_DONAU_Keys *key_data)
 {
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_timestamp ("start_date",
@@ -573,7 +573,7 @@ parse_global_fee (struct TALER_EXCHANGE_GlobalFee *gf,
   if (check_sigs)
   {
     if (GNUNET_OK !=
-        TALER_exchange_offline_global_fee_verify (
+        TALER_donau_offline_global_fee_verify (
           gf->start_date,
           gf->end_date,
           &gf->fees,
@@ -602,11 +602,11 @@ parse_global_fee (struct TALER_EXCHANGE_GlobalFee *gf,
  *  the same object), 1 otherwise.
  */
 static unsigned int
-denoms_cmp (const struct TALER_EXCHANGE_DenomPublicKey *denom1,
-            const struct TALER_EXCHANGE_DenomPublicKey *denom2)
+denoms_cmp (const struct TALER_DONAU_DenomPublicKey *denom1,
+            const struct TALER_DONAU_DenomPublicKey *denom2)
 {
-  struct TALER_EXCHANGE_DenomPublicKey tmp1;
-  struct TALER_EXCHANGE_DenomPublicKey tmp2;
+  struct TALER_DONAU_DenomPublicKey tmp1;
+  struct TALER_DONAU_DenomPublicKey tmp2;
 
   if (0 !=
       TALER_denom_pub_cmp (&denom1->key,
@@ -641,12 +641,12 @@ denoms_cmp (const struct TALER_EXCHANGE_DenomPublicKey 
*denom1,
 static enum GNUNET_GenericReturnValue
 decode_keys_json (const json_t *resp_obj,
                   bool check_sig,
-                  struct TALER_EXCHANGE_Keys *key_data,
-                  enum TALER_EXCHANGE_VersionCompatibility *vc)
+                  struct TALER_DONAU_Keys *key_data,
+                  enum TALER_DONAU_VersionCompatibility *vc)
 {
-  struct TALER_ExchangeSignatureP denominations_sig;
+  struct TALER_DonauSignatureP denominations_sig;
   struct GNUNET_HashCode hash_xor = {0};
-  struct TALER_ExchangePublicKeyP pub;
+  struct TALER_DonauPublicKeyP pub;
   const json_t *wblwk = NULL;
   const json_t *global_fees;
   const json_t *sign_keys_array;
@@ -701,18 +701,18 @@ decode_keys_json (const json_t *resp_obj,
       GNUNET_break_op (0);
       return GNUNET_SYSERR;
     }
-    *vc = TALER_EXCHANGE_VC_MATCH;
-    if (EXCHANGE_PROTOCOL_CURRENT < current)
+    *vc = TALER_DONAU_VC_MATCH;
+    if (DONAU_PROTOCOL_CURRENT < current)
     {
-      *vc |= TALER_EXCHANGE_VC_NEWER;
-      if (EXCHANGE_PROTOCOL_CURRENT < current - age)
-        *vc |= TALER_EXCHANGE_VC_INCOMPATIBLE;
+      *vc |= TALER_DONAU_VC_NEWER;
+      if (DONAU_PROTOCOL_CURRENT < current - age)
+        *vc |= TALER_DONAU_VC_INCOMPATIBLE;
     }
-    if (EXCHANGE_PROTOCOL_CURRENT > current)
+    if (DONAU_PROTOCOL_CURRENT > current)
     {
-      *vc |= TALER_EXCHANGE_VC_OLDER;
-      if (EXCHANGE_PROTOCOL_CURRENT - EXCHANGE_PROTOCOL_AGE > current)
-        *vc |= TALER_EXCHANGE_VC_INCOMPATIBLE;
+      *vc |= TALER_DONAU_VC_OLDER;
+      if (DONAU_PROTOCOL_CURRENT - DONAU_PROTOCOL_AGE > current)
+        *vc |= TALER_DONAU_VC_INCOMPATIBLE;
     }
     key_data->version = GNUNET_strdup (ver);
   }
@@ -843,7 +843,7 @@ decode_keys_json (const json_t *resp_obj,
 
     key_data->global_fees
       = GNUNET_new_array (key_data->num_global_fees,
-                          struct TALER_EXCHANGE_GlobalFee);
+                          struct TALER_DONAU_GlobalFee);
     json_array_foreach (global_fees, index, global_fee)
     {
       EXITIF (GNUNET_SYSERR ==
@@ -864,7 +864,7 @@ decode_keys_json (const json_t *resp_obj,
 
     key_data->sign_keys
       = GNUNET_new_array (key_data->num_sign_keys,
-                          struct TALER_EXCHANGE_SigningPublicKey);
+                          struct TALER_DONAU_SigningPublicKey);
     json_array_foreach (sign_keys_array, index, sign_key_obj) {
       EXITIF (GNUNET_SYSERR ==
               parse_json_signkey (&key_data->sign_keys[index],
@@ -911,7 +911,7 @@ decode_keys_json (const json_t *resp_obj,
                      key_data->accounts_len,
                      json_array_size (accounts));
   EXITIF (GNUNET_OK !=
-          TALER_EXCHANGE_parse_accounts (&key_data->master_pub,
+          TALER_DONAU_parse_accounts (&key_data->master_pub,
                                          accounts,
                                          key_data->accounts_len,
                                          key_data->accounts));
@@ -993,7 +993,7 @@ decode_keys_json (const json_t *resp_obj,
         /* Set the common fields from the group for this particular
            denomination.  Required to make the validity check inside
            parse_json_denomkey_partially pass */
-        struct TALER_EXCHANGE_DenomPublicKey dk = {
+        struct TALER_DONAU_DenomPublicKey dk = {
           .key.cipher = group.cipher,
           .value = group.value,
           .fees = group.fees,
@@ -1064,7 +1064,7 @@ decode_keys_json (const json_t *resp_obj,
     /* Merge with the existing auditor information we have (/keys cherry 
picking) */
     json_array_foreach (auditors_array, index, auditor_info)
     {
-      struct TALER_EXCHANGE_AuditorInformation ai;
+      struct TALER_DONAU_AuditorInformation ai;
       bool found = false;
 
       memset (&ai,
@@ -1077,7 +1077,7 @@ decode_keys_json (const json_t *resp_obj,
                                   key_data));
       for (unsigned int j = 0; j<key_data->num_auditors; j++)
       {
-        struct TALER_EXCHANGE_AuditorInformation *aix = &key_data->auditors[j];
+        struct TALER_DONAU_AuditorInformation *aix = &key_data->auditors[j];
 
         if (0 == GNUNET_memcmp (&ai.auditor_pub,
                                 &aix->auditor_pub))
@@ -1163,10 +1163,10 @@ decode_keys_json (const json_t *resp_obj,
   if (check_sig)
   {
     EXITIF (GNUNET_OK !=
-            TALER_EXCHANGE_test_signing_key (key_data,
+            TALER_DONAU_test_signing_key (key_data,
                                              &pub));
     EXITIF (GNUNET_OK !=
-            TALER_exchange_online_key_set_verify (
+            TALER_donau_online_key_set_verify (
               key_data->list_issue_date,
               &hash_xor,
               &pub,
@@ -1175,7 +1175,7 @@ decode_keys_json (const json_t *resp_obj,
   return GNUNET_OK;
 
 EXITIF_exit:
-  *vc = TALER_EXCHANGE_VC_PROTOCOL_ERROR;
+  *vc = TALER_DONAU_VC_PROTOCOL_ERROR;
   return GNUNET_SYSERR;
 }
 
@@ -1193,13 +1193,13 @@ keys_completed_cb (void *cls,
                    long response_code,
                    const void *resp_obj)
 {
-  struct TALER_EXCHANGE_GetKeysHandle *gkh = cls;
+  struct TALER_DONAU_GetKeysHandle *gkh = cls;
   const json_t *j = resp_obj;
-  struct TALER_EXCHANGE_Keys *kd = NULL;
-  struct TALER_EXCHANGE_KeysResponse kresp = {
+  struct TALER_DONAU_Keys *kd = NULL;
+  struct TALER_DONAU_KeysResponse kresp = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code,
-    .details.ok.compat = TALER_EXCHANGE_VC_PROTOCOL_ERROR,
+    .details.ok.compat = TALER_DONAU_VC_PROTOCOL_ERROR,
   };
 
   gkh->job = NULL;
@@ -1211,7 +1211,7 @@ keys_completed_cb (void *cls,
   if (GNUNET_TIME_absolute_is_past (gkh->expire.abs_time))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Exchange failed to give expiration time, assuming in %s\n",
+                "Donau failed to give expiration time, assuming in %s\n",
                 GNUNET_TIME_relative2s (DEFAULT_EXPIRATION,
                                         true));
     gkh->expire
@@ -1222,8 +1222,8 @@ keys_completed_cb (void *cls,
   {
   case 0:
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Failed to receive /keys response from exchange %s\n",
-                gkh->exchange_url);
+                "Failed to receive /keys response from donau %s\n",
+                gkh->donau_url);
     break;
   case MHD_HTTP_OK:
     if (NULL == j)
@@ -1232,11 +1232,11 @@ keys_completed_cb (void *cls,
       response_code = 0;
       break;
     }
-    kd = GNUNET_new (struct TALER_EXCHANGE_Keys);
-    kd->exchange_url = GNUNET_strdup (gkh->exchange_url);
+    kd = GNUNET_new (struct TALER_DONAU_Keys);
+    kd->donau_url = GNUNET_strdup (gkh->donau_url);
     if (NULL != gkh->prev_keys)
     {
-      const struct TALER_EXCHANGE_Keys *kd_old = gkh->prev_keys;
+      const struct TALER_DONAU_Keys *kd_old = gkh->prev_keys;
 
       /* We keep the denomination keys and auditor signatures from the
          previous iteration (/keys cherry picking) */
@@ -1251,19 +1251,19 @@ keys_completed_cb (void *cls,
       GNUNET_memcpy (kd->denom_keys,
                      kd_old->denom_keys,
                      kd_old->num_denom_keys
-                     * sizeof (struct TALER_EXCHANGE_DenomPublicKey));
+                     * sizeof (struct TALER_DONAU_DenomPublicKey));
       for (unsigned int i = 0; i<kd_old->num_denom_keys; i++)
         TALER_denom_pub_deep_copy (&kd->denom_keys[i].key,
                                    &kd_old->denom_keys[i].key);
       kd->num_auditors = kd_old->num_auditors;
       kd->auditors = GNUNET_new_array (kd->num_auditors,
-                                       struct 
TALER_EXCHANGE_AuditorInformation);
+                                       struct TALER_DONAU_AuditorInformation);
       /* Now the necessary deep copy... */
       for (unsigned int i = 0; i<kd_old->num_auditors; i++)
       {
-        const struct TALER_EXCHANGE_AuditorInformation *aold =
+        const struct TALER_DONAU_AuditorInformation *aold =
           &kd_old->auditors[i];
-        struct TALER_EXCHANGE_AuditorInformation *anew = &kd->auditors[i];
+        struct TALER_DONAU_AuditorInformation *anew = &kd->auditors[i];
 
         anew->auditor_pub = aold->auditor_pub;
         anew->auditor_url = GNUNET_strdup (aold->auditor_url);
@@ -1274,7 +1274,7 @@ keys_completed_cb (void *cls,
           anew->denom_keys,
           aold->denom_keys,
           aold->num_denom_keys
-          * sizeof (struct TALER_EXCHANGE_AuditorDenominationInfo));
+          * sizeof (struct TALER_DONAU_AuditorDenominationInfo));
       }
     }
     /* Now decode fresh /keys response */
@@ -1286,7 +1286,7 @@ keys_completed_cb (void *cls,
     {
       TALER_LOG_ERROR ("Could not decode /keys response\n");
       kd->rc = 1;
-      TALER_EXCHANGE_keys_decref (kd);
+      TALER_DONAU_keys_decref (kd);
       kd = NULL;
       kresp.hr.http_status = 0;
       kresp.hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
@@ -1300,7 +1300,7 @@ keys_completed_cb (void *cls,
           MINIMUM_EXPIRATION))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                  "Exchange returned keys with expiration time below %s. 
Compensating.\n",
+                  "Donau returned keys with expiration time below %s. 
Compensating.\n",
                   GNUNET_TIME_relative2s (MINIMUM_EXPIRATION,
                                           true));
       kd->key_data_expiration
@@ -1344,7 +1344,7 @@ keys_completed_cb (void *cls,
   gkh->cert_cb (gkh->cert_cb_cls,
                 &kresp,
                 kd);
-  TALER_EXCHANGE_get_keys_cancel (gkh);
+  TALER_DONAU_get_keys_cancel (gkh);
 }
 
 
@@ -1458,7 +1458,7 @@ parse_date_string (const char *dateline,
  * @param buffer header data received
  * @param size size of an item in @a buffer
  * @param nitems number of items in @a buffer
- * @param userdata the `struct TALER_EXCHANGE_GetKeysHandle`
+ * @param userdata the `struct TALER_DONAU_GetKeysHandle`
  * @return `size * nitems` on success (everything else aborts)
  */
 static size_t
@@ -1467,7 +1467,7 @@ header_cb (char *buffer,
            size_t nitems,
            void *userdata)
 {
-  struct TALER_EXCHANGE_GetKeysHandle *kr = userdata;
+  struct TALER_DONAU_GetKeysHandle *kr = userdata;
   size_t total = size * nitems;
   char *val;
 
@@ -1498,27 +1498,27 @@ header_cb (char *buffer,
 }
 
 
-struct TALER_EXCHANGE_GetKeysHandle *
-TALER_EXCHANGE_get_keys (
+struct TALER_DONAU_GetKeysHandle *
+TALER_DONAU_get_keys (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *last_keys,
-  TALER_EXCHANGE_GetKeysCallback cert_cb,
+  struct TALER_DONAU_Keys *last_keys,
+  TALER_DONAU_GetKeysCallback cert_cb,
   void *cert_cb_cls)
 {
-  struct TALER_EXCHANGE_GetKeysHandle *gkh;
+  struct TALER_DONAU_GetKeysHandle *gkh;
   CURL *eh;
   char last_date[80] = { 0 };
 
-  TALER_LOG_DEBUG ("Connecting to the exchange (%s)\n",
+  TALER_LOG_DEBUG ("Connecting to the donau (%s)\n",
                    url);
-  gkh = GNUNET_new (struct TALER_EXCHANGE_GetKeysHandle);
-  gkh->exchange_url = GNUNET_strdup (url);
+  gkh = GNUNET_new (struct TALER_DONAU_GetKeysHandle);
+  gkh->donau_url = GNUNET_strdup (url);
   gkh->cert_cb = cert_cb;
   gkh->cert_cb_cls = cert_cb_cls;
   if (NULL != last_keys)
   {
-    gkh->prev_keys = TALER_EXCHANGE_keys_incref (last_keys);
+    gkh->prev_keys = TALER_DONAU_keys_incref (last_keys);
     TALER_LOG_DEBUG ("Last DK issue date (before GETting /keys): %s\n",
                      GNUNET_TIME_timestamp2s (
                        last_keys->last_denom_issue_date));
@@ -1541,11 +1541,11 @@ TALER_EXCHANGE_get_keys (
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Requesting keys with URL `%s'.\n",
               gkh->url);
-  eh = TALER_EXCHANGE_curl_easy_get_ (gkh->url);
+  eh = TALER_DONAU_curl_easy_get_ (gkh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
-    GNUNET_free (gkh->exchange_url);
+    GNUNET_free (gkh->donau_url);
     GNUNET_free (gkh->url);
     GNUNET_free (gkh);
     return NULL;
@@ -1575,25 +1575,25 @@ TALER_EXCHANGE_get_keys (
 
 
 void
-TALER_EXCHANGE_get_keys_cancel (
-  struct TALER_EXCHANGE_GetKeysHandle *gkh)
+TALER_DONAU_get_keys_cancel (
+  struct TALER_DONAU_GetKeysHandle *gkh)
 {
   if (NULL != gkh->job)
   {
     GNUNET_CURL_job_cancel (gkh->job);
     gkh->job = NULL;
   }
-  TALER_EXCHANGE_keys_decref (gkh->prev_keys);
-  GNUNET_free (gkh->exchange_url);
+  TALER_DONAU_keys_decref (gkh->prev_keys);
+  GNUNET_free (gkh->donau_url);
   GNUNET_free (gkh->url);
   GNUNET_free (gkh);
 }
 
 
 enum GNUNET_GenericReturnValue
-TALER_EXCHANGE_test_signing_key (
-  const struct TALER_EXCHANGE_Keys *keys,
-  const struct TALER_ExchangePublicKeyP *pub)
+TALER_DONAU_test_signing_key (
+  const struct TALER_DONAU_Keys *keys,
+  const struct TALER_DonauPublicKeyP *pub)
 {
   struct GNUNET_TIME_Absolute now;
 
@@ -1620,9 +1620,9 @@ TALER_EXCHANGE_test_signing_key (
 }
 
 
-const struct TALER_EXCHANGE_DenomPublicKey *
-TALER_EXCHANGE_get_denomination_key (
-  const struct TALER_EXCHANGE_Keys *keys,
+const struct TALER_DONAU_DenomPublicKey *
+TALER_DONAU_get_denomination_key (
+  const struct TALER_DONAU_Keys *keys,
   const struct TALER_DenominationPublicKey *pk)
 {
   for (unsigned int i = 0; i<keys->num_denom_keys; i++)
@@ -1634,14 +1634,14 @@ TALER_EXCHANGE_get_denomination_key (
 }
 
 
-const struct TALER_EXCHANGE_GlobalFee *
-TALER_EXCHANGE_get_global_fee (
-  const struct TALER_EXCHANGE_Keys *keys,
+const struct TALER_DONAU_GlobalFee *
+TALER_DONAU_get_global_fee (
+  const struct TALER_DONAU_Keys *keys,
   struct GNUNET_TIME_Timestamp ts)
 {
   for (unsigned int i = 0; i<keys->num_global_fees; i++)
   {
-    const struct TALER_EXCHANGE_GlobalFee *gf = &keys->global_fees[i];
+    const struct TALER_DONAU_GlobalFee *gf = &keys->global_fees[i];
 
     if (GNUNET_TIME_timestamp_cmp (ts,
                                    >=,
@@ -1655,13 +1655,13 @@ TALER_EXCHANGE_get_global_fee (
 }
 
 
-struct TALER_EXCHANGE_DenomPublicKey *
-TALER_EXCHANGE_copy_denomination_key (
-  const struct TALER_EXCHANGE_DenomPublicKey *key)
+struct TALER_DONAU_DenomPublicKey *
+TALER_DONAU_copy_denomination_key (
+  const struct TALER_DONAU_DenomPublicKey *key)
 {
-  struct TALER_EXCHANGE_DenomPublicKey *copy;
+  struct TALER_DONAU_DenomPublicKey *copy;
 
-  copy = GNUNET_new (struct TALER_EXCHANGE_DenomPublicKey);
+  copy = GNUNET_new (struct TALER_DONAU_DenomPublicKey);
   *copy = *key;
   TALER_denom_pub_deep_copy (&copy->key,
                              &key->key);
@@ -1670,17 +1670,17 @@ TALER_EXCHANGE_copy_denomination_key (
 
 
 void
-TALER_EXCHANGE_destroy_denomination_key (
-  struct TALER_EXCHANGE_DenomPublicKey *key)
+TALER_DONAU_destroy_denomination_key (
+  struct TALER_DONAU_DenomPublicKey *key)
 {
   TALER_denom_pub_free (&key->key);
   GNUNET_free (key);
 }
 
 
-const struct TALER_EXCHANGE_DenomPublicKey *
-TALER_EXCHANGE_get_denomination_key_by_hash (
-  const struct TALER_EXCHANGE_Keys *keys,
+const struct TALER_DONAU_DenomPublicKey *
+TALER_DONAU_get_denomination_key_by_hash (
+  const struct TALER_DONAU_Keys *keys,
   const struct TALER_DenominationHashP *hc)
 {
   for (unsigned int i = 0; i<keys->num_denom_keys; i++)
@@ -1691,8 +1691,8 @@ TALER_EXCHANGE_get_denomination_key_by_hash (
 }
 
 
-struct TALER_EXCHANGE_Keys *
-TALER_EXCHANGE_keys_incref (struct TALER_EXCHANGE_Keys *keys)
+struct TALER_DONAU_Keys *
+TALER_DONAU_keys_incref (struct TALER_DONAU_Keys *keys)
 {
   GNUNET_assert (keys->rc < UINT_MAX);
   keys->rc++;
@@ -1701,7 +1701,7 @@ TALER_EXCHANGE_keys_incref (struct TALER_EXCHANGE_Keys 
*keys)
 
 
 void
-TALER_EXCHANGE_keys_decref (struct TALER_EXCHANGE_Keys *keys)
+TALER_DONAU_keys_decref (struct TALER_DONAU_Keys *keys)
 {
   if (NULL == keys)
     return;
@@ -1728,7 +1728,7 @@ TALER_EXCHANGE_keys_decref (struct TALER_EXCHANGE_Keys 
*keys)
   GNUNET_array_grow (keys->auditors,
                      keys->auditors_size,
                      0);
-  TALER_EXCHANGE_free_accounts (keys->accounts_len,
+  TALER_DONAU_free_accounts (keys->accounts_len,
                                 keys->accounts);
   GNUNET_array_grow (keys->accounts,
                      keys->accounts_len,
@@ -1741,13 +1741,13 @@ TALER_EXCHANGE_keys_decref (struct TALER_EXCHANGE_Keys 
*keys)
   GNUNET_free (keys->currency);
   GNUNET_free (keys->asset_type);
   GNUNET_free (keys->global_fees);
-  GNUNET_free (keys->exchange_url);
+  GNUNET_free (keys->donau_url);
   GNUNET_free (keys);
 }
 
 
-struct TALER_EXCHANGE_Keys *
-TALER_EXCHANGE_keys_from_json (const json_t *j)
+struct TALER_DONAU_Keys *
+TALER_DONAU_keys_from_json (const json_t *j)
 {
   const json_t *jkeys;
   const char *url;
@@ -1759,7 +1759,7 @@ TALER_EXCHANGE_keys_from_json (const json_t *j)
                              &version),
     GNUNET_JSON_spec_object_const ("keys",
                                    &jkeys),
-    GNUNET_JSON_spec_string ("exchange_url",
+    GNUNET_JSON_spec_string ("donau_url",
                              &url),
     GNUNET_JSON_spec_mark_optional (
       GNUNET_JSON_spec_timestamp ("expire",
@@ -1767,8 +1767,8 @@ TALER_EXCHANGE_keys_from_json (const json_t *j)
       NULL),
     GNUNET_JSON_spec_end ()
   };
-  struct TALER_EXCHANGE_Keys *keys;
-  enum TALER_EXCHANGE_VersionCompatibility compat;
+  struct TALER_DONAU_Keys *keys;
+  enum TALER_DONAU_VersionCompatibility compat;
 
   if (NULL == j)
     return NULL;
@@ -1784,7 +1784,7 @@ TALER_EXCHANGE_keys_from_json (const json_t *j)
   {
     return NULL; /* unsupported version */
   }
-  keys = GNUNET_new (struct TALER_EXCHANGE_Keys);
+  keys = GNUNET_new (struct TALER_DONAU_Keys);
   if (GNUNET_OK !=
       decode_keys_json (jkeys,
                         false,
@@ -1796,7 +1796,7 @@ TALER_EXCHANGE_keys_from_json (const json_t *j)
   }
   keys->rc = 1;
   keys->key_data_expiration = expire;
-  keys->exchange_url = GNUNET_strdup (url);
+  keys->donau_url = GNUNET_strdup (url);
   return keys;
 }
 
@@ -1886,7 +1886,7 @@ add_grp (void *cls,
  */
 static json_t *
 ar_to_json (unsigned int ar_len,
-            const struct TALER_EXCHANGE_AccountRestriction ars[static ar_len])
+            const struct TALER_DONAU_AccountRestriction ars[static ar_len])
 {
   json_t *rval;
 
@@ -1894,15 +1894,15 @@ ar_to_json (unsigned int ar_len,
   GNUNET_assert (NULL != rval);
   for (unsigned int i = 0; i<ar_len; i++)
   {
-    const struct TALER_EXCHANGE_AccountRestriction *ar = &ars[i];
+    const struct TALER_DONAU_AccountRestriction *ar = &ars[i];
 
     switch (ar->type)
     {
-    case TALER_EXCHANGE_AR_INVALID:
+    case TALER_DONAU_AR_INVALID:
       GNUNET_break (0);
       json_decref (rval);
       return NULL;
-    case TALER_EXCHANGE_AR_DENY:
+    case TALER_DONAU_AR_DENY:
       GNUNET_assert (
         0 ==
         json_array_append_new (
@@ -1911,7 +1911,7 @@ ar_to_json (unsigned int ar_len,
             GNUNET_JSON_pack_string ("type",
                                      "deny"))));
       break;
-    case TALER_EXCHANGE_AR_REGEX:
+    case TALER_DONAU_AR_REGEX:
       GNUNET_assert (
         0 ==
         json_array_append_new (
@@ -1938,7 +1938,7 @@ ar_to_json (unsigned int ar_len,
 
 
 json_t *
-TALER_EXCHANGE_keys_to_json (const struct TALER_EXCHANGE_Keys *kd)
+TALER_DONAU_keys_to_json (const struct TALER_DONAU_Keys *kd)
 {
   struct GNUNET_TIME_Timestamp now;
   json_t *keys;
@@ -1956,7 +1956,7 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
   GNUNET_assert (NULL != signkeys);
   for (unsigned int i = 0; i<kd->num_sign_keys; i++)
   {
-    const struct TALER_EXCHANGE_SigningPublicKey *sk = &kd->sign_keys[i];
+    const struct TALER_DONAU_SigningPublicKey *sk = &kd->sign_keys[i];
     json_t *signkey;
 
     if (GNUNET_TIME_timestamp_cmp (now,
@@ -1989,7 +1989,7 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
                                                 false);
     for (unsigned int i = 0; i<kd->num_denom_keys; i++)
     {
-      const struct TALER_EXCHANGE_DenomPublicKey *dk = &kd->denom_keys[i];
+      const struct TALER_DONAU_DenomPublicKey *dk = &kd->denom_keys[i];
       struct TALER_DenominationGroup meta = {
         .cipher = dk->key.cipher,
         .value = dk->value,
@@ -2072,7 +2072,7 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
   GNUNET_assert (NULL != auditors);
   for (unsigned int i = 0; i<kd->num_auditors; i++)
   {
-    const struct TALER_EXCHANGE_AuditorInformation *ai = &kd->auditors[i];
+    const struct TALER_DONAU_AuditorInformation *ai = &kd->auditors[i];
     json_t *a;
     json_t *adenoms;
 
@@ -2080,9 +2080,9 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
     GNUNET_assert (NULL != adenoms);
     for (unsigned int j = 0; j<ai->num_denom_keys; j++)
     {
-      const struct TALER_EXCHANGE_AuditorDenominationInfo *adi =
+      const struct TALER_DONAU_AuditorDenominationInfo *adi =
         &ai->denom_keys[j];
-      const struct TALER_EXCHANGE_DenomPublicKey *dk =
+      const struct TALER_DONAU_DenomPublicKey *dk =
         &kd->denom_keys[adi->denom_key_offset];
       json_t *k;
 
@@ -2118,7 +2118,7 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
   GNUNET_assert (NULL != global_fees);
   for (unsigned int i = 0; i<kd->num_global_fees; i++)
   {
-    const struct TALER_EXCHANGE_GlobalFee *gf
+    const struct TALER_DONAU_GlobalFee *gf
       = &kd->global_fees[i];
 
     if (GNUNET_TIME_absolute_is_past (gf->end_date.abs_time))
@@ -2147,7 +2147,7 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
   GNUNET_assert (NULL != accounts);
   for (unsigned int i = 0; i<kd->accounts_len; i++)
   {
-    const struct TALER_EXCHANGE_WireAccount *acc
+    const struct TALER_DONAU_WireAccount *acc
       = &kd->accounts[i];
     json_t *credit_restrictions;
     json_t *debit_restrictions;
@@ -2186,13 +2186,13 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
   GNUNET_assert (NULL != wire_fees);
   for (unsigned int i = 0; i<kd->fees_len; i++)
   {
-    const struct TALER_EXCHANGE_WireFeesByMethod *fbw
+    const struct TALER_DONAU_WireFeesByMethod *fbw
       = &kd->fees[i];
     json_t *wf;
 
     wf = json_array ();
     GNUNET_assert (NULL != wf);
-    for (struct TALER_EXCHANGE_WireAggregateFees *p = fbw->fees_head;
+    for (struct TALER_DONAU_WireAggregateFees *p = fbw->fees_head;
          NULL != p;
          p = p->next)
     {
@@ -2222,7 +2222,7 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
   GNUNET_assert (NULL != recoup);
   for (unsigned int i = 0; i<kd->num_denom_keys; i++)
   {
-    const struct TALER_EXCHANGE_DenomPublicKey *dk
+    const struct TALER_DONAU_DenomPublicKey *dk
       = &kd->denom_keys[i];
     if (! dk->revoked)
       continue;
@@ -2302,15 +2302,15 @@ TALER_EXCHANGE_keys_to_json (const struct 
TALER_EXCHANGE_Keys *kd)
     );
   return GNUNET_JSON_PACK (
     GNUNET_JSON_pack_uint64 ("version",
-                             EXCHANGE_SERIALIZATION_FORMAT_VERSION),
+                             DONAU_SERIALIZATION_FORMAT_VERSION),
     GNUNET_JSON_pack_allow_null (
       GNUNET_JSON_pack_timestamp ("expire",
                                   kd->key_data_expiration)),
-    GNUNET_JSON_pack_string ("exchange_url",
-                             kd->exchange_url),
+    GNUNET_JSON_pack_string ("donau_url",
+                             kd->donau_url),
     GNUNET_JSON_pack_object_steal ("keys",
                                    keys));
 }
 
 
-/* end of exchange_api_handle.c */
+/* end of donau_api_handle.c */
diff --git a/src/lib/exchange_api_handle.h b/src/lib/donau_api_handle.h
similarity index 80%
rename from src/lib/exchange_api_handle.h
rename to src/lib/donau_api_handle.h
index 7c01b9a..600aa7d 100644
--- a/src/lib/exchange_api_handle.h
+++ b/src/lib/donau_api_handle.h
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,16 +15,16 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_handle.h
- * @brief Internal interface to the handle part of the exchange's HTTP API
+ * @file lib/donau_api_handle.h
+ * @brief Internal interface to the handle part of the donau's HTTP API
  * @author Christian Grothoff
  */
-#ifndef EXCHANGE_API_HANDLE_H
-#define EXCHANGE_API_HANDLE_H
+#ifndef DONAU_API_HANDLE_H
+#define DONAU_API_HANDLE_H
 
 #include <gnunet/gnunet_curl_lib.h>
 #include "taler_auditor_service.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_util.h"
 #include "taler_curl_lib.h"
 
@@ -55,10 +55,10 @@ typedef void
  */
 void
 TEAH_get_auditors_for_dc (
-  struct TALER_EXCHANGE_Keys *keys,
+  struct TALER_DONAU_Keys *keys,
   TEAH_AuditorCallback ac,
   void *ac_cls);
 
 
-/* end of exchange_api_handle.h */
+/* end of donau_api_handle.h */
 #endif
diff --git a/src/lib/exchange_api_reserves_close.c 
b/src/lib/donau_api_reserves_close.c
similarity index 87%
rename from src/lib/exchange_api_reserves_close.c
rename to src/lib/donau_api_reserves_close.c
index a3769a2..6285413 100644
--- a/src/lib/exchange_api_reserves_close.c
+++ b/src/lib/donau_api_reserves_close.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_reserves_close.c
+ * @file lib/donau_api_reserves_close.c
  * @brief Implementation of the POST /reserves/$RESERVE_PUB/close requests
  * @author Christian Grothoff
  */
@@ -25,17 +25,17 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A /reserves/$RID/close Handle
  */
-struct TALER_EXCHANGE_ReservesCloseHandle
+struct TALER_DONAU_ReservesCloseHandle
 {
 
   /**
@@ -57,7 +57,7 @@ struct TALER_EXCHANGE_ReservesCloseHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_ReservesCloseCallback cb;
+  TALER_DONAU_ReservesCloseCallback cb;
 
   /**
    * Closure for @a cb.
@@ -91,10 +91,10 @@ struct TALER_EXCHANGE_ReservesCloseHandle
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_close_ok (struct TALER_EXCHANGE_ReservesCloseHandle *rch,
+handle_reserves_close_ok (struct TALER_DONAU_ReservesCloseHandle *rch,
                           const json_t *j)
 {
-  struct TALER_EXCHANGE_ReserveCloseResult rs = {
+  struct TALER_DONAU_ReserveCloseResult rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_OK,
   };
@@ -130,10 +130,10 @@ handle_reserves_close_ok (struct 
TALER_EXCHANGE_ReservesCloseHandle *rch,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_close_kyc (struct TALER_EXCHANGE_ReservesCloseHandle *rch,
+handle_reserves_close_kyc (struct TALER_DONAU_ReservesCloseHandle *rch,
                            const json_t *j)
 {
-  struct TALER_EXCHANGE_ReserveCloseResult rs = {
+  struct TALER_DONAU_ReserveCloseResult rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS,
   };
@@ -168,7 +168,7 @@ handle_reserves_close_kyc (struct 
TALER_EXCHANGE_ReservesCloseHandle *rch,
  * Function called when we're done processing the
  * HTTP /reserves/$RID/close request.
  *
- * @param cls the `struct TALER_EXCHANGE_ReservesCloseHandle`
+ * @param cls the `struct TALER_DONAU_ReservesCloseHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -177,9 +177,9 @@ handle_reserves_close_finished (void *cls,
                                 long response_code,
                                 const void *response)
 {
-  struct TALER_EXCHANGE_ReservesCloseHandle *rch = cls;
+  struct TALER_DONAU_ReservesCloseHandle *rch = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_ReserveCloseResult rs = {
+  struct TALER_DONAU_ReserveCloseResult rs = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -201,14 +201,14 @@ handle_reserves_close_finished (void *cls,
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
     rs.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_FORBIDDEN:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
@@ -258,25 +258,25 @@ handle_reserves_close_finished (void *cls,
              &rs);
     rch->cb = NULL;
   }
-  TALER_EXCHANGE_reserves_close_cancel (rch);
+  TALER_DONAU_reserves_close_cancel (rch);
 }
 
 
-struct TALER_EXCHANGE_ReservesCloseHandle *
-TALER_EXCHANGE_reserves_close (
+struct TALER_DONAU_ReservesCloseHandle *
+TALER_DONAU_reserves_close (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
   const char *target_payto_uri,
-  TALER_EXCHANGE_ReservesCloseCallback cb,
+  TALER_DONAU_ReservesCloseCallback cb,
   void *cb_cls)
 {
-  struct TALER_EXCHANGE_ReservesCloseHandle *rch;
+  struct TALER_DONAU_ReservesCloseHandle *rch;
   CURL *eh;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 32];
   struct TALER_PaytoHashP h_payto;
 
-  rch = GNUNET_new (struct TALER_EXCHANGE_ReservesCloseHandle);
+  rch = GNUNET_new (struct TALER_DONAU_ReservesCloseHandle);
   rch->cb = cb;
   rch->cb_cls = cb_cls;
   rch->ts = GNUNET_TIME_timestamp_get ();
@@ -305,7 +305,7 @@ TALER_EXCHANGE_reserves_close (
     GNUNET_free (rch);
     return NULL;
   }
-  eh = TALER_EXCHANGE_curl_easy_get_ (rch->url);
+  eh = TALER_DONAU_curl_easy_get_ (rch->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -356,8 +356,8 @@ TALER_EXCHANGE_reserves_close (
 
 
 void
-TALER_EXCHANGE_reserves_close_cancel (
-  struct TALER_EXCHANGE_ReservesCloseHandle *rch)
+TALER_DONAU_reserves_close_cancel (
+  struct TALER_DONAU_ReservesCloseHandle *rch)
 {
   if (NULL != rch->job)
   {
@@ -370,4 +370,4 @@ TALER_EXCHANGE_reserves_close_cancel (
 }
 
 
-/* end of exchange_api_reserves_close.c */
+/* end of donau_api_reserves_close.c */
diff --git a/src/lib/exchange_api_reserves_get.c 
b/src/lib/donau_api_reserves_get.c
similarity index 84%
rename from src/lib/exchange_api_reserves_get.c
rename to src/lib/donau_api_reserves_get.c
index 7b59ba9..c075eb1 100644
--- a/src/lib/exchange_api_reserves_get.c
+++ b/src/lib/donau_api_reserves_get.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_reserves_get.c
+ * @file lib/donau_api_reserves_get.c
  * @brief Implementation of the GET /reserves/$RESERVE_PUB requests
  * @author Christian Grothoff
  */
@@ -25,17 +25,17 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A /reserves/ GET Handle
  */
-struct TALER_EXCHANGE_ReservesGetHandle
+struct TALER_DONAU_ReservesGetHandle
 {
 
   /**
@@ -51,7 +51,7 @@ struct TALER_EXCHANGE_ReservesGetHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_ReservesGetCallback cb;
+  TALER_DONAU_ReservesGetCallback cb;
 
   /**
    * Public key of the reserve we are querying.
@@ -75,10 +75,10 @@ struct TALER_EXCHANGE_ReservesGetHandle
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_get_ok (struct TALER_EXCHANGE_ReservesGetHandle *rgh,
+handle_reserves_get_ok (struct TALER_DONAU_ReservesGetHandle *rgh,
                         const json_t *j)
 {
-  struct TALER_EXCHANGE_ReserveSummary rs = {
+  struct TALER_DONAU_ReserveSummary rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_OK
   };
@@ -108,7 +108,7 @@ handle_reserves_get_ok (struct 
TALER_EXCHANGE_ReservesGetHandle *rgh,
  * Function called when we're done processing the
  * HTTP /reserves/ GET request.
  *
- * @param cls the `struct TALER_EXCHANGE_ReservesGetHandle`
+ * @param cls the `struct TALER_DONAU_ReservesGetHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -117,9 +117,9 @@ handle_reserves_get_finished (void *cls,
                               long response_code,
                               const void *response)
 {
-  struct TALER_EXCHANGE_ReservesGetHandle *rgh = cls;
+  struct TALER_DONAU_ReservesGetHandle *rgh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_ReserveSummary rs = {
+  struct TALER_DONAU_ReserveSummary rs = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -140,7 +140,7 @@ handle_reserves_get_finished (void *cls,
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     rs.hr.ec = TALER_JSON_get_error_code (j);
     rs.hr.hint = TALER_JSON_get_error_hint (j);
@@ -175,20 +175,20 @@ handle_reserves_get_finished (void *cls,
              &rs);
     rgh->cb = NULL;
   }
-  TALER_EXCHANGE_reserves_get_cancel (rgh);
+  TALER_DONAU_reserves_get_cancel (rgh);
 }
 
 
-struct TALER_EXCHANGE_ReservesGetHandle *
-TALER_EXCHANGE_reserves_get (
+struct TALER_DONAU_ReservesGetHandle *
+TALER_DONAU_reserves_get (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   struct GNUNET_TIME_Relative timeout,
-  TALER_EXCHANGE_ReservesGetCallback cb,
+  TALER_DONAU_ReservesGetCallback cb,
   void *cb_cls)
 {
-  struct TALER_EXCHANGE_ReservesGetHandle *rgh;
+  struct TALER_DONAU_ReservesGetHandle *rgh;
   CURL *eh;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 16 + 32];
 
@@ -221,7 +221,7 @@ TALER_EXCHANGE_reserves_get (
                        pub_str,
                        timeout_str);
   }
-  rgh = GNUNET_new (struct TALER_EXCHANGE_ReservesGetHandle);
+  rgh = GNUNET_new (struct TALER_DONAU_ReservesGetHandle);
   rgh->cb = cb;
   rgh->cb_cls = cb_cls;
   rgh->reserve_pub = *reserve_pub;
@@ -233,7 +233,7 @@ TALER_EXCHANGE_reserves_get (
     GNUNET_free (rgh);
     return NULL;
   }
-  eh = TALER_EXCHANGE_curl_easy_get_ (rgh->url);
+  eh = TALER_DONAU_curl_easy_get_ (rgh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -250,8 +250,8 @@ TALER_EXCHANGE_reserves_get (
 
 
 void
-TALER_EXCHANGE_reserves_get_cancel (
-  struct TALER_EXCHANGE_ReservesGetHandle *rgh)
+TALER_DONAU_reserves_get_cancel (
+  struct TALER_DONAU_ReservesGetHandle *rgh)
 {
   if (NULL != rgh->job)
   {
@@ -263,4 +263,4 @@ TALER_EXCHANGE_reserves_get_cancel (
 }
 
 
-/* end of exchange_api_reserves_get.c */
+/* end of donau_api_reserves_get.c */
diff --git a/src/lib/exchange_api_reserves_history.c 
b/src/lib/donau_api_reserves_history.c
similarity index 82%
rename from src/lib/exchange_api_reserves_history.c
rename to src/lib/donau_api_reserves_history.c
index d4366eb..9bf4763 100644
--- a/src/lib/exchange_api_reserves_history.c
+++ b/src/lib/donau_api_reserves_history.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_reserves_history.c
+ * @file lib/donau_api_reserves_history.c
  * @brief Implementation of the POST /reserves/$RESERVE_PUB/history requests
  * @author Christian Grothoff
  */
@@ -25,23 +25,23 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A /reserves/$RID/history Handle
  */
-struct TALER_EXCHANGE_ReservesHistoryHandle
+struct TALER_DONAU_ReservesHistoryHandle
 {
 
   /**
-   * The keys of the exchange this request handle will use
+   * The keys of the donau this request handle will use
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * The url for this request.
@@ -62,7 +62,7 @@ struct TALER_EXCHANGE_ReservesHistoryHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_ReservesHistoryCallback cb;
+  TALER_DONAU_ReservesHistoryCallback cb;
 
   /**
    * Closure for @a cb.
@@ -96,12 +96,12 @@ struct TALER_EXCHANGE_ReservesHistoryHandle
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_history_ok (struct TALER_EXCHANGE_ReservesHistoryHandle *rsh,
+handle_reserves_history_ok (struct TALER_DONAU_ReservesHistoryHandle *rsh,
                             const json_t *j)
 {
   const json_t *history;
   unsigned int len;
-  struct TALER_EXCHANGE_ReserveHistory rs = {
+  struct TALER_DONAU_ReserveHistory rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_OK,
     .ts = rsh->ts,
@@ -126,12 +126,12 @@ handle_reserves_history_ok (struct 
TALER_EXCHANGE_ReservesHistoryHandle *rsh,
   }
   len = json_array_size (history);
   {
-    struct TALER_EXCHANGE_ReserveHistoryEntry *rhistory;
+    struct TALER_DONAU_ReserveHistoryEntry *rhistory;
 
     rhistory = GNUNET_new_array (len,
-                                 struct TALER_EXCHANGE_ReserveHistoryEntry);
+                                 struct TALER_DONAU_ReserveHistoryEntry);
     if (GNUNET_OK !=
-        TALER_EXCHANGE_parse_reserve_history (rsh->keys,
+        TALER_DONAU_parse_reserve_history (rsh->keys,
                                               history,
                                               &rsh->reserve_pub,
                                               rs.details.ok.balance.currency,
@@ -141,7 +141,7 @@ handle_reserves_history_ok (struct 
TALER_EXCHANGE_ReservesHistoryHandle *rsh,
                                               rhistory))
     {
       GNUNET_break_op (0);
-      TALER_EXCHANGE_free_reserve_history (len,
+      TALER_DONAU_free_reserve_history (len,
                                            rhistory);
       return GNUNET_SYSERR;
     }
@@ -153,7 +153,7 @@ handle_reserves_history_ok (struct 
TALER_EXCHANGE_ReservesHistoryHandle *rsh,
                &rs);
       rsh->cb = NULL;
     }
-    TALER_EXCHANGE_free_reserve_history (len,
+    TALER_DONAU_free_reserve_history (len,
                                          rhistory);
   }
   return GNUNET_OK;
@@ -164,7 +164,7 @@ handle_reserves_history_ok (struct 
TALER_EXCHANGE_ReservesHistoryHandle *rsh,
  * Function called when we're done processing the
  * HTTP /reserves/$RID/history request.
  *
- * @param cls the `struct TALER_EXCHANGE_ReservesHistoryHandle`
+ * @param cls the `struct TALER_DONAU_ReservesHistoryHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -173,9 +173,9 @@ handle_reserves_history_finished (void *cls,
                                   long response_code,
                                   const void *response)
 {
-  struct TALER_EXCHANGE_ReservesHistoryHandle *rsh = cls;
+  struct TALER_DONAU_ReservesHistoryHandle *rsh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_ReserveHistory rs = {
+  struct TALER_DONAU_ReserveHistory rs = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -197,14 +197,14 @@ handle_reserves_history_finished (void *cls,
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
     rs.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_FORBIDDEN:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
@@ -244,25 +244,25 @@ handle_reserves_history_finished (void *cls,
              &rs);
     rsh->cb = NULL;
   }
-  TALER_EXCHANGE_reserves_history_cancel (rsh);
+  TALER_DONAU_reserves_history_cancel (rsh);
 }
 
 
-struct TALER_EXCHANGE_ReservesHistoryHandle *
-TALER_EXCHANGE_reserves_history (
+struct TALER_DONAU_ReservesHistoryHandle *
+TALER_DONAU_reserves_history (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *keys,
+  struct TALER_DONAU_Keys *keys,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
-  TALER_EXCHANGE_ReservesHistoryCallback cb,
+  TALER_DONAU_ReservesHistoryCallback cb,
   void *cb_cls)
 {
-  struct TALER_EXCHANGE_ReservesHistoryHandle *rsh;
+  struct TALER_DONAU_ReservesHistoryHandle *rsh;
   CURL *eh;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 32];
-  const struct TALER_EXCHANGE_GlobalFee *gf;
+  const struct TALER_DONAU_GlobalFee *gf;
 
-  rsh = GNUNET_new (struct TALER_EXCHANGE_ReservesHistoryHandle);
+  rsh = GNUNET_new (struct TALER_DONAU_ReservesHistoryHandle);
   rsh->cb = cb;
   rsh->cb_cls = cb_cls;
   rsh->ts = GNUNET_TIME_timestamp_get ();
@@ -291,7 +291,7 @@ TALER_EXCHANGE_reserves_history (
     GNUNET_free (rsh);
     return NULL;
   }
-  eh = TALER_EXCHANGE_curl_easy_get_ (rsh->url);
+  eh = TALER_DONAU_curl_easy_get_ (rsh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -299,7 +299,7 @@ TALER_EXCHANGE_reserves_history (
     GNUNET_free (rsh);
     return NULL;
   }
-  gf = TALER_EXCHANGE_get_global_fee (keys,
+  gf = TALER_DONAU_get_global_fee (keys,
                                       rsh->ts);
   if (NULL == gf)
   {
@@ -334,7 +334,7 @@ TALER_EXCHANGE_reserves_history (
     }
     json_decref (history_obj);
   }
-  rsh->keys = TALER_EXCHANGE_keys_incref (keys);
+  rsh->keys = TALER_DONAU_keys_incref (keys);
   rsh->job = GNUNET_CURL_job_add2 (ctx,
                                    eh,
                                    rsh->post_ctx.headers,
@@ -345,8 +345,8 @@ TALER_EXCHANGE_reserves_history (
 
 
 void
-TALER_EXCHANGE_reserves_history_cancel (
-  struct TALER_EXCHANGE_ReservesHistoryHandle *rsh)
+TALER_DONAU_reserves_history_cancel (
+  struct TALER_DONAU_ReservesHistoryHandle *rsh)
 {
   if (NULL != rsh->job)
   {
@@ -355,9 +355,9 @@ TALER_EXCHANGE_reserves_history_cancel (
   }
   TALER_curl_easy_post_finished (&rsh->post_ctx);
   GNUNET_free (rsh->url);
-  TALER_EXCHANGE_keys_decref (rsh->keys);
+  TALER_DONAU_keys_decref (rsh->keys);
   GNUNET_free (rsh);
 }
 
 
-/* end of exchange_api_reserves_history.c */
+/* end of donau_api_reserves_history.c */
diff --git a/src/lib/exchange_api_reserves_open.c 
b/src/lib/donau_api_reserves_open.c
similarity index 88%
rename from src/lib/exchange_api_reserves_open.c
rename to src/lib/donau_api_reserves_open.c
index 536efdb..dc35f3a 100644
--- a/src/lib/exchange_api_reserves_open.c
+++ b/src/lib/donau_api_reserves_open.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_reserves_open.c
+ * @file lib/donau_api_reserves_open.c
  * @brief Implementation of the POST /reserves/$RESERVE_PUB/open requests
  * @author Christian Grothoff
  */
@@ -25,12 +25,12 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_common.h"
-#include "exchange_api_handle.h"
+#include "donau_api_common.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
@@ -63,13 +63,13 @@ struct CoinData
 /**
  * @brief A /reserves/$RID/open Handle
  */
-struct TALER_EXCHANGE_ReservesOpenHandle
+struct TALER_DONAU_ReservesOpenHandle
 {
 
   /**
-   * The keys of the exchange this request handle will use
+   * The keys of the donau this request handle will use
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * The url for this request.
@@ -90,7 +90,7 @@ struct TALER_EXCHANGE_ReservesOpenHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_ReservesOpenCallback cb;
+  TALER_DONAU_ReservesOpenCallback cb;
 
   /**
    * Closure for @a cb.
@@ -134,10 +134,10 @@ struct TALER_EXCHANGE_ReservesOpenHandle
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_open_ok (struct TALER_EXCHANGE_ReservesOpenHandle *roh,
+handle_reserves_open_ok (struct TALER_DONAU_ReservesOpenHandle *roh,
                          const json_t *j)
 {
-  struct TALER_EXCHANGE_ReserveOpenResult rs = {
+  struct TALER_DONAU_ReserveOpenResult rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_OK,
   };
@@ -175,10 +175,10 @@ handle_reserves_open_ok (struct 
TALER_EXCHANGE_ReservesOpenHandle *roh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_open_pr (struct TALER_EXCHANGE_ReservesOpenHandle *roh,
+handle_reserves_open_pr (struct TALER_DONAU_ReservesOpenHandle *roh,
                          const json_t *j)
 {
-  struct TALER_EXCHANGE_ReserveOpenResult rs = {
+  struct TALER_DONAU_ReserveOpenResult rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_PAYMENT_REQUIRED,
   };
@@ -216,10 +216,10 @@ handle_reserves_open_pr (struct 
TALER_EXCHANGE_ReservesOpenHandle *roh,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_open_kyc (struct TALER_EXCHANGE_ReservesOpenHandle *roh,
+handle_reserves_open_kyc (struct TALER_DONAU_ReservesOpenHandle *roh,
                           const json_t *j)
 {
-  struct TALER_EXCHANGE_ReserveOpenResult rs = {
+  struct TALER_DONAU_ReserveOpenResult rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS,
   };
@@ -254,7 +254,7 @@ handle_reserves_open_kyc (struct 
TALER_EXCHANGE_ReservesOpenHandle *roh,
  * Function called when we're done processing the
  * HTTP /reserves/$RID/open request.
  *
- * @param cls the `struct TALER_EXCHANGE_ReservesOpenHandle`
+ * @param cls the `struct TALER_DONAU_ReservesOpenHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -263,9 +263,9 @@ handle_reserves_open_finished (void *cls,
                                long response_code,
                                const void *response)
 {
-  struct TALER_EXCHANGE_ReservesOpenHandle *roh = cls;
+  struct TALER_DONAU_ReservesOpenHandle *roh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_ReserveOpenResult rs = {
+  struct TALER_DONAU_ReserveOpenResult rs = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -287,7 +287,7 @@ handle_reserves_open_finished (void *cls,
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     json_dumpf (j,
@@ -307,7 +307,7 @@ handle_reserves_open_finished (void *cls,
     }
     break;
   case MHD_HTTP_FORBIDDEN:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
@@ -323,7 +323,7 @@ handle_reserves_open_finished (void *cls,
     {
       const struct CoinData *cd = NULL;
       struct TALER_CoinSpendPublicKeyP coin_pub;
-      const struct TALER_EXCHANGE_DenomPublicKey *dk;
+      const struct TALER_DONAU_DenomPublicKey *dk;
       struct GNUNET_JSON_Specification spec[] = {
         GNUNET_JSON_spec_fixed_auto ("coin_pub",
                                      &coin_pub),
@@ -359,7 +359,7 @@ handle_reserves_open_finished (void *cls,
         rs.hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
         break;
       }
-      dk = TALER_EXCHANGE_get_denomination_key_by_hash (roh->keys,
+      dk = TALER_DONAU_get_denomination_key_by_hash (roh->keys,
                                                         &cd->h_denom_pub);
       if (NULL == dk)
       {
@@ -369,7 +369,7 @@ handle_reserves_open_finished (void *cls,
         break;
       }
       if (GNUNET_OK !=
-          TALER_EXCHANGE_check_coin_conflict_ (roh->keys,
+          TALER_DONAU_check_coin_conflict_ (roh->keys,
                                                j,
                                                dk,
                                                &coin_pub,
@@ -418,31 +418,31 @@ handle_reserves_open_finished (void *cls,
              &rs);
     roh->cb = NULL;
   }
-  TALER_EXCHANGE_reserves_open_cancel (roh);
+  TALER_DONAU_reserves_open_cancel (roh);
 }
 
 
-struct TALER_EXCHANGE_ReservesOpenHandle *
-TALER_EXCHANGE_reserves_open (
+struct TALER_DONAU_ReservesOpenHandle *
+TALER_DONAU_reserves_open (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *keys,
+  struct TALER_DONAU_Keys *keys,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
   const struct TALER_Amount *reserve_contribution,
   unsigned int coin_payments_length,
-  const struct TALER_EXCHANGE_PurseDeposit coin_payments[
+  const struct TALER_DONAU_PurseDeposit coin_payments[
     static coin_payments_length],
   struct GNUNET_TIME_Timestamp expiration_time,
   uint32_t min_purses,
-  TALER_EXCHANGE_ReservesOpenCallback cb,
+  TALER_DONAU_ReservesOpenCallback cb,
   void *cb_cls)
 {
-  struct TALER_EXCHANGE_ReservesOpenHandle *roh;
+  struct TALER_DONAU_ReservesOpenHandle *roh;
   CURL *eh;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 32];
   json_t *cpa;
 
-  roh = GNUNET_new (struct TALER_EXCHANGE_ReservesOpenHandle);
+  roh = GNUNET_new (struct TALER_DONAU_ReservesOpenHandle);
   roh->cb = cb;
   roh->cb_cls = cb_cls;
   roh->ts = GNUNET_TIME_timestamp_get ();
@@ -471,7 +471,7 @@ TALER_EXCHANGE_reserves_open (
     GNUNET_free (roh);
     return NULL;
   }
-  eh = TALER_EXCHANGE_curl_easy_get_ (roh->url);
+  eh = TALER_DONAU_curl_easy_get_ (roh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -491,7 +491,7 @@ TALER_EXCHANGE_reserves_open (
   GNUNET_assert (NULL != cpa);
   for (unsigned int i = 0; i<coin_payments_length; i++)
   {
-    const struct TALER_EXCHANGE_PurseDeposit *pd = &coin_payments[i];
+    const struct TALER_DONAU_PurseDeposit *pd = &coin_payments[i];
     const struct TALER_AgeCommitmentProof *acp = pd->age_commitment_proof;
     struct TALER_AgeCommitmentHash ahac;
     struct TALER_AgeCommitmentHash *achp = NULL;
@@ -561,7 +561,7 @@ TALER_EXCHANGE_reserves_open (
     }
     json_decref (open_obj);
   }
-  roh->keys = TALER_EXCHANGE_keys_incref (keys);
+  roh->keys = TALER_DONAU_keys_incref (keys);
   roh->job = GNUNET_CURL_job_add2 (ctx,
                                    eh,
                                    roh->post_ctx.headers,
@@ -572,8 +572,8 @@ TALER_EXCHANGE_reserves_open (
 
 
 void
-TALER_EXCHANGE_reserves_open_cancel (
-  struct TALER_EXCHANGE_ReservesOpenHandle *roh)
+TALER_DONAU_reserves_open_cancel (
+  struct TALER_DONAU_ReservesOpenHandle *roh)
 {
   if (NULL != roh->job)
   {
@@ -583,9 +583,9 @@ TALER_EXCHANGE_reserves_open_cancel (
   TALER_curl_easy_post_finished (&roh->post_ctx);
   GNUNET_free (roh->coins);
   GNUNET_free (roh->url);
-  TALER_EXCHANGE_keys_decref (roh->keys);
+  TALER_DONAU_keys_decref (roh->keys);
   GNUNET_free (roh);
 }
 
 
-/* end of exchange_api_reserves_open.c */
+/* end of donau_api_reserves_open.c */
diff --git a/src/lib/exchange_api_reserves_status.c 
b/src/lib/donau_api_reserves_status.c
similarity index 82%
rename from src/lib/exchange_api_reserves_status.c
rename to src/lib/donau_api_reserves_status.c
index 2ea64e8..0d3452e 100644
--- a/src/lib/exchange_api_reserves_status.c
+++ b/src/lib/donau_api_reserves_status.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_reserves_status.c
+ * @file lib/donau_api_reserves_status.c
  * @brief Implementation of the POST /reserves/$RESERVE_PUB/status requests
  * @author Christian Grothoff
  */
@@ -25,23 +25,23 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A /reserves/$RID/status Handle
  */
-struct TALER_EXCHANGE_ReservesStatusHandle
+struct TALER_DONAU_ReservesStatusHandle
 {
 
   /**
-   * The keys of the exchange this request handle will use
+   * The keys of the donau this request handle will use
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * The url for this request.
@@ -62,7 +62,7 @@ struct TALER_EXCHANGE_ReservesStatusHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_ReservesStatusCallback cb;
+  TALER_DONAU_ReservesStatusCallback cb;
 
   /**
    * Public key of the reserve we are querying.
@@ -86,12 +86,12 @@ struct TALER_EXCHANGE_ReservesStatusHandle
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-handle_reserves_status_ok (struct TALER_EXCHANGE_ReservesStatusHandle *rsh,
+handle_reserves_status_ok (struct TALER_DONAU_ReservesStatusHandle *rsh,
                            const json_t *j)
 {
   const json_t *history;
   unsigned int len;
-  struct TALER_EXCHANGE_ReserveStatus rs = {
+  struct TALER_DONAU_ReserveStatus rs = {
     .hr.reply = j,
     .hr.http_status = MHD_HTTP_OK
   };
@@ -114,12 +114,12 @@ handle_reserves_status_ok (struct 
TALER_EXCHANGE_ReservesStatusHandle *rsh,
   }
   len = json_array_size (history);
   {
-    struct TALER_EXCHANGE_ReserveHistoryEntry *rhistory;
+    struct TALER_DONAU_ReserveHistoryEntry *rhistory;
 
     rhistory = GNUNET_new_array (len,
-                                 struct TALER_EXCHANGE_ReserveHistoryEntry);
+                                 struct TALER_DONAU_ReserveHistoryEntry);
     if (GNUNET_OK !=
-        TALER_EXCHANGE_parse_reserve_history (rsh->keys,
+        TALER_DONAU_parse_reserve_history (rsh->keys,
                                               history,
                                               &rsh->reserve_pub,
                                               rs.details.ok.balance.currency,
@@ -129,7 +129,7 @@ handle_reserves_status_ok (struct 
TALER_EXCHANGE_ReservesStatusHandle *rsh,
                                               rhistory))
     {
       GNUNET_break_op (0);
-      TALER_EXCHANGE_free_reserve_history (len,
+      TALER_DONAU_free_reserve_history (len,
                                            rhistory);
       GNUNET_JSON_parse_free (spec);
       return GNUNET_SYSERR;
@@ -142,7 +142,7 @@ handle_reserves_status_ok (struct 
TALER_EXCHANGE_ReservesStatusHandle *rsh,
                &rs);
       rsh->cb = NULL;
     }
-    TALER_EXCHANGE_free_reserve_history (len,
+    TALER_DONAU_free_reserve_history (len,
                                          rhistory);
   }
   return GNUNET_OK;
@@ -153,7 +153,7 @@ handle_reserves_status_ok (struct 
TALER_EXCHANGE_ReservesStatusHandle *rsh,
  * Function called when we're done processing the
  * HTTP /reserves/$RID/status request.
  *
- * @param cls the `struct TALER_EXCHANGE_ReservesStatusHandle`
+ * @param cls the `struct TALER_DONAU_ReservesStatusHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -162,9 +162,9 @@ handle_reserves_status_finished (void *cls,
                                  long response_code,
                                  const void *response)
 {
-  struct TALER_EXCHANGE_ReservesStatusHandle *rsh = cls;
+  struct TALER_DONAU_ReservesStatusHandle *rsh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_ReserveStatus rs = {
+  struct TALER_DONAU_ReserveStatus rs = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -185,14 +185,14 @@ handle_reserves_status_finished (void *cls,
     }
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
     rs.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_FORBIDDEN:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
     rs.hr.ec = TALER_JSON_get_error_code (j);
@@ -227,27 +227,27 @@ handle_reserves_status_finished (void *cls,
              &rs);
     rsh->cb = NULL;
   }
-  TALER_EXCHANGE_reserves_status_cancel (rsh);
+  TALER_DONAU_reserves_status_cancel (rsh);
 }
 
 
-struct TALER_EXCHANGE_ReservesStatusHandle *
-TALER_EXCHANGE_reserves_status (
+struct TALER_DONAU_ReservesStatusHandle *
+TALER_DONAU_reserves_status (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *keys,
+  struct TALER_DONAU_Keys *keys,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
-  TALER_EXCHANGE_ReservesStatusCallback cb,
+  TALER_DONAU_ReservesStatusCallback cb,
   void *cb_cls)
 {
-  struct TALER_EXCHANGE_ReservesStatusHandle *rsh;
+  struct TALER_DONAU_ReservesStatusHandle *rsh;
   CURL *eh;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 32];
   struct TALER_ReserveSignatureP reserve_sig;
   struct GNUNET_TIME_Timestamp ts
     = GNUNET_TIME_timestamp_get ();
 
-  rsh = GNUNET_new (struct TALER_EXCHANGE_ReservesStatusHandle);
+  rsh = GNUNET_new (struct TALER_DONAU_ReservesStatusHandle);
   rsh->cb = cb;
   rsh->cb_cls = cb_cls;
   GNUNET_CRYPTO_eddsa_key_get_public (&reserve_priv->eddsa_priv,
@@ -275,7 +275,7 @@ TALER_EXCHANGE_reserves_status (
     GNUNET_free (rsh);
     return NULL;
   }
-  eh = TALER_EXCHANGE_curl_easy_get_ (rsh->url);
+  eh = TALER_DONAU_curl_easy_get_ (rsh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -307,7 +307,7 @@ TALER_EXCHANGE_reserves_status (
     }
     json_decref (status_obj);
   }
-  rsh->keys = TALER_EXCHANGE_keys_incref (keys);
+  rsh->keys = TALER_DONAU_keys_incref (keys);
   rsh->job = GNUNET_CURL_job_add2 (ctx,
                                    eh,
                                    rsh->post_ctx.headers,
@@ -318,8 +318,8 @@ TALER_EXCHANGE_reserves_status (
 
 
 void
-TALER_EXCHANGE_reserves_status_cancel (
-  struct TALER_EXCHANGE_ReservesStatusHandle *rsh)
+TALER_DONAU_reserves_status_cancel (
+  struct TALER_DONAU_ReservesStatusHandle *rsh)
 {
   if (NULL != rsh->job)
   {
@@ -328,9 +328,9 @@ TALER_EXCHANGE_reserves_status_cancel (
   }
   TALER_curl_easy_post_finished (&rsh->post_ctx);
   GNUNET_free (rsh->url);
-  TALER_EXCHANGE_keys_decref (rsh->keys);
+  TALER_DONAU_keys_decref (rsh->keys);
   GNUNET_free (rsh);
 }
 
 
-/* end of exchange_api_reserves_status.c */
+/* end of donau_api_reserves_status.c */
diff --git a/src/lib/exchange_api_transfers_get.c 
b/src/lib/donau_api_transfers_get.c
similarity index 81%
rename from src/lib/exchange_api_transfers_get.c
rename to src/lib/donau_api_transfers_get.c
index 14cf51f..ac8fc2b 100644
--- a/src/lib/exchange_api_transfers_get.c
+++ b/src/lib/donau_api_transfers_get.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_transfers_get.c
+ * @file lib/donau_api_transfers_get.c
  * @brief Implementation of the GET /transfers/ request
  * @author Christian Grothoff
  */
@@ -24,23 +24,23 @@
 #include <microhttpd.h> /* just for HTTP status codes */
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A /transfers/ GET Handle
  */
-struct TALER_EXCHANGE_TransfersGetHandle
+struct TALER_DONAU_TransfersGetHandle
 {
 
   /**
-   * The keys of the exchange this request handle will use
+   * The keys of the donau this request handle will use
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * The url for this request.
@@ -55,7 +55,7 @@ struct TALER_EXCHANGE_TransfersGetHandle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_TransfersGetCallback cb;
+  TALER_DONAU_TransfersGetCallback cb;
 
   /**
    * Closure for @a cb.
@@ -71,7 +71,7 @@ struct TALER_EXCHANGE_TransfersGetHandle
  * callback.  If not, return an error code.
  *
  * This code is very similar to
- * merchant_api_track_transfer.c::check_transfers_get_response_ok.
+ * charity_api_track_transfer.c::check_transfers_get_response_ok.
  * Any changes should likely be reflected there as well.
  *
  * @param wdh handle to the operation
@@ -81,35 +81,35 @@ struct TALER_EXCHANGE_TransfersGetHandle
  */
 static enum GNUNET_GenericReturnValue
 check_transfers_get_response_ok (
-  struct TALER_EXCHANGE_TransfersGetHandle *wdh,
+  struct TALER_DONAU_TransfersGetHandle *wdh,
   const json_t *json)
 {
   const json_t *details_j;
   struct TALER_Amount total_expected;
-  struct TALER_MerchantPublicKeyP merchant_pub;
-  struct TALER_EXCHANGE_TransfersGetResponse tgr = {
+  struct TALER_CharityPublicKeyP charity_pub;
+  struct TALER_DONAU_TransfersGetResponse tgr = {
     .hr.reply = json,
     .hr.http_status = MHD_HTTP_OK
   };
-  struct TALER_EXCHANGE_TransferData *td
+  struct TALER_DONAU_TransferData *td
     = &tgr.details.ok.td;
   struct GNUNET_JSON_Specification spec[] = {
     TALER_JSON_spec_amount_any ("total",
                                 &td->total_amount),
     TALER_JSON_spec_amount_any ("wire_fee",
                                 &td->wire_fee),
-    GNUNET_JSON_spec_fixed_auto ("merchant_pub",
-                                 &merchant_pub),
+    GNUNET_JSON_spec_fixed_auto ("charity_pub",
+                                 &charity_pub),
     GNUNET_JSON_spec_fixed_auto ("h_payto",
                                  &td->h_payto),
     GNUNET_JSON_spec_timestamp ("execution_time",
                                 &td->execution_time),
     GNUNET_JSON_spec_array_const ("deposits",
                                   &details_j),
-    GNUNET_JSON_spec_fixed_auto ("exchange_sig",
-                                 &td->exchange_sig),
-    GNUNET_JSON_spec_fixed_auto ("exchange_pub",
-                                 &td->exchange_pub),
+    GNUNET_JSON_spec_fixed_auto ("donau_sig",
+                                 &td->donau_sig),
+    GNUNET_JSON_spec_fixed_auto ("donau_pub",
+                                 &td->donau_pub),
     GNUNET_JSON_spec_end ()
   };
 
@@ -129,9 +129,9 @@ check_transfers_get_response_ok (
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
-      TALER_EXCHANGE_test_signing_key (
+      TALER_DONAU_test_signing_key (
         wdh->keys,
-        &td->exchange_pub))
+        &td->donau_pub))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -183,7 +183,7 @@ check_transfers_get_response_ok (
         return GNUNET_SYSERR;
       }
       /* build up big hash for signature checking later */
-      TALER_exchange_online_wire_deposit_append (
+      TALER_donau_online_wire_deposit_append (
         hash_context,
         &detail->h_contract_terms,
         td->execution_time,
@@ -198,14 +198,14 @@ check_transfers_get_response_ok (
       GNUNET_CRYPTO_hash_context_finish (hash_context,
                                          &h_details);
       if (GNUNET_OK !=
-          TALER_exchange_online_wire_deposit_verify (
+          TALER_donau_online_wire_deposit_verify (
             &td->total_amount,
             &td->wire_fee,
-            &merchant_pub,
+            &charity_pub,
             &td->h_payto,
             &h_details,
-            &td->exchange_pub,
-            &td->exchange_sig))
+            &td->donau_pub,
+            &td->donau_sig))
       {
         GNUNET_break_op (0);
         GNUNET_free (details);
@@ -242,7 +242,7 @@ check_transfers_get_response_ok (
  * Function called when we're done processing the
  * HTTP /transfers/ request.
  *
- * @param cls the `struct TALER_EXCHANGE_TransfersGetHandle`
+ * @param cls the `struct TALER_DONAU_TransfersGetHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -251,9 +251,9 @@ handle_transfers_get_finished (void *cls,
                                long response_code,
                                const void *response)
 {
-  struct TALER_EXCHANGE_TransfersGetHandle *wdh = cls;
+  struct TALER_DONAU_TransfersGetHandle *wdh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_TransfersGetResponse tgr = {
+  struct TALER_DONAU_TransfersGetResponse tgr = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -269,7 +269,7 @@ handle_transfers_get_finished (void *cls,
         check_transfers_get_response_ok (wdh,
                                          j))
     {
-      TALER_EXCHANGE_transfers_get_cancel (wdh);
+      TALER_DONAU_transfers_get_cancel (wdh);
       return;
     }
     GNUNET_break_op (0);
@@ -277,20 +277,20 @@ handle_transfers_get_finished (void *cls,
     tgr.hr.http_status = 0;
     break;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     tgr.hr.ec = TALER_JSON_get_error_code (j);
     tgr.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_FORBIDDEN:
-    /* Nothing really to verify, exchange says one of the signatures is
+    /* Nothing really to verify, donau says one of the signatures is
        invalid; as we checked them, this should never happen, we
        should pass the JSON reply to the application */
     tgr.hr.ec = TALER_JSON_get_error_code (j);
     tgr.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_NOT_FOUND:
-    /* Exchange does not know about transaction;
+    /* Donau does not know about transaction;
        we should pass the reply to the application */
     tgr.hr.ec = TALER_JSON_get_error_code (j);
     tgr.hr.hint = TALER_JSON_get_error_hint (j);
@@ -314,24 +314,24 @@ handle_transfers_get_finished (void *cls,
   }
   wdh->cb (wdh->cb_cls,
            &tgr);
-  TALER_EXCHANGE_transfers_get_cancel (wdh);
+  TALER_DONAU_transfers_get_cancel (wdh);
 }
 
 
-struct TALER_EXCHANGE_TransfersGetHandle *
-TALER_EXCHANGE_transfers_get (
+struct TALER_DONAU_TransfersGetHandle *
+TALER_DONAU_transfers_get (
   struct GNUNET_CURL_Context *ctx,
   const char *url,
-  struct TALER_EXCHANGE_Keys *keys,
+  struct TALER_DONAU_Keys *keys,
   const struct TALER_WireTransferIdentifierRawP *wtid,
-  TALER_EXCHANGE_TransfersGetCallback cb,
+  TALER_DONAU_TransfersGetCallback cb,
   void *cb_cls)
 {
-  struct TALER_EXCHANGE_TransfersGetHandle *wdh;
+  struct TALER_DONAU_TransfersGetHandle *wdh;
   CURL *eh;
   char arg_str[sizeof (struct TALER_WireTransferIdentifierRawP) * 2 + 32];
 
-  wdh = GNUNET_new (struct TALER_EXCHANGE_TransfersGetHandle);
+  wdh = GNUNET_new (struct TALER_DONAU_TransfersGetHandle);
   wdh->cb = cb;
   wdh->cb_cls = cb_cls;
 
@@ -358,7 +358,7 @@ TALER_EXCHANGE_transfers_get (
     GNUNET_free (wdh);
     return NULL;
   }
-  eh = TALER_EXCHANGE_curl_easy_get_ (wdh->url);
+  eh = TALER_DONAU_curl_easy_get_ (wdh->url);
   if (NULL == eh)
   {
     GNUNET_break (0);
@@ -366,7 +366,7 @@ TALER_EXCHANGE_transfers_get (
     GNUNET_free (wdh);
     return NULL;
   }
-  wdh->keys = TALER_EXCHANGE_keys_incref (keys);
+  wdh->keys = TALER_DONAU_keys_incref (keys);
   wdh->job = GNUNET_CURL_job_add_with_ct_json (ctx,
                                                eh,
                                                &handle_transfers_get_finished,
@@ -382,8 +382,8 @@ TALER_EXCHANGE_transfers_get (
  * @param wdh the wire deposits request handle
  */
 void
-TALER_EXCHANGE_transfers_get_cancel (
-  struct TALER_EXCHANGE_TransfersGetHandle *wdh)
+TALER_DONAU_transfers_get_cancel (
+  struct TALER_DONAU_TransfersGetHandle *wdh)
 {
   if (NULL != wdh->job)
   {
@@ -391,9 +391,9 @@ TALER_EXCHANGE_transfers_get_cancel (
     wdh->job = NULL;
   }
   GNUNET_free (wdh->url);
-  TALER_EXCHANGE_keys_decref (wdh->keys);
+  TALER_DONAU_keys_decref (wdh->keys);
   GNUNET_free (wdh);
 }
 
 
-/* end of exchange_api_transfers_get.c */
+/* end of donau_api_transfers_get.c */
diff --git a/src/lib/exchange_api_withdraw.c b/src/lib/donau_api_withdraw.c
similarity index 78%
rename from src/lib/exchange_api_withdraw.c
rename to src/lib/donau_api_withdraw.c
index 8721898..19c67f8 100644
--- a/src/lib/exchange_api_withdraw.c
+++ b/src/lib/donau_api_withdraw.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_withdraw.c
+ * @file lib/donau_api_withdraw.c
  * @brief Implementation of /reserves/$RESERVE_PUB/withdraw requests with 
blinding/unblinding
  * @author Christian Grothoff
  */
@@ -25,17 +25,17 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A Withdraw Handle
  */
-struct TALER_EXCHANGE_WithdrawHandle
+struct TALER_DONAU_WithdrawHandle
 {
 
   /**
@@ -44,24 +44,24 @@ struct TALER_EXCHANGE_WithdrawHandle
   struct GNUNET_CURL_Context *curl_ctx;
 
   /**
-   * The base-URL to the exchange
+   * The base-URL to the donau
    */
-  const char *exchange_url;
+  const char *donau_url;
 
   /**
-   * The /keys material from the exchange
+   * The /keys material from the donau
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * Handle for the actual (internal) withdraw operation.
    */
-  struct TALER_EXCHANGE_Withdraw2Handle *wh2;
+  struct TALER_DONAU_Withdraw2Handle *wh2;
 
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_WithdrawCallback cb;
+  TALER_DONAU_WithdrawCallback cb;
 
   /**
    * Closure for @a cb.
@@ -96,7 +96,7 @@ struct TALER_EXCHANGE_WithdrawHandle
   /**
    * Values of the @cipher selected
    */
-  struct TALER_ExchangeWithdrawValues alg_values;
+  struct TALER_DonauWithdrawValues alg_values;
 
   /**
    * Hash of the age commitment for this coin, if applicable. Maybe NULL
@@ -106,7 +106,7 @@ struct TALER_EXCHANGE_WithdrawHandle
   /**
    * Denomination key we are withdrawing.
    */
-  struct TALER_EXCHANGE_DenomPublicKey pk;
+  struct TALER_DONAU_DenomPublicKey pk;
 
   /**
    * Hash of the public key of the coin we are signing.
@@ -116,7 +116,7 @@ struct TALER_EXCHANGE_WithdrawHandle
   /**
    * Handler for the CS R request (only used for TALER_DENOMINATION_CS 
denominations)
    */
-  struct TALER_EXCHANGE_CsRWithdrawHandle *csrh;
+  struct TALER_DONAU_CsRWithdrawHandle *csrh;
 
 };
 
@@ -125,16 +125,16 @@ struct TALER_EXCHANGE_WithdrawHandle
  * Function called when we're done processing the
  * HTTP /reserves/$RESERVE_PUB/withdraw request.
  *
- * @param cls the `struct TALER_EXCHANGE_WithdrawHandle`
+ * @param cls the `struct TALER_DONAU_WithdrawHandle`
  * @param w2r response data
  */
 static void
 handle_reserve_withdraw_finished (
   void *cls,
-  const struct TALER_EXCHANGE_Withdraw2Response *w2r)
+  const struct TALER_DONAU_Withdraw2Response *w2r)
 {
-  struct TALER_EXCHANGE_WithdrawHandle *wh = cls;
-  struct TALER_EXCHANGE_WithdrawResponse wr = {
+  struct TALER_DONAU_WithdrawHandle *wh = cls;
+  struct TALER_DONAU_WithdrawResponse wr = {
     .hr = w2r->hr
   };
 
@@ -156,13 +156,13 @@ handle_reserve_withdraw_finished (
                                   &fc))
       {
         wr.hr.http_status = 0;
-        wr.hr.ec = TALER_EC_EXCHANGE_WITHDRAW_UNBLIND_FAILURE;
+        wr.hr.ec = TALER_EC_DONAU_WITHDRAW_UNBLIND_FAILURE;
         break;
       }
       wr.details.ok.coin_priv = wh->priv;
       wr.details.ok.bks = wh->bks;
       wr.details.ok.sig = fc.sig;
-      wr.details.ok.exchange_vals = wh->alg_values;
+      wr.details.ok.donau_vals = wh->alg_values;
       break;
     }
   case MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS:
@@ -196,23 +196,23 @@ handle_reserve_withdraw_finished (
           &wr);
   if (MHD_HTTP_OK == w2r->hr.http_status)
     TALER_denom_sig_free (&wr.details.ok.sig);
-  TALER_EXCHANGE_withdraw_cancel (wh);
+  TALER_DONAU_withdraw_cancel (wh);
 }
 
 
 /**
  * Function called when stage 1 of CS withdraw is finished (request r_pub's)
  *
- * @param cls the `struct TALER_EXCHANGE_WithdrawHandle`
+ * @param cls the `struct TALER_DONAU_WithdrawHandle`
  * @param csrr replies from the /csr-withdraw request
  */
 static void
 withdraw_cs_stage_two_callback (
   void *cls,
-  const struct TALER_EXCHANGE_CsRWithdrawResponse *csrr)
+  const struct TALER_DONAU_CsRWithdrawResponse *csrr)
 {
-  struct TALER_EXCHANGE_WithdrawHandle *wh = cls;
-  struct TALER_EXCHANGE_WithdrawResponse wr = {
+  struct TALER_DONAU_WithdrawHandle *wh = cls;
+  struct TALER_DONAU_WithdrawResponse wr = {
     .hr = csrr->hr
   };
 
@@ -242,8 +242,8 @@ withdraw_cs_stage_two_callback (
       GNUNET_break (0);
       break;
     }
-    wh->wh2 = TALER_EXCHANGE_withdraw2 (wh->curl_ctx,
-                                        wh->exchange_url,
+    wh->wh2 = TALER_DONAU_withdraw2 (wh->curl_ctx,
+                                        wh->donau_url,
                                         wh->keys,
                                         &wh->pd,
                                         wh->reserve_priv,
@@ -255,25 +255,25 @@ withdraw_cs_stage_two_callback (
   }
   wh->cb (wh->cb_cls,
           &wr);
-  TALER_EXCHANGE_withdraw_cancel (wh);
+  TALER_DONAU_withdraw_cancel (wh);
 }
 
 
-struct TALER_EXCHANGE_WithdrawHandle *
-TALER_EXCHANGE_withdraw (
+struct TALER_DONAU_WithdrawHandle *
+TALER_DONAU_withdraw (
   struct GNUNET_CURL_Context *curl_ctx,
-  const char *exchange_url,
-  struct TALER_EXCHANGE_Keys *keys,
+  const char *donau_url,
+  struct TALER_DONAU_Keys *keys,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
-  const struct TALER_EXCHANGE_WithdrawCoinInput *wci,
-  TALER_EXCHANGE_WithdrawCallback res_cb,
+  const struct TALER_DONAU_WithdrawCoinInput *wci,
+  TALER_DONAU_WithdrawCallback res_cb,
   void *res_cb_cls)
 {
-  struct TALER_EXCHANGE_WithdrawHandle *wh;
+  struct TALER_DONAU_WithdrawHandle *wh;
 
-  wh = GNUNET_new (struct TALER_EXCHANGE_WithdrawHandle);
-  wh->keys = TALER_EXCHANGE_keys_incref (keys);
-  wh->exchange_url = exchange_url;
+  wh = GNUNET_new (struct TALER_DONAU_WithdrawHandle);
+  wh->keys = TALER_DONAU_keys_incref (keys);
+  wh->donau_url = donau_url;
   wh->curl_ctx = curl_ctx;
   wh->cb = res_cb;
   wh->cb_cls = res_cb_cls;
@@ -308,8 +308,8 @@ TALER_EXCHANGE_withdraw (
         GNUNET_free (wh);
         return NULL;
       }
-      wh->wh2 = TALER_EXCHANGE_withdraw2 (curl_ctx,
-                                          exchange_url,
+      wh->wh2 = TALER_DONAU_withdraw2 (curl_ctx,
+                                          donau_url,
                                           keys,
                                           &wh->pd,
                                           wh->reserve_priv,
@@ -326,9 +326,9 @@ TALER_EXCHANGE_withdraw (
          of the blinded_planchet here; the other part
          will be done after the /csr-withdraw request! */
       wh->pd.blinded_planchet.cipher = TALER_DENOMINATION_CS;
-      wh->csrh = TALER_EXCHANGE_csr_withdraw (
+      wh->csrh = TALER_DONAU_csr_withdraw (
         curl_ctx,
-        exchange_url,
+        donau_url,
         &wh->pk,
         &wh->pd.blinded_planchet.details.cs_blinded_planchet.nonce,
         &withdraw_cs_stage_two_callback,
@@ -345,20 +345,20 @@ TALER_EXCHANGE_withdraw (
 
 
 void
-TALER_EXCHANGE_withdraw_cancel (struct TALER_EXCHANGE_WithdrawHandle *wh)
+TALER_DONAU_withdraw_cancel (struct TALER_DONAU_WithdrawHandle *wh)
 {
   TALER_blinded_planchet_free (&wh->pd.blinded_planchet);
   if (NULL != wh->csrh)
   {
-    TALER_EXCHANGE_csr_withdraw_cancel (wh->csrh);
+    TALER_DONAU_csr_withdraw_cancel (wh->csrh);
     wh->csrh = NULL;
   }
   if (NULL != wh->wh2)
   {
-    TALER_EXCHANGE_withdraw2_cancel (wh->wh2);
+    TALER_DONAU_withdraw2_cancel (wh->wh2);
     wh->wh2 = NULL;
   }
-  TALER_EXCHANGE_keys_decref (wh->keys);
+  TALER_DONAU_keys_decref (wh->keys);
   TALER_denom_pub_free (&wh->pk.key);
   GNUNET_free (wh);
 }
diff --git a/src/lib/exchange_api_withdraw2.c b/src/lib/donau_api_withdraw2.c
similarity index 84%
rename from src/lib/exchange_api_withdraw2.c
rename to src/lib/donau_api_withdraw2.c
index 6de7adc..15aa944 100644
--- a/src/lib/exchange_api_withdraw2.c
+++ b/src/lib/donau_api_withdraw2.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file lib/exchange_api_withdraw2.c
+ * @file lib/donau_api_withdraw2.c
  * @brief Implementation of /reserves/$RESERVE_PUB/withdraw requests without 
blinding/unblinding
  * @author Christian Grothoff
  */
@@ -25,23 +25,23 @@
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_json_lib.h>
 #include <gnunet/gnunet_curl_lib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
-#include "exchange_api_handle.h"
+#include "donau_api_handle.h"
 #include "taler_signatures.h"
-#include "exchange_api_curl_defaults.h"
+#include "donau_api_curl_defaults.h"
 
 
 /**
  * @brief A Withdraw Handle
  */
-struct TALER_EXCHANGE_Withdraw2Handle
+struct TALER_DONAU_Withdraw2Handle
 {
 
   /**
-   * The /keys material from the exchange
+   * The /keys material from the donau
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
    * The url for this request.
@@ -56,7 +56,7 @@ struct TALER_EXCHANGE_Withdraw2Handle
   /**
    * Function to call with the result.
    */
-  TALER_EXCHANGE_Withdraw2Callback cb;
+  TALER_DONAU_Withdraw2Callback cb;
 
   /**
    * Closure for @a cb.
@@ -85,21 +85,21 @@ struct TALER_EXCHANGE_Withdraw2Handle
 /**
  * We got a 200 OK response for the /reserves/$RESERVE_PUB/withdraw operation.
  * Extract the coin's signature and return it to the caller.  The signature we
- * get from the exchange is for the blinded value.  Thus, we first must
+ * get from the donau is for the blinded value.  Thus, we first must
  * unblind it and then should verify its validity against our coin's hash.
  *
  * If everything checks out, we return the unblinded signature
  * to the application via the callback.
  *
  * @param wh operation handle
- * @param json reply from the exchange
+ * @param json reply from the donau
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 static enum GNUNET_GenericReturnValue
-reserve_withdraw_ok (struct TALER_EXCHANGE_Withdraw2Handle *wh,
+reserve_withdraw_ok (struct TALER_DONAU_Withdraw2Handle *wh,
                      const json_t *json)
 {
-  struct TALER_EXCHANGE_Withdraw2Response w2r = {
+  struct TALER_DONAU_Withdraw2Response w2r = {
     .hr.reply = json,
     .hr.http_status = MHD_HTTP_OK
   };
@@ -133,16 +133,16 @@ reserve_withdraw_ok (struct 
TALER_EXCHANGE_Withdraw2Handle *wh,
  * Check the signatures on the withdraw transactions in the provided
  * history and that the balances add up.  We don't do anything directly
  * with the information, as the JSON will be returned to the application.
- * However, our job is ensuring that the exchange followed the protocol, and
+ * However, our job is ensuring that the donau followed the protocol, and
  * this in particular means checking all of the signatures in the history.
  *
  * @param wh operation handle
- * @param json reply from the exchange
+ * @param json reply from the donau
  * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
  */
 static enum GNUNET_GenericReturnValue
 reserve_withdraw_payment_required (
-  struct TALER_EXCHANGE_Withdraw2Handle *wh,
+  struct TALER_DONAU_Withdraw2Handle *wh,
   const json_t *json)
 {
   struct TALER_Amount balance;
@@ -176,14 +176,14 @@ reserve_withdraw_payment_required (
      total incoming and outgoing amounts */
   len = json_array_size (history);
   {
-    struct TALER_EXCHANGE_ReserveHistoryEntry *rhistory;
+    struct TALER_DONAU_ReserveHistoryEntry *rhistory;
 
     /* Use heap allocation as "len" may be very big and thus this may
        not fit on the stack. Use "GNUNET_malloc_large" as a malicious
-       exchange may theoretically try to crash us by giving a history
+       donau may theoretically try to crash us by giving a history
        that does not fit into our memory. */
     rhistory = GNUNET_malloc_large (
-      sizeof (struct TALER_EXCHANGE_ReserveHistoryEntry)
+      sizeof (struct TALER_DONAU_ReserveHistoryEntry)
       * len);
     if (NULL == rhistory)
     {
@@ -192,7 +192,7 @@ reserve_withdraw_payment_required (
     }
 
     if (GNUNET_OK !=
-        TALER_EXCHANGE_parse_reserve_history (wh->keys,
+        TALER_DONAU_parse_reserve_history (wh->keys,
                                               history,
                                               &wh->reserve_pub,
                                               balance.currency,
@@ -202,11 +202,11 @@ reserve_withdraw_payment_required (
                                               rhistory))
     {
       GNUNET_break_op (0);
-      TALER_EXCHANGE_free_reserve_history (len,
+      TALER_DONAU_free_reserve_history (len,
                                            rhistory);
       return GNUNET_SYSERR;
     }
-    TALER_EXCHANGE_free_reserve_history (len,
+    TALER_DONAU_free_reserve_history (len,
                                          rhistory);
   }
 
@@ -227,7 +227,7 @@ reserve_withdraw_payment_required (
  * Function called when we're done processing the
  * HTTP /reserves/$RESERVE_PUB/withdraw request.
  *
- * @param cls the `struct TALER_EXCHANGE_WithdrawHandle`
+ * @param cls the `struct TALER_DONAU_WithdrawHandle`
  * @param response_code HTTP response code, 0 on error
  * @param response parsed JSON result, NULL on error
  */
@@ -236,9 +236,9 @@ handle_reserve_withdraw_finished (void *cls,
                                   long response_code,
                                   const void *response)
 {
-  struct TALER_EXCHANGE_Withdraw2Handle *wh = cls;
+  struct TALER_DONAU_Withdraw2Handle *wh = cls;
   const json_t *j = response;
-  struct TALER_EXCHANGE_Withdraw2Response w2r = {
+  struct TALER_DONAU_Withdraw2Response w2r = {
     .hr.reply = j,
     .hr.http_status = (unsigned int) response_code
   };
@@ -260,24 +260,24 @@ handle_reserve_withdraw_finished (void *cls,
       break;
     }
     GNUNET_assert (NULL == wh->cb);
-    TALER_EXCHANGE_withdraw2_cancel (wh);
+    TALER_DONAU_withdraw2_cancel (wh);
     return;
   case MHD_HTTP_BAD_REQUEST:
-    /* This should never happen, either us or the exchange is buggy
+    /* This should never happen, either us or the donau is buggy
        (or API version conflict); just pass JSON reply to the application */
     w2r.hr.ec = TALER_JSON_get_error_code (j);
     w2r.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_FORBIDDEN:
     GNUNET_break_op (0);
-    /* Nothing really to verify, exchange says one of the signatures is
+    /* Nothing really to verify, donau says one of the signatures is
        invalid; as we checked them, this should never happen, we
        should pass the JSON reply to the application */
     w2r.hr.ec = TALER_JSON_get_error_code (j);
     w2r.hr.hint = TALER_JSON_get_error_hint (j);
     break;
   case MHD_HTTP_NOT_FOUND:
-    /* Nothing really to verify, the exchange basically just says
+    /* Nothing really to verify, the donau basically just says
        that it doesn't know this reserve.  Can happen if we
        query before the wire transfer went through.
        We should simply pass the JSON reply to the application. */
@@ -288,10 +288,10 @@ handle_reserve_withdraw_finished (void *cls,
     w2r.hr.ec = TALER_JSON_get_error_code (j);
     w2r.hr.hint = TALER_JSON_get_error_hint (j);
 
-    if (TALER_EC_EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED == w2r.hr.ec)
+    if (TALER_EC_DONAU_RESERVES_AGE_RESTRICTION_REQUIRED == w2r.hr.ec)
       break;
 
-    /* The exchange says that the reserve has insufficient funds;
+    /* The donau says that the reserve has insufficient funds;
        check the signatures in the history... */
     if (GNUNET_OK !=
         reserve_withdraw_payment_required (wh,
@@ -344,7 +344,7 @@ handle_reserve_withdraw_finished (void *cls,
     w2r.hr.ec = TALER_JSON_get_error_code (j);
     w2r.hr.hint = TALER_JSON_get_error_hint (j);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Unexpected response code %u/%d for exchange withdraw\n",
+                "Unexpected response code %u/%d for donau withdraw\n",
                 (unsigned int) response_code,
                 (int) w2r.hr.ec);
     break;
@@ -355,36 +355,36 @@ handle_reserve_withdraw_finished (void *cls,
             &w2r);
     wh->cb = NULL;
   }
-  TALER_EXCHANGE_withdraw2_cancel (wh);
+  TALER_DONAU_withdraw2_cancel (wh);
 }
 
 
-struct TALER_EXCHANGE_Withdraw2Handle *
-TALER_EXCHANGE_withdraw2 (
+struct TALER_DONAU_Withdraw2Handle *
+TALER_DONAU_withdraw2 (
   struct GNUNET_CURL_Context *curl_ctx,
-  const char *exchange_url,
-  struct TALER_EXCHANGE_Keys *keys,
+  const char *donau_url,
+  struct TALER_DONAU_Keys *keys,
   const struct TALER_PlanchetDetail *pd,
   const struct TALER_ReservePrivateKeyP *reserve_priv,
-  TALER_EXCHANGE_Withdraw2Callback res_cb,
+  TALER_DONAU_Withdraw2Callback res_cb,
   void *res_cb_cls)
 {
-  struct TALER_EXCHANGE_Withdraw2Handle *wh;
-  const struct TALER_EXCHANGE_DenomPublicKey *dk;
+  struct TALER_DONAU_Withdraw2Handle *wh;
+  const struct TALER_DONAU_DenomPublicKey *dk;
   struct TALER_ReserveSignatureP reserve_sig;
   char arg_str[sizeof (struct TALER_ReservePublicKeyP) * 2 + 32];
   struct TALER_BlindedCoinHashP bch;
 
   GNUNET_assert (NULL != keys);
-  dk = TALER_EXCHANGE_get_denomination_key_by_hash (keys,
+  dk = TALER_DONAU_get_denomination_key_by_hash (keys,
                                                     &pd->denom_pub_hash);
   if (NULL == dk)
   {
     GNUNET_break (0);
     return NULL;
   }
-  wh = GNUNET_new (struct TALER_EXCHANGE_Withdraw2Handle);
-  wh->keys = TALER_EXCHANGE_keys_incref (keys);
+  wh = GNUNET_new (struct TALER_DONAU_Withdraw2Handle);
+  wh->keys = TALER_DONAU_keys_incref (keys);
   wh->cb = res_cb;
   wh->cb_cls = res_cb_cls;
   /* Compute how much we expected to charge to the reserve */
@@ -444,7 +444,7 @@ TALER_EXCHANGE_withdraw2 (
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                 "Attempting to withdraw from reserve %s\n",
                 TALER_B2S (&wh->reserve_pub));
-    wh->url = TALER_url_join (exchange_url,
+    wh->url = TALER_url_join (donau_url,
                               arg_str,
                               NULL);
     if (NULL == wh->url)
@@ -456,7 +456,7 @@ TALER_EXCHANGE_withdraw2 (
     {
       CURL *eh;
 
-      eh = TALER_EXCHANGE_curl_easy_get_ (wh->url);
+      eh = TALER_DONAU_curl_easy_get_ (wh->url);
       if ( (NULL == eh) ||
            (GNUNET_OK !=
             TALER_curl_easy_post (&wh->post_ctx,
@@ -484,7 +484,7 @@ TALER_EXCHANGE_withdraw2 (
 
 
 void
-TALER_EXCHANGE_withdraw2_cancel (struct TALER_EXCHANGE_Withdraw2Handle *wh)
+TALER_DONAU_withdraw2_cancel (struct TALER_DONAU_Withdraw2Handle *wh)
 {
   if (NULL != wh->job)
   {
@@ -493,6 +493,6 @@ TALER_EXCHANGE_withdraw2_cancel (struct 
TALER_EXCHANGE_Withdraw2Handle *wh)
   }
   GNUNET_free (wh->url);
   TALER_curl_easy_post_finished (&wh->post_ctx);
-  TALER_EXCHANGE_keys_decref (wh->keys);
+  TALER_DONAU_keys_decref (wh->keys);
   GNUNET_free (wh);
 }
diff --git a/src/testing/.gitignore b/src/testing/.gitignore
index 7bdd9a1..286a475 100644
--- a/src/testing/.gitignore
+++ b/src/testing/.gitignore
@@ -4,56 +4,56 @@ test_bank_api_with_fakebank
 test_bank_api_with_fakebank_twisted
 test_bank_api_with_pybank
 test_bank_api_with_pybank_twisted
-test_taler_exchange_aggregator-postgres
-test_taler_exchange_wirewatch-postgres
-test_exchange_api_revocation_cs
-test_exchange_api_revocation_rsa
-test_exchange_api_age_restriction_cs
-test_exchange_api_age_restriction_rsa
+test_taler_donau_aggregator-postgres
+test_taler_donau_wirewatch-postgres
+test_donau_api_revocation_cs
+test_donau_api_revocation_rsa
+test_donau_api_age_restriction_cs
+test_donau_api_age_restriction_rsa
 report*
-test_exchange_management_api_cs
-test_exchange_management_api_rsa
-test_exchange_api_home/.local/share/taler/crypto-eddsa/
-test_exchange_api_home/.local/share/taler/crypto-rsa/
-test_exchange_api_home/.local/share/taler/exchange/offline-keys/secm_tofus.priv
-test_exchange_api_home/.local/share/taler/taler-exchange-secmod-eddsa/
-test_exchange_api_home/.local/share/taler/taler-exchange-secmod-rsa/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/crypto-eddsa/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange/offline-keys/secm_tofus.priv
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/taler-exchange-secmod-eddsa/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/taler-exchange-secmod-rsa/
-test_taler_exchange_httpd_home/.local/share/taler/crypto-eddsa/
-test_taler_exchange_httpd_home/.local/share/taler/crypto-rsa/
-test_taler_exchange_httpd_home/.local/share/taler/exchange/offline-keys/secm_tofus.priv
-test_taler_exchange_httpd_home/.local/share/taler/taler-exchange-secmod-eddsa/
-test_taler_exchange_httpd_home/.local/share/taler/taler-exchange-secmod-rsa/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/crypto-rsa/
-test_exchange_api_home/.local/share/taler/exchange-offline/secm_tofus.pub
-test_exchange_api_home/.local/share/taler/exchange-secmod-cs/
-test_exchange_api_home/.local/share/taler/exchange-secmod-eddsa/
-test_exchange_api_home/.local/share/taler/exchange-secmod-rsa/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange-offline/secm_tofus.pub
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange-secmod-cs/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange-secmod-eddsa/
-test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange-secmod-rsa/
-test_taler_exchange_httpd_home/.local/share/taler/exchange-offline/secm_tofus.pub
-test_taler_exchange_httpd_home/.local/share/taler/exchange-secmod-cs/
-test_taler_exchange_httpd_home/.local/share/taler/exchange-secmod-eddsa/
-test_taler_exchange_httpd_home/.local/share/taler/exchange-secmod-rsa/
+test_donau_management_api_cs
+test_donau_management_api_rsa
+test_donau_api_home/.local/share/taler/crypto-eddsa/
+test_donau_api_home/.local/share/taler/crypto-rsa/
+test_donau_api_home/.local/share/taler/donau/offline-keys/secm_tofus.priv
+test_donau_api_home/.local/share/taler/taler-donau-secmod-eddsa/
+test_donau_api_home/.local/share/taler/taler-donau-secmod-rsa/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/crypto-eddsa/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/donau/offline-keys/secm_tofus.priv
+test_donau_api_keys_cherry_picking_home/.local/share/taler/taler-donau-secmod-eddsa/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/taler-donau-secmod-rsa/
+test_taler_donau_httpd_home/.local/share/taler/crypto-eddsa/
+test_taler_donau_httpd_home/.local/share/taler/crypto-rsa/
+test_taler_donau_httpd_home/.local/share/taler/donau/offline-keys/secm_tofus.priv
+test_taler_donau_httpd_home/.local/share/taler/taler-donau-secmod-eddsa/
+test_taler_donau_httpd_home/.local/share/taler/taler-donau-secmod-rsa/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/crypto-rsa/
+test_donau_api_home/.local/share/taler/donau-offline/secm_tofus.pub
+test_donau_api_home/.local/share/taler/donau-secmod-cs/
+test_donau_api_home/.local/share/taler/donau-secmod-eddsa/
+test_donau_api_home/.local/share/taler/donau-secmod-rsa/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/donau-offline/secm_tofus.pub
+test_donau_api_keys_cherry_picking_home/.local/share/taler/donau-secmod-cs/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/donau-secmod-eddsa/
+test_donau_api_keys_cherry_picking_home/.local/share/taler/donau-secmod-rsa/
+test_taler_donau_httpd_home/.local/share/taler/donau-offline/secm_tofus.pub
+test_taler_donau_httpd_home/.local/share/taler/donau-secmod-cs/
+test_taler_donau_httpd_home/.local/share/taler/donau-secmod-eddsa/
+test_taler_donau_httpd_home/.local/share/taler/donau-secmod-rsa/
 test_kyc_api
 test_helper_cs_home/
-test_helper_rsa_home/test_exchange_api_twisted-cs
-test_exchange_api_twisted-rsa
-test_exchange_api_twisted_cs
-test_exchange_api_twisted_rsa
-test_exchange_p2p_cs
-test_exchange_p2p_rsa
+test_helper_rsa_home/test_donau_api_twisted-cs
+test_donau_api_twisted-rsa
+test_donau_api_twisted_cs
+test_donau_api_twisted_rsa
+test_donau_p2p_cs
+test_donau_p2p_rsa
 *.edited
 tmp-last-response.*
-test_exchange_api_home/taler/auditor/
-test_exchange_api_home/taler/exchange-offline/secm_tofus.pub
-test_exchange_api_home/taler/exchange-secmod-cs/
-test_exchange_api_home/taler/exchange-secmod-eddsa/
-test_exchange_api_home/taler/exchange-secmod-rsa/
-test_exchange_api_keys_cherry_picking_home/taler/
-test_taler_exchange_httpd_home/taler/
+test_donau_api_home/taler/auditor/
+test_donau_api_home/taler/donau-offline/secm_tofus.pub
+test_donau_api_home/taler/donau-secmod-cs/
+test_donau_api_home/taler/donau-secmod-eddsa/
+test_donau_api_home/taler/donau-secmod-rsa/
+test_donau_api_keys_cherry_picking_home/taler/
+test_taler_donau_httpd_home/taler/
diff --git a/src/testing/Makefile.am b/src/testing/Makefile.am
index 957f028..d44ca03 100644
--- a/src/testing/Makefile.am
+++ b/src/testing/Makefile.am
@@ -45,7 +45,7 @@ libtalertesting_la_SOURCES = \
   testing_api_cmd_auditor_add.c \
   testing_api_cmd_auditor_del.c \
   testing_api_cmd_auditor_deposit_confirmation.c \
-  testing_api_cmd_auditor_exchanges.c \
+  testing_api_cmd_auditor_donaus.c \
   testing_api_cmd_auditor_exec_auditor.c \
   testing_api_cmd_auditor_exec_auditor_dbinit.c \
   testing_api_cmd_bank_admin_add_incoming.c \
@@ -73,7 +73,7 @@ libtalertesting_la_SOURCES = \
   testing_api_cmd_exec_wget.c \
   testing_api_cmd_exec_wirewatch.c \
   testing_api_cmd_get_auditor.c \
-  testing_api_cmd_get_exchange.c \
+  testing_api_cmd_get_donau.c \
   testing_api_cmd_insert_deposit.c \
   testing_api_cmd_kyc_check_get.c \
   testing_api_cmd_kyc_proof.c \
@@ -124,8 +124,8 @@ libtalertesting_la_SOURCES = \
 
 libtalertesting_la_LIBADD = \
   $(top_builddir)/src/lib/libtalerauditor.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/mhd/libtalermhd.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -154,27 +154,27 @@ check_PROGRAMS = \
   test_auditor_api_rsa \
   test_auditor_api_version \
   test_bank_api_with_fakebank \
-  test_exchange_api_cs \
-  test_exchange_api_rsa \
-  test_exchange_api_age_restriction_cs \
-  test_exchange_api_age_restriction_rsa \
-  test_exchange_api_keys_cherry_picking_cs \
-  test_exchange_api_keys_cherry_picking_rsa \
-  test_exchange_api_revocation_cs \
-  test_exchange_api_revocation_rsa \
-  test_exchange_api_overlapping_keys_bug_cs \
-  test_exchange_api_overlapping_keys_bug_rsa \
-  test_exchange_management_api_cs \
-  test_exchange_management_api_rsa \
+  test_donau_api_cs \
+  test_donau_api_rsa \
+  test_donau_api_age_restriction_cs \
+  test_donau_api_age_restriction_rsa \
+  test_donau_api_keys_cherry_picking_cs \
+  test_donau_api_keys_cherry_picking_rsa \
+  test_donau_api_revocation_cs \
+  test_donau_api_revocation_rsa \
+  test_donau_api_overlapping_keys_bug_cs \
+  test_donau_api_overlapping_keys_bug_rsa \
+  test_donau_management_api_cs \
+  test_donau_management_api_rsa \
   test_kyc_api \
-  test_taler_exchange_aggregator-postgres \
-  test_taler_exchange_wirewatch-postgres \
-  test_exchange_p2p_cs \
-  test_exchange_p2p_rsa
+  test_taler_donau_aggregator-postgres \
+  test_taler_donau_wirewatch-postgres \
+  test_donau_p2p_cs \
+  test_donau_p2p_rsa
 if HAVE_TWISTER
   check_PROGRAMS += \
-    test_exchange_api_twisted_cs \
-    test_exchange_api_twisted_rsa \
+    test_donau_api_twisted_cs \
+    test_donau_api_twisted_rsa \
     test_bank_api_with_fakebank_twisted
 endif
 
@@ -188,7 +188,7 @@ test_auditor_api_cs_SOURCES = \
 test_auditor_api_cs_LDADD = \
   $(top_builddir)/src/lib/libtalerauditor.la \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -204,7 +204,7 @@ test_auditor_api_rsa_SOURCES = \
 test_auditor_api_rsa_LDADD = \
   $(top_builddir)/src/lib/libtalerauditor.la \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -232,7 +232,7 @@ test_bank_api_with_nexus_SOURCES = \
   test_bank_api.c
 test_bank_api_with_nexus_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   -lgnunetutil \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
   $(XLIB)
@@ -241,16 +241,16 @@ test_bank_api_with_fakebank_SOURCES = \
   test_bank_api.c
 test_bank_api_with_fakebank_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   -lgnunetutil \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
   $(XLIB)
 
-test_exchange_api_cs_SOURCES = \
-  test_exchange_api.c
-test_exchange_api_cs_LDADD = \
+test_donau_api_cs_SOURCES = \
+  test_donau_api.c
+test_donau_api_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -262,11 +262,11 @@ test_exchange_api_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_rsa_SOURCES = \
-  test_exchange_api.c
-test_exchange_api_rsa_LDADD = \
+test_donau_api_rsa_SOURCES = \
+  test_donau_api.c
+test_donau_api_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -278,11 +278,11 @@ test_exchange_api_rsa_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_age_restriction_cs_SOURCES = \
-  test_exchange_api_age_restriction.c
-test_exchange_api_age_restriction_cs_LDADD = \
+test_donau_api_age_restriction_cs_SOURCES = \
+  test_donau_api_age_restriction.c
+test_donau_api_age_restriction_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -294,11 +294,11 @@ test_exchange_api_age_restriction_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_age_restriction_rsa_SOURCES = \
-  test_exchange_api_age_restriction.c
-test_exchange_api_age_restriction_rsa_LDADD = \
+test_donau_api_age_restriction_rsa_SOURCES = \
+  test_donau_api_age_restriction.c
+test_donau_api_age_restriction_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -310,11 +310,11 @@ test_exchange_api_age_restriction_rsa_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_p2p_cs_SOURCES = \
-  test_exchange_p2p.c
-test_exchange_p2p_cs_LDADD = \
+test_donau_p2p_cs_SOURCES = \
+  test_donau_p2p.c
+test_donau_p2p_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -326,11 +326,11 @@ test_exchange_p2p_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_p2p_rsa_SOURCES = \
-  test_exchange_p2p.c
-test_exchange_p2p_rsa_LDADD = \
+test_donau_p2p_rsa_SOURCES = \
+  test_donau_p2p.c
+test_donau_p2p_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -343,11 +343,11 @@ test_exchange_p2p_rsa_LDADD = \
   $(XLIB)
 
 
-test_exchange_api_keys_cherry_picking_cs_SOURCES = \
-  test_exchange_api_keys_cherry_picking.c
-test_exchange_api_keys_cherry_picking_cs_LDADD = \
+test_donau_api_keys_cherry_picking_cs_SOURCES = \
+  test_donau_api_keys_cherry_picking.c
+test_donau_api_keys_cherry_picking_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -357,11 +357,11 @@ test_exchange_api_keys_cherry_picking_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_keys_cherry_picking_rsa_SOURCES = \
-  test_exchange_api_keys_cherry_picking.c
-test_exchange_api_keys_cherry_picking_rsa_LDADD = \
+test_donau_api_keys_cherry_picking_rsa_SOURCES = \
+  test_donau_api_keys_cherry_picking.c
+test_donau_api_keys_cherry_picking_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -371,11 +371,11 @@ test_exchange_api_keys_cherry_picking_rsa_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_revocation_cs_SOURCES = \
-  test_exchange_api_revocation.c
-test_exchange_api_revocation_cs_LDADD = \
+test_donau_api_revocation_cs_SOURCES = \
+  test_donau_api_revocation.c
+test_donau_api_revocation_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -386,11 +386,11 @@ test_exchange_api_revocation_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_revocation_rsa_SOURCES = \
-  test_exchange_api_revocation.c
-test_exchange_api_revocation_rsa_LDADD = \
+test_donau_api_revocation_rsa_SOURCES = \
+  test_donau_api_revocation.c
+test_donau_api_revocation_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -402,11 +402,11 @@ test_exchange_api_revocation_rsa_LDADD = \
   $(XLIB)
 
 
-test_exchange_api_overlapping_keys_bug_cs_SOURCES = \
-  test_exchange_api_overlapping_keys_bug.c
-test_exchange_api_overlapping_keys_bug_cs_LDADD = \
+test_donau_api_overlapping_keys_bug_cs_SOURCES = \
+  test_donau_api_overlapping_keys_bug.c
+test_donau_api_overlapping_keys_bug_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -416,11 +416,11 @@ test_exchange_api_overlapping_keys_bug_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_overlapping_keys_bug_rsa_SOURCES = \
-  test_exchange_api_overlapping_keys_bug.c
-test_exchange_api_overlapping_keys_bug_rsa_LDADD = \
+test_donau_api_overlapping_keys_bug_rsa_SOURCES = \
+  test_donau_api_overlapping_keys_bug.c
+test_donau_api_overlapping_keys_bug_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -430,30 +430,30 @@ test_exchange_api_overlapping_keys_bug_rsa_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_management_api_cs_SOURCES = \
-  test_exchange_management_api.c
-test_exchange_management_api_cs_LDADD = \
+test_donau_management_api_cs_SOURCES = \
+  test_donau_management_api.c
+test_donau_management_api_cs_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/util/libtalerutil.la \
   -lgnunetutil \
   $(XLIB)
 
-test_exchange_management_api_rsa_SOURCES = \
-  test_exchange_management_api.c
-test_exchange_management_api_rsa_LDADD = \
+test_donau_management_api_rsa_SOURCES = \
+  test_donau_management_api.c
+test_donau_management_api_rsa_LDADD = \
   libtalertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/util/libtalerutil.la \
   -lgnunetutil \
   $(XLIB)
 
 
-test_taler_exchange_aggregator_postgres_SOURCES = \
-  test_taler_exchange_aggregator.c
-test_taler_exchange_aggregator_postgres_LDADD = \
+test_taler_donau_aggregator_postgres_SOURCES = \
+  test_taler_donau_aggregator.c
+test_taler_donau_aggregator_postgres_LDADD = \
   $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -465,11 +465,11 @@ test_taler_exchange_aggregator_postgres_LDADD = \
   -lpthread \
   $(XLIB)
 
-test_taler_exchange_wirewatch_postgres_SOURCES = \
-  test_taler_exchange_wirewatch.c
-test_taler_exchange_wirewatch_postgres_LDADD = \
+test_taler_donau_wirewatch_postgres_SOURCES = \
+  test_taler_donau_wirewatch.c
+test_taler_donau_wirewatch_postgres_LDADD = \
   $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/json/libtalerjson.la \
   $(top_builddir)/src/util/libtalerutil.la \
@@ -482,13 +482,13 @@ test_taler_exchange_wirewatch_postgres_LDADD = \
   -lpthread \
   $(XLIB)
 
-test_exchange_api_twisted_cs_SOURCES = \
-  test_exchange_api_twisted.c
-test_exchange_api_twisted_cs_LDADD = \
+test_donau_api_twisted_cs_SOURCES = \
+  test_donau_api_twisted.c
+test_donau_api_twisted_cs_LDADD = \
   $(LIBGCRYPT_LIBS) \
   libtalertesting.la \
   libtalertwistertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -499,13 +499,13 @@ test_exchange_api_twisted_cs_LDADD = \
   -ljansson \
   $(XLIB)
 
-test_exchange_api_twisted_rsa_SOURCES = \
-  test_exchange_api_twisted.c
-test_exchange_api_twisted_rsa_LDADD = \
+test_donau_api_twisted_rsa_SOURCES = \
+  test_donau_api_twisted.c
+test_donau_api_twisted_rsa_LDADD = \
   $(LIBGCRYPT_LIBS) \
   libtalertesting.la \
   libtalertwistertesting.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -522,7 +522,7 @@ test_bank_api_with_fakebank_twisted_LDADD = \
   libtalertesting.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(top_builddir)/src/json/libtalerjson.la \
   libtalertwistertesting.la \
   -lgnunetjson \
@@ -536,7 +536,7 @@ test_kyc_api_SOURCES = \
 test_kyc_api_LDADD = \
   libtalertesting.la \
   $(top_builddir)/src/lib/libtalerauditor.la \
-  $(top_builddir)/src/lib/libtalerexchange.la \
+  $(top_builddir)/src/lib/libtalerdonau.la \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/bank-lib/libtalerfakebank.la \
   $(top_builddir)/src/bank-lib/libtalerbank.la \
@@ -561,29 +561,29 @@ EXTRA_DIST = \
   test_bank_api_fakebank.conf \
   test_bank_api_fakebank_twisted.conf \
   test_bank_api_nexus.conf \
-  test_exchange_api_home/.config/taler/account-2.json \
-  test_exchange_api_home/.local/share/taler/exchange-offline/master.priv \
-  test_exchange_api_home/.local/share/taler/exchange/offline-keys/master.priv \
-  test_exchange_api_keys_cherry_picking_home/.config/taler/x-taler-bank.json \
-  
test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange-offline/master.priv
 \
-  
test_exchange_api_keys_cherry_picking_home/.local/share/taler/exchange/offline-keys/master.priv
 \
-  test_exchange_api.conf \
-  test_exchange_api-cs.conf \
-  test_exchange_api-rsa.conf \
-  test_exchange_api_age_restiction.conf \
-  test_exchange_api_age_restiction-cs.conf \
-  test_exchange_api_age_restiction-rsa.conf \
-  test_exchange_api_twisted.conf \
-  test_exchange_api_twisted-cs.conf \
-  test_exchange_api_twisted-rsa.conf \
-  test_exchange_api_keys_cherry_picking.conf \
-  test_exchange_api_keys_cherry_picking-cs.conf \
-  test_exchange_api_keys_cherry_picking-rsa.conf \
-  test_exchange_api_expire_reserve_now-cs.conf \
-  test_exchange_api_expire_reserve_now-rsa.conf \
-  test_taler_exchange_httpd_home/.config/taler/account-1.json \
-  
test_taler_exchange_httpd_home/.local/share/taler/exchange-offline/master.priv \
-  
test_taler_exchange_httpd_home/.local/share/taler/exchange/offline-keys/master.priv
 \
-  test-taler-exchange-aggregator-postgres.conf \
-  test-taler-exchange-wirewatch-postgres.conf \
+  test_donau_api_home/.config/taler/account-2.json \
+  test_donau_api_home/.local/share/taler/donau-offline/master.priv \
+  test_donau_api_home/.local/share/taler/donau/offline-keys/master.priv \
+  test_donau_api_keys_cherry_picking_home/.config/taler/x-taler-bank.json \
+  
test_donau_api_keys_cherry_picking_home/.local/share/taler/donau-offline/master.priv
 \
+  
test_donau_api_keys_cherry_picking_home/.local/share/taler/donau/offline-keys/master.priv
 \
+  test_donau_api.conf \
+  test_donau_api-cs.conf \
+  test_donau_api-rsa.conf \
+  test_donau_api_age_restiction.conf \
+  test_donau_api_age_restiction-cs.conf \
+  test_donau_api_age_restiction-rsa.conf \
+  test_donau_api_twisted.conf \
+  test_donau_api_twisted-cs.conf \
+  test_donau_api_twisted-rsa.conf \
+  test_donau_api_keys_cherry_picking.conf \
+  test_donau_api_keys_cherry_picking-cs.conf \
+  test_donau_api_keys_cherry_picking-rsa.conf \
+  test_donau_api_expire_reserve_now-cs.conf \
+  test_donau_api_expire_reserve_now-rsa.conf \
+  test_taler_donau_httpd_home/.config/taler/account-1.json \
+  test_taler_donau_httpd_home/.local/share/taler/donau-offline/master.priv \
+  
test_taler_donau_httpd_home/.local/share/taler/donau/offline-keys/master.priv \
+  test-taler-donau-aggregator-postgres.conf \
+  test-taler-donau-wirewatch-postgres.conf \
   test_kyc_api.conf
diff --git a/src/testing/coins-cs.conf b/src/testing/coins-cs.conf
index 92163ba..fbdea1b 100644
--- a/src/testing/coins-cs.conf
+++ b/src/testing/coins-cs.conf
@@ -1,6 +1,6 @@
 
 # Sections starting with "coin_" specify which denominations
-# the exchange should support (and their respective fee structure)
+# the donau should support (and their respective fee structure)
 [coin_eur_ct_1]
 value = EUR:0.01
 duration_withdraw = 7 days
diff --git a/src/testing/coins-rsa.conf b/src/testing/coins-rsa.conf
index 7a21a34..9348cbc 100644
--- a/src/testing/coins-rsa.conf
+++ b/src/testing/coins-rsa.conf
@@ -1,7 +1,7 @@
 # This file is in the public domain.
 
 # Sections starting with "coin_" specify which denominations
-# the exchange should support (and their respective fee structure)
+# the donau should support (and their respective fee structure)
 [coin_eur_ct_1]
 value = EUR:0.01
 duration_withdraw = 7 days
diff --git a/src/testing/test_exchange_api-cs.conf 
b/src/testing/test_donau_api-cs.conf
similarity index 65%
rename from src/testing/test_exchange_api-cs.conf
rename to src/testing/test_donau_api-cs.conf
index b80696f..6b1823d 100644
--- a/src/testing/test_exchange_api-cs.conf
+++ b/src/testing/test_donau_api-cs.conf
@@ -1,4 +1,4 @@
 # This file is in the public domain.
 #
 @INLINE@ coins-cs.conf
-@INLINE@ test_exchange_api.conf
+@INLINE@ test_donau_api.conf
diff --git a/src/testing/test_exchange_api-rsa.conf 
b/src/testing/test_donau_api-rsa.conf
similarity index 67%
rename from src/testing/test_exchange_api-rsa.conf
rename to src/testing/test_donau_api-rsa.conf
index 351c876..027ae32 100644
--- a/src/testing/test_exchange_api-rsa.conf
+++ b/src/testing/test_donau_api-rsa.conf
@@ -1,4 +1,4 @@
 # This file is in the public domain.
 #
 @INLINE@ coins-rsa.conf
-@INLINE@ test_exchange_api.conf
\ No newline at end of file
+@INLINE@ test_donau_api.conf
\ No newline at end of file
diff --git a/src/testing/test_exchange_api.c b/src/testing/test_donau_api.c
similarity index 91%
rename from src/testing/test_exchange_api.c
rename to src/testing/test_donau_api.c
index 41b8301..cfa9dff 100644
--- a/src/testing/test_exchange_api.c
+++ b/src/testing/test_donau_api.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -17,8 +17,8 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file testing/test_exchange_api.c
- * @brief testcase to test exchange's HTTP API interface
+ * @file testing/test_donau_api.c
+ * @brief testcase to test donau's HTTP API interface
  * @author Sree Harsha Totakura <sreeharsha@totakura.in>
  * @author Christian Grothoff
  * @author Marcello Stanisci
@@ -26,7 +26,7 @@
 #include "platform.h"
 #include "taler_util.h"
 #include "taler_signatures.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
 #include <gnunet/gnunet_util_lib.h>
 #include <gnunet/gnunet_testing_lib.h>
@@ -63,16 +63,16 @@ static struct TALER_TESTING_Credentials cred;
 static bool uses_cs;
 
 /**
- * Execute the taler-exchange-wirewatch command with
+ * Execute the taler-donau-wirewatch command with
  * our configuration file.
  *
  * @param label label to use for the command.
  */
 #define CMD_EXEC_WIREWATCH(label) \
-  TALER_TESTING_cmd_exec_wirewatch2 (label, config_file, "exchange-account-2")
+  TALER_TESTING_cmd_exec_wirewatch2 (label, config_file, "donau-account-2")
 
 /**
- * Execute the taler-exchange-aggregator, closer and transfer commands with
+ * Execute the taler-donau-aggregator, closer and transfer commands with
  * our configuration file.
  *
  * @param label label to use for the command.
@@ -85,12 +85,12 @@ static bool uses_cs;
 
 /**
  * Run wire transfer of funds from some user's account to the
- * exchange.
+ * donau.
  *
  * @param label label to use for the command.
  * @param amount amount to transfer, i.e. "EUR:1"
  */
-#define CMD_TRANSFER_TO_EXCHANGE(label,amount) \
+#define CMD_TRANSFER_TO_DONAU(label,amount) \
   TALER_TESTING_cmd_admin_add_incoming (label, amount, \
                                         &cred.ba,                \
                                         cred.user42_payto)
@@ -111,9 +111,9 @@ run (void *cls,
    */
   struct TALER_TESTING_Command withdraw[] = {
     /**
-     * Move money to the exchange's bank account.
+     * Move money to the donau's bank account.
      */
-    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-1",
+    CMD_TRANSFER_TO_DONAU ("create-reserve-1",
                               "EUR:6.02"),
     TALER_TESTING_cmd_reserve_poll ("poll-reserve-1",
                                     "create-reserve-1",
@@ -123,7 +123,7 @@ run (void *cls,
     TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-1",
                                                  "EUR:6.02",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "create-reserve-1"),
     /**
      * Make a reserve exist, according to the previous
@@ -145,7 +145,7 @@ run (void *cls,
      * Withdraw EUR:1 using the SAME private coin key as for the previous coin
      * (in violation of the specification, to be detected on spending!).
      * However, note that this does NOT work with 'CS', as for a different
-     * denomination we get different R0/R1 values from the exchange, and
+     * denomination we get different R0/R1 values from the donau, and
      * thus will generate a different coin private key as R0/R1 are hashed
      * into the coin priv. So here, we fail to 'reuse' the key due to the
      * cryptographic construction!
@@ -192,7 +192,7 @@ run (void *cls,
     /* This creates a conflict, as we have the same coin public key (reuse!),
        but different denomination public keys (which is not allowed).
        However, note that this does NOT work with 'CS', as for a different
-       denomination we get different R0/R1 values from the exchange, and
+       denomination we get different R0/R1 values from the donau, and
        thus will generate a different coin private key as R0/R1 are hashed
        into the coin priv. So here, we fail to 'reuse' the key due to the
        cryptographic construction! */
@@ -258,12 +258,12 @@ run (void *cls,
                             NULL),
 
     /* Fill reserve with EUR:5, 1ct is for fees. */
-    CMD_TRANSFER_TO_EXCHANGE ("refresh-create-reserve-1",
+    CMD_TRANSFER_TO_DONAU ("refresh-create-reserve-1",
                               "EUR:5.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer ("ck-refresh-create-reserve-1",
                                                  "EUR:5.01",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "refresh-create-reserve-1"),
     /**
      * Make previous command effective.
@@ -278,7 +278,7 @@ run (void *cls,
                                        0, /* age restriction off */
                                        MHD_HTTP_OK),
     /* Try to partially spend (deposit) 1 EUR of the 5 EUR coin
-     * (in full) (merchant would receive EUR:0.99 due to 1 ct
+     * (in full) (charity would receive EUR:0.99 due to 1 ct
      * deposit fee)
      */
     TALER_TESTING_cmd_deposit ("refresh-deposit-partial",
@@ -356,22 +356,22 @@ run (void *cls,
   /**
    * Test withdrawal with age restriction.  Success is expected, so it MUST be
    * called _after_ TALER_TESTING_cmd_exec_offline_sign_extensions is called,
-   * i. e. age restriction is activated in the exchange!
+   * i. e. age restriction is activated in the donau!
    *
    * TODO: create a test that tries to withdraw coins with age restriction but
-   * (expectedly) fails because the exchange doesn't support age restriction
+   * (expectedly) fails because the donau doesn't support age restriction
    * yet.
    */
   struct TALER_TESTING_Command withdraw_age[] = {
     /**
-     * Move money to the exchange's bank account.
+     * Move money to the donau's bank account.
      */
-    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-age",
+    CMD_TRANSFER_TO_DONAU ("create-reserve-age",
                               "EUR:6.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-age",
                                                  "EUR:6.01",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "create-reserve-age"),
     /**
      * Make a reserve exist, according to the previous
@@ -411,7 +411,7 @@ run (void *cls,
   struct TALER_TESTING_Command track[] = {
     /* Try resolving a deposit's WTID, as we never triggered
      * execution of transactions, the answer should be that
-     * the exchange knows about the deposit, but has no WTID yet.
+     * the donau knows about the deposit, but has no WTID yet.
      */
     TALER_TESTING_cmd_track_transaction ("deposit-wtid-found",
                                          "deposit-simple",
@@ -420,7 +420,7 @@ run (void *cls,
                                          NULL),
     /* Try resolving a deposit's WTID for a failed deposit.
      * As the deposit failed, the answer should be that the
-     * exchange does NOT know about the deposit.
+     * donau does NOT know about the deposit.
      */
     TALER_TESTING_cmd_track_transaction ("deposit-wtid-failing",
                                          "deposit-double-2",
@@ -428,7 +428,7 @@ run (void *cls,
                                          MHD_HTTP_NOT_FOUND,
                                          NULL),
     /* Try resolving an undefined (all zeros) WTID; this
-     * should fail as obviously the exchange didn't use that
+     * should fail as obviously the donau didn't use that
      * WTID value for any transaction.
      */
     TALER_TESTING_cmd_track_transfer_empty ("wire-deposit-failing",
@@ -436,60 +436,60 @@ run (void *cls,
                                             MHD_HTTP_NOT_FOUND),
     /* Run transfers. Note that _actual_ aggregation will NOT
      * happen here, as each deposit operation is run with a
-     * fresh merchant public key, so the aggregator will treat
-     * them as "different" merchants and do the wire transfers
+     * fresh charity public key, so the aggregator will treat
+     * them as "different" charities and do the wire transfers
      * individually. */
     CMD_EXEC_AGGREGATOR ("run-aggregator"),
     /**
      * Check all the transfers took place.
      */
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-499c",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:4.98",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-499c2",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:4.97",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c1",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:0.98",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c2",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:0.98",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c3",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:0.98",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c4",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:0.98",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-08c",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:0.08",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user43_payto),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-08c2",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:0.08",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user43_payto),
     /* In case of CS, one transaction above succeeded that
        failed for RSA, hence we need to check for an extra transfer here */
     uses_cs
     ? TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-98c",
-                                             cred.exchange_url,
+                                             cred.donau_url,
                                              "EUR:0.98",
-                                             cred.exchange_payto,
+                                             cred.donau_payto,
                                              cred.user42_payto)
     : TALER_TESTING_cmd_sleep ("dummy",
                                0),
@@ -518,14 +518,14 @@ run (void *cls,
    */
   struct TALER_TESTING_Command unaggregation[] = {
     TALER_TESTING_cmd_check_bank_empty ("far-future-aggregation-a"),
-    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-unaggregated",
+    CMD_TRANSFER_TO_DONAU ("create-reserve-unaggregated",
                               "EUR:5.01"),
     /* "consume" reserve creation transfer.  */
     TALER_TESTING_cmd_check_bank_admin_transfer (
       "check-create-reserve-unaggregated",
       "EUR:5.01",
       cred.user42_payto,
-      cred.exchange_payto,
+      cred.donau_payto,
       "create-reserve-unaggregated"),
     CMD_EXEC_WIREWATCH ("wirewatch-unaggregated"),
     TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-unaggregated",
@@ -553,13 +553,13 @@ run (void *cls,
 
   struct TALER_TESTING_Command refresh_age[] = {
     /* Fill reserve with EUR:5, 1ct is for fees. */
-    CMD_TRANSFER_TO_EXCHANGE ("refresh-create-reserve-age-1",
+    CMD_TRANSFER_TO_DONAU ("refresh-create-reserve-age-1",
                               "EUR:6.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer (
       "ck-refresh-create-reserve-age-1",
       "EUR:6.01",
       cred.user42_payto,
-      cred.exchange_payto,
+      cred.donau_payto,
       "refresh-create-reserve-age-1"),
     /**
      * Make previous command effective.
@@ -574,7 +574,7 @@ run (void *cls,
                                        13,
                                        MHD_HTTP_OK),
     /* Try to partially spend (deposit) 1 EUR of the 5 EUR coin
-     * (in full) (merchant would receive EUR:0.99 due to 1 ct
+     * (in full) (charity would receive EUR:0.99 due to 1 ct
      * deposit fee)
      */
     TALER_TESTING_cmd_deposit ("refresh-deposit-partial-age",
@@ -650,17 +650,17 @@ run (void *cls,
 
   /**
    * This block exercises the aggretation logic by making two payments
-   * to the same merchant.
+   * to the same charity.
    */
   struct TALER_TESTING_Command aggregation[] = {
-    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-aggtest",
+    CMD_TRANSFER_TO_DONAU ("create-reserve-aggtest",
                               "EUR:5.01"),
     /* "consume" reserve creation transfer.  */
     TALER_TESTING_cmd_check_bank_admin_transfer (
       "check-create-reserve-aggtest",
       "EUR:5.01",
       cred.user42_payto,
-      cred.exchange_payto,
+      cred.donau_payto,
       "create-reserve-aggtest"),
     CMD_EXEC_WIREWATCH ("wirewatch-aggtest"),
     TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-aggtest",
@@ -687,9 +687,9 @@ run (void *cls,
                                         "deposit-aggtest-1"),
     CMD_EXEC_AGGREGATOR ("aggregation-aggtest"),
     TALER_TESTING_cmd_check_bank_transfer ("check-bank-transfer-aggtest",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:3.97",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user43_payto),
     TALER_TESTING_cmd_check_bank_empty ("check-bank-empty-aggtest"),
     TALER_TESTING_cmd_end ()
@@ -700,12 +700,12 @@ run (void *cls,
      * Fill reserve with EUR:5.01, as withdraw fee is 1 ct per
      * config.
      */
-    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-r1",
+    CMD_TRANSFER_TO_DONAU ("create-reserve-r1",
                               "EUR:5.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-r1",
                                                  "EUR:5.01",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "create-reserve-r1"),
     /**
      * Run wire-watch to trigger the reserve creation.
@@ -718,7 +718,7 @@ run (void *cls,
                                        0, /* age restriction off */
                                        MHD_HTTP_OK),
     /**
-     * Spend 5 EUR of the 5 EUR coin (in full) (merchant would
+     * Spend 5 EUR of the 5 EUR coin (in full) (charity would
      * receive EUR:4.99 due to 1 ct deposit fee)
      */
     TALER_TESTING_cmd_deposit ("deposit-refund-1",
@@ -770,7 +770,7 @@ run (void *cls,
                                       2),
     /**
      * Spend 4.99 EUR of the refunded 4.99 EUR coin (1ct gone
-     * due to refund) (merchant would receive EUR:4.98 due to
+     * due to refund) (charity would receive EUR:4.98 due to
      * 1 ct deposit fee) */
     TALER_TESTING_cmd_deposit ("deposit-refund-2",
                                "withdraw-coin-r1",
@@ -789,9 +789,9 @@ run (void *cls,
      * Check that deposit did run.
      */
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-pre-refund",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:4.97",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     /**
      * Run failing refund, as past deadline & aggregation.
@@ -805,12 +805,12 @@ run (void *cls,
      * Test refunded coins are never executed, even past
      * refund deadline
      */
-    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-rb",
+    CMD_TRANSFER_TO_DONAU ("create-reserve-rb",
                               "EUR:5.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-rb",
                                                  "EUR:5.01",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "create-reserve-rb"),
     CMD_EXEC_WIREWATCH ("wirewatch-rb"),
     TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-rb",
@@ -850,13 +850,13 @@ run (void *cls,
      * Fill reserve with EUR:5.01, as withdraw fee is 1 ct per
      * config.
      */
-    CMD_TRANSFER_TO_EXCHANGE ("recoup-create-reserve-1",
+    CMD_TRANSFER_TO_DONAU ("recoup-create-reserve-1",
                               "EUR:15.02"),
     TALER_TESTING_cmd_check_bank_admin_transfer (
       "recoup-create-reserve-1-check",
       "EUR:15.02",
       cred.user42_payto,
-      cred.exchange_payto,
+      cred.donau_payto,
       "recoup-create-reserve-1"),
     /**
      * Run wire-watch to trigger the reserve creation.
@@ -981,16 +981,16 @@ run (void *cls,
     /* These commands should close the reserve because
      * the aggregator is given a config file that overrides
      * the reserve expiration time (making it now-ish) */
-    CMD_TRANSFER_TO_EXCHANGE ("short-lived-reserve",
+    CMD_TRANSFER_TO_DONAU ("short-lived-reserve",
                               "EUR:5.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer ("check-short-lived-reserve",
                                                  "EUR:5.01",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "short-lived-reserve"),
     TALER_TESTING_cmd_exec_wirewatch2 ("short-lived-aggregation",
                                        config_file_expire_reserve_now,
-                                       "exchange-account-2"),
+                                       "donau-account-2"),
     TALER_TESTING_cmd_exec_closer ("close-reserves",
                                    config_file_expire_reserve_now,
                                    "EUR:5",
@@ -1009,21 +1009,21 @@ run (void *cls,
                                        0, /* age restriction off */
                                        MHD_HTTP_CONFLICT),
     TALER_TESTING_cmd_check_bank_transfer ("check_bank_short-lived_reimburse",
-                                           cred.exchange_url,
+                                           cred.donau_url,
                                            "EUR:5",
-                                           cred.exchange_payto,
+                                           cred.donau_payto,
                                            cred.user42_payto),
     /* Fill reserve with EUR:2.02, as withdraw fee is 1 ct per
      * config, then withdraw two coin, partially spend one, and
      * then have the rest paid back.  Check deposit of other coin
      * fails.  Do not use EUR:5 here as the EUR:5 coin was
      * revoked and we did not bother to create a new one... */
-    CMD_TRANSFER_TO_EXCHANGE ("recoup-create-reserve-2",
+    CMD_TRANSFER_TO_DONAU ("recoup-create-reserve-2",
                               "EUR:2.02"),
     TALER_TESTING_cmd_check_bank_admin_transfer ("ck-recoup-create-reserve-2",
                                                  "EUR:2.02",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "recoup-create-reserve-2"),
     /* Make previous command effective. */
     CMD_EXEC_WIREWATCH ("wirewatch-5"),
@@ -1077,7 +1077,7 @@ run (void *cls,
                                MHD_HTTP_GONE),
     /* Test deposit fails after recoup, with proof in recoup */
 
-    /* Note that, the exchange will never return the coin's transaction
+    /* Note that, the donau will never return the coin's transaction
      * history with recoup data, as we get a 410 on the DK! */
     TALER_TESTING_cmd_deposit ("recoup-deposit-partial-after-recoup",
                                "recoup-withdraw-coin-2a",
@@ -1088,13 +1088,13 @@ run (void *cls,
                                "EUR:0.5",
                                MHD_HTTP_GONE),
     /* Test that revoked coins cannot be withdrawn */
-    CMD_TRANSFER_TO_EXCHANGE ("recoup-create-reserve-3",
+    CMD_TRANSFER_TO_DONAU ("recoup-create-reserve-3",
                               "EUR:1.01"),
     TALER_TESTING_cmd_check_bank_admin_transfer (
       "check-recoup-create-reserve-3",
       "EUR:1.01",
       cred.user42_payto,
-      cred.exchange_payto,
+      cred.donau_payto,
       "recoup-create-reserve-3"),
     CMD_EXEC_WIREWATCH ("wirewatch-6"),
     TALER_TESTING_cmd_withdraw_amount ("recoup-withdraw-coin-3-revoked",
@@ -1113,9 +1113,9 @@ run (void *cls,
    */
   struct TALER_TESTING_Command batch_withdraw[] = {
     /**
-     * Move money to the exchange's bank account.
+     * Move money to the donau's bank account.
      */
-    CMD_TRANSFER_TO_EXCHANGE ("create-batch-reserve-1",
+    CMD_TRANSFER_TO_DONAU ("create-batch-reserve-1",
                               "EUR:6.03"),
     TALER_TESTING_cmd_reserve_poll ("poll-batch-reserve-1",
                                     "create-batch-reserve-1",
@@ -1125,7 +1125,7 @@ run (void *cls,
     TALER_TESTING_cmd_check_bank_admin_transfer 
("check-create-batch-reserve-1",
                                                  "EUR:6.03",
                                                  cred.user42_payto,
-                                                 cred.exchange_payto,
+                                                 cred.donau_payto,
                                                  "create-batch-reserve-1"),
     /*
      * Make a reserve exist, according to the previous
@@ -1190,12 +1190,12 @@ run (void *cls,
        i++)
   {
     reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 0]
-      = CMD_TRANSFER_TO_EXCHANGE ("reserve-open-close-key",
+      = CMD_TRANSFER_TO_DONAU ("reserve-open-close-key",
                                   "EUR:20");
     reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 1]
       = TALER_TESTING_cmd_exec_wirewatch2 ("reserve-open-close-wirewatch",
                                            config_file_expire_reserve_now,
-                                           "exchange-account-2");
+                                           "donau-account-2");
     reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 2]
       = TALER_TESTING_cmd_exec_closer ("reserve-open-close-aggregation",
                                        config_file_expire_reserve_now,
@@ -1215,12 +1215,12 @@ run (void *cls,
     struct TALER_TESTING_Command commands[] = {
       TALER_TESTING_cmd_run_fakebank ("run-fakebank",
                                       cred.cfg,
-                                      "exchange-account-2"),
+                                      "donau-account-2"),
       TALER_TESTING_cmd_system_start ("start-taler",
                                       config_file,
                                       "-e",
                                       NULL),
-      TALER_TESTING_cmd_get_exchange ("get-exchange",
+      TALER_TESTING_cmd_get_donau ("get-donau",
                                       cred.cfg,
                                       NULL,
                                       true,
@@ -1274,17 +1274,17 @@ main (int argc,
     uses_cs = (0 == strcmp (cipher,
                             "cs"));
     GNUNET_asprintf (&config_file,
-                     "test_exchange_api-%s.conf",
+                     "test_donau_api-%s.conf",
                      cipher);
     GNUNET_asprintf (&config_file_expire_reserve_now,
-                     "test_exchange_api_expire_reserve_now-%s.conf",
+                     "test_donau_api_expire_reserve_now-%s.conf",
                      cipher);
     GNUNET_free (cipher);
   }
   return TALER_TESTING_main (argv,
                              "INFO",
                              config_file,
-                             "exchange-account-2",
+                             "donau-account-2",
                              TALER_TESTING_BS_FAKEBANK,
                              &cred,
                              &run,
@@ -1292,4 +1292,4 @@ main (int argc,
 }
 
 
-/* end of test_exchange_api.c */
+/* end of test_donau_api.c */
diff --git a/src/testing/test_exchange_api.conf 
b/src/testing/test_donau_api.conf
similarity index 80%
rename from src/testing/test_exchange_api.conf
rename to src/testing/test_donau_api.conf
index f244704..5b8c592 100644
--- a/src/testing/test_exchange_api.conf
+++ b/src/testing/test_donau_api.conf
@@ -2,7 +2,7 @@
 #
 
 [PATHS]
-TALER_TEST_HOME = test_exchange_api_home/
+TALER_TEST_HOME = test_donau_api_home/
 
 [taler]
 CURRENCY = EUR
@@ -20,7 +20,7 @@ CONFIG = "postgres:///talercheck"
 [bank]
 HTTP_PORT = 8082
 
-[exchange]
+[donau]
 TERMS_ETAG = tos
 PRIVACY_ETAG = 0
 AML_THRESHOLD = EUR:1000000
@@ -31,37 +31,37 @@ BASE_URL = "http://localhost:8081/";
 EXPIRE_SHARD_SIZE ="300 ms"
 EXPIRE_IDLE_SLEEP_INTERVAL ="1 s"
 
-[exchangedb-postgres]
+[donaudb-postgres]
 CONFIG = "postgres:///talercheck"
 
-[taler-exchange-secmod-cs]
+[taler-donau-secmod-cs]
 LOOKAHEAD_SIGN = "24 days"
 
-[taler-exchange-secmod-rsa]
+[taler-donau-secmod-rsa]
 LOOKAHEAD_SIGN = "24 days"
 
-[taler-exchange-secmod-eddsa]
+[taler-donau-secmod-eddsa]
 LOOKAHEAD_SIGN = "24 days"
 DURATION = "14 days"
 
 
-[exchange-account-1]
+[donau-account-1]
 PAYTO_URI = "payto://x-taler-bank/localhost/2?receiver-name=2"
 ENABLE_DEBIT = YES
 ENABLE_CREDIT = YES
 
-[exchange-accountcredentials-1]
+[donau-accountcredentials-1]
 WIRE_GATEWAY_AUTH_METHOD = none
 WIRE_GATEWAY_URL = "http://localhost:8082/2/";
 
-[exchange-account-2]
+[donau-account-2]
 PAYTO_URI = "payto://x-taler-bank/localhost/2?receiver-name=2"
 ENABLE_DEBIT = YES
 ENABLE_CREDIT = YES
 
-[exchange-accountcredentials-2]
+[donau-accountcredentials-2]
 WIRE_GATEWAY_AUTH_METHOD = basic
-USERNAME = Exchange
+USERNAME = Donau
 PASSWORD = x
 WIRE_GATEWAY_URL = "http://localhost:8082/2/";
 
@@ -75,8 +75,8 @@ KYC_OAUTH2_VALIDITY = forever
 KYC_OAUTH2_TOKEN_URL = http://localhost:6666/oauth/v2/token
 KYC_OAUTH2_AUTHORIZE_URL = http://localhost:6666/oauth/v2/login
 KYC_OAUTH2_INFO_URL = http://localhost:6666/api/user/me
-KYC_OAUTH2_CLIENT_ID = taler-exchange
-KYC_OAUTH2_CLIENT_SECRET = exchange-secret
+KYC_OAUTH2_CLIENT_ID = taler-donau
+KYC_OAUTH2_CLIENT_SECRET = donau-secret
 KYC_OAUTH2_POST_URL = http://example.com/
 KYC_OAUTH2_ATTRIBUTE_TEMPLATE = "{"full_name":"{{last_name}}, {{first_name}}"}"
 
@@ -86,6 +86,6 @@ REQUIRED_CHECKS = DUMMY
 THRESHOLD = EUR:0
 TIMEFRAME = 1d
 
-[exchange-extension-age_restriction]
+[donau-extension-age_restriction]
 ENABLED = YES
 #AGE_GROUPS = "8:10:12:14:16:18:21"
diff --git a/src/testing/testing_api_cmd_batch.c 
b/src/testing/testing_api_cmd_batch.c
index 5bb7b97..276ba87 100644
--- a/src/testing/testing_api_cmd_batch.c
+++ b/src/testing/testing_api_cmd_batch.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
diff --git a/src/testing/testing_api_cmd_batch_deposit.c 
b/src/testing/testing_api_cmd_batch_deposit.c
index a3c25e3..5d549a2 100644
--- a/src/testing/testing_api_cmd_batch_deposit.c
+++ b/src/testing/testing_api_cmd_batch_deposit.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -103,26 +103,26 @@ struct BatchDepositState
   struct GNUNET_TIME_Relative backoff;
 
   /**
-   * When did the exchange receive the deposit?
+   * When did the donau receive the deposit?
    */
-  struct GNUNET_TIME_Timestamp exchange_timestamp;
+  struct GNUNET_TIME_Timestamp donau_timestamp;
 
   /**
-   * Signing key used by the exchange to sign the
+   * Signing key used by the donau to sign the
    * deposit confirmation.
    */
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
    * Set (by the interpreter) to a fresh private key.  This
    * key will be used to sign the deposit request.
    */
-  struct TALER_MerchantPrivateKeyP merchant_priv;
+  struct TALER_CharityPrivateKeyP charity_priv;
 
   /**
    * Deposit handle while operation is running.
    */
-  struct TALER_EXCHANGE_BatchDepositHandle *dh;
+  struct TALER_DONAU_BatchDepositHandle *dh;
 
   /**
    * Array of coins to batch-deposit.
@@ -130,7 +130,7 @@ struct BatchDepositState
   struct Coin *coins;
 
   /**
-   * Wire details of who is depositing -- this would be merchant
+   * Wire details of who is depositing -- this would be charity
    * wire details in a normal scenario.
    */
   json_t *wire_details;
@@ -151,10 +151,10 @@ struct BatchDepositState
   struct GNUNET_SCHEDULER_Task *retry_task;
 
   /**
-   * Array of @e num_coins signatures from the exchange on the
+   * Array of @e num_coins signatures from the donau on the
    * deposit confirmation.
    */
-  struct TALER_ExchangeSignatureP *exchange_sigs;
+  struct TALER_DonauSignatureP *donau_sigs;
 
   /**
    * Reference to previous deposit operation.
@@ -191,7 +191,7 @@ struct BatchDepositState
  */
 static void
 batch_deposit_cb (void *cls,
-                  const struct TALER_EXCHANGE_BatchDepositResult *dr)
+                  const struct TALER_DONAU_BatchDepositResult *dr)
 {
   struct BatchDepositState *ds = cls;
 
@@ -212,12 +212,12 @@ batch_deposit_cb (void *cls,
       return;
     }
     ds->deposit_succeeded = GNUNET_YES;
-    ds->exchange_timestamp = dr->details.ok.deposit_timestamp;
-    ds->exchange_pub = *dr->details.ok.exchange_pub;
-    ds->exchange_sigs = GNUNET_memdup (dr->details.ok.exchange_sigs,
+    ds->donau_timestamp = dr->details.ok.deposit_timestamp;
+    ds->donau_pub = *dr->details.ok.donau_pub;
+    ds->donau_sigs = GNUNET_memdup (dr->details.ok.donau_sigs,
                                        dr->details.ok.num_signatures
                                        * sizeof (struct
-                                                 TALER_ExchangeSignatureP));
+                                                 TALER_DonauSignatureP));
   }
   TALER_TESTING_interpreter_next (ds->is);
 }
@@ -236,15 +236,15 @@ batch_deposit_run (void *cls,
                    struct TALER_TESTING_Interpreter *is)
 {
   struct BatchDepositState *ds = cls;
-  const struct TALER_EXCHANGE_DenomPublicKey *denom_pub;
+  const struct TALER_DONAU_DenomPublicKey *denom_pub;
   const struct TALER_DenominationSignature *denom_pub_sig;
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
   struct TALER_PrivateContractHashP h_contract_terms;
   enum TALER_ErrorCode ec;
   struct TALER_WireSaltP wire_salt;
-  struct TALER_MerchantWireHashP h_wire;
+  struct TALER_CharityWireHashP h_wire;
   const char *payto_uri;
-  struct TALER_EXCHANGE_CoinDepositDetail cdds[ds->num_coins];
+  struct TALER_DONAU_CoinDepositDetail cdds[ds->num_coins];
   struct GNUNET_JSON_Specification spec[] = {
     GNUNET_JSON_spec_string ("payto_uri",
                              &payto_uri),
@@ -252,11 +252,11 @@ batch_deposit_run (void *cls,
                                  &wire_salt),
     GNUNET_JSON_spec_end ()
   };
-  const char *exchange_url
-    = TALER_TESTING_get_exchange_url (is);
+  const char *donau_url
+    = TALER_TESTING_get_donau_url (is);
 
   (void) cmd;
-  if (NULL == exchange_url)
+  if (NULL == donau_url)
   {
     GNUNET_break (0);
     return;
@@ -287,7 +287,7 @@ batch_deposit_run (void *cls,
     return;
   }
   GNUNET_assert (GNUNET_OK ==
-                 TALER_JSON_merchant_wire_signature_hash (ds->wire_details,
+                 TALER_JSON_charity_wire_signature_hash (ds->wire_details,
                                                           &h_wire));
   if (! GNUNET_TIME_absolute_is_zero (ds->refund_deadline.abs_time))
   {
@@ -306,13 +306,13 @@ batch_deposit_run (void *cls,
     ds->refund_deadline = ds->wallet_timestamp;
     ds->wire_deadline = GNUNET_TIME_timestamp_get ();
   }
-  GNUNET_CRYPTO_eddsa_key_get_public (&ds->merchant_priv.eddsa_priv,
-                                      &merchant_pub.eddsa_pub);
+  GNUNET_CRYPTO_eddsa_key_get_public (&ds->charity_priv.eddsa_priv,
+                                      &charity_pub.eddsa_pub);
 
   for (unsigned int i = 0; i<ds->num_coins; i++)
   {
     struct Coin *coin = &ds->coins[i];
-    struct TALER_EXCHANGE_CoinDepositDetail *cdd = &cdds[i];
+    struct TALER_DONAU_CoinDepositDetail *cdd = &cdds[i];
     const struct TALER_CoinSpendPrivateKeyP *coin_priv;
     const struct TALER_AgeCommitmentProof *age_commitment_proof = NULL;
 
@@ -369,7 +369,7 @@ batch_deposit_run (void *cls,
                                NULL, /* hash of extensions */
                                &denom_pub->h_key,
                                ds->wallet_timestamp,
-                               &merchant_pub,
+                               &charity_pub,
                                ds->refund_deadline,
                                coin_priv,
                                &cdd->coin_sig);
@@ -377,20 +377,20 @@ batch_deposit_run (void *cls,
 
   GNUNET_assert (NULL == ds->dh);
   {
-    struct TALER_EXCHANGE_DepositContractDetail dcd = {
+    struct TALER_DONAU_DepositContractDetail dcd = {
       .wire_deadline = ds->wire_deadline,
-      .merchant_payto_uri = payto_uri,
+      .charity_payto_uri = payto_uri,
       .wire_salt = wire_salt,
       .h_contract_terms = h_contract_terms,
       .policy_details = NULL /* FIXME #7270-OEC */,
       .wallet_timestamp = ds->wallet_timestamp,
-      .merchant_pub = merchant_pub,
+      .charity_pub = charity_pub,
       .refund_deadline = ds->refund_deadline
     };
 
-    ds->dh = TALER_EXCHANGE_batch_deposit (
+    ds->dh = TALER_DONAU_batch_deposit (
       TALER_TESTING_interpreter_get_context (is),
-      exchange_url,
+      donau_url,
       TALER_TESTING_get_keys (is),
       &dcd,
       ds->num_coins,
@@ -428,7 +428,7 @@ batch_deposit_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ds->is,
                                       cmd->label);
-    TALER_EXCHANGE_batch_deposit_cancel (ds->dh);
+    TALER_DONAU_batch_deposit_cancel (ds->dh);
     ds->dh = NULL;
   }
   if (NULL != ds->retry_task)
@@ -439,7 +439,7 @@ batch_deposit_cleanup (void *cls,
   for (unsigned int i = 0; i<ds->num_coins; i++)
     GNUNET_free (ds->coins[i].coin_reference);
   GNUNET_free (ds->coins);
-  GNUNET_free (ds->exchange_sigs);
+  GNUNET_free (ds->donau_sigs);
   json_decref (ds->wire_details);
   json_decref (ds->contract_terms);
   GNUNET_free (ds);
@@ -495,14 +495,14 @@ batch_deposit_traits (void *cls,
     struct TALER_TESTING_Trait traits[] = {
       /* First two traits are only available if
          ds->traits is #GNUNET_YES */
-      TALER_TESTING_make_trait_exchange_pub (index,
-                                             &ds->exchange_pub),
-      TALER_TESTING_make_trait_exchange_sig (index,
-                                             &ds->exchange_sigs[index]),
+      TALER_TESTING_make_trait_donau_pub (index,
+                                             &ds->donau_pub),
+      TALER_TESTING_make_trait_donau_sig (index,
+                                             &ds->donau_sigs[index]),
       /* These traits are always available */
       TALER_TESTING_make_trait_wire_details (ds->wire_details),
       TALER_TESTING_make_trait_contract_terms (ds->contract_terms),
-      TALER_TESTING_make_trait_merchant_priv (&ds->merchant_priv),
+      TALER_TESTING_make_trait_charity_priv (&ds->charity_priv),
       TALER_TESTING_make_trait_age_commitment_proof (index,
                                                      age_commitment_proof),
       TALER_TESTING_make_trait_coin_priv (index,
@@ -513,7 +513,7 @@ batch_deposit_traits (void *cls,
                                                    &coin->deposit_fee),
 
       TALER_TESTING_make_trait_timestamp (index,
-                                          &ds->exchange_timestamp),
+                                          &ds->donau_timestamp),
       TALER_TESTING_make_trait_wire_deadline (index,
                                               &ds->wire_deadline),
       TALER_TESTING_make_trait_refund_deadline (index,
@@ -584,7 +584,7 @@ TALER_TESTING_cmd_batch_deposit (const char *label,
   ds->contract_terms = json_loads (contract_terms,
                                    JSON_REJECT_DUPLICATES,
                                    NULL);
-  GNUNET_CRYPTO_eddsa_key_create (&ds->merchant_priv.eddsa_priv);
+  GNUNET_CRYPTO_eddsa_key_create (&ds->charity_priv.eddsa_priv);
   if (NULL == ds->contract_terms)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
diff --git a/src/testing/testing_api_cmd_batch_withdraw.c 
b/src/testing/testing_api_cmd_batch_withdraw.c
index 41c74c3..a793e03 100644
--- a/src/testing/testing_api_cmd_batch_withdraw.c
+++ b/src/testing/testing_api_cmd_batch_withdraw.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -23,7 +23,7 @@
  * @author Marcello Stanisci
  */
 #include "platform.h"
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 #include "taler_json_lib.h"
 #include <microhttpd.h>
 #include <gnunet/gnunet_curl_lib.h>
@@ -39,7 +39,7 @@ struct CoinState
 
   /**
    * String describing the denomination value we should withdraw.
-   * A corresponding denomination key must exist in the exchange's
+   * A corresponding denomination key must exist in the donau's
    * offerings.  Can be NULL if @e pk is set instead.
    */
   struct TALER_Amount amount;
@@ -49,7 +49,7 @@ struct CoinState
    * use.  Otherwise, this will be set (by the interpreter) to the
    * denomination PK matching @e amount.
    */
-  struct TALER_EXCHANGE_DenomPublicKey *pk;
+  struct TALER_DONAU_DenomPublicKey *pk;
 
   /**
    * Private key of the coin.
@@ -62,13 +62,13 @@ struct CoinState
   union TALER_DenominationBlindingKeyP bks;
 
   /**
-   * Values contributed from the exchange during the
+   * Values contributed from the donau during the
    * withdraw protocol.
    */
-  struct TALER_ExchangeWithdrawValues exchange_vals;
+  struct TALER_DonauWithdrawValues donau_vals;
 
   /**
-   * Set (by the interpreter) to the exchange's signature over the
+   * Set (by the interpreter) to the donau's signature over the
    * coin's public key.
    */
   struct TALER_DenominationSignature sig;
@@ -87,9 +87,9 @@ struct CoinState
 
   /**
    * Reserve history entry that corresponds to this coin.
-   * Will be of type #TALER_EXCHANGE_RTT_WITHDRAWAL.
+   * Will be of type #TALER_DONAU_RTT_WITHDRAWAL.
    */
-  struct TALER_EXCHANGE_ReserveHistoryEntry reserve_history;
+  struct TALER_DONAU_ReserveHistoryEntry reserve_history;
 
 
 };
@@ -107,9 +107,9 @@ struct BatchWithdrawState
   const char *reserve_reference;
 
   /**
-   * Exchange base URL.  Only used as offered trait.
+   * Donau base URL.  Only used as offered trait.
    */
-  char *exchange_url;
+  char *donau_url;
 
   /**
    * URI if the reserve we are withdrawing from.
@@ -134,7 +134,7 @@ struct BatchWithdrawState
   /**
    * Withdraw handle (while operation is running).
    */
-  struct TALER_EXCHANGE_BatchWithdrawHandle *wsh;
+  struct TALER_DONAU_BatchWithdrawHandle *wsh;
 
   /**
    * Array of coin states.
@@ -142,13 +142,13 @@ struct BatchWithdrawState
   struct CoinState *coins;
 
   /**
-   * Set to the KYC requirement payto hash *if* the exchange replied with a
+   * Set to the KYC requirement payto hash *if* the donau replied with a
    * request for KYC.
    */
   struct TALER_PaytoHashP h_payto;
 
   /**
-   * Set to the KYC requirement row *if* the exchange replied with
+   * Set to the KYC requirement row *if* the donau replied with
    * a request for KYC.
    */
   uint64_t requirement_row;
@@ -173,7 +173,7 @@ struct BatchWithdrawState
 
 /**
  * "batch withdraw" operation callback; checks that the
- * response code is expected and store the exchange signature
+ * response code is expected and store the donau signature
  * in the state.
  *
  * @param cls closure.
@@ -182,7 +182,7 @@ struct BatchWithdrawState
 static void
 reserve_batch_withdraw_cb (void *cls,
                            const struct
-                           TALER_EXCHANGE_BatchWithdrawResponse *wr)
+                           TALER_DONAU_BatchWithdrawResponse *wr)
 {
   struct BatchWithdrawState *ws = cls;
   struct TALER_TESTING_Interpreter *is = ws->is;
@@ -201,14 +201,14 @@ reserve_batch_withdraw_cb (void *cls,
     for (unsigned int i = 0; i<ws->num_coins; i++)
     {
       struct CoinState *cs = &ws->coins[i];
-      const struct TALER_EXCHANGE_PrivateCoinDetails *pcd
+      const struct TALER_DONAU_PrivateCoinDetails *pcd
         = &wr->details.ok.coins[i];
 
       TALER_denom_sig_deep_copy (&cs->sig,
                                  &pcd->sig);
       cs->coin_priv = pcd->coin_priv;
       cs->bks = pcd->bks;
-      cs->exchange_vals = pcd->exchange_vals;
+      cs->donau_vals = pcd->donau_vals;
     }
     break;
   case MHD_HTTP_FORBIDDEN:
@@ -251,11 +251,11 @@ batch_withdraw_run (void *cls,
                     struct TALER_TESTING_Interpreter *is)
 {
   struct BatchWithdrawState *ws = cls;
-  const struct TALER_EXCHANGE_Keys *keys =  TALER_TESTING_get_keys (is);
+  const struct TALER_DONAU_Keys *keys =  TALER_TESTING_get_keys (is);
   const struct TALER_ReservePrivateKeyP *rp;
   const struct TALER_TESTING_Command *create_reserve;
-  const struct TALER_EXCHANGE_DenomPublicKey *dpk;
-  struct TALER_EXCHANGE_WithdrawCoinInput wcis[ws->num_coins];
+  const struct TALER_DONAU_DenomPublicKey *dpk;
+  struct TALER_DONAU_WithdrawCoinInput wcis[ws->num_coins];
 
   (void) cmd;
   ws->is = is;
@@ -278,20 +278,20 @@ batch_withdraw_run (void *cls,
     TALER_TESTING_interpreter_fail (is);
     return;
   }
-  if (NULL == ws->exchange_url)
-    ws->exchange_url
-      = GNUNET_strdup (TALER_TESTING_get_exchange_url (is));
+  if (NULL == ws->donau_url)
+    ws->donau_url
+      = GNUNET_strdup (TALER_TESTING_get_donau_url (is));
   ws->reserve_priv = *rp;
   GNUNET_CRYPTO_eddsa_key_get_public (&ws->reserve_priv.eddsa_priv,
                                       &ws->reserve_pub.eddsa_pub);
   ws->reserve_payto_uri
-    = TALER_reserve_make_payto (ws->exchange_url,
+    = TALER_reserve_make_payto (ws->donau_url,
                                 &ws->reserve_pub);
 
   for (unsigned int i = 0; i<ws->num_coins; i++)
   {
     struct CoinState *cs = &ws->coins[i];
-    struct TALER_EXCHANGE_WithdrawCoinInput *wci = &wcis[i];
+    struct TALER_DONAU_WithdrawCoinInput *wci = &wcis[i];
 
     TALER_planchet_master_setup_random (&cs->ps);
     dpk = TALER_TESTING_find_pk (keys,
@@ -308,8 +308,8 @@ batch_withdraw_run (void *cls,
     }
     /* We copy the denomination key, as re-querying /keys
      * would free the old one. */
-    cs->pk = TALER_EXCHANGE_copy_denomination_key (dpk);
-    cs->reserve_history.type = TALER_EXCHANGE_RTT_WITHDRAWAL;
+    cs->pk = TALER_DONAU_copy_denomination_key (dpk);
+    cs->reserve_history.type = TALER_DONAU_RTT_WITHDRAWAL;
     GNUNET_assert (0 <=
                    TALER_amount_add (&cs->reserve_history.amount,
                                      &cs->amount,
@@ -320,9 +320,9 @@ batch_withdraw_run (void *cls,
     wci->ps = &cs->ps;
     wci->ach = &cs->h_age_commitment;
   }
-  ws->wsh = TALER_EXCHANGE_batch_withdraw (
+  ws->wsh = TALER_DONAU_batch_withdraw (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     keys,
     rp,
     ws->num_coins,
@@ -355,7 +355,7 @@ batch_withdraw_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ws->is,
                                       cmd->label);
-    TALER_EXCHANGE_batch_withdraw_cancel (ws->wsh);
+    TALER_DONAU_batch_withdraw_cancel (ws->wsh);
     ws->wsh = NULL;
   }
   for (unsigned int i = 0; i<ws->num_coins; i++)
@@ -365,14 +365,14 @@ batch_withdraw_cleanup (void *cls,
     TALER_denom_sig_free (&cs->sig);
     if (NULL != cs->pk)
     {
-      TALER_EXCHANGE_destroy_denomination_key (cs->pk);
+      TALER_DONAU_destroy_denomination_key (cs->pk);
       cs->pk = NULL;
     }
     if (0 < ws->age)
       TALER_age_commitment_proof_free (&cs->age_commitment_proof);
   }
   GNUNET_free (ws->coins);
-  GNUNET_free (ws->exchange_url);
+  GNUNET_free (ws->donau_url);
   GNUNET_free (ws->reserve_payto_uri);
   GNUNET_free (ws);
 }
@@ -406,8 +406,8 @@ batch_withdraw_traits (void *cls,
                                                &cs->ps),
     TALER_TESTING_make_trait_blinding_key (index,
                                            &cs->bks),
-    TALER_TESTING_make_trait_exchange_wd_value (index,
-                                                &cs->exchange_vals),
+    TALER_TESTING_make_trait_donau_wd_value (index,
+                                                &cs->donau_vals),
     TALER_TESTING_make_trait_denom_pub (index,
                                         cs->pk),
     TALER_TESTING_make_trait_denom_sig (index,
@@ -419,7 +419,7 @@ batch_withdraw_traits (void *cls,
     TALER_TESTING_make_trait_legi_requirement_row (&ws->requirement_row),
     TALER_TESTING_make_trait_h_payto (&ws->h_payto),
     TALER_TESTING_make_trait_payto_uri (ws->reserve_payto_uri),
-    TALER_TESTING_make_trait_exchange_url (ws->exchange_url),
+    TALER_TESTING_make_trait_donau_url (ws->donau_url),
     TALER_TESTING_make_trait_age_commitment_proof (index,
                                                    ws->age > 0 ?
                                                    &cs->age_commitment_proof:
diff --git a/src/testing/testing_api_cmd_common.c 
b/src/testing/testing_api_cmd_common.c
index 2c29f4e..30537b1 100644
--- a/src/testing/testing_api_cmd_common.c
+++ b/src/testing/testing_api_cmd_common.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -27,14 +27,14 @@
 
 int
 TALER_TESTING_history_entry_cmp (
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *h1,
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *h2)
+  const struct TALER_DONAU_ReserveHistoryEntry *h1,
+  const struct TALER_DONAU_ReserveHistoryEntry *h2)
 {
   if (h1->type != h2->type)
     return 1;
   switch (h1->type)
   {
-  case TALER_EXCHANGE_RTT_CREDIT:
+  case TALER_DONAU_RTT_CREDIT:
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
                             &h2->amount)) &&
@@ -47,7 +47,7 @@ TALER_TESTING_history_entry_cmp (
                                      h2->details.in_details.timestamp)) )
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_WITHDRAWAL:
+  case TALER_DONAU_RTT_WITHDRAWAL:
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
                             &h2->amount)) &&
@@ -59,7 +59,7 @@ TALER_TESTING_history_entry_cmp (
          that should be good enough. */
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_AGEWITHDRAWAL:
+  case TALER_DONAU_RTT_AGEWITHDRAWAL:
     /* testing_api_cmd_age_withdraw doesn't set the out_authorization_sig,
        so we cannot test for it here. but if the amount matches,
        that should be good enough. */
@@ -73,8 +73,8 @@ TALER_TESTING_history_entry_cmp (
           h2->details.age_withdraw.max_age))
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_RECOUP:
-    /* exchange_sig, exchange_pub and timestamp are NOT available
+  case TALER_DONAU_RTT_RECOUP:
+    /* donau_sig, donau_pub and timestamp are NOT available
        from the original recoup response, hence here NOT check(able/ed) */
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
@@ -84,9 +84,9 @@ TALER_TESTING_history_entry_cmp (
                          &h2->details.recoup_details.coin_pub)) )
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_CLOSING:
+  case TALER_DONAU_RTT_CLOSING:
     /* testing_api_cmd_exec_closer doesn't set the
-       receiver_account_details, exchange_sig, exchange_pub or wtid or 
timestamp
+       receiver_account_details, donau_sig, donau_pub or wtid or timestamp
        so we cannot test for it here. but if the amount matches,
        that should be good enough. */
     if ( (0 ==
@@ -97,7 +97,7 @@ TALER_TESTING_history_entry_cmp (
                             &h2->details.close_details.fee)) )
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_HISTORY:
+  case TALER_DONAU_RTT_HISTORY:
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
                             &h2->amount)) &&
@@ -110,7 +110,7 @@ TALER_TESTING_history_entry_cmp (
                          &h2->details.history_details.reserve_sig)) )
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_MERGE:
+  case TALER_DONAU_RTT_MERGE:
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
                             &h2->amount)) &&
@@ -143,7 +143,7 @@ TALER_TESTING_history_entry_cmp (
           h2->details.merge_details.flags) )
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_OPEN:
+  case TALER_DONAU_RTT_OPEN:
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
                             &h2->amount)) &&
@@ -165,7 +165,7 @@ TALER_TESTING_history_entry_cmp (
                          &h2->details.open_request.reserve_sig)) )
       return 0;
     return 1;
-  case TALER_EXCHANGE_RTT_CLOSE:
+  case TALER_DONAU_RTT_CLOSE:
     if ( (0 ==
           TALER_amount_cmp (&h1->amount,
                             &h2->amount)) &&
diff --git a/src/testing/testing_api_cmd_deposit.c 
b/src/testing/testing_api_cmd_deposit.c
index 0ee6aa4..a12340a 100644
--- a/src/testing/testing_api_cmd_deposit.c
+++ b/src/testing/testing_api_cmd_deposit.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -69,7 +69,7 @@ struct DepositState
   unsigned int coin_index;
 
   /**
-   * Wire details of who is depositing -- this would be merchant
+   * Wire details of who is depositing -- this would be charity
    * wire details in a normal scenario.
    */
   json_t *wire_details;
@@ -93,12 +93,12 @@ struct DepositState
    * Set (by the interpreter) to a fresh private key.  This
    * key will be used to sign the deposit request.
    */
-  struct TALER_MerchantPrivateKeyP merchant_priv;
+  struct TALER_CharityPrivateKeyP charity_priv;
 
   /**
    * Deposit handle while operation is running.
    */
-  struct TALER_EXCHANGE_BatchDepositHandle *dh;
+  struct TALER_DONAU_BatchDepositHandle *dh;
 
   /**
    * Timestamp of the /deposit operation in the wallet (contract signing time).
@@ -137,21 +137,21 @@ struct DepositState
   int deposit_succeeded;
 
   /**
-   * When did the exchange receive the deposit?
+   * When did the donau receive the deposit?
    */
-  struct GNUNET_TIME_Timestamp exchange_timestamp;
+  struct GNUNET_TIME_Timestamp donau_timestamp;
 
   /**
-   * Signing key used by the exchange to sign the
+   * Signing key used by the donau to sign the
    * deposit confirmation.
    */
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
   /**
-   * Signature from the exchange on the
+   * Signature from the donau on the
    * deposit confirmation.
    */
-  struct TALER_ExchangeSignatureP exchange_sig;
+  struct TALER_DonauSignatureP donau_sig;
 
   /**
    * Reference to previous deposit operation.
@@ -168,10 +168,10 @@ struct DepositState
   int command_initialized;
 
   /**
-   * Reference to fetch the merchant private key from.
-   * If NULL, we generate our own, fresh merchant key.
+   * Reference to fetch the charity private key from.
+   * If NULL, we generate our own, fresh charity key.
    */
-  const char *merchant_priv_reference;
+  const char *charity_priv_reference;
 };
 
 
@@ -215,7 +215,7 @@ do_retry (void *cls)
  */
 static void
 deposit_cb (void *cls,
-            const struct TALER_EXCHANGE_BatchDepositResult *dr)
+            const struct TALER_DONAU_BatchDepositResult *dr)
 {
   struct DepositState *ds = cls;
 
@@ -260,9 +260,9 @@ deposit_cb (void *cls,
   {
     GNUNET_assert (1 == dr->details.ok.num_signatures);
     ds->deposit_succeeded = GNUNET_YES;
-    ds->exchange_timestamp = dr->details.ok.deposit_timestamp;
-    ds->exchange_pub = *dr->details.ok.exchange_pub;
-    ds->exchange_sig = dr->details.ok.exchange_sigs[0];
+    ds->donau_timestamp = dr->details.ok.deposit_timestamp;
+    ds->donau_pub = *dr->details.ok.donau_pub;
+    ds->donau_sig = dr->details.ok.donau_sigs[0];
   }
   TALER_TESTING_interpreter_next (ds->is);
 }
@@ -285,10 +285,10 @@ deposit_run (void *cls,
   const struct TALER_CoinSpendPrivateKeyP *coin_priv;
   struct TALER_CoinSpendPublicKeyP coin_pub;
   const struct TALER_AgeCommitmentHash *phac;
-  const struct TALER_EXCHANGE_DenomPublicKey *denom_pub;
+  const struct TALER_DONAU_DenomPublicKey *denom_pub;
   const struct TALER_DenominationSignature *denom_pub_sig;
   struct TALER_CoinSpendSignatureP coin_sig;
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
   struct TALER_PrivateContractHashP h_contract_terms;
   enum TALER_ErrorCode ec;
   struct TALER_WireSaltP wire_salt;
@@ -300,11 +300,11 @@ deposit_run (void *cls,
                                  &wire_salt),
     GNUNET_JSON_spec_end ()
   };
-  const char *exchange_url
-    = TALER_TESTING_get_exchange_url (is);
+  const char *donau_url
+    = TALER_TESTING_get_donau_url (is);
 
   (void) cmd;
-  if (NULL == exchange_url)
+  if (NULL == donau_url)
   {
     GNUNET_break (0);
     return;
@@ -333,17 +333,17 @@ deposit_run (void *cls,
     ds->wallet_timestamp = ods->wallet_timestamp;
     ds->refund_deadline = ods->refund_deadline;
     ds->amount = ods->amount;
-    ds->merchant_priv = ods->merchant_priv;
+    ds->charity_priv = ods->charity_priv;
     ds->command_initialized = GNUNET_YES;
   }
-  else if (NULL != ds->merchant_priv_reference)
+  else if (NULL != ds->charity_priv_reference)
   {
-    /* We're copying the merchant key from another deposit operation */
-    const struct TALER_MerchantPrivateKeyP *merchant_priv;
+    /* We're copying the charity key from another deposit operation */
+    const struct TALER_CharityPrivateKeyP *charity_priv;
     const struct TALER_TESTING_Command *cmd;
 
     cmd = TALER_TESTING_interpreter_lookup_command (is,
-                                                    
ds->merchant_priv_reference);
+                                                    
ds->charity_priv_reference);
     if (NULL == cmd)
     {
       GNUNET_break (0);
@@ -351,14 +351,14 @@ deposit_run (void *cls,
       return;
     }
     if ( (GNUNET_OK !=
-          TALER_TESTING_get_trait_merchant_priv (cmd,
-                                                 &merchant_priv)) )
+          TALER_TESTING_get_trait_charity_priv (cmd,
+                                                 &charity_priv)) )
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
-    ds->merchant_priv = *merchant_priv;
+    ds->charity_priv = *charity_priv;
   }
   GNUNET_assert (NULL != ds->wire_details);
   if (GNUNET_OK !=
@@ -429,13 +429,13 @@ deposit_run (void *cls,
     ds->refund_deadline = ds->wallet_timestamp;
     ds->wire_deadline = GNUNET_TIME_timestamp_get ();
   }
-  GNUNET_CRYPTO_eddsa_key_get_public (&ds->merchant_priv.eddsa_priv,
-                                      &merchant_pub.eddsa_pub);
+  GNUNET_CRYPTO_eddsa_key_get_public (&ds->charity_priv.eddsa_priv,
+                                      &charity_pub.eddsa_pub);
   {
-    struct TALER_MerchantWireHashP h_wire;
+    struct TALER_CharityWireHashP h_wire;
 
     GNUNET_assert (GNUNET_OK ==
-                   TALER_JSON_merchant_wire_signature_hash (ds->wire_details,
+                   TALER_JSON_charity_wire_signature_hash (ds->wire_details,
                                                             &h_wire));
     TALER_wallet_deposit_sign (&ds->amount,
                                &denom_pub->fees.deposit,
@@ -446,14 +446,14 @@ deposit_run (void *cls,
                                NULL, /* hash of extensions */
                                &denom_pub->h_key,
                                ds->wallet_timestamp,
-                               &merchant_pub,
+                               &charity_pub,
                                ds->refund_deadline,
                                coin_priv,
                                &coin_sig);
   }
   GNUNET_assert (NULL == ds->dh);
   {
-    struct TALER_EXCHANGE_CoinDepositDetail cdd = {
+    struct TALER_DONAU_CoinDepositDetail cdd = {
       .amount = ds->amount,
       .coin_pub = coin_pub,
       .coin_sig = coin_sig,
@@ -461,22 +461,22 @@ deposit_run (void *cls,
       .h_denom_pub = denom_pub->h_key,
       .h_age_commitment = {{{0}}},
     };
-    struct TALER_EXCHANGE_DepositContractDetail dcd = {
+    struct TALER_DONAU_DepositContractDetail dcd = {
       .wire_deadline = ds->wire_deadline,
-      .merchant_payto_uri = payto_uri,
+      .charity_payto_uri = payto_uri,
       .wire_salt = wire_salt,
       .h_contract_terms = h_contract_terms,
       .wallet_timestamp = ds->wallet_timestamp,
-      .merchant_pub = merchant_pub,
+      .charity_pub = charity_pub,
       .refund_deadline = ds->refund_deadline
     };
 
     if (NULL != phac)
       cdd.h_age_commitment = *phac;
 
-    ds->dh = TALER_EXCHANGE_batch_deposit (
+    ds->dh = TALER_DONAU_batch_deposit (
       TALER_TESTING_interpreter_get_context (is),
-      exchange_url,
+      donau_url,
       TALER_TESTING_get_keys (is),
       &dcd,
       1,
@@ -514,7 +514,7 @@ deposit_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ds->is,
                                       cmd->label);
-    TALER_EXCHANGE_batch_deposit_cancel (ds->dh);
+    TALER_DONAU_batch_deposit_cancel (ds->dh);
     ds->dh = NULL;
   }
   if (NULL != ds->retry_task)
@@ -588,10 +588,10 @@ deposit_traits (void *cls,
     struct TALER_TESTING_Trait traits[] = {
       /* First two traits are only available if
          ds->traits is #GNUNET_YES */
-      TALER_TESTING_make_trait_exchange_pub (0,
-                                             &ds->exchange_pub),
-      TALER_TESTING_make_trait_exchange_sig (0,
-                                             &ds->exchange_sig),
+      TALER_TESTING_make_trait_donau_pub (0,
+                                             &ds->donau_pub),
+      TALER_TESTING_make_trait_donau_sig (0,
+                                             &ds->donau_sig),
       /* These traits are always available */
       TALER_TESTING_make_trait_coin_priv (0,
                                           coin_spent_priv),
@@ -601,13 +601,13 @@ deposit_traits (void *cls,
                                                  h_age_commitment),
       TALER_TESTING_make_trait_wire_details (ds->wire_details),
       TALER_TESTING_make_trait_contract_terms (ds->contract_terms),
-      TALER_TESTING_make_trait_merchant_priv (&ds->merchant_priv),
+      TALER_TESTING_make_trait_charity_priv (&ds->charity_priv),
       TALER_TESTING_make_trait_deposit_amount (0,
                                                &ds->amount),
       TALER_TESTING_make_trait_deposit_fee_amount (0,
                                                    &ds->deposit_fee),
       TALER_TESTING_make_trait_timestamp (0,
-                                          &ds->exchange_timestamp),
+                                          &ds->donau_timestamp),
       TALER_TESTING_make_trait_wire_deadline (0,
                                               &ds->wire_deadline),
       TALER_TESTING_make_trait_refund_deadline (0,
@@ -645,7 +645,7 @@ TALER_TESTING_cmd_deposit (const char *label,
   ds->contract_terms = json_loads (contract_terms,
                                    JSON_REJECT_DUPLICATES,
                                    NULL);
-  GNUNET_CRYPTO_eddsa_key_create (&ds->merchant_priv.eddsa_priv);
+  GNUNET_CRYPTO_eddsa_key_create (&ds->charity_priv.eddsa_priv);
   if (NULL == ds->contract_terms)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -697,12 +697,12 @@ TALER_TESTING_cmd_deposit_with_ref (const char *label,
                                     struct GNUNET_TIME_Relative 
refund_deadline,
                                     const char *amount,
                                     unsigned int expected_response_code,
-                                    const char *merchant_priv_reference)
+                                    const char *charity_priv_reference)
 {
   struct DepositState *ds;
 
   ds = GNUNET_new (struct DepositState);
-  ds->merchant_priv_reference = merchant_priv_reference;
+  ds->charity_priv_reference = charity_priv_reference;
   ds->coin_reference = coin_reference;
   ds->coin_index = coin_index;
   ds->wire_details = TALER_TESTING_make_wire_details (target_account_payto);
diff --git a/src/testing/testing_api_cmd_deposits_get.c 
b/src/testing/testing_api_cmd_deposits_get.c
index 5d4436e..dbc2c6b 100644
--- a/src/testing/testing_api_cmd_deposits_get.c
+++ b/src/testing/testing_api_cmd_deposits_get.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -55,15 +55,15 @@ struct TrackTransactionState
   unsigned int expected_response_code;
 
   /**
-   * Set to the KYC requirement payto hash *if* the exchange replied with a
+   * Set to the KYC requirement payto hash *if* the donau replied with a
    * request for KYC (#MHD_HTTP_ACCEPTED).
-   * Note: set based on our @e merchant_payto_uri, as
-   * the exchange does not respond with the payto hash.
+   * Note: set based on our @e charity_payto_uri, as
+   * the donau does not respond with the payto hash.
    */
   struct TALER_PaytoHashP h_payto;
 
   /**
-   * Set to the KYC requirement row *if* the exchange replied with
+   * Set to the KYC requirement row *if* the donau replied with
    * a request for KYC (#MHD_HTTP_ACCEPTED).
    */
   uint64_t requirement_row;
@@ -75,20 +75,20 @@ struct TrackTransactionState
   const char *transaction_reference;
 
   /**
-   * Payto URI of the merchant receiving the deposit.
+   * Payto URI of the charity receiving the deposit.
    */
-  char *merchant_payto_uri;
+  char *charity_payto_uri;
 
   /**
    * Index of the coin involved in the transaction.  Recall:
-   * at the exchange, the tracking is done _per coin_.
+   * at the donau, the tracking is done _per coin_.
    */
   unsigned int coin_index;
 
   /**
    * Handle to the "track transaction" pending operation.
    */
-  struct TALER_EXCHANGE_DepositGetHandle *tth;
+  struct TALER_DONAU_DepositGetHandle *tth;
 
   /**
    * Interpreter state.
@@ -108,7 +108,7 @@ struct TrackTransactionState
  */
 static void
 deposit_wtid_cb (void *cls,
-                 const struct TALER_EXCHANGE_GetDepositResponse *dr)
+                 const struct TALER_DONAU_GetDepositResponse *dr)
 {
   struct TrackTransactionState *tts = cls;
   struct TALER_TESTING_Interpreter *is = tts->is;
@@ -162,7 +162,7 @@ deposit_wtid_cb (void *cls,
     break;
   case MHD_HTTP_ACCEPTED:
     /* allowed, nothing to check here */
-    TALER_payto_hash (tts->merchant_payto_uri,
+    TALER_payto_hash (tts->charity_payto_uri,
                       &tts->h_payto);
     tts->requirement_row
       = dr->details.accepted.requirement_row;
@@ -196,9 +196,9 @@ track_transaction_run (void *cls,
   struct TALER_CoinSpendPublicKeyP coin_pub;
   const json_t *contract_terms;
   const json_t *wire_details;
-  struct TALER_MerchantWireHashP h_wire_details;
+  struct TALER_CharityWireHashP h_wire_details;
   struct TALER_PrivateContractHashP h_contract_terms;
-  const struct TALER_MerchantPrivateKeyP *merchant_priv;
+  const struct TALER_CharityPrivateKeyP *charity_priv;
 
   tts->cmd = cmd;
   tts->is = is;
@@ -234,7 +234,7 @@ track_transaction_run (void *cls,
     TALER_TESTING_interpreter_fail (tts->is);
     return;
   }
-  tts->merchant_payto_uri
+  tts->charity_payto_uri
     = GNUNET_strdup (json_string_value (json_object_get (wire_details,
                                                          "payto_uri")));
   if (GNUNET_OK !=
@@ -257,26 +257,26 @@ track_transaction_run (void *cls,
   /* Should not fail here, json has been parsed already */
   GNUNET_assert
     ( (GNUNET_OK ==
-       TALER_JSON_merchant_wire_signature_hash (wire_details,
+       TALER_JSON_charity_wire_signature_hash (wire_details,
                                                 &h_wire_details)) &&
     (GNUNET_OK ==
      TALER_JSON_contract_hash (contract_terms,
                                &h_contract_terms)) );
 
   if (GNUNET_OK !=
-      TALER_TESTING_get_trait_merchant_priv (transaction_cmd,
-                                             &merchant_priv))
+      TALER_TESTING_get_trait_charity_priv (transaction_cmd,
+                                             &charity_priv))
   {
     GNUNET_break (0);
     TALER_TESTING_interpreter_fail (tts->is);
     return;
   }
 
-  tts->tth = TALER_EXCHANGE_deposits_get (
+  tts->tth = TALER_DONAU_deposits_get (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     TALER_TESTING_get_keys (is),
-    merchant_priv,
+    charity_priv,
     &h_wire_details,
     &h_contract_terms,
     &coin_pub,
@@ -304,10 +304,10 @@ track_transaction_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (tts->is,
                                       cmd->label);
-    TALER_EXCHANGE_deposits_get_cancel (tts->tth);
+    TALER_DONAU_deposits_get_cancel (tts->tth);
     tts->tth = NULL;
   }
-  GNUNET_free (tts->merchant_payto_uri);
+  GNUNET_free (tts->charity_payto_uri);
   GNUNET_free (tts);
 }
 
@@ -333,7 +333,7 @@ track_transaction_traits (void *cls,
     TALER_TESTING_make_trait_legi_requirement_row (
       &tts->requirement_row),
     TALER_TESTING_make_trait_h_payto (&tts->h_payto),
-    TALER_TESTING_make_trait_payto_uri (tts->merchant_payto_uri),
+    TALER_TESTING_make_trait_payto_uri (tts->charity_payto_uri),
     TALER_TESTING_trait_end ()
   };
 
diff --git a/src/testing/testing_api_cmd_get_exchange.c 
b/src/testing/testing_api_cmd_get_donau.c
similarity index 70%
rename from src/testing/testing_api_cmd_get_exchange.c
rename to src/testing/testing_api_cmd_get_donau.c
index 69a6e82..b9c56d9 100644
--- a/src/testing/testing_api_cmd_get_exchange.c
+++ b/src/testing/testing_api_cmd_get_donau.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -17,8 +17,8 @@
   <http://www.gnu.org/licenses/>
 */
 /**
- * @file testing/testing_api_cmd_get_exchange.c
- * @brief Command to get an exchange handle
+ * @file testing/testing_api_cmd_get_donau.c
+ * @brief Command to get an donau handle
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -28,13 +28,13 @@
 
 
 /**
- * State for a "get exchange" CMD.
+ * State for a "get donau" CMD.
  */
-struct GetExchangeState
+struct GetDonauState
 {
 
   /**
-   * Master private key of the exchange.
+   * Master private key of the donau.
    */
   struct TALER_MasterPrivateKeyP master_priv;
 
@@ -44,22 +44,22 @@ struct GetExchangeState
   struct TALER_TESTING_Interpreter *is;
 
   /**
-   * Exchange handle we produced.
+   * Donau handle we produced.
    */
-  struct TALER_EXCHANGE_GetKeysHandle *exchange;
+  struct TALER_DONAU_GetKeysHandle *donau;
 
   /**
-   * Keys of the exchange.
+   * Keys of the donau.
    */
-  struct TALER_EXCHANGE_Keys *keys;
+  struct TALER_DONAU_Keys *keys;
 
   /**
-   * URL of the exchange.
+   * URL of the donau.
    */
-  char *exchange_url;
+  char *donau_url;
 
   /**
-   * Filename of the master private key of the exchange.
+   * Filename of the master private key of the donau.
    */
   char *master_priv_file;
 
@@ -83,22 +83,22 @@ struct GetExchangeState
 
 /**
  * Function called with information about who is auditing
- * a particular exchange and what keys the exchange is using.
+ * a particular donau and what keys the donau is using.
  *
  * @param cls closure
  * @param kr response from /keys
- * @param[in] keys the keys of the exchange
+ * @param[in] keys the keys of the donau
  */
 static void
 cert_cb (void *cls,
-         const struct TALER_EXCHANGE_KeysResponse *kr,
-         struct TALER_EXCHANGE_Keys *keys)
+         const struct TALER_DONAU_KeysResponse *kr,
+         struct TALER_DONAU_Keys *keys)
 {
-  struct GetExchangeState *ges = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &kr->hr;
+  struct GetDonauState *ges = cls;
+  const struct TALER_DONAU_HttpResponse *hr = &kr->hr;
   struct TALER_TESTING_Interpreter *is = ges->is;
 
-  ges->exchange = NULL;
+  ges->donau = NULL;
   ges->keys = keys;
   switch (hr->http_status)
   {
@@ -128,22 +128,22 @@ cert_cb (void *cls,
 
 
 /**
- * Run the "get_exchange" command.
+ * Run the "get_donau" command.
  *
  * @param cls closure.
  * @param cmd the command currently being executed.
  * @param is the interpreter state.
  */
 static void
-get_exchange_run (void *cls,
+get_donau_run (void *cls,
                   const struct TALER_TESTING_Command *cmd,
                   struct TALER_TESTING_Interpreter *is)
 {
-  struct GetExchangeState *ges = cls;
-  struct TALER_EXCHANGE_Keys *xkeys = NULL;
+  struct GetDonauState *ges = cls;
+  struct TALER_DONAU_Keys *xkeys = NULL;
 
   (void) cmd;
-  if (NULL == ges->exchange_url)
+  if (NULL == ges->donau_url)
   {
     GNUNET_break (0);
     TALER_TESTING_interpreter_fail (is);
@@ -152,8 +152,8 @@ get_exchange_run (void *cls,
   if (NULL != ges->last_keys_ref)
   {
     const struct TALER_TESTING_Command *state_cmd;
-    struct TALER_EXCHANGE_Keys *old_keys;
-    const char *exchange_url;
+    struct TALER_DONAU_Keys *old_keys;
+    const char *donau_url;
     json_t *s_keys;
 
     state_cmd
@@ -181,28 +181,28 @@ get_exchange_run (void *cls,
       return;
     }
     if (GNUNET_OK !=
-        TALER_TESTING_get_trait_exchange_url (state_cmd,
-                                              &exchange_url))
+        TALER_TESTING_get_trait_donau_url (state_cmd,
+                                              &donau_url))
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
-    if (0 != strcmp (exchange_url,
-                     ges->exchange_url))
+    if (0 != strcmp (donau_url,
+                     ges->donau_url))
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
-    s_keys = TALER_EXCHANGE_keys_to_json (old_keys);
+    s_keys = TALER_DONAU_keys_to_json (old_keys);
     if (NULL == s_keys)
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
-    xkeys = TALER_EXCHANGE_keys_from_json (s_keys);
+    xkeys = TALER_DONAU_keys_from_json (s_keys);
     if (NULL == xkeys)
     {
       GNUNET_break (0);
@@ -223,20 +223,20 @@ get_exchange_run (void *cls,
                                            &ges->master_priv.eddsa_priv))
     {
       GNUNET_break (0);
-      TALER_EXCHANGE_keys_decref (xkeys);
+      TALER_DONAU_keys_decref (xkeys);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
   }
   ges->is = is;
-  ges->exchange
-    = TALER_EXCHANGE_get_keys (TALER_TESTING_interpreter_get_context (is),
-                               ges->exchange_url,
+  ges->donau
+    = TALER_DONAU_get_keys (TALER_TESTING_interpreter_get_context (is),
+                               ges->donau_url,
                                xkeys,
                                &cert_cb,
                                ges);
-  TALER_EXCHANGE_keys_decref (xkeys);
-  if (NULL == ges->exchange)
+  TALER_DONAU_keys_decref (xkeys);
+  if (NULL == ges->donau)
   {
     GNUNET_break (0);
     TALER_TESTING_interpreter_fail (is);
@@ -254,26 +254,26 @@ get_exchange_run (void *cls,
  * @param cmd the command which is being cleaned up.
  */
 static void
-get_exchange_cleanup (void *cls,
+get_donau_cleanup (void *cls,
                       const struct TALER_TESTING_Command *cmd)
 {
-  struct GetExchangeState *ges = cls;
+  struct GetDonauState *ges = cls;
 
-  if (NULL != ges->exchange)
+  if (NULL != ges->donau)
   {
-    TALER_EXCHANGE_get_keys_cancel (ges->exchange);
-    ges->exchange = NULL;
+    TALER_DONAU_get_keys_cancel (ges->donau);
+    ges->donau = NULL;
   }
-  TALER_EXCHANGE_keys_decref (ges->keys);
+  TALER_DONAU_keys_decref (ges->keys);
   ges->keys = NULL;
   GNUNET_free (ges->master_priv_file);
-  GNUNET_free (ges->exchange_url);
+  GNUNET_free (ges->donau_url);
   GNUNET_free (ges);
 }
 
 
 /**
- * Offer internal data to a "get_exchange" CMD state to other commands.
+ * Offer internal data to a "get_donau" CMD state to other commands.
  *
  * @param cls closure
  * @param[out] ret result (could be anything)
@@ -282,12 +282,12 @@ get_exchange_cleanup (void *cls,
  * @return #GNUNET_OK on success
  */
 static enum GNUNET_GenericReturnValue
-get_exchange_traits (void *cls,
+get_donau_traits (void *cls,
                      const void **ret,
                      const char *trait,
                      unsigned int index)
 {
-  struct GetExchangeState *ges = cls;
+  struct GetDonauState *ges = cls;
   unsigned int off = (NULL == ges->master_priv_file) ? 1 : 0;
 
   if (NULL != ges->keys)
@@ -296,7 +296,7 @@ get_exchange_traits (void *cls,
       TALER_TESTING_make_trait_master_priv (&ges->master_priv),
       TALER_TESTING_make_trait_master_pub (&ges->keys->master_pub),
       TALER_TESTING_make_trait_keys (ges->keys),
-      TALER_TESTING_make_trait_exchange_url (ges->exchange_url),
+      TALER_TESTING_make_trait_donau_url (ges->donau_url),
       TALER_TESTING_make_trait_timestamp (0,
                                           &ges->my_denom_date),
       TALER_TESTING_trait_end ()
@@ -311,7 +311,7 @@ get_exchange_traits (void *cls,
   {
     struct TALER_TESTING_Trait traits[] = {
       TALER_TESTING_make_trait_master_priv (&ges->master_priv),
-      TALER_TESTING_make_trait_exchange_url (ges->exchange_url),
+      TALER_TESTING_make_trait_donau_url (ges->donau_url),
       TALER_TESTING_make_trait_timestamp (0,
                                           &ges->my_denom_date),
       TALER_TESTING_trait_end ()
@@ -326,53 +326,53 @@ get_exchange_traits (void *cls,
 
 
 /**
- * Get the base URL of the exchange from @a cfg.
+ * Get the base URL of the donau from @a cfg.
  *
  * @param cfg configuration to evaluate
- * @return base URL of the exchange according to @a cfg
+ * @return base URL of the donau according to @a cfg
  */
 static char *
-get_exchange_base_url (
+get_donau_base_url (
   const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
-  char *exchange_url;
+  char *donau_url;
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (cfg,
-                                             "exchange",
+                                             "donau",
                                              "BASE_URL",
-                                             &exchange_url))
+                                             &donau_url))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL");
     return NULL;
   }
-  return exchange_url;
+  return donau_url;
 }
 
 
 /**
- * Get the file name of the master private key file of the exchange from @a
+ * Get the file name of the master private key file of the donau from @a
  * cfg.
  *
  * @param cfg configuration to evaluate
- * @return base URL of the exchange according to @a cfg
+ * @return base URL of the donau according to @a cfg
  */
 static char *
-get_exchange_master_priv_file (
+get_donau_master_priv_file (
   const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   char *fn;
 
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_filename (cfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "MASTER_PRIV_FILE",
                                                &fn))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange-offline",
+                               "donau-offline",
                                "MASTER_PRIV_FILE");
     return NULL;
   }
@@ -381,29 +381,29 @@ get_exchange_master_priv_file (
 
 
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_get_exchange (
+TALER_TESTING_cmd_get_donau (
   const char *label,
   const struct GNUNET_CONFIGURATION_Handle *cfg,
   const char *last_keys_ref,
   bool wait_for_keys,
   bool load_private_key)
 {
-  struct GetExchangeState *ges;
+  struct GetDonauState *ges;
 
-  ges = GNUNET_new (struct GetExchangeState);
-  ges->exchange_url = get_exchange_base_url (cfg);
+  ges = GNUNET_new (struct GetDonauState);
+  ges->donau_url = get_donau_base_url (cfg);
   ges->last_keys_ref = last_keys_ref;
   if (load_private_key)
-    ges->master_priv_file = get_exchange_master_priv_file (cfg);
+    ges->master_priv_file = get_donau_master_priv_file (cfg);
   ges->wait_for_keys = wait_for_keys;
   {
     struct TALER_TESTING_Command cmd = {
       .cls = ges,
       .label = label,
-      .run = &get_exchange_run,
-      .cleanup = &get_exchange_cleanup,
-      .traits = &get_exchange_traits,
-      .name = "exchange"
+      .run = &get_donau_run,
+      .cleanup = &get_donau_cleanup,
+      .traits = &get_donau_traits,
+      .name = "donau"
     };
 
     return cmd;
diff --git a/src/testing/testing_api_cmd_insert_deposit.c 
b/src/testing/testing_api_cmd_insert_deposit.c
index dd89a48..e8bb8d4 100644
--- a/src/testing/testing_api_cmd_insert_deposit.c
+++ b/src/testing/testing_api_cmd_insert_deposit.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -28,8 +28,8 @@
 #include <gnunet/gnunet_curl_lib.h>
 #include "taler_signatures.h"
 #include "taler_testing_lib.h"
-#include "taler_exchangedb_plugin.h"
-#include "taler_exchangedb_lib.h"
+#include "taler_donaudb_plugin.h"
+#include "taler_donaudb_lib.h"
 
 
 /**
@@ -40,28 +40,28 @@ struct InsertDepositState
   /**
    * Database connection we use.
    */
-  struct TALER_EXCHANGEDB_Plugin *plugin;
+  struct TALER_DONAUDB_Plugin *plugin;
 
   /**
    * Human-readable name of the shop.
    */
-  const char *merchant_name;
+  const char *charity_name;
 
   /**
-   * Merchant account name (NOT a payto-URI).
+   * Charity account name (NOT a payto-URI).
    */
-  const char *merchant_account;
+  const char *charity_account;
 
   /**
    * Deadline before which the aggregator should
-   * send the payment to the merchant.
+   * send the payment to the charity.
    */
   struct GNUNET_TIME_Relative wire_deadline;
 
   /**
-   * When did the exchange receive the deposit?
+   * When did the donau receive the deposit?
    */
-  struct GNUNET_TIME_Timestamp exchange_timestamp;
+  struct GNUNET_TIME_Timestamp donau_timestamp;
 
   /**
    * Amount to deposit, inclusive of deposit fee.
@@ -85,7 +85,7 @@ struct InsertDepositState
  * @param[out] issue information to initialize with "valid" data
  */
 static void
-fake_issue (struct TALER_EXCHANGEDB_DenominationKeyInformation *issue)
+fake_issue (struct TALER_DONAUDB_DenominationKeyInformation *issue)
 {
   struct GNUNET_TIME_Timestamp now;
 
@@ -132,10 +132,10 @@ insert_deposit_run (void *cls,
                     struct TALER_TESTING_Interpreter *is)
 {
   struct InsertDepositState *ids = cls;
-  struct TALER_EXCHANGEDB_CoinDepositInformation deposit;
-  struct TALER_EXCHANGEDB_BatchDeposit bd;
-  struct TALER_MerchantPrivateKeyP merchant_priv;
-  struct TALER_EXCHANGEDB_DenominationKeyInformation issue;
+  struct TALER_DONAUDB_CoinDepositInformation deposit;
+  struct TALER_DONAUDB_BatchDeposit bd;
+  struct TALER_CharityPrivateKeyP charity_priv;
+  struct TALER_DONAUDB_DenominationKeyInformation issue;
   struct TALER_DenominationPublicKey dpk;
   struct TALER_DenominationPrivateKey denom_priv;
   char *receiver_wire_account;
@@ -191,16 +191,16 @@ insert_deposit_run (void *cls,
 
   GNUNET_assert (
     GNUNET_YES ==
-    GNUNET_CRYPTO_kdf (&merchant_priv,
-                       sizeof (struct TALER_MerchantPrivateKeyP),
-                       "merchant-priv",
-                       strlen ("merchant-priv"),
-                       ids->merchant_name,
-                       strlen (ids->merchant_name),
+    GNUNET_CRYPTO_kdf (&charity_priv,
+                       sizeof (struct TALER_CharityPrivateKeyP),
+                       "charity-priv",
+                       strlen ("charity-priv"),
+                       ids->charity_name,
+                       strlen (ids->charity_name),
                        NULL,
                        0));
-  GNUNET_CRYPTO_eddsa_key_get_public (&merchant_priv.eddsa_priv,
-                                      &bd.merchant_pub.eddsa_pub);
+  GNUNET_CRYPTO_eddsa_key_get_public (&charity_priv.eddsa_priv,
+                                      &bd.charity_pub.eddsa_pub);
   GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK,
                                     &bd.h_contract_terms.hash);
   if (GNUNET_OK !=
@@ -223,7 +223,7 @@ insert_deposit_run (void *cls,
     struct TALER_PlanchetDetail pd;
     struct TALER_BlindedDenominationSignature bds;
     struct TALER_PlanchetMasterSecretP ps;
-    struct TALER_ExchangeWithdrawValues alg_values;
+    struct TALER_DonauWithdrawValues alg_values;
     union TALER_DenominationBlindingKeyP bks;
 
     alg_values.cipher = TALER_DENOMINATION_RSA;
@@ -255,8 +255,8 @@ insert_deposit_run (void *cls,
   }
   GNUNET_asprintf (&receiver_wire_account,
                    "payto://x-taler-bank/localhost/%s?receiver-name=%s",
-                   ids->merchant_account,
-                   ids->merchant_account);
+                   ids->charity_account,
+                   ids->charity_account);
   bd.receiver_wire_account = receiver_wire_account;
   TALER_payto_hash (bd.receiver_wire_account,
                     &bd.wire_target_h_payto);
@@ -287,7 +287,7 @@ insert_deposit_run (void *cls,
          (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
           ids->plugin->do_deposit (ids->plugin->cls,
                                    &bd,
-                                   &ids->exchange_timestamp,
+                                   &ids->donau_timestamp,
                                    &balance_ok,
                                    &bad_index,
                                    &ctr_conflict)) ||
@@ -331,7 +331,7 @@ insert_deposit_cleanup (void *cls,
   {
     // FIXME: historically, we also did:
     // ids->plugin->drop_tables (ids->plugin->cls);
-    TALER_EXCHANGEDB_plugin_unload (ids->plugin);
+    TALER_DONAUDB_plugin_unload (ids->plugin);
     ids->plugin = NULL;
   }
   GNUNET_free (ids);
@@ -342,14 +342,14 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_insert_deposit (
   const char *label,
   const struct GNUNET_CONFIGURATION_Handle *db_cfg,
-  const char *merchant_name,
-  const char *merchant_account,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  const char *charity_name,
+  const char *charity_account,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   struct GNUNET_TIME_Relative wire_deadline,
   const char *amount_with_fee,
   const char *deposit_fee)
 {
-  static struct TALER_EXCHANGEDB_Plugin *pluginc;
+  static struct TALER_DONAUDB_Plugin *pluginc;
   static const struct GNUNET_CONFIGURATION_Handle *db_cfgc;
   struct InsertDepositState *ids;
 
@@ -361,13 +361,13 @@ TALER_TESTING_cmd_insert_deposit (
   }
   else
   {
-    ids->plugin = TALER_EXCHANGEDB_plugin_load (db_cfg);
+    ids->plugin = TALER_DONAUDB_plugin_load (db_cfg);
     pluginc = ids->plugin;
     db_cfgc = db_cfg;
   }
-  ids->merchant_name = merchant_name;
-  ids->merchant_account = merchant_account;
-  ids->exchange_timestamp = exchange_timestamp;
+  ids->charity_name = charity_name;
+  ids->charity_account = charity_account;
+  ids->donau_timestamp = donau_timestamp;
   ids->wire_deadline = wire_deadline;
   ids->amount_with_fee = amount_with_fee;
   ids->deposit_fee = deposit_fee;
diff --git a/src/testing/testing_api_cmd_offline_sign_extensions.c 
b/src/testing/testing_api_cmd_offline_sign_extensions.c
index f39679f..fcbc637 100644
--- a/src/testing/testing_api_cmd_offline_sign_extensions.c
+++ b/src/testing/testing_api_cmd_offline_sign_extensions.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -19,7 +19,7 @@
 
 /**
  * @file testing/testing_api_cmd_offline_sign_extensions.c
- * @brief run the taler-exchange-offline command to sign extensions (and 
therefore activate them)
+ * @brief run the taler-donau-offline command to sign extensions (and 
therefore activate them)
  * @author Özgür Kesim
  */
 #include "platform.h"
@@ -49,7 +49,7 @@ struct ExtensionsSignState
 
 
 /**
- * Run the command; calls the `taler-exchange-offline' program.
+ * Run the command; calls the `taler-donau-offline' program.
  *
  * @param cls closure.
  * @param cmd the commaind being run.
@@ -66,8 +66,8 @@ extensionssign_run (void *cls,
     = GNUNET_OS_start_process (
         GNUNET_OS_INHERIT_STD_ALL,
         NULL, NULL, NULL,
-        "taler-exchange-offline",
-        "taler-exchange-offline",
+        "taler-donau-offline",
+        "taler-donau-offline",
         "-c", ks->config_filename,
         "-L", "INFO",
         "extensions",
diff --git a/src/testing/testing_api_cmd_offline_sign_global_fees.c 
b/src/testing/testing_api_cmd_offline_sign_global_fees.c
index db39162..129a23a 100644
--- a/src/testing/testing_api_cmd_offline_sign_global_fees.c
+++ b/src/testing/testing_api_cmd_offline_sign_global_fees.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -19,7 +19,7 @@
 
 /**
  * @file testing/testing_api_cmd_offline_sign_global_fees.c
- * @brief run the taler-exchange-offline command to download, sign and upload 
global fees
+ * @brief run the taler-donau-offline command to download, sign and upload 
global fees
  * @author Marcello Stanisci
  * @author Christian Grothoff
  */
@@ -79,7 +79,7 @@ struct OfflineSignState
 
 
 /**
- * Run the command; calls the `taler-exchange-offline' program.
+ * Run the command; calls the `taler-donau-offline' program.
  *
  * @param cls closure.
  * @param cmd the commaind being run.
@@ -113,8 +113,8 @@ offlinesign_run (void *cls,
     = GNUNET_OS_start_process (
         GNUNET_OS_INHERIT_STD_ALL,
         NULL, NULL, NULL,
-        "taler-exchange-offline",
-        "taler-exchange-offline",
+        "taler-donau-offline",
+        "taler-donau-offline",
         "-c", ks->config_filename,
         "-L", "INFO",
         "global-fee",
diff --git a/src/testing/testing_api_cmd_offline_sign_keys.c 
b/src/testing/testing_api_cmd_offline_sign_keys.c
index 2c99219..028bf9a 100644
--- a/src/testing/testing_api_cmd_offline_sign_keys.c
+++ b/src/testing/testing_api_cmd_offline_sign_keys.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -19,7 +19,7 @@
 
 /**
  * @file testing/testing_api_cmd_offline_sign_keys.c
- * @brief run the taler-exchange-offline command to download, sign and upload 
keys
+ * @brief run the taler-donau-offline command to download, sign and upload keys
  * @author Marcello Stanisci
  * @author Christian Grothoff
  */
@@ -50,7 +50,7 @@ struct OfflineSignState
 
 
 /**
- * Run the command; calls the `taler-exchange-offline' program.
+ * Run the command; calls the `taler-donau-offline' program.
  *
  * @param cls closure.
  * @param cmd the commaind being run.
@@ -67,8 +67,8 @@ offlinesign_run (void *cls,
     = GNUNET_OS_start_process (
         GNUNET_OS_INHERIT_STD_ALL,
         NULL, NULL, NULL,
-        "taler-exchange-offline",
-        "taler-exchange-offline",
+        "taler-donau-offline",
+        "taler-donau-offline",
         "-c", ks->config_filename,
         "-L", "INFO",
         "download",
diff --git a/src/testing/testing_api_cmd_reserve_close.c 
b/src/testing/testing_api_cmd_reserve_close.c
index 8e272f5..94c5aa1 100644
--- a/src/testing/testing_api_cmd_reserve_close.c
+++ b/src/testing/testing_api_cmd_reserve_close.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -41,7 +41,7 @@ struct CloseState
   /**
    * Handle to the "reserve close" operation.
    */
-  struct TALER_EXCHANGE_ReservesCloseHandle *rsh;
+  struct TALER_DONAU_ReservesCloseHandle *rsh;
 
   /**
    * payto://-URI where to wire the funds.
@@ -69,13 +69,13 @@ struct CloseState
   struct TALER_TESTING_Interpreter *is;
 
   /**
-   * Set to the KYC requirement payto hash *if* the exchange replied with a
+   * Set to the KYC requirement payto hash *if* the donau replied with a
    * request for KYC.
    */
   struct TALER_PaytoHashP h_payto;
 
   /**
-   * Set to the KYC requirement row *if* the exchange replied with
+   * Set to the KYC requirement row *if* the donau replied with
    * a request for KYC.
    */
   uint64_t requirement_row;
@@ -91,7 +91,7 @@ struct CloseState
  */
 static void
 reserve_close_cb (void *cls,
-                  const struct TALER_EXCHANGE_ReserveCloseResult *rs)
+                  const struct TALER_DONAU_ReserveCloseResult *rs)
 {
   struct CloseState *ss = cls;
   struct TALER_TESTING_Interpreter *is = ss->is;
@@ -165,9 +165,9 @@ close_run (void *cls,
   }
   GNUNET_CRYPTO_eddsa_key_get_public (&ss->reserve_priv->eddsa_priv,
                                       &ss->reserve_pub.eddsa_pub);
-  ss->rsh = TALER_EXCHANGE_reserves_close (
+  ss->rsh = TALER_DONAU_reserves_close (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     ss->reserve_priv,
     ss->target_account,
     &reserve_close_cb,
@@ -192,7 +192,7 @@ close_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ss->is,
                                       cmd->label);
-    TALER_EXCHANGE_reserves_close_cancel (ss->rsh);
+    TALER_DONAU_reserves_close_cancel (ss->rsh);
     ss->rsh = NULL;
   }
   GNUNET_free (ss);
diff --git a/src/testing/testing_api_cmd_reserve_get.c 
b/src/testing/testing_api_cmd_reserve_get.c
index 9a938cf..d536956 100644
--- a/src/testing/testing_api_cmd_reserve_get.c
+++ b/src/testing/testing_api_cmd_reserve_get.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -34,7 +34,7 @@ struct PollState
 {
 
   /**
-   * How long do we give the exchange to respond?
+   * How long do we give the donau to respond?
    */
   struct GNUNET_TIME_Relative timeout;
 
@@ -63,7 +63,7 @@ struct StatusState
 {
 
   /**
-   * How long do we give the exchange to respond?
+   * How long do we give the donau to respond?
    */
   struct GNUNET_TIME_Relative timeout;
 
@@ -81,7 +81,7 @@ struct StatusState
   /**
    * Handle to the "reserve status" operation.
    */
-  struct TALER_EXCHANGE_ReservesGetHandle *rsh;
+  struct TALER_DONAU_ReservesGetHandle *rsh;
 
   /**
    * Expected reserve balance.
@@ -115,7 +115,7 @@ struct StatusState
  */
 static void
 reserve_status_cb (void *cls,
-                   const struct TALER_EXCHANGE_ReserveSummary *rs)
+                   const struct TALER_DONAU_ReserveSummary *rs)
 {
   struct StatusState *ss = cls;
   struct TALER_TESTING_Interpreter *is = ss->is;
@@ -178,11 +178,11 @@ status_run (void *cls,
 {
   struct StatusState *ss = cls;
   const struct TALER_TESTING_Command *create_reserve;
-  const char *exchange_url;
+  const char *donau_url;
 
   ss->is = is;
-  exchange_url = TALER_TESTING_get_exchange_url (is);
-  if (NULL == exchange_url)
+  donau_url = TALER_TESTING_get_donau_url (is);
+  if (NULL == donau_url)
   {
     GNUNET_break (0);
     return;
@@ -200,9 +200,9 @@ status_run (void *cls,
     TALER_TESTING_interpreter_fail (is);
     return;
   }
-  ss->rsh = TALER_EXCHANGE_reserves_get (
+  ss->rsh = TALER_DONAU_reserves_get (
     TALER_TESTING_interpreter_get_context (is),
-    exchange_url,
+    donau_url,
     ss->reserve_pubp,
     ss->timeout,
     &reserve_status_cb,
@@ -232,7 +232,7 @@ status_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ss->is,
                                       cmd->label);
-    TALER_EXCHANGE_reserves_get_cancel (ss->rsh);
+    TALER_DONAU_reserves_get_cancel (ss->rsh);
     ss->rsh = NULL;
   }
   GNUNET_free (ss);
diff --git a/src/testing/testing_api_cmd_reserve_history.c 
b/src/testing/testing_api_cmd_reserve_history.c
index ff0a8a5..bf1d203 100644
--- a/src/testing/testing_api_cmd_reserve_history.c
+++ b/src/testing/testing_api_cmd_reserve_history.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -47,7 +47,7 @@ struct HistoryState
   /**
    * Handle to the "reserve history" operation.
    */
-  struct TALER_EXCHANGE_ReservesHistoryHandle *rsh;
+  struct TALER_DONAU_ReservesHistoryHandle *rsh;
 
   /**
    * Expected reserve balance.
@@ -66,9 +66,9 @@ struct HistoryState
 
   /**
    * Reserve history entry that corresponds to this operation.
-   * Will be of type #TALER_EXCHANGE_RTT_HISTORY.
+   * Will be of type #TALER_DONAU_RTT_HISTORY.
    */
-  struct TALER_EXCHANGE_ReserveHistoryEntry reserve_history;
+  struct TALER_DONAU_ReserveHistoryEntry reserve_history;
 
   /**
    * Expected HTTP response code.
@@ -96,7 +96,7 @@ struct AnalysisContext
   /**
    * Array of history items to match.
    */
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *history;
+  const struct TALER_DONAU_ReserveHistoryEntry *history;
 
   /**
    * Array of @e history_length of matched entries.
@@ -124,7 +124,7 @@ analyze_command (void *cls,
 {
   struct AnalysisContext *ac = cls;
   const struct TALER_ReservePublicKeyP *reserve_pub = ac->reserve_pub;
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *history = ac->history;
+  const struct TALER_DONAU_ReserveHistoryEntry *history = ac->history;
   unsigned int history_length = ac->history_length;
   bool *found = ac->found;
 
@@ -174,7 +174,7 @@ analyze_command (void *cls,
       return; /* command affects some _other_ reserve */
     for (unsigned int j = 0; true; j++)
     {
-      const struct TALER_EXCHANGE_ReserveHistoryEntry *he;
+      const struct TALER_DONAU_ReserveHistoryEntry *he;
       bool matched = false;
 
       if (GNUNET_OK !=
@@ -225,7 +225,7 @@ analyze_command (void *cls,
  */
 static void
 reserve_history_cb (void *cls,
-                    const struct TALER_EXCHANGE_ReserveHistory *rs)
+                    const struct TALER_DONAU_ReserveHistory *rs)
 {
   struct HistoryState *ss = cls;
   struct TALER_TESTING_Interpreter *is = ss->is;
@@ -234,13 +234,13 @@ reserve_history_cb (void *cls,
   ss->rsh = NULL;
   if (MHD_HTTP_OK == rs->hr.http_status)
   {
-    struct TALER_EXCHANGE_Keys *keys;
-    const struct TALER_EXCHANGE_GlobalFee *gf;
+    struct TALER_DONAU_Keys *keys;
+    const struct TALER_DONAU_GlobalFee *gf;
 
-    ss->reserve_history.type = TALER_EXCHANGE_RTT_HISTORY;
+    ss->reserve_history.type = TALER_DONAU_RTT_HISTORY;
     keys = TALER_TESTING_get_keys (is);
     GNUNET_assert (NULL != keys);
-    gf = TALER_EXCHANGE_get_global_fee (keys,
+    gf = TALER_DONAU_get_global_fee (keys,
                                         rs->ts);
     GNUNET_assert (NULL != gf);
     ss->reserve_history.amount = gf->fees.history;
@@ -361,9 +361,9 @@ history_run (void *cls,
   }
   GNUNET_CRYPTO_eddsa_key_get_public (&ss->reserve_priv->eddsa_priv,
                                       &ss->reserve_pub.eddsa_pub);
-  ss->rsh = TALER_EXCHANGE_reserves_history (
+  ss->rsh = TALER_DONAU_reserves_history (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     TALER_TESTING_get_keys (is),
     ss->reserve_priv,
     &reserve_history_cb,
@@ -421,7 +421,7 @@ history_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ss->is,
                                       cmd->label);
-    TALER_EXCHANGE_reserves_history_cancel (ss->rsh);
+    TALER_DONAU_reserves_history_cancel (ss->rsh);
     ss->rsh = NULL;
   }
   GNUNET_free (ss);
diff --git a/src/testing/testing_api_cmd_reserve_open.c 
b/src/testing/testing_api_cmd_reserve_open.c
index 189d06b..8587164 100644
--- a/src/testing/testing_api_cmd_reserve_open.c
+++ b/src/testing/testing_api_cmd_reserve_open.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -74,7 +74,7 @@ struct OpenState
   /**
    * Handle to the "reserve open" operation.
    */
-  struct TALER_EXCHANGE_ReservesOpenHandle *rsh;
+  struct TALER_DONAU_ReservesOpenHandle *rsh;
 
   /**
    * Expected reserve balance.
@@ -122,7 +122,7 @@ struct OpenState
  */
 static void
 reserve_open_cb (void *cls,
-                 const struct TALER_EXCHANGE_ReserveOpenResult *rs)
+                 const struct TALER_DONAU_ReserveOpenResult *rs)
 {
   struct OpenState *ss = cls;
   struct TALER_TESTING_Interpreter *is = ss->is;
@@ -164,7 +164,7 @@ open_run (void *cls,
 {
   struct OpenState *ss = cls;
   const struct TALER_TESTING_Command *create_reserve;
-  struct TALER_EXCHANGE_PurseDeposit cp[GNUNET_NZL (ss->cpl)];
+  struct TALER_DONAU_PurseDeposit cp[GNUNET_NZL (ss->cpl)];
 
   ss->is = is;
   create_reserve
@@ -190,12 +190,12 @@ open_run (void *cls,
                                       &ss->reserve_pub.eddsa_pub);
   for (unsigned int i = 0; i<ss->cpl; i++)
   {
-    struct TALER_EXCHANGE_PurseDeposit *cpi = &cp[i];
+    struct TALER_DONAU_PurseDeposit *cpi = &cp[i];
     const struct TALER_TESTING_Command *cmdi;
     const struct TALER_AgeCommitmentProof *age_commitment_proof;
     const struct TALER_CoinSpendPrivateKeyP *coin_priv;
     const struct TALER_DenominationSignature *denom_sig;
-    const struct TALER_EXCHANGE_DenomPublicKey *denom_pub;
+    const struct TALER_DONAU_DenomPublicKey *denom_pub;
     char *cref;
     unsigned int cidx;
 
@@ -251,9 +251,9 @@ open_run (void *cls,
     cpi->amount = ss->cd[i].amount;
     cpi->h_denom_pub = denom_pub->h_key;
   }
-  ss->rsh = TALER_EXCHANGE_reserves_open (
+  ss->rsh = TALER_DONAU_reserves_open (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     TALER_TESTING_get_keys (is),
     ss->reserve_priv,
     &ss->reserve_pay,
@@ -283,7 +283,7 @@ open_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ss->is,
                                       cmd->label);
-    TALER_EXCHANGE_reserves_open_cancel (ss->rsh);
+    TALER_DONAU_reserves_open_cancel (ss->rsh);
     ss->rsh = NULL;
   }
   GNUNET_free (ss);
diff --git a/src/testing/testing_api_cmd_reserve_status.c 
b/src/testing/testing_api_cmd_reserve_status.c
index 2438b2c..dca395b 100644
--- a/src/testing/testing_api_cmd_reserve_status.c
+++ b/src/testing/testing_api_cmd_reserve_status.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -41,7 +41,7 @@ struct StatusState
   /**
    * Handle to the "reserve status" operation.
    */
-  struct TALER_EXCHANGE_ReservesStatusHandle *rsh;
+  struct TALER_DONAU_ReservesStatusHandle *rsh;
 
   /**
    * Expected reserve balance.
@@ -87,7 +87,7 @@ struct AnalysisContext
   /**
    * Array of history items to match.
    */
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *history;
+  const struct TALER_DONAU_ReserveHistoryEntry *history;
 
   /**
    * Array of @e history_length of matched entries.
@@ -115,7 +115,7 @@ analyze_command (void *cls,
 {
   struct AnalysisContext *ac = cls;
   const struct TALER_ReservePublicKeyP *reserve_pub = ac->reserve_pub;
-  const struct TALER_EXCHANGE_ReserveHistoryEntry *history = ac->history;
+  const struct TALER_DONAU_ReserveHistoryEntry *history = ac->history;
   unsigned int history_length = ac->history_length;
   bool *found = ac->found;
 
@@ -165,7 +165,7 @@ analyze_command (void *cls,
       return; /* command affects some _other_ reserve */
     for (unsigned int j = 0; true; j++)
     {
-      const struct TALER_EXCHANGE_ReserveHistoryEntry *he;
+      const struct TALER_DONAU_ReserveHistoryEntry *he;
       bool matched = false;
 
       if (GNUNET_OK !=
@@ -215,7 +215,7 @@ analyze_command (void *cls,
  */
 static void
 reserve_status_cb (void *cls,
-                   const struct TALER_EXCHANGE_ReserveStatus *rs)
+                   const struct TALER_DONAU_ReserveStatus *rs)
 {
   struct StatusState *ss = cls;
   struct TALER_TESTING_Interpreter *is = ss->is;
@@ -337,9 +337,9 @@ status_run (void *cls,
   }
   GNUNET_CRYPTO_eddsa_key_get_public (&ss->reserve_priv->eddsa_priv,
                                       &ss->reserve_pub.eddsa_pub);
-  ss->rsh = TALER_EXCHANGE_reserves_status (
+  ss->rsh = TALER_DONAU_reserves_status (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     TALER_TESTING_get_keys (is),
     ss->reserve_priv,
     &reserve_status_cb,
@@ -364,7 +364,7 @@ status_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ss->is,
                                       cmd->label);
-    TALER_EXCHANGE_reserves_status_cancel (ss->rsh);
+    TALER_DONAU_reserves_status_cancel (ss->rsh);
     ss->rsh = NULL;
   }
   GNUNET_free (ss);
diff --git a/src/testing/testing_api_cmd_revoke.c 
b/src/testing/testing_api_cmd_revoke.c
index f734be1..ff79ab5 100644
--- a/src/testing/testing_api_cmd_revoke.c
+++ b/src/testing/testing_api_cmd_revoke.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -135,7 +135,7 @@ revoke_run (void *cls,
 {
   struct RevokeState *rs = cls;
   const struct TALER_TESTING_Command *coin_cmd;
-  const struct TALER_EXCHANGE_DenomPublicKey *denom_pub;
+  const struct TALER_DONAU_DenomPublicKey *denom_pub;
 
   rs->is = is;
   /* Get denom pub from trait */
@@ -161,8 +161,8 @@ revoke_run (void *cls,
     sizeof (struct GNUNET_HashCode));
   rs->revoke_proc = GNUNET_OS_start_process (GNUNET_OS_INHERIT_STD_ALL,
                                              NULL, NULL, NULL,
-                                             "taler-exchange-offline",
-                                             "taler-exchange-offline",
+                                             "taler-donau-offline",
+                                             "taler-donau-offline",
                                              "-c", rs->config_filename,
                                              "revoke-denomination", rs->dhks,
                                              "upload",
diff --git a/src/testing/testing_api_cmd_revoke_denom_key.c 
b/src/testing/testing_api_cmd_revoke_denom_key.c
index 2663c53..cde3e74 100644
--- a/src/testing/testing_api_cmd_revoke_denom_key.c
+++ b/src/testing/testing_api_cmd_revoke_denom_key.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -51,7 +51,7 @@ struct RevokeState
   /**
    * Handle for the operation.
    */
-  struct TALER_EXCHANGE_ManagementRevokeDenominationKeyHandle *kh;
+  struct TALER_DONAU_ManagementRevokeDenominationKeyHandle *kh;
 
   /**
    * Should we use a bogus signature?
@@ -70,10 +70,10 @@ struct RevokeState
 static void
 success_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementRevokeDenominationResponse *rdr)
+  const struct TALER_DONAU_ManagementRevokeDenominationResponse *rdr)
 {
   struct RevokeState *rs = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &rdr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &rdr->hr;
 
   rs->kh = NULL;
   if (rs->expected_response_code != hr->http_status)
@@ -101,7 +101,7 @@ revoke_cleanup (void *cls,
 
   if (NULL != rs->kh)
   {
-    TALER_EXCHANGE_management_revoke_denomination_key_cancel (rs->kh);
+    TALER_DONAU_management_revoke_denomination_key_cancel (rs->kh);
     rs->kh = NULL;
   }
   GNUNET_free (rs);
@@ -150,24 +150,24 @@ revoke_run (void *cls,
 {
   struct RevokeState *rs = cls;
   const struct TALER_TESTING_Command *coin_cmd;
-  const struct TALER_EXCHANGE_DenomPublicKey *denom_pub;
+  const struct TALER_DONAU_DenomPublicKey *denom_pub;
   struct TALER_MasterSignatureP master_sig;
-  const char *exchange_url;
+  const char *donau_url;
 
   {
-    const struct TALER_TESTING_Command *exchange_cmd;
+    const struct TALER_TESTING_Command *donau_cmd;
 
-    exchange_cmd = TALER_TESTING_interpreter_get_command (is,
-                                                          "exchange");
-    if (NULL == exchange_cmd)
+    donau_cmd = TALER_TESTING_interpreter_get_command (is,
+                                                          "donau");
+    if (NULL == donau_cmd)
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
     GNUNET_assert (GNUNET_OK ==
-                   TALER_TESTING_get_trait_exchange_url (exchange_cmd,
-                                                         &exchange_url));
+                   TALER_TESTING_get_trait_donau_url (donau_cmd,
+                                                         &donau_url));
   }
   rs->is = is;
   /* Get denom pub from trait */
@@ -195,27 +195,27 @@ revoke_run (void *cls,
   }
   else
   {
-    const struct TALER_TESTING_Command *exchange_cmd;
+    const struct TALER_TESTING_Command *donau_cmd;
     const struct TALER_MasterPrivateKeyP *master_priv;
 
-    exchange_cmd = TALER_TESTING_interpreter_get_command (is,
-                                                          "exchange");
-    if (NULL == exchange_cmd)
+    donau_cmd = TALER_TESTING_interpreter_get_command (is,
+                                                          "donau");
+    if (NULL == donau_cmd)
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
     GNUNET_assert (GNUNET_OK ==
-                   TALER_TESTING_get_trait_master_priv (exchange_cmd,
+                   TALER_TESTING_get_trait_master_priv (donau_cmd,
                                                         &master_priv));
-    TALER_exchange_offline_denomination_revoke_sign (&denom_pub->h_key,
+    TALER_donau_offline_denomination_revoke_sign (&denom_pub->h_key,
                                                      master_priv,
                                                      &master_sig);
   }
-  rs->kh = TALER_EXCHANGE_management_revoke_denomination_key (
+  rs->kh = TALER_DONAU_management_revoke_denomination_key (
     TALER_TESTING_interpreter_get_context (is),
-    exchange_url,
+    donau_url,
     &denom_pub->h_key,
     &master_sig,
     &success_cb,
diff --git a/src/testing/testing_api_cmd_revoke_sign_key.c 
b/src/testing/testing_api_cmd_revoke_sign_key.c
index 65b80b4..9652f6c 100644
--- a/src/testing/testing_api_cmd_revoke_sign_key.c
+++ b/src/testing/testing_api_cmd_revoke_sign_key.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -51,7 +51,7 @@ struct RevokeState
   /**
    * Handle for the operation.
    */
-  struct TALER_EXCHANGE_ManagementRevokeSigningKeyHandle *kh;
+  struct TALER_DONAU_ManagementRevokeSigningKeyHandle *kh;
 
   /**
    * Should we use a bogus signature?
@@ -70,10 +70,10 @@ struct RevokeState
 static void
 success_cb (
   void *cls,
-  const struct TALER_EXCHANGE_ManagementRevokeSigningKeyResponse *rsr)
+  const struct TALER_DONAU_ManagementRevokeSigningKeyResponse *rsr)
 {
   struct RevokeState *rs = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &rsr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &rsr->hr;
 
   rs->kh = NULL;
   if (rs->expected_response_code != hr->http_status)
@@ -101,7 +101,7 @@ revoke_cleanup (void *cls,
 
   if (NULL != rs->kh)
   {
-    TALER_EXCHANGE_management_revoke_signing_key_cancel (rs->kh);
+    TALER_DONAU_management_revoke_signing_key_cancel (rs->kh);
     rs->kh = NULL;
   }
   GNUNET_free (rs);
@@ -150,24 +150,24 @@ revoke_run (void *cls,
 {
   struct RevokeState *rs = cls;
   const struct TALER_TESTING_Command *coin_cmd;
-  const struct TALER_ExchangePublicKeyP *exchange_pub;
+  const struct TALER_DonauPublicKeyP *donau_pub;
   struct TALER_MasterSignatureP master_sig;
-  const char *exchange_url;
+  const char *donau_url;
 
   {
-    const struct TALER_TESTING_Command *exchange_cmd;
+    const struct TALER_TESTING_Command *donau_cmd;
 
-    exchange_cmd = TALER_TESTING_interpreter_get_command (is,
-                                                          "exchange");
-    if (NULL == exchange_cmd)
+    donau_cmd = TALER_TESTING_interpreter_get_command (is,
+                                                          "donau");
+    if (NULL == donau_cmd)
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
     GNUNET_assert (GNUNET_OK ==
-                   TALER_TESTING_get_trait_exchange_url (exchange_cmd,
-                                                         &exchange_url));
+                   TALER_TESTING_get_trait_donau_url (donau_cmd,
+                                                         &donau_url));
   }
   rs->is = is;
   /* Get sign pub from trait */
@@ -181,12 +181,12 @@ revoke_run (void *cls,
     return;
   }
   GNUNET_assert (GNUNET_OK ==
-                 TALER_TESTING_get_trait_exchange_pub (coin_cmd,
+                 TALER_TESTING_get_trait_donau_pub (coin_cmd,
                                                        0,
-                                                       &exchange_pub));
+                                                       &donau_pub));
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Trying to revoke sign '%s..'\n",
-              TALER_B2S (exchange_pub));
+              TALER_B2S (donau_pub));
   if (rs->bad_sig)
   {
     memset (&master_sig,
@@ -195,28 +195,28 @@ revoke_run (void *cls,
   }
   else
   {
-    const struct TALER_TESTING_Command *exchange_cmd;
+    const struct TALER_TESTING_Command *donau_cmd;
     const struct TALER_MasterPrivateKeyP *master_priv;
 
-    exchange_cmd = TALER_TESTING_interpreter_get_command (is,
-                                                          "exchange");
-    if (NULL == exchange_cmd)
+    donau_cmd = TALER_TESTING_interpreter_get_command (is,
+                                                          "donau");
+    if (NULL == donau_cmd)
     {
       GNUNET_break (0);
       TALER_TESTING_interpreter_fail (is);
       return;
     }
     GNUNET_assert (GNUNET_OK ==
-                   TALER_TESTING_get_trait_master_priv (exchange_cmd,
+                   TALER_TESTING_get_trait_master_priv (donau_cmd,
                                                         &master_priv));
-    TALER_exchange_offline_signkey_revoke_sign (exchange_pub,
+    TALER_donau_offline_signkey_revoke_sign (donau_pub,
                                                 master_priv,
                                                 &master_sig);
   }
-  rs->kh = TALER_EXCHANGE_management_revoke_signing_key (
+  rs->kh = TALER_DONAU_management_revoke_signing_key (
     TALER_TESTING_interpreter_get_context (is),
-    exchange_url,
-    exchange_pub,
+    donau_url,
+    donau_pub,
     &master_sig,
     &success_cb,
     rs);
diff --git a/src/testing/testing_api_cmd_stat.c 
b/src/testing/testing_api_cmd_stat.c
index 8723aac..1ad40b2 100644
--- a/src/testing/testing_api_cmd_stat.c
+++ b/src/testing/testing_api_cmd_stat.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
diff --git a/src/testing/testing_api_cmd_transfer_get.c 
b/src/testing/testing_api_cmd_transfer_get.c
index 405c8b7..0c6ef0a 100644
--- a/src/testing/testing_api_cmd_transfer_get.c
+++ b/src/testing/testing_api_cmd_transfer_get.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -72,7 +72,7 @@ struct TrackTransferState
   /**
    * Handle to a pending "track transfer" operation.
    */
-  struct TALER_EXCHANGE_TransfersGetHandle *tth;
+  struct TALER_DONAU_TransfersGetHandle *tth;
 
   /**
    * Interpreter state.
@@ -105,7 +105,7 @@ track_transfer_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (tts->is,
                                       cmd->label);
-    TALER_EXCHANGE_transfers_get_cancel (tts->tth);
+    TALER_DONAU_transfers_get_cancel (tts->tth);
     tts->tth = NULL;
   }
   GNUNET_free (tts);
@@ -122,10 +122,10 @@ track_transfer_cleanup (void *cls,
  */
 static void
 track_transfer_cb (void *cls,
-                   const struct TALER_EXCHANGE_TransfersGetResponse *tgr)
+                   const struct TALER_DONAU_TransfersGetResponse *tgr)
 {
   struct TrackTransferState *tts = cls;
-  const struct TALER_EXCHANGE_HttpResponse *hr = &tgr->hr;
+  const struct TALER_DONAU_HttpResponse *hr = &tgr->hr;
   struct TALER_TESTING_Interpreter *is = tts->is;
   struct TALER_Amount expected_amount;
 
@@ -142,7 +142,7 @@ track_transfer_cb (void *cls,
   {
   case MHD_HTTP_OK:
     {
-      const struct TALER_EXCHANGE_TransferData *ta
+      const struct TALER_DONAU_TransferData *ta
         = &tgr->details.ok.td;
 
       if (NULL == tts->expected_total_amount)
@@ -342,9 +342,9 @@ track_transfer_run (void *cls,
     }
     GNUNET_assert (NULL != wtid_ptr);
   }
-  tts->tth = TALER_EXCHANGE_transfers_get (
+  tts->tth = TALER_DONAU_transfers_get (
     TALER_TESTING_interpreter_get_context (is),
-    TALER_TESTING_get_exchange_url (is),
+    TALER_TESTING_get_donau_url (is),
     TALER_TESTING_get_keys (is),
     wtid_ptr,
     &track_transfer_cb,
diff --git a/src/testing/testing_api_cmd_wait.c 
b/src/testing/testing_api_cmd_wait.c
index 40f4d36..74a3603 100644
--- a/src/testing/testing_api_cmd_wait.c
+++ b/src/testing/testing_api_cmd_wait.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
diff --git a/src/testing/testing_api_cmd_withdraw.c 
b/src/testing/testing_api_cmd_withdraw.c
index 8873c24..19908c3 100644
--- a/src/testing/testing_api_cmd_withdraw.c
+++ b/src/testing/testing_api_cmd_withdraw.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -38,13 +38,13 @@
 #define NUM_RETRIES 15
 
 /**
- * How long do we wait AT LEAST if the exchange says the reserve is unknown?
+ * How long do we wait AT LEAST if the donau says the reserve is unknown?
  */
 #define UNKNOWN_MIN_BACKOFF GNUNET_TIME_relative_multiply ( \
     GNUNET_TIME_UNIT_MILLISECONDS, 10)
 
 /**
- * How long do we wait AT MOST if the exchange says the reserve is unknown?
+ * How long do we wait AT MOST if the donau says the reserve is unknown?
  */
 #define UNKNOWN_MAX_BACKOFF GNUNET_TIME_relative_multiply ( \
     GNUNET_TIME_UNIT_MILLISECONDS, 100)
@@ -73,7 +73,7 @@ struct WithdrawState
 
   /**
    * String describing the denomination value we should withdraw.
-   * A corresponding denomination key must exist in the exchange's
+   * A corresponding denomination key must exist in the donau's
    * offerings.  Can be NULL if @e pk is set instead.
    */
   struct TALER_Amount amount;
@@ -83,12 +83,12 @@ struct WithdrawState
    * use.  Otherwise, this will be set (by the interpreter) to the
    * denomination PK matching @e amount.
    */
-  struct TALER_EXCHANGE_DenomPublicKey *pk;
+  struct TALER_DONAU_DenomPublicKey *pk;
 
   /**
-   * Exchange base URL.  Only used as offered trait.
+   * Donau base URL.  Only used as offered trait.
    */
-  char *exchange_url;
+  char *donau_url;
 
   /**
    * URI if the reserve we are withdrawing from.
@@ -116,10 +116,10 @@ struct WithdrawState
   union TALER_DenominationBlindingKeyP bks;
 
   /**
-   * Values contributed from the exchange during the
+   * Values contributed from the donau during the
    * withdraw protocol.
    */
-  struct TALER_ExchangeWithdrawValues exchange_vals;
+  struct TALER_DonauWithdrawValues donau_vals;
 
   /**
    * Interpreter state (during command).
@@ -127,7 +127,7 @@ struct WithdrawState
   struct TALER_TESTING_Interpreter *is;
 
   /**
-   * Set (by the interpreter) to the exchange's signature over the
+   * Set (by the interpreter) to the donau's signature over the
    * coin's public key.
    */
   struct TALER_DenominationSignature sig;
@@ -151,14 +151,14 @@ struct WithdrawState
 
   /**
    * Reserve history entry that corresponds to this operation.
-   * Will be of type #TALER_EXCHANGE_RTT_WITHDRAWAL.
+   * Will be of type #TALER_DONAU_RTT_WITHDRAWAL.
    */
-  struct TALER_EXCHANGE_ReserveHistoryEntry reserve_history;
+  struct TALER_DONAU_ReserveHistoryEntry reserve_history;
 
   /**
    * Withdraw handle (while operation is running).
    */
-  struct TALER_EXCHANGE_WithdrawHandle *wsh;
+  struct TALER_DONAU_WithdrawHandle *wsh;
 
   /**
    * Task scheduled to try later.
@@ -176,13 +176,13 @@ struct WithdrawState
   struct GNUNET_TIME_Relative total_backoff;
 
   /**
-   * Set to the KYC requirement payto hash *if* the exchange replied with a
+   * Set to the KYC requirement payto hash *if* the donau replied with a
    * request for KYC.
    */
   struct TALER_PaytoHashP h_payto;
 
   /**
-   * Set to the KYC requirement row *if* the exchange replied with
+   * Set to the KYC requirement row *if* the donau replied with
    * a request for KYC.
    */
   uint64_t requirement_row;
@@ -234,7 +234,7 @@ do_retry (void *cls)
 
 /**
  * "reserve withdraw" operation callback; checks that the
- * response code is expected and store the exchange signature
+ * response code is expected and store the donau signature
  * in the state.
  *
  * @param cls closure.
@@ -242,7 +242,7 @@ do_retry (void *cls)
  */
 static void
 reserve_withdraw_cb (void *cls,
-                     const struct TALER_EXCHANGE_WithdrawResponse *wr)
+                     const struct TALER_DONAU_WithdrawResponse *wr)
 {
   struct WithdrawState *ws = cls;
   struct TALER_TESTING_Interpreter *is = ws->is;
@@ -252,12 +252,12 @@ reserve_withdraw_cb (void *cls,
   {
     if (0 != ws->do_retry)
     {
-      if (TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN != wr->hr.ec)
+      if (TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN != wr->hr.ec)
         ws->do_retry--; /* we don't count reserve unknown as failures here */
       if ( (0 == wr->hr.http_status) ||
            (TALER_EC_GENERIC_DB_SOFT_FAILURE == wr->hr.ec) ||
-           (TALER_EC_EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS == wr->hr.ec) ||
-           (TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN == wr->hr.ec) ||
+           (TALER_EC_DONAU_WITHDRAW_INSUFFICIENT_FUNDS == wr->hr.ec) ||
+           (TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN == wr->hr.ec) ||
            (MHD_HTTP_INTERNAL_SERVER_ERROR == wr->hr.http_status) )
       {
         GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -267,8 +267,8 @@ reserve_withdraw_cb (void *cls,
         /* on DB conflicts, do not use backoff */
         if (TALER_EC_GENERIC_DB_SOFT_FAILURE == wr->hr.ec)
           ws->backoff = GNUNET_TIME_UNIT_ZERO;
-        else if (TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN != wr->hr.ec)
-          ws->backoff = EXCHANGE_LIB_BACKOFF (ws->backoff);
+        else if (TALER_EC_DONAU_GENERIC_RESERVE_UNKNOWN != wr->hr.ec)
+          ws->backoff = DONAU_LIB_BACKOFF (ws->backoff);
         else
           ws->backoff = GNUNET_TIME_relative_max (UNKNOWN_MIN_BACKOFF,
                                                   ws->backoff);
@@ -296,7 +296,7 @@ reserve_withdraw_cb (void *cls,
                                &wr->details.ok.sig);
     ws->coin_priv = wr->details.ok.coin_priv;
     ws->bks = wr->details.ok.bks;
-    ws->exchange_vals = wr->details.ok.exchange_vals;
+    ws->donau_vals = wr->details.ok.donau_vals;
     if (0 != ws->total_backoff.rel_value_us)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -348,7 +348,7 @@ withdraw_run (void *cls,
   struct WithdrawState *ws = cls;
   const struct TALER_ReservePrivateKeyP *rp;
   const struct TALER_TESTING_Command *create_reserve;
-  const struct TALER_EXCHANGE_DenomPublicKey *dpk;
+  const struct TALER_DONAU_DenomPublicKey *dpk;
 
   if (NULL != cmd)
     ws->cmd = cmd;
@@ -371,14 +371,14 @@ withdraw_run (void *cls,
     TALER_TESTING_interpreter_fail (is);
     return;
   }
-  if (NULL == ws->exchange_url)
-    ws->exchange_url
-      = GNUNET_strdup (TALER_TESTING_get_exchange_url (is));
+  if (NULL == ws->donau_url)
+    ws->donau_url
+      = GNUNET_strdup (TALER_TESTING_get_donau_url (is));
   ws->reserve_priv = *rp;
   GNUNET_CRYPTO_eddsa_key_get_public (&ws->reserve_priv.eddsa_priv,
                                       &ws->reserve_pub.eddsa_pub);
   ws->reserve_payto_uri
-    = TALER_reserve_make_payto (ws->exchange_url,
+    = TALER_reserve_make_payto (ws->donau_url,
                                 &ws->reserve_pub);
 
   if (NULL == ws->reuse_coin_key_ref)
@@ -423,28 +423,28 @@ withdraw_run (void *cls,
     }
     /* We copy the denomination key, as re-querying /keys
      * would free the old one. */
-    ws->pk = TALER_EXCHANGE_copy_denomination_key (dpk);
+    ws->pk = TALER_DONAU_copy_denomination_key (dpk);
   }
   else
   {
     ws->amount = ws->pk->value;
   }
 
-  ws->reserve_history.type = TALER_EXCHANGE_RTT_WITHDRAWAL;
+  ws->reserve_history.type = TALER_DONAU_RTT_WITHDRAWAL;
   GNUNET_assert (0 <=
                  TALER_amount_add (&ws->reserve_history.amount,
                                    &ws->amount,
                                    &ws->pk->fees.withdraw));
   ws->reserve_history.details.withdraw.fee = ws->pk->fees.withdraw;
   {
-    struct TALER_EXCHANGE_WithdrawCoinInput wci = {
+    struct TALER_DONAU_WithdrawCoinInput wci = {
       .pk = ws->pk,
       .ps = &ws->ps,
       .ach = 0 < ws->age ? &ws->h_age_commitment : NULL
     };
-    ws->wsh = TALER_EXCHANGE_withdraw (
+    ws->wsh = TALER_DONAU_withdraw (
       TALER_TESTING_interpreter_get_context (is),
-      TALER_TESTING_get_exchange_url (is),
+      TALER_TESTING_get_donau_url (is),
       TALER_TESTING_get_keys (is),
       rp,
       &wci,
@@ -477,7 +477,7 @@ withdraw_cleanup (void *cls,
   {
     TALER_TESTING_command_incomplete (ws->is,
                                       cmd->label);
-    TALER_EXCHANGE_withdraw_cancel (ws->wsh);
+    TALER_DONAU_withdraw_cancel (ws->wsh);
     ws->wsh = NULL;
   }
   if (NULL != ws->retry_task)
@@ -488,12 +488,12 @@ withdraw_cleanup (void *cls,
   TALER_denom_sig_free (&ws->sig);
   if (NULL != ws->pk)
   {
-    TALER_EXCHANGE_destroy_denomination_key (ws->pk);
+    TALER_DONAU_destroy_denomination_key (ws->pk);
     ws->pk = NULL;
   }
   if (ws->age > 0)
     TALER_age_commitment_proof_free (&ws->age_commitment_proof);
-  GNUNET_free (ws->exchange_url);
+  GNUNET_free (ws->donau_url);
   GNUNET_free (ws->reserve_payto_uri);
   GNUNET_free (ws);
 }
@@ -525,8 +525,8 @@ withdraw_traits (void *cls,
     TALER_TESTING_make_trait_planchet_secret (&ws->ps),
     TALER_TESTING_make_trait_blinding_key (0 /* only one coin */,
                                            &ws->bks),
-    TALER_TESTING_make_trait_exchange_wd_value (0 /* only one coin */,
-                                                &ws->exchange_vals),
+    TALER_TESTING_make_trait_donau_wd_value (0 /* only one coin */,
+                                                &ws->donau_vals),
     TALER_TESTING_make_trait_denom_pub (0 /* only one coin */,
                                         ws->pk),
     TALER_TESTING_make_trait_denom_sig (0 /* only one coin */,
@@ -537,7 +537,7 @@ withdraw_traits (void *cls,
     TALER_TESTING_make_trait_legi_requirement_row (&ws->requirement_row),
     TALER_TESTING_make_trait_h_payto (&ws->h_payto),
     TALER_TESTING_make_trait_payto_uri (ws->reserve_payto_uri),
-    TALER_TESTING_make_trait_exchange_url (ws->exchange_url),
+    TALER_TESTING_make_trait_donau_url (ws->donau_url),
     TALER_TESTING_make_trait_age_commitment_proof (0,
                                                    0 < ws->age
                                                    ? &ws->age_commitment_proof
@@ -651,7 +651,7 @@ struct TALER_TESTING_Command
 TALER_TESTING_cmd_withdraw_denomination (
   const char *label,
   const char *reserve_reference,
-  const struct TALER_EXCHANGE_DenomPublicKey *dk,
+  const struct TALER_DONAU_DenomPublicKey *dk,
   unsigned int expected_response_code)
 {
   struct WithdrawState *ws;
@@ -665,7 +665,7 @@ TALER_TESTING_cmd_withdraw_denomination (
   }
   ws = GNUNET_new (struct WithdrawState);
   ws->reserve_reference = reserve_reference;
-  ws->pk = TALER_EXCHANGE_copy_denomination_key (dk);
+  ws->pk = TALER_DONAU_copy_denomination_key (dk);
   ws->expected_response_code = expected_response_code;
   {
     struct TALER_TESTING_Command cmd = {
diff --git a/src/testing/testing_api_misc.c b/src/testing/testing_api_misc.c
index 665402f..955e2dd 100644
--- a/src/testing/testing_api_misc.c
+++ b/src/testing/testing_api_misc.c
@@ -9,7 +9,7 @@
 
   TALER is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public
@@ -55,12 +55,12 @@ TALER_TESTING_has_in_name (const char *prog,
 enum GNUNET_GenericReturnValue
 TALER_TESTING_get_credentials (
   const char *cfg_file,
-  const char *exchange_account_section,
+  const char *donau_account_section,
   enum TALER_TESTING_BankSystem bs,
   struct TALER_TESTING_Credentials *ua)
 {
   unsigned long long port;
-  char *exchange_payto_uri;
+  char *donau_payto_uri;
 
   ua->cfg = GNUNET_CONFIGURATION_create ();
   if (GNUNET_OK !=
@@ -72,21 +72,21 @@ TALER_TESTING_get_credentials (
     return GNUNET_SYSERR;
   }
   if (0 !=
-      strncasecmp (exchange_account_section,
-                   "exchange-account-",
-                   strlen ("exchange-account-")))
+      strncasecmp (donau_account_section,
+                   "donau-account-",
+                   strlen ("donau-account-")))
   {
     GNUNET_break (0);
     return GNUNET_SYSERR;
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (ua->cfg,
-                                             exchange_account_section,
+                                             donau_account_section,
                                              "PAYTO_URI",
-                                             &exchange_payto_uri))
+                                             &donau_payto_uri))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               exchange_account_section,
+                               donau_account_section,
                                "PAYTO_URI");
     return GNUNET_SYSERR;
   }
@@ -105,8 +105,8 @@ TALER_TESTING_get_credentials (
     char *csn;
 
     GNUNET_asprintf (&csn,
-                     "exchange-accountcredentials-%s",
-                     &exchange_account_section[strlen ("exchange-account-")]);
+                     "donau-accountcredentials-%s",
+                     &donau_account_section[strlen ("donau-account-")]);
     if (GNUNET_OK !=
         TALER_BANK_auth_parse_cfg (ua->cfg,
                                    csn,
@@ -120,12 +120,12 @@ TALER_TESTING_get_credentials (
   }
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (ua->cfg,
-                                             "exchange",
+                                             "donau",
                                              "BASE_URL",
-                                             &ua->exchange_url))
+                                             &ua->donau_url))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange",
+                               "donau",
                                "BASE_URL");
     return GNUNET_SYSERR;
   }
@@ -144,16 +144,16 @@ TALER_TESTING_get_credentials (
   switch (bs)
   {
   case TALER_TESTING_BS_FAKEBANK:
-    ua->exchange_payto
-      = exchange_payto_uri;
+    ua->donau_payto
+      = donau_payto_uri;
     ua->user42_payto
       = GNUNET_strdup ("payto://x-taler-bank/localhost/42?receiver-name=42");
     ua->user43_payto
       = GNUNET_strdup ("payto://x-taler-bank/localhost/43?receiver-name=43");
     break;
   case TALER_TESTING_BS_IBAN:
-    ua->exchange_payto
-      = exchange_payto_uri;
+    ua->donau_payto
+      = donau_payto_uri;
     ua->user42_payto
       = GNUNET_strdup (
           
"payto://iban/SANDBOXX/FR7630006000011234567890189?receiver-name=User42");
@@ -226,12 +226,12 @@ TALER_TESTING_cleanup_files_cfg (
   (void) cls;
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_filename (cfg,
-                                               "exchange-offline",
+                                               "donau-offline",
                                                "SECM_TOFU_FILE",
                                                &dir))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchange-offline",
+                               "donau-offline",
                                "SECM_TOFU_FILE");
     return GNUNET_SYSERR;
   }
@@ -247,26 +247,26 @@ TALER_TESTING_cleanup_files_cfg (
   GNUNET_free (dir);
   if (GNUNET_OK !=
       remove_dir (cfg,
-                  "taler-exchange-secmod-eddsa",
+                  "taler-donau-secmod-eddsa",
                   "KEY_DIR"))
     return GNUNET_SYSERR;
   if (GNUNET_OK !=
       remove_dir (cfg,
-                  "taler-exchange-secmod-rsa",
+                  "taler-donau-secmod-rsa",
                   "KEY_DIR"))
     return GNUNET_SYSERR;
   return GNUNET_OK;
 }
 
 
-const struct TALER_EXCHANGE_DenomPublicKey *
+const struct TALER_DONAU_DenomPublicKey *
 TALER_TESTING_find_pk (
-  const struct TALER_EXCHANGE_Keys *keys,
+  const struct TALER_DONAU_Keys *keys,
   const struct TALER_Amount *amount,
   bool age_restricted)
 {
   struct GNUNET_TIME_Timestamp now;
-  struct TALER_EXCHANGE_DenomPublicKey *pk;
+  struct TALER_DONAU_DenomPublicKey *pk;
   char *str;
 
   now = GNUNET_TIME_timestamp_get ();
diff --git a/src/util/.gitignore b/src/util/.gitignore
index d79786e..a955976 100644
--- a/src/util/.gitignore
+++ b/src/util/.gitignore
@@ -1,8 +1,8 @@
 taler-config
 test_payto
-taler-exchange-secmod-rsa
-taler-exchange-secmod-cs
-taler-exchange-secmod-eddsa
+taler-donau-secmod-rsa
+taler-donau-secmod-cs
+taler-donau-secmod-eddsa
 test_helper_rsa
 test_helper_rsa_home/
 test_helper_cs
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 9d1ec9d..c7b8779 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -11,9 +11,9 @@ pkgcfgdir = $(prefix)/share/taler/config.d/
 
 pkgcfg_DATA = \
   paths.conf \
-  taler-exchange-secmod-eddsa.conf \
-  taler-exchange-secmod-rsa.conf \
-  taler-exchange-secmod-cs.conf
+  taler-donau-secmod-eddsa.conf \
+  taler-donau-secmod-rsa.conf \
+  taler-donau-secmod-cs.conf
 
 EXTRA_DIST = \
   $(pkgcfg_DATA) \
@@ -24,9 +24,9 @@ EXTRA_DIST = \
   test_conversion.sh
 
 bin_PROGRAMS = \
-  taler-exchange-secmod-eddsa \
-  taler-exchange-secmod-rsa \
-  taler-exchange-secmod-cs
+  taler-donau-secmod-eddsa \
+  taler-donau-secmod-rsa \
+  taler-donau-secmod-cs
 
 bin_SCRIPTS = \
   taler-config
@@ -42,30 +42,30 @@ taler-config: taler-config.in
 CLEANFILES = \
   taler-config
 
-taler_exchange_secmod_rsa_SOURCES = \
-  taler-exchange-secmod-rsa.c taler-exchange-secmod-rsa.h \
+taler_donau_secmod_rsa_SOURCES = \
+  taler-donau-secmod-rsa.c taler-donau-secmod-rsa.h \
   secmod_common.c secmod_common.h
-taler_exchange_secmod_rsa_LDADD = \
+taler_donau_secmod_rsa_LDADD = \
   libtalerutil.la \
   -lgnunetutil \
   -lpthread \
   $(LIBGCRYPT_LIBS) \
   $(XLIB)
 
-taler_exchange_secmod_cs_SOURCES = \
-  taler-exchange-secmod-cs.c taler-exchange-secmod-cs.h \
+taler_donau_secmod_cs_SOURCES = \
+  taler-donau-secmod-cs.c taler-donau-secmod-cs.h \
   secmod_common.c secmod_common.h
-taler_exchange_secmod_cs_LDADD = \
+taler_donau_secmod_cs_LDADD = \
   libtalerutil.la \
   -lgnunetutil \
   -lpthread \
   $(LIBGCRYPT_LIBS) \
   $(XLIB)
 
-taler_exchange_secmod_eddsa_SOURCES = \
-  taler-exchange-secmod-eddsa.c taler-exchange-secmod-eddsa.h \
+taler_donau_secmod_eddsa_SOURCES = \
+  taler-donau-secmod-eddsa.c taler-donau-secmod-eddsa.h \
   secmod_common.c secmod_common.h
-taler_exchange_secmod_eddsa_LDADD = \
+taler_donau_secmod_eddsa_LDADD = \
   libtalerutil.la \
   -lgnunetutil \
   -lpthread \
@@ -91,11 +91,11 @@ libtalerutil_la_SOURCES = \
   crypto_helper_esign.c \
   crypto_wire.c \
   denom.c \
-  exchange_signatures.c \
+  donau_signatures.c \
   getopt.c \
   lang.c \
   iban.c \
-  merchant_signatures.c \
+  charity_signatures.c \
   mhd.c \
   offline_signatures.c \
   payto.c \
diff --git a/src/util/merchant_signatures.c b/src/util/charity_signatures.c
similarity index 59%
rename from src/util/merchant_signatures.c
rename to src/util/charity_signatures.c
index 36f9649..4f9caee 100644
--- a/src/util/merchant_signatures.c
+++ b/src/util/charity_signatures.c
@@ -7,15 +7,15 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file merchant_signatures.c
- * @brief Utility functions for Taler merchant signatures
+ * @file charity_signatures.c
+ * @brief Utility functions for Taler charity signatures
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -32,7 +32,7 @@ GNUNET_NETWORK_STRUCT_BEGIN
 struct TALER_DepositTrackPS
 {
   /**
-   * Purpose must be #TALER_SIGNATURE_MERCHANT_TRACK_TRANSACTION.
+   * Purpose must be #TALER_SIGNATURE_CHARITY_TRACK_TRANSACTION.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -42,13 +42,13 @@ struct TALER_DepositTrackPS
   struct TALER_PrivateContractHashP h_contract_terms GNUNET_PACKED;
 
   /**
-   * Hash over the wiring information of the merchant.
+   * Hash over the wiring information of the charity.
    */
-  struct TALER_MerchantWireHashP h_wire GNUNET_PACKED;
+  struct TALER_CharityWireHashP h_wire GNUNET_PACKED;
 
   /**
    * The coin's public key.  This is the value that must have been
-   * signed (blindly) by the Exchange.
+   * signed (blindly) by the Donau.
    */
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
@@ -58,59 +58,59 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_merchant_deposit_sign (
+TALER_charity_deposit_sign (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPrivateKeyP *merchant_priv,
-  struct TALER_MerchantSignatureP *merchant_sig)
+  const struct TALER_CharityPrivateKeyP *charity_priv,
+  struct TALER_CharitySignatureP *charity_sig)
 {
   struct TALER_DepositTrackPS dtp = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_TRACK_TRANSACTION),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_TRACK_TRANSACTION),
     .purpose.size = htonl (sizeof (dtp)),
     .h_contract_terms = *h_contract_terms,
     .h_wire = *h_wire,
     .coin_pub = *coin_pub
   };
 
-  GNUNET_CRYPTO_eddsa_sign (&merchant_priv->eddsa_priv,
+  GNUNET_CRYPTO_eddsa_sign (&charity_priv->eddsa_priv,
                             &dtp,
-                            &merchant_sig->eddsa_sig);
+                            &charity_sig->eddsa_sig);
 }
 
 
 enum GNUNET_GenericReturnValue
-TALER_merchant_deposit_verify (
-  const struct TALER_MerchantPublicKeyP *merchant,
+TALER_charity_deposit_verify (
+  const struct TALER_CharityPublicKeyP *charity,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
-  const struct TALER_MerchantSignatureP *merchant_sig)
+  const struct TALER_CharityWireHashP *h_wire,
+  const struct TALER_CharitySignatureP *charity_sig)
 {
   struct TALER_DepositTrackPS tps = {
     .purpose.size = htonl (sizeof (tps)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_TRACK_TRANSACTION),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_TRACK_TRANSACTION),
     .coin_pub = *coin_pub,
     .h_contract_terms = *h_contract_terms,
     .h_wire = *h_wire
   };
 
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_TRACK_TRANSACTION,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_CHARITY_TRACK_TRANSACTION,
                                 &tps,
-                                &merchant_sig->eddsa_sig,
-                                &merchant->eddsa_pub);
+                                &charity_sig->eddsa_sig,
+                                &charity->eddsa_pub);
 }
 
 
 /**
  * @brief Format used to generate the signature on a request to refund
- * a coin into the account of the customer.
+ * a coin into the account of the donor.
  */
 struct TALER_RefundRequestPS
 {
   /**
-   * Purpose must be #TALER_SIGNATURE_MERCHANT_REFUND.
+   * Purpose must be #TALER_SIGNATURE_CHARITY_REFUND.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -122,34 +122,34 @@ struct TALER_RefundRequestPS
 
   /**
    * The coin's public key.  This is the value that must have been
-   * signed (blindly) by the Exchange.
+   * signed (blindly) by the Donau.
    */
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
   /**
-   * Merchant-generated transaction ID for the refund.
+   * Charity-generated transaction ID for the refund.
    */
   uint64_t rtransaction_id GNUNET_PACKED;
 
   /**
    * Amount to be refunded, including refund fee charged by the
-   * exchange to the customer.
+   * donau to the donor.
    */
   struct TALER_AmountNBO refund_amount;
 };
 
 
 void
-TALER_merchant_refund_sign (
+TALER_charity_refund_sign (
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   uint64_t rtransaction_id,
   const struct TALER_Amount *amount,
-  const struct TALER_MerchantPrivateKeyP *merchant_priv,
-  struct TALER_MerchantSignatureP *merchant_sig)
+  const struct TALER_CharityPrivateKeyP *charity_priv,
+  struct TALER_CharitySignatureP *charity_sig)
 {
   struct TALER_RefundRequestPS rr = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_REFUND),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_REFUND),
     .purpose.size = htonl (sizeof (rr)),
     .h_contract_terms = *h_contract_terms,
     .coin_pub = *coin_pub,
@@ -158,23 +158,23 @@ TALER_merchant_refund_sign (
 
   TALER_amount_hton (&rr.refund_amount,
                      amount);
-  GNUNET_CRYPTO_eddsa_sign (&merchant_priv->eddsa_priv,
+  GNUNET_CRYPTO_eddsa_sign (&charity_priv->eddsa_priv,
                             &rr,
-                            &merchant_sig->eddsa_sig);
+                            &charity_sig->eddsa_sig);
 }
 
 
 enum GNUNET_GenericReturnValue
-TALER_merchant_refund_verify (
+TALER_charity_refund_verify (
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   uint64_t rtransaction_id,
   const struct TALER_Amount *amount,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_MerchantSignatureP *merchant_sig)
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_CharitySignatureP *charity_sig)
 {
   struct TALER_RefundRequestPS rr = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_REFUND),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_REFUND),
     .purpose.size = htonl (sizeof (rr)),
     .h_contract_terms = *h_contract_terms,
     .coin_pub = *coin_pub,
@@ -184,50 +184,50 @@ TALER_merchant_refund_verify (
   TALER_amount_hton (&rr.refund_amount,
                      amount);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_REFUND,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_CHARITY_REFUND,
                                 &rr,
-                                &merchant_sig->eddsa_sig,
-                                &merchant_pub->eddsa_pub);
+                                &charity_sig->eddsa_sig,
+                                &charity_pub->eddsa_pub);
 }
 
 
 /**
- * @brief Information signed by the exchange's master
- * key affirming the IBAN details for the exchange.
+ * @brief Information signed by the donau's master
+ * key affirming the IBAN details for the donau.
  */
-struct TALER_MerchantWireDetailsPS
+struct TALER_CharityWireDetailsPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_MERCHANT_WIRE_DETAILS.
+   * Purpose is #TALER_SIGNATURE_CHARITY_WIRE_DETAILS.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
    * Salted hash over the account holder's payto:// URL and
-   * the salt, as done by #TALER_merchant_wire_signature_hash().
+   * the salt, as done by #TALER_charity_wire_signature_hash().
    */
-  struct TALER_MerchantWireHashP h_wire_details GNUNET_PACKED;
+  struct TALER_CharityWireHashP h_wire_details GNUNET_PACKED;
 
 };
 
 
 enum GNUNET_GenericReturnValue
-TALER_merchant_wire_signature_check (
+TALER_charity_wire_signature_check (
   const char *payto_uri,
   const struct TALER_WireSaltP *salt,
-  const struct TALER_MerchantPublicKeyP *merch_pub,
-  const struct TALER_MerchantSignatureP *merch_sig)
+  const struct TALER_CharityPublicKeyP *merch_pub,
+  const struct TALER_CharitySignatureP *merch_sig)
 {
-  struct TALER_MerchantWireDetailsPS wd = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_WIRE_DETAILS),
+  struct TALER_CharityWireDetailsPS wd = {
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_WIRE_DETAILS),
     .purpose.size = htonl (sizeof (wd))
   };
 
-  TALER_merchant_wire_signature_hash (payto_uri,
+  TALER_charity_wire_signature_hash (payto_uri,
                                       salt,
                                       &wd.h_wire_details);
-  return GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_WIRE_DETAILS,
+  return GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_CHARITY_WIRE_DETAILS,
                                      &wd,
                                      &merch_sig->eddsa_sig,
                                      &merch_pub->eddsa_pub);
@@ -235,18 +235,18 @@ TALER_merchant_wire_signature_check (
 
 
 void
-TALER_merchant_wire_signature_make (
+TALER_charity_wire_signature_make (
   const char *payto_uri,
   const struct TALER_WireSaltP *salt,
-  const struct TALER_MerchantPrivateKeyP *merch_priv,
-  struct TALER_MerchantSignatureP *merch_sig)
+  const struct TALER_CharityPrivateKeyP *merch_priv,
+  struct TALER_CharitySignatureP *merch_sig)
 {
-  struct TALER_MerchantWireDetailsPS wd = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_WIRE_DETAILS),
+  struct TALER_CharityWireDetailsPS wd = {
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_WIRE_DETAILS),
     .purpose.size = htonl (sizeof (wd))
   };
 
-  TALER_merchant_wire_signature_hash (payto_uri,
+  TALER_charity_wire_signature_hash (payto_uri,
                                       salt,
                                       &wd.h_wire_details);
   GNUNET_CRYPTO_eddsa_sign (&merch_priv->eddsa_priv,
@@ -256,14 +256,14 @@ TALER_merchant_wire_signature_make (
 
 
 /**
- * Used by merchants to return signed responses to /pay requests.
+ * Used by charities to return signed responses to /pay requests.
  * Currently only used to return 200 OK signed responses.
  */
 struct TALER_PaymentResponsePS
 {
   /**
-   * Set to #TALER_SIGNATURE_MERCHANT_PAYMENT_OK. Note that
-   * unsuccessful payments are usually proven by some exchange's signature.
+   * Set to #TALER_SIGNATURE_CHARITY_PAYMENT_OK. Note that
+   * unsuccessful payments are usually proven by some donau's signature.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -274,13 +274,13 @@ struct TALER_PaymentResponsePS
 };
 
 void
-TALER_merchant_pay_sign (
+TALER_charity_pay_sign (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantPrivateKeyP *merch_priv,
+  const struct TALER_CharityPrivateKeyP *merch_priv,
   struct GNUNET_CRYPTO_EddsaSignature *merch_sig)
 {
   struct TALER_PaymentResponsePS mr = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_PAYMENT_OK),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_PAYMENT_OK),
     .purpose.size = htonl (sizeof (mr)),
     .h_contract_terms = *h_contract_terms
   };
@@ -292,33 +292,33 @@ TALER_merchant_pay_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_merchant_pay_verify (
+TALER_charity_pay_verify (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_MerchantSignatureP *merchant_sig)
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_CharitySignatureP *charity_sig)
 {
   struct TALER_PaymentResponsePS pr = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_PAYMENT_OK),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_PAYMENT_OK),
     .purpose.size = htonl (sizeof (pr)),
     .h_contract_terms = *h_contract_terms
   };
 
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_PAYMENT_OK,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_CHARITY_PAYMENT_OK,
                                 &pr,
-                                &merchant_sig->eddsa_sig,
-                                &merchant_pub->eddsa_pub);
+                                &charity_sig->eddsa_sig,
+                                &charity_pub->eddsa_pub);
 }
 
 
 /**
- * The contract sent by the merchant to the wallet.
+ * The contract sent by the charity to the wallet.
  */
 struct TALER_ProposalDataPS
 {
   /**
    * Purpose header for the signature over the proposal data
-   * with purpose #TALER_SIGNATURE_MERCHANT_CONTRACT.
+   * with purpose #TALER_SIGNATURE_CHARITY_CONTRACT.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -330,13 +330,13 @@ struct TALER_ProposalDataPS
 };
 
 void
-TALER_merchant_contract_sign (
+TALER_charity_contract_sign (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantPrivateKeyP *merch_priv,
+  const struct TALER_CharityPrivateKeyP *merch_priv,
   struct GNUNET_CRYPTO_EddsaSignature *merch_sig)
 {
   struct TALER_ProposalDataPS pdps = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_CONTRACT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_CHARITY_CONTRACT),
     .purpose.size = htonl (sizeof (pdps)),
     .hash = *h_contract_terms
   };
@@ -347,6 +347,6 @@ TALER_merchant_contract_sign (
 }
 
 
-// NB: "TALER_merchant_contract_verify" not (yet?) needed / not defined.
+// NB: "TALER_charity_contract_verify" not (yet?) needed / not defined.
 
-/* end of merchant_signatures.c */
+/* end of charity_signatures.c */
diff --git a/src/util/conversion.c b/src/util/conversion.c
index fdeffba..40817e9 100644
--- a/src/util/conversion.c
+++ b/src/util/conversion.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
diff --git a/src/util/crypto_confirmation.c b/src/util/crypto_confirmation.c
index a238d53..abd0e61 100644
--- a/src/util/crypto_confirmation.c
+++ b/src/util/crypto_confirmation.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -211,7 +211,7 @@ executive_totp (void *h_key,
 
 char *
 TALER_build_pos_confirmation (const char *pos_key,
-                              enum TALER_MerchantConfirmationAlgorithm pos_alg,
+                              enum TALER_CharityConfirmationAlgorithm pos_alg,
                               const struct TALER_Amount *total,
                               struct GNUNET_TIME_Timestamp ts)
 {
diff --git a/src/util/crypto_contract.c b/src/util/crypto_contract.c
index bec34c9..98edd59 100644
--- a/src/util/crypto_contract.c
+++ b/src/util/crypto_contract.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -21,7 +21,7 @@
 #include "platform.h"
 #include "taler_util.h"
 #include <zlib.h>
-#include "taler_exchange_service.h"
+#include "taler_donau_service.h"
 
 
 /**
@@ -34,12 +34,12 @@ enum ContractFormats
    * can merge it into a reserve/account to accept the contract and
    * obtain the payment.
    */
-  TALER_EXCHANGE_CONTRACT_PAYMENT_OFFER = 0,
+  TALER_DONAU_CONTRACT_PAYMENT_OFFER = 0,
 
   /**
    * The encrypted contract represents a payment request.
    */
-  TALER_EXCHANGE_CONTRACT_PAYMENT_REQUEST = 1
+  TALER_DONAU_CONTRACT_PAYMENT_REQUEST = 1
 };
 
 
@@ -271,7 +271,7 @@ TALER_CRYPTO_contract_encrypt_for_merge (
   GNUNET_assert (Z_OK == ret);
   free (cstr);
   hdr = GNUNET_malloc (sizeof (*hdr) + cbuf_size);
-  hdr->header.ctype = htonl (TALER_EXCHANGE_CONTRACT_PAYMENT_OFFER);
+  hdr->header.ctype = htonl (TALER_DONAU_CONTRACT_PAYMENT_OFFER);
   hdr->header.clen = htonl ((uint32_t) clen);
   hdr->merge_priv = *merge_priv;
   GNUNET_memcpy (&hdr[1],
@@ -337,7 +337,7 @@ TALER_CRYPTO_contract_decrypt_for_merge (
     return NULL;
   }
   hdr = xhdr;
-  if (TALER_EXCHANGE_CONTRACT_PAYMENT_OFFER != ntohl (hdr->header.ctype))
+  if (TALER_DONAU_CONTRACT_PAYMENT_OFFER != ntohl (hdr->header.ctype))
   {
     GNUNET_break_op (0);
     GNUNET_free (xhdr);
@@ -421,7 +421,7 @@ TALER_CRYPTO_contract_encrypt_for_deposit (
   GNUNET_assert (Z_OK == ret);
   free (cstr);
   hdr = GNUNET_malloc (sizeof (*hdr) + cbuf_size);
-  hdr->ctype = htonl (TALER_EXCHANGE_CONTRACT_PAYMENT_REQUEST);
+  hdr->ctype = htonl (TALER_DONAU_CONTRACT_PAYMENT_REQUEST);
   hdr->clen = htonl ((uint32_t) clen);
   GNUNET_memcpy (&hdr[1],
                  xbuf,
@@ -503,7 +503,7 @@ TALER_CRYPTO_contract_decrypt_for_deposit (
     return NULL;
   }
   hdr = xhdr;
-  if (TALER_EXCHANGE_CONTRACT_PAYMENT_REQUEST != ntohl (hdr->ctype))
+  if (TALER_DONAU_CONTRACT_PAYMENT_REQUEST != ntohl (hdr->ctype))
   {
     GNUNET_break_op (0);
     GNUNET_free (xhdr);
diff --git a/src/util/exchange_signatures.c b/src/util/donau_signatures.c
similarity index 68%
rename from src/util/exchange_signatures.c
rename to src/util/donau_signatures.c
index 3aa464a..70d8509 100644
--- a/src/util/exchange_signatures.c
+++ b/src/util/donau_signatures.c
@@ -7,14 +7,14 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file exchange_signatures.c
+ * @file donau_signatures.c
  * @brief Utility functions for Taler security module signatures
  * @author Christian Grothoff
  */
@@ -27,13 +27,13 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * @brief Format used to generate the signature on a confirmation
- * from the exchange that a deposit request succeeded.
+ * from the donau that a deposit request succeeded.
  */
 struct TALER_DepositConfirmationPS
 {
   /**
-   * Purpose must be #TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT.  Signed
-   * by a `struct TALER_ExchangePublicKeyP` using EdDSA.
+   * Purpose must be #TALER_SIGNATURE_DONAU_CONFIRM_DEPOSIT.  Signed
+   * by a `struct TALER_DonauPublicKeyP` using EdDSA.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -43,9 +43,9 @@ struct TALER_DepositConfirmationPS
   struct TALER_PrivateContractHashP h_contract_terms GNUNET_PACKED;
 
   /**
-   * Hash over the wiring information of the merchant.
+   * Hash over the wiring information of the charity.
    */
-  struct TALER_MerchantWireHashP h_wire GNUNET_PACKED;
+  struct TALER_CharityWireHashP h_wire GNUNET_PACKED;
 
   /**
    * Hash over the optional policy extension of the deposit, 0 if there
@@ -54,22 +54,22 @@ struct TALER_DepositConfirmationPS
   struct TALER_ExtensionPolicyHashP h_policy GNUNET_PACKED;
 
   /**
-   * Time when this confirmation was generated / when the exchange received
+   * Time when this confirmation was generated / when the donau received
    * the deposit request.
    */
-  struct GNUNET_TIME_TimestampNBO exchange_timestamp;
+  struct GNUNET_TIME_TimestampNBO donau_timestamp;
 
   /**
-   * By when does the exchange expect to pay the merchant
-   * (as per the merchant's request).
+   * By when does the donau expect to pay the charity
+   * (as per the charity's request).
    */
   struct GNUNET_TIME_TimestampNBO wire_deadline;
 
   /**
-   * How much time does the @e merchant have to issue a refund
+   * How much time does the @e charity have to issue a refund
    * request?  Zero if refunds are not allowed.  After this time, the
    * coin cannot be refunded.  Note that the wire transfer will not be
-   * performed by the exchange until the refund deadline.  This value
+   * performed by the donau until the refund deadline.  This value
    * is taken from the original deposit request.
    */
   struct GNUNET_TIME_TimestampNBO refund_deadline;
@@ -86,10 +86,10 @@ struct TALER_DepositConfirmationPS
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
   /**
-   * The Merchant's public key.  Allows the merchant to later refund
+   * The Charity's public key.  Allows the charity to later refund
    * the transaction or to inquire about the wire transfer identifier.
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
 };
 
@@ -97,30 +97,30 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_deposit_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_deposit_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_ExtensionPolicyHashP *h_policy,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   struct GNUNET_TIME_Timestamp wire_deadline,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_DepositConfirmationPS dcs = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_DEPOSIT),
     .purpose.size = htonl (sizeof (struct TALER_DepositConfirmationPS)),
     .h_contract_terms = *h_contract_terms,
     .h_wire = *h_wire,
-    .exchange_timestamp = GNUNET_TIME_timestamp_hton (exchange_timestamp),
+    .donau_timestamp = GNUNET_TIME_timestamp_hton (donau_timestamp),
     .wire_deadline = GNUNET_TIME_timestamp_hton (wire_deadline),
     .refund_deadline = GNUNET_TIME_timestamp_hton (refund_deadline),
     .coin_pub = *coin_pub,
-    .merchant_pub = *merchant_pub
+    .charity_pub = *charity_pub
   };
 
   if (NULL != h_policy)
@@ -134,29 +134,29 @@ TALER_exchange_online_deposit_confirmation_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_deposit_confirmation_verify (
+TALER_donau_online_deposit_confirmation_verify (
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_ExtensionPolicyHashP *h_policy,
-  struct GNUNET_TIME_Timestamp exchange_timestamp,
+  struct GNUNET_TIME_Timestamp donau_timestamp,
   struct GNUNET_TIME_Timestamp wire_deadline,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig)
+  const struct TALER_CharityPublicKeyP *charity_pub,
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig)
 {
   struct TALER_DepositConfirmationPS dcs = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_DEPOSIT),
     .purpose.size = htonl (sizeof (struct TALER_DepositConfirmationPS)),
     .h_contract_terms = *h_contract_terms,
     .h_wire = *h_wire,
-    .exchange_timestamp = GNUNET_TIME_timestamp_hton (exchange_timestamp),
+    .donau_timestamp = GNUNET_TIME_timestamp_hton (donau_timestamp),
     .wire_deadline = GNUNET_TIME_timestamp_hton (wire_deadline),
     .refund_deadline = GNUNET_TIME_timestamp_hton (refund_deadline),
     .coin_pub = *coin_pub,
-    .merchant_pub = *merchant_pub
+    .charity_pub = *charity_pub
   };
 
   if (NULL != h_policy)
@@ -164,10 +164,10 @@ TALER_exchange_online_deposit_confirmation_verify (
   TALER_amount_hton (&dcs.amount_without_fee,
                      amount_without_fee);
   if (GNUNET_OK !=
-      GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT,
+      GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_DEPOSIT,
                                   &dcs,
-                                  &exchange_sig->eddsa_signature,
-                                  &exchange_pub->eddsa_pub))
+                                  &donau_sig->eddsa_signature,
+                                  &donau_pub->eddsa_pub))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -180,12 +180,12 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * @brief Format used to generate the signature on a request to refund
- * a coin into the account of the customer.
+ * a coin into the account of the donor.
  */
 struct TALER_RefundConfirmationPS
 {
   /**
-   * Purpose must be #TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND.
+   * Purpose must be #TALER_SIGNATURE_DONAU_CONFIRM_REFUND.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -197,24 +197,24 @@ struct TALER_RefundConfirmationPS
 
   /**
    * The coin's public key.  This is the value that must have been
-   * signed (blindly) by the Exchange.
+   * signed (blindly) by the Donau.
    */
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
   /**
-   * The Merchant's public key.  Allows the merchant to later refund
+   * The Charity's public key.  Allows the charity to later refund
    * the transaction or to inquire about the wire transfer identifier.
    */
-  struct TALER_MerchantPublicKeyP merchant;
+  struct TALER_CharityPublicKeyP charity;
 
   /**
-   * Merchant-generated transaction ID for the refund.
+   * Charity-generated transaction ID for the refund.
    */
   uint64_t rtransaction_id GNUNET_PACKED;
 
   /**
    * Amount to be refunded, including refund fee charged by the
-   * exchange to the customer.
+   * donau to the donor.
    */
   struct TALER_AmountNBO refund_amount;
 };
@@ -223,22 +223,22 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_refund_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_refund_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant,
+  const struct TALER_CharityPublicKeyP *charity,
   uint64_t rtransaction_id,
   const struct TALER_Amount *refund_amount,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RefundConfirmationPS rc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_REFUND),
     .purpose.size = htonl (sizeof (rc)),
     .h_contract_terms = *h_contract_terms,
     .coin_pub = *coin_pub,
-    .merchant = *merchant,
+    .charity = *charity,
     .rtransaction_id = GNUNET_htonll (rtransaction_id)
   };
 
@@ -251,28 +251,28 @@ TALER_exchange_online_refund_confirmation_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_refund_confirmation_verify (
+TALER_donau_online_refund_confirmation_verify (
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_MerchantPublicKeyP *merchant,
+  const struct TALER_CharityPublicKeyP *charity,
   uint64_t rtransaction_id,
   const struct TALER_Amount *refund_amount,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RefundConfirmationPS rc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_REFUND),
     .purpose.size = htonl (sizeof (rc)),
     .h_contract_terms = *h_contract_terms,
     .coin_pub = *coin_pub,
-    .merchant = *merchant,
+    .charity = *charity,
     .rtransaction_id = GNUNET_htonll (rtransaction_id)
   };
 
   TALER_amount_hton (&rc.refund_amount,
                      refund_amount);
   if (GNUNET_OK !=
-      GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND,
+      GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_REFUND,
                                   &rc,
                                   &sig->eddsa_signature,
                                   &pub->eddsa_pub))
@@ -287,16 +287,16 @@ TALER_exchange_online_refund_confirmation_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Format of the block signed by the Exchange in response to a 
successful
- * "/refresh/melt" request.  Hereby the exchange affirms that all of the
- * coins were successfully melted.  This also commits the exchange to a
+ * @brief Format of the block signed by the Donau in response to a successful
+ * "/refresh/melt" request.  Hereby the donau affirms that all of the
+ * coins were successfully melted.  This also commits the donau to a
  * particular index to not be revealed during the refresh.
  */
 struct TALER_RefreshMeltConfirmationPS
 {
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_MELT.   Signed
-   * by a `struct TALER_ExchangePublicKeyP` using EdDSA.
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_MELT.   Signed
+   * by a `struct TALER_DonauPublicKeyP` using EdDSA.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -317,15 +317,15 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_melt_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_melt_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_RefreshCommitmentP *rc,
   uint32_t noreveal_index,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RefreshMeltConfirmationPS confirm = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_MELT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_MELT),
     .purpose.size = htonl (sizeof (confirm)),
     .rc = *rc,
     .noreveal_index = htonl (noreveal_index)
@@ -338,41 +338,41 @@ TALER_exchange_online_melt_confirmation_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_melt_confirmation_verify (
+TALER_donau_online_melt_confirmation_verify (
   const struct TALER_RefreshCommitmentP *rc,
   uint32_t noreveal_index,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig)
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig)
 {
   struct TALER_RefreshMeltConfirmationPS confirm = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_MELT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_MELT),
     .purpose.size = htonl (sizeof (confirm)),
     .rc = *rc,
     .noreveal_index = htonl (noreveal_index)
   };
 
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_MELT,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_MELT,
                                 &confirm,
-                                &exchange_sig->eddsa_signature,
-                                &exchange_pub->eddsa_pub);
+                                &donau_sig->eddsa_signature,
+                                &donau_pub->eddsa_pub);
 }
 
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Format of the block signed by the Exchange in response to a
+ * @brief Format of the block signed by the Donau in response to a
  * successful "/reserves/$RESERVE_PUB/age-withdraw" request.  Hereby the
- * exchange affirms that the commitment along with the maximum age group and
- * the amount were accepted.  This also commits the exchange to a particular
+ * donau affirms that the commitment along with the maximum age group and
+ * the amount were accepted.  This also commits the donau to a particular
  * index to not be revealed during the reveal.
  */
 struct TALER_AgeWithdrawConfirmationPS
 {
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_AGE_WITHDRAW.   Signed by a
-   * `struct TALER_ExchangePublicKeyP` using EdDSA.
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_AGE_WITHDRAW.   Signed by a
+   * `struct TALER_DonauPublicKeyP` using EdDSA.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -392,16 +392,16 @@ struct TALER_AgeWithdrawConfirmationPS
 GNUNET_NETWORK_STRUCT_END
 
 enum TALER_ErrorCode
-TALER_exchange_online_age_withdraw_confirmation_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_age_withdraw_confirmation_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_AgeWithdrawCommitmentHashP *h_commitment,
   uint32_t noreveal_index,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
 
   struct TALER_AgeWithdrawConfirmationPS confirm = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_AGE_WITHDRAW),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_AGE_WITHDRAW),
     .purpose.size = htonl (sizeof (confirm)),
     .h_commitment = *h_commitment,
     .noreveal_index = htonl (noreveal_index)
@@ -414,14 +414,14 @@ TALER_exchange_online_age_withdraw_confirmation_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_age_withdraw_confirmation_verify (
+TALER_donau_online_age_withdraw_confirmation_verify (
   const struct TALER_AgeWithdrawCommitmentHashP *h_commitment,
   uint32_t noreveal_index,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig)
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig)
 {
   struct TALER_AgeWithdrawConfirmationPS confirm = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_AGE_WITHDRAW),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_AGE_WITHDRAW),
     .purpose.size = htonl (sizeof (confirm)),
     .h_commitment = *h_commitment,
     .noreveal_index = htonl (noreveal_index)
@@ -429,10 +429,10 @@ TALER_exchange_online_age_withdraw_confirmation_verify (
 
   if (GNUNET_OK !=
       GNUNET_CRYPTO_eddsa_verify (
-        TALER_SIGNATURE_EXCHANGE_CONFIRM_AGE_WITHDRAW,
+        TALER_SIGNATURE_DONAU_CONFIRM_AGE_WITHDRAW,
         &confirm,
-        &exchange_sig->eddsa_signature,
-        &exchange_pub->eddsa_pub))
+        &donau_sig->eddsa_signature,
+        &donau_pub->eddsa_pub))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -447,16 +447,16 @@ TALER_exchange_online_age_withdraw_confirmation_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange over the full set of keys, used
- * to detect cheating exchanges that give out different sets to
+ * @brief Signature made by the donau over the full set of keys, used
+ * to detect cheating donaus that give out different sets to
  * different users.
  */
-struct TALER_ExchangeKeySetPS
+struct TALER_DonauKeySetPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_KEY_SET.   Signed
-   * by a `struct TALER_ExchangePublicKeyP` using EdDSA.
+   * Purpose is #TALER_SIGNATURE_DONAU_KEY_SET.   Signed
+   * by a `struct TALER_DonauPublicKeyP` using EdDSA.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -475,17 +475,17 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_key_set_sign (
-  TALER_ExchangeSignCallback2 scb,
+TALER_donau_online_key_set_sign (
+  TALER_DonauSignCallback2 scb,
   void *cls,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct GNUNET_HashCode *hc,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
-  struct TALER_ExchangeKeySetPS ks = {
+  struct TALER_DonauKeySetPS ks = {
     .purpose.size = htonl (sizeof (ks)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_KEY_SET),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_KEY_SET),
     .list_issue_date = GNUNET_TIME_timestamp_hton (timestamp),
     .hc = *hc
   };
@@ -498,21 +498,21 @@ TALER_exchange_online_key_set_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_key_set_verify (
+TALER_donau_online_key_set_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct GNUNET_HashCode *hc,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
-  struct TALER_ExchangeKeySetPS ks = {
+  struct TALER_DonauKeySetPS ks = {
     .purpose.size = htonl (sizeof (ks)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_KEY_SET),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_KEY_SET),
     .list_issue_date = GNUNET_TIME_timestamp_hton (timestamp),
     .hc = *hc
   };
 
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_KEY_SET,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_KEY_SET,
                                 &ks,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -522,14 +522,14 @@ TALER_exchange_online_key_set_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature by which an exchange affirms that an account
+ * @brief Signature by which an donau affirms that an account
  * successfully passed the KYC checks.
  */
-struct TALER_ExchangeAccountSetupSuccessPS
+struct TALER_DonauAccountSetupSuccessPS
 {
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_ACCOUNT_SETUP_SUCCESS.  Signed by a
-   * `struct TALER_ExchangePublicKeyP` using EdDSA.
+   * Purpose is #TALER_SIGNATURE_DONAU_ACCOUNT_SETUP_SUCCESS.  Signed by a
+   * `struct TALER_DonauPublicKeyP` using EdDSA.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -554,18 +554,18 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_account_setup_success_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_account_setup_success_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_PaytoHashP *h_payto,
   const json_t *kyc,
   struct GNUNET_TIME_Timestamp timestamp,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
-  struct TALER_ExchangeAccountSetupSuccessPS kyc_purpose = {
+  struct TALER_DonauAccountSetupSuccessPS kyc_purpose = {
     .purpose.size = htonl (sizeof (kyc_purpose)),
     .purpose.purpose = htonl (
-      TALER_SIGNATURE_EXCHANGE_ACCOUNT_SETUP_SUCCESS),
+      TALER_SIGNATURE_DONAU_ACCOUNT_SETUP_SUCCESS),
     .h_payto = *h_payto,
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp)
   };
@@ -579,17 +579,17 @@ TALER_exchange_online_account_setup_success_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_account_setup_success_verify (
+TALER_donau_online_account_setup_success_verify (
   const struct TALER_PaytoHashP *h_payto,
   const json_t *kyc,
   struct GNUNET_TIME_Timestamp timestamp,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
-  struct TALER_ExchangeAccountSetupSuccessPS kyc_purpose = {
+  struct TALER_DonauAccountSetupSuccessPS kyc_purpose = {
     .purpose.size = htonl (sizeof (kyc_purpose)),
     .purpose.purpose = htonl (
-      TALER_SIGNATURE_EXCHANGE_ACCOUNT_SETUP_SUCCESS),
+      TALER_SIGNATURE_DONAU_ACCOUNT_SETUP_SUCCESS),
     .h_payto = *h_payto,
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp)
   };
@@ -597,7 +597,7 @@ TALER_exchange_online_account_setup_success_verify (
   TALER_json_hash (kyc,
                    &kyc_purpose.h_kyc);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_ACCOUNT_SETUP_SUCCESS,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_ACCOUNT_SETUP_SUCCESS,
                                 &kyc_purpose,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -619,7 +619,7 @@ struct TALER_WireDepositDetailP
   struct TALER_PrivateContractHashP h_contract_terms;
 
   /**
-   * Time when the wire transfer was performed by the exchange.
+   * Time when the wire transfer was performed by the donau.
    */
   struct GNUNET_TIME_TimestampNBO execution_time;
 
@@ -634,7 +634,7 @@ struct TALER_WireDepositDetailP
   struct TALER_AmountNBO deposit_value;
 
   /**
-   * Fees charged by the exchange for the deposit.
+   * Fees charged by the donau for the deposit.
    */
   struct TALER_AmountNBO deposit_fee;
 
@@ -644,7 +644,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_online_wire_deposit_append (
+TALER_donau_online_wire_deposit_append (
   struct GNUNET_HashContext *hash_context,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   struct GNUNET_TIME_Timestamp execution_time,
@@ -677,7 +677,7 @@ struct TALER_WireDepositDataPS
 {
   /**
    * Purpose header for the signature over the contract with
-   * purpose #TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT.
+   * purpose #TALER_SIGNATURE_DONAU_CONFIRM_WIRE_DEPOSIT.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -692,12 +692,12 @@ struct TALER_WireDepositDataPS
   struct TALER_AmountNBO wire_fee;
 
   /**
-   * Public key of the merchant (for all aggregated transactions).
+   * Public key of the charity (for all aggregated transactions).
    */
-  struct TALER_MerchantPublicKeyP merchant_pub;
+  struct TALER_CharityPublicKeyP charity_pub;
 
   /**
-   * Hash of bank account of the merchant.
+   * Hash of bank account of the charity.
    */
   struct TALER_PaytoHashP h_payto;
 
@@ -713,20 +713,20 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_wire_deposit_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_wire_deposit_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_Amount *total,
   const struct TALER_Amount *wire_fee,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const char *payto,
   const struct GNUNET_HashCode *h_details,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_WireDepositDataPS wdp = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_WIRE_DEPOSIT),
     .purpose.size = htonl (sizeof (wdp)),
-    .merchant_pub = *merchant_pub,
+    .charity_pub = *charity_pub,
     .h_details = *h_details
   };
 
@@ -743,19 +743,19 @@ TALER_exchange_online_wire_deposit_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_wire_deposit_verify (
+TALER_donau_online_wire_deposit_verify (
   const struct TALER_Amount *total,
   const struct TALER_Amount *wire_fee,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const struct TALER_PaytoHashP *h_payto,
   const struct GNUNET_HashCode *h_details,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_WireDepositDataPS wdp = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_WIRE_DEPOSIT),
     .purpose.size = htonl (sizeof (wdp)),
-    .merchant_pub = *merchant_pub,
+    .charity_pub = *charity_pub,
     .h_details = *h_details,
     .h_payto = *h_payto
   };
@@ -765,7 +765,7 @@ TALER_exchange_online_wire_deposit_verify (
   TALER_amount_hton (&wdp.wire_fee,
                      wire_fee);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_WIRE_DEPOSIT,
                                 &wdp,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -775,21 +775,21 @@ TALER_exchange_online_wire_deposit_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Details affirmed by the exchange about a wire transfer the exchange
+ * Details affirmed by the donau about a wire transfer the donau
  * claims to have done with respect to a deposit operation.
  */
 struct TALER_ConfirmWirePS
 {
   /**
    * Purpose header for the signature over the contract with
-   * purpose #TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE.
+   * purpose #TALER_SIGNATURE_DONAU_CONFIRM_WIRE.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * Hash over the wiring information of the merchant.
+   * Hash over the wiring information of the charity.
    */
-  struct TALER_MerchantWireHashP h_wire GNUNET_PACKED;
+  struct TALER_CharityWireHashP h_wire GNUNET_PACKED;
 
   /**
    * Hash over the contract for which this deposit is made.
@@ -803,12 +803,12 @@ struct TALER_ConfirmWirePS
 
   /**
    * The coin's public key.  This is the value that must have been
-   * signed (blindly) by the Exchange.
+   * signed (blindly) by the Donau.
    */
   struct TALER_CoinSpendPublicKeyP coin_pub;
 
   /**
-   * When did the exchange execute this transfer? Note that the
+   * When did the donau execute this transfer? Note that the
    * timestamp may not be exactly the same on the wire, i.e.
    * because the wire has a different timezone or resolution.
    */
@@ -826,20 +826,20 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_confirm_wire_sign (
-  TALER_ExchangeSignCallback scb,
-  const struct TALER_MerchantWireHashP *h_wire,
+TALER_donau_online_confirm_wire_sign (
+  TALER_DonauSignCallback scb,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct GNUNET_TIME_Timestamp execution_time,
   const struct TALER_Amount *coin_contribution,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 
 {
   struct TALER_ConfirmWirePS cw = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_WIRE),
     .purpose.size = htonl (sizeof (cw)),
     .h_wire = *h_wire,
     .h_contract_terms = *h_contract_terms,
@@ -857,18 +857,18 @@ TALER_exchange_online_confirm_wire_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_confirm_wire_verify (
-  const struct TALER_MerchantWireHashP *h_wire,
+TALER_donau_online_confirm_wire_verify (
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   struct GNUNET_TIME_Timestamp execution_time,
   const struct TALER_Amount *coin_contribution,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_ConfirmWirePS cw = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_WIRE),
     .purpose.size = htonl (sizeof (cw)),
     .h_wire = *h_wire,
     .h_contract_terms = *h_contract_terms,
@@ -880,7 +880,7 @@ TALER_exchange_online_confirm_wire_verify (
   TALER_amount_hton (&cw.coin_contribution,
                      coin_contribution);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_WIRE,
                                 &cw,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -890,7 +890,7 @@ TALER_exchange_online_confirm_wire_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it will
+ * Response by which the donau affirms that it will
  * refund a coin as part of the emergency /recoup
  * protocol.  The recoup will go back to the bank
  * account that created the reserve.
@@ -899,19 +899,19 @@ struct TALER_RecoupConfirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_RECOUP
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange receive the recoup request?
+   * When did the donau receive the recoup request?
    * Indirectly determines when the wire transfer is (likely)
    * to happen.
    */
   struct GNUNET_TIME_TimestampNBO timestamp;
 
   /**
-   * How much of the coin's value will the exchange transfer?
+   * How much of the coin's value will the donau transfer?
    * (Needed in case the coin was partially spent.)
    */
   struct TALER_AmountNBO recoup_amount;
@@ -931,18 +931,18 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_confirm_recoup_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_confirm_recoup_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RecoupConfirmationPS pc = {
     .purpose.size = htonl (sizeof (pc)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_RECOUP),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .coin_pub = *coin_pub,
     .reserve_pub = *reserve_pub
@@ -957,17 +957,17 @@ TALER_exchange_online_confirm_recoup_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_confirm_recoup_verify (
+TALER_donau_online_confirm_recoup_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RecoupConfirmationPS pc = {
     .purpose.size = htonl (sizeof (pc)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_RECOUP),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .coin_pub = *coin_pub,
     .reserve_pub = *reserve_pub
@@ -976,7 +976,7 @@ TALER_exchange_online_confirm_recoup_verify (
   TALER_amount_hton (&pc.recoup_amount,
                      recoup_amount);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_RECOUP,
                                 &pc,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -986,7 +986,7 @@ TALER_exchange_online_confirm_recoup_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it will refund a refreshed coin
+ * Response by which the donau affirms that it will refund a refreshed coin
  * as part of the emergency /recoup protocol.  The recoup will go back to the
  * old coin's balance.
  */
@@ -994,19 +994,19 @@ struct TALER_RecoupRefreshConfirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_RECOUP_REFRESH
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange receive the recoup request?
+   * When did the donau receive the recoup request?
    * Indirectly determines when the wire transfer is (likely)
    * to happen.
    */
   struct GNUNET_TIME_TimestampNBO timestamp;
 
   /**
-   * How much of the coin's value will the exchange transfer?
+   * How much of the coin's value will the donau transfer?
    * (Needed in case the coin was partially spent.)
    */
   struct TALER_AmountNBO recoup_amount;
@@ -1026,18 +1026,18 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_confirm_recoup_refresh_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_confirm_recoup_refresh_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RecoupRefreshConfirmationPS pc = {
     .purpose.purpose = htonl (
-      TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH),
+      TALER_SIGNATURE_DONAU_CONFIRM_RECOUP_REFRESH),
     .purpose.size = htonl (sizeof (pc)),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .coin_pub = *coin_pub,
@@ -1053,17 +1053,17 @@ TALER_exchange_online_confirm_recoup_refresh_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_confirm_recoup_refresh_verify (
+TALER_donau_online_confirm_recoup_refresh_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *recoup_amount,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_RecoupRefreshConfirmationPS pc = {
     .purpose.purpose = htonl (
-      TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH),
+      TALER_SIGNATURE_DONAU_CONFIRM_RECOUP_REFRESH),
     .purpose.size = htonl (sizeof (pc)),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .coin_pub = *coin_pub,
@@ -1074,7 +1074,7 @@ TALER_exchange_online_confirm_recoup_refresh_verify (
                      recoup_amount);
 
   return
-    GNUNET_CRYPTO_eddsa_verify 
(TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_RECOUP_REFRESH,
                                 &pc,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1084,19 +1084,19 @@ TALER_exchange_online_confirm_recoup_refresh_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it does not
+ * Response by which the donau affirms that it does not
  * currently know a denomination by the given hash.
  */
 struct TALER_DenominationUnknownAffirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_UNKNOWN
+   * Purpose is #TALER_SIGNATURE_DONAU_AFFIRM_DENOM_UNKNOWN
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange sign this message.
+   * When did the donau sign this message.
    */
   struct GNUNET_TIME_TimestampNBO timestamp;
 
@@ -1110,16 +1110,16 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_denomination_unknown_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_denomination_unknown_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_DenominationUnknownAffirmationPS dua = {
     .purpose.size = htonl (sizeof (dua)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_UNKNOWN),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_AFFIRM_DENOM_UNKNOWN),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .h_denom_pub = *h_denom_pub,
   };
@@ -1131,21 +1131,21 @@ TALER_exchange_online_denomination_unknown_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_denomination_unknown_verify (
+TALER_donau_online_denomination_unknown_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_DenominationUnknownAffirmationPS dua = {
     .purpose.size = htonl (sizeof (dua)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_UNKNOWN),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_AFFIRM_DENOM_UNKNOWN),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .h_denom_pub = *h_denom_pub,
   };
 
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_UNKNOWN,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_AFFIRM_DENOM_UNKNOWN,
                                 &dua,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1155,7 +1155,7 @@ TALER_exchange_online_denomination_unknown_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it does not
+ * Response by which the donau affirms that it does not
  * currently consider the given denomination to be valid
  * for the requested operation.
  */
@@ -1163,12 +1163,12 @@ struct TALER_DenominationExpiredAffirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_EXPIRED
+   * Purpose is #TALER_SIGNATURE_DONAU_AFFIRM_DENOM_EXPIRED
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange sign this message.
+   * When did the donau sign this message.
    */
   struct GNUNET_TIME_TimestampNBO timestamp;
 
@@ -1188,18 +1188,18 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_denomination_expired_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_denomination_expired_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
   const char *op,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_DenominationExpiredAffirmationPS dua = {
     .purpose.size = htonl (sizeof (dua)),
     .purpose.purpose = htonl (
-      TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_EXPIRED),
+      TALER_SIGNATURE_DONAU_AFFIRM_DENOM_EXPIRED),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .h_denom_pub = *h_denom_pub,
   };
@@ -1216,17 +1216,17 @@ TALER_exchange_online_denomination_expired_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_denomination_expired_verify (
+TALER_donau_online_denomination_expired_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_DenominationHashP *h_denom_pub,
   const char *op,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_DenominationExpiredAffirmationPS dua = {
     .purpose.size = htonl (sizeof (dua)),
     .purpose.purpose = htonl (
-      TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_EXPIRED),
+      TALER_SIGNATURE_DONAU_AFFIRM_DENOM_EXPIRED),
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp),
     .h_denom_pub = *h_denom_pub,
   };
@@ -1237,7 +1237,7 @@ TALER_exchange_online_denomination_expired_verify (
                  GNUNET_MIN (sizeof (dua.operation),
                              strlen (op)));
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_AFFIRM_DENOM_EXPIRED,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_AFFIRM_DENOM_EXPIRED,
                                 &dua,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1247,29 +1247,29 @@ TALER_exchange_online_denomination_expired_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it has
+ * Response by which the donau affirms that it has
  * closed a reserve and send back the funds.
  */
 struct TALER_ReserveCloseConfirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED
+   * Purpose is #TALER_SIGNATURE_DONAU_RESERVE_CLOSED
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange initiate the wire transfer.
+   * When did the donau initiate the wire transfer.
    */
   struct GNUNET_TIME_TimestampNBO timestamp;
 
   /**
-   * How much did the exchange send?
+   * How much did the donau send?
    */
   struct TALER_AmountNBO closing_amount;
 
   /**
-   * How much did the exchange charge for closing the reserve?
+   * How much did the donau charge for closing the reserve?
    */
   struct TALER_AmountNBO closing_fee;
 
@@ -1293,20 +1293,20 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_reserve_closed_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_reserve_closed_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *closing_amount,
   const struct TALER_Amount *closing_fee,
   const char *payto,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_ReserveCloseConfirmationPS rcc = {
     .purpose.size = htonl (sizeof (rcc)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_RESERVE_CLOSED),
     .wtid = *wtid,
     .reserve_pub = *reserve_pub,
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp)
@@ -1325,19 +1325,19 @@ TALER_exchange_online_reserve_closed_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_reserve_closed_verify (
+TALER_donau_online_reserve_closed_verify (
   struct GNUNET_TIME_Timestamp timestamp,
   const struct TALER_Amount *closing_amount,
   const struct TALER_Amount *closing_fee,
   const char *payto,
   const struct TALER_WireTransferIdentifierRawP *wtid,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_ReserveCloseConfirmationPS rcc = {
     .purpose.size = htonl (sizeof (rcc)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_RESERVE_CLOSED),
     .wtid = *wtid,
     .reserve_pub = *reserve_pub,
     .timestamp = GNUNET_TIME_timestamp_hton (timestamp)
@@ -1350,7 +1350,7 @@ TALER_exchange_online_reserve_closed_verify (
   TALER_payto_hash (payto,
                     &rcc.h_payto);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_RESERVE_CLOSED,
                                 &rcc,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1360,21 +1360,21 @@ TALER_exchange_online_reserve_closed_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it has
+ * Response by which the donau affirms that it has
  * received funds deposited into a purse.
  */
 struct TALER_PurseCreateDepositConfirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_CREATION
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_PURSE_CREATION
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange receive the deposits.
+   * When did the donau receive the deposits.
    */
-  struct GNUNET_TIME_TimestampNBO exchange_time;
+  struct GNUNET_TIME_TimestampNBO donau_time;
 
   /**
    * When will the purse expire?
@@ -1407,24 +1407,24 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_purse_created_sign (
-  TALER_ExchangeSignCallback scb,
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_created_sign (
+  TALER_DonauSignCallback scb,
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *total_deposited,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_PurseCreateDepositConfirmationPS dc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_CREATION),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_CREATION),
     .purpose.size = htonl (sizeof (dc)),
     .h_contract_terms = *h_contract_terms,
     .purse_pub = *purse_pub,
     .purse_expiration = GNUNET_TIME_timestamp_hton (purse_expiration),
-    .exchange_time = GNUNET_TIME_timestamp_hton (exchange_time)
+    .donau_time = GNUNET_TIME_timestamp_hton (donau_time)
   };
 
   TALER_amount_hton (&dc.amount_without_fee,
@@ -1438,23 +1438,23 @@ TALER_exchange_online_purse_created_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_created_verify (
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_created_verify (
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *total_deposited,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_PurseCreateDepositConfirmationPS dc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_CREATION),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_CREATION),
     .purpose.size = htonl (sizeof (dc)),
     .h_contract_terms = *h_contract_terms,
     .purse_pub = *purse_pub,
     .purse_expiration = GNUNET_TIME_timestamp_hton (purse_expiration),
-    .exchange_time = GNUNET_TIME_timestamp_hton (exchange_time)
+    .donau_time = GNUNET_TIME_timestamp_hton (donau_time)
   };
 
   TALER_amount_hton (&dc.amount_without_fee,
@@ -1462,7 +1462,7 @@ TALER_exchange_online_purse_created_verify (
   TALER_amount_hton (&dc.total_deposited,
                      total_deposited);
   return
-    GNUNET_CRYPTO_eddsa_verify 
(TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_CREATION,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_CREATION,
                                 &dc,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1472,14 +1472,14 @@ TALER_exchange_online_purse_created_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it has
+ * Response by which the donau affirms that it has
  * received funds deposited into a purse.
  */
 struct TALER_CoinPurseRefundConfirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_PURSE_REFUND
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -1509,17 +1509,17 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_purse_refund_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_purse_refund_sign (
+  TALER_DonauSignCallback scb,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *refund_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_CoinPurseRefundConfirmationPS dc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_REFUND),
     .purpose.size = htonl (sizeof (dc)),
     .coin_pub = *coin_pub,
     .purse_pub = *purse_pub,
@@ -1536,16 +1536,16 @@ TALER_exchange_online_purse_refund_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_refund_verify (
+TALER_donau_online_purse_refund_verify (
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_Amount *refund_fee,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_CoinPurseRefundConfirmationPS dc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_REFUND),
     .purpose.size = htonl (sizeof (dc)),
     .coin_pub = *coin_pub,
     .purse_pub = *purse_pub,
@@ -1556,7 +1556,7 @@ TALER_exchange_online_purse_refund_verify (
   TALER_amount_hton (&dc.refund_fee,
                      refund_fee);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_REFUND,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_REFUND,
                                 &dc,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1566,21 +1566,21 @@ TALER_exchange_online_purse_refund_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Response by which the exchange affirms that it has
+ * Response by which the donau affirms that it has
  * merged a purse into a reserve.
  */
 struct TALER_PurseMergedConfirmationPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_MERGED
+   * Purpose is #TALER_SIGNATURE_DONAU_CONFIRM_PURSE_MERGED
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * When did the exchange receive the deposits.
+   * When did the donau receive the deposits.
    */
-  struct GNUNET_TIME_TimestampNBO exchange_time;
+  struct GNUNET_TIME_TimestampNBO donau_time;
 
   /**
    * When will the purse expire?
@@ -1618,32 +1618,32 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_purse_merged_sign (
-  TALER_ExchangeSignCallback scb,
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_merged_sign (
+  TALER_DonauSignCallback scb,
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const char *exchange_url,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  const char *donau_url,
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_PurseMergedConfirmationPS dc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_MERGED),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_MERGED),
     .purpose.size = htonl (sizeof (dc)),
     .h_contract_terms = *h_contract_terms,
     .purse_pub = *purse_pub,
     .reserve_pub = *reserve_pub,
     .purse_expiration = GNUNET_TIME_timestamp_hton (purse_expiration),
-    .exchange_time = GNUNET_TIME_timestamp_hton (exchange_time)
+    .donau_time = GNUNET_TIME_timestamp_hton (donau_time)
   };
 
   TALER_amount_hton (&dc.amount_without_fee,
                      amount_without_fee);
-  GNUNET_CRYPTO_hash (exchange_url,
-                      strlen (exchange_url) + 1,
+  GNUNET_CRYPTO_hash (donau_url,
+                      strlen (donau_url) + 1,
                       &dc.h_provider_url);
   return scb (&dc.purpose,
               pub,
@@ -1652,34 +1652,34 @@ TALER_exchange_online_purse_merged_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_merged_verify (
-  struct GNUNET_TIME_Timestamp exchange_time,
+TALER_donau_online_purse_merged_verify (
+  struct GNUNET_TIME_Timestamp donau_time,
   struct GNUNET_TIME_Timestamp purse_expiration,
   const struct TALER_Amount *amount_without_fee,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct TALER_ReservePublicKeyP *reserve_pub,
-  const char *exchange_url,
-  const struct TALER_ExchangePublicKeyP *pub,
-  const struct TALER_ExchangeSignatureP *sig)
+  const char *donau_url,
+  const struct TALER_DonauPublicKeyP *pub,
+  const struct TALER_DonauSignatureP *sig)
 {
   struct TALER_PurseMergedConfirmationPS dc = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_MERGED),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_MERGED),
     .purpose.size = htonl (sizeof (dc)),
     .h_contract_terms = *h_contract_terms,
     .purse_pub = *purse_pub,
     .reserve_pub = *reserve_pub,
     .purse_expiration = GNUNET_TIME_timestamp_hton (purse_expiration),
-    .exchange_time = GNUNET_TIME_timestamp_hton (exchange_time)
+    .donau_time = GNUNET_TIME_timestamp_hton (donau_time)
   };
 
   TALER_amount_hton (&dc.amount_without_fee,
                      amount_without_fee);
-  GNUNET_CRYPTO_hash (exchange_url,
-                      strlen (exchange_url) + 1,
+  GNUNET_CRYPTO_hash (donau_url,
+                      strlen (donau_url) + 1,
                       &dc.h_provider_url);
   return
-    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_PURSE_MERGED,
+    GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_CONFIRM_PURSE_MERGED,
                                 &dc,
                                 &sig->eddsa_signature,
                                 &pub->eddsa_pub);
@@ -1690,13 +1690,13 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * @brief Format used to generate the signature on a purse status
- * from the exchange.
+ * from the donau.
  */
 struct TALER_PurseStatusPS
 {
   /**
-   * Purpose must be #TALER_SIGNATURE_EXCHANGE_PURSE_STATUS.  Signed
-   * by a `struct TALER_ExchangePublicKeyP` using EdDSA.
+   * Purpose must be #TALER_SIGNATURE_DONAU_PURSE_STATUS.  Signed
+   * by a `struct TALER_DonauPublicKeyP` using EdDSA.
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -1722,16 +1722,16 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_purse_status_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_purse_status_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp merge_timestamp,
   struct GNUNET_TIME_Timestamp deposit_timestamp,
   const struct TALER_Amount *balance,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
   struct TALER_PurseStatusPS dcs = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_PURSE_STATUS),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_PURSE_STATUS),
     .purpose.size = htonl (sizeof (dcs)),
     .merge_timestamp = GNUNET_TIME_timestamp_hton (merge_timestamp),
     .deposit_timestamp = GNUNET_TIME_timestamp_hton (deposit_timestamp)
@@ -1746,15 +1746,15 @@ TALER_exchange_online_purse_status_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_purse_status_verify (
+TALER_donau_online_purse_status_verify (
   struct GNUNET_TIME_Timestamp merge_timestamp,
   struct GNUNET_TIME_Timestamp deposit_timestamp,
   const struct TALER_Amount *balance,
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
-  const struct TALER_ExchangeSignatureP *exchange_sig)
+  const struct TALER_DonauPublicKeyP *donau_pub,
+  const struct TALER_DonauSignatureP *donau_sig)
 {
   struct TALER_PurseStatusPS dcs = {
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_PURSE_STATUS),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_PURSE_STATUS),
     .purpose.size = htonl (sizeof (dcs)),
     .merge_timestamp = GNUNET_TIME_timestamp_hton (merge_timestamp),
     .deposit_timestamp = GNUNET_TIME_timestamp_hton (deposit_timestamp)
@@ -1763,10 +1763,10 @@ TALER_exchange_online_purse_status_verify (
   TALER_amount_hton (&dcs.balance,
                      balance);
   if (GNUNET_OK !=
-      GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_PURSE_STATUS,
+      GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_DONAU_PURSE_STATUS,
                                   &dcs,
-                                  &exchange_sig->eddsa_signature,
-                                  &exchange_pub->eddsa_pub))
+                                  &donau_sig->eddsa_signature,
+                                  &donau_pub->eddsa_pub))
   {
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
@@ -1778,14 +1778,14 @@ TALER_exchange_online_purse_status_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Message signed by the exchange to affirm that the
+ * Message signed by the donau to affirm that the
  * owner of a reserve has certain attributes.
  */
-struct TALER_ExchangeAttestPS
+struct TALER_DonauAttestPS
 {
 
   /**
-   * Purpose is #TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS
+   * Purpose is #TALER_SIGNATURE_DONAU_RESERVE_ATTEST_DETAILS
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
@@ -1816,18 +1816,18 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum TALER_ErrorCode
-TALER_exchange_online_reserve_attest_details_sign (
-  TALER_ExchangeSignCallback scb,
+TALER_donau_online_reserve_attest_details_sign (
+  TALER_DonauSignCallback scb,
   struct GNUNET_TIME_Timestamp attest_timestamp,
   struct GNUNET_TIME_Timestamp expiration_time,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   const json_t *attributes,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
-  struct TALER_ExchangeAttestPS rap = {
+  struct TALER_DonauAttestPS rap = {
     .purpose.size = htonl (sizeof (rap)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_RESERVE_ATTEST_DETAILS),
     .attest_timestamp = GNUNET_TIME_timestamp_hton (attest_timestamp),
     .expiration_time = GNUNET_TIME_timestamp_hton (expiration_time),
     .reserve_pub = *reserve_pub
@@ -1842,17 +1842,17 @@ TALER_exchange_online_reserve_attest_details_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_online_reserve_attest_details_verify (
+TALER_donau_online_reserve_attest_details_verify (
   struct GNUNET_TIME_Timestamp attest_timestamp,
   struct GNUNET_TIME_Timestamp expiration_time,
   const struct TALER_ReservePublicKeyP *reserve_pub,
   const json_t *attributes,
-  struct TALER_ExchangePublicKeyP *pub,
-  struct TALER_ExchangeSignatureP *sig)
+  struct TALER_DonauPublicKeyP *pub,
+  struct TALER_DonauSignatureP *sig)
 {
-  struct TALER_ExchangeAttestPS rap = {
+  struct TALER_DonauAttestPS rap = {
     .purpose.size = htonl (sizeof (rap)),
-    .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS),
+    .purpose.purpose = htonl (TALER_SIGNATURE_DONAU_RESERVE_ATTEST_DETAILS),
     .attest_timestamp = GNUNET_TIME_timestamp_hton (attest_timestamp),
     .expiration_time = GNUNET_TIME_timestamp_hton (expiration_time),
     .reserve_pub = *reserve_pub
@@ -1862,7 +1862,7 @@ TALER_exchange_online_reserve_attest_details_verify (
                    &rap.h_attributes);
   if (GNUNET_OK !=
       GNUNET_CRYPTO_eddsa_verify (
-        TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS,
+        TALER_SIGNATURE_DONAU_RESERVE_ATTEST_DETAILS,
         &rap,
         &sig->eddsa_signature,
         &pub->eddsa_pub))
@@ -1874,4 +1874,4 @@ TALER_exchange_online_reserve_attest_details_verify (
 }
 
 
-/* end of exchange_signatures.c */
+/* end of donau_signatures.c */
diff --git a/src/util/offline_signatures.c b/src/util/offline_signatures.c
index fbff850..cbe894f 100644
--- a/src/util/offline_signatures.c
+++ b/src/util/offline_signatures.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -15,7 +15,7 @@
 */
 /**
  * @file offline_signatures.c
- * @brief Utility functions for Taler exchange offline signatures
+ * @brief Utility functions for Taler donau offline signatures
  * @author Christian Grothoff
  */
 #include "platform.h"
@@ -26,7 +26,7 @@
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange offline key over the information of
+ * @brief Signature made by the donau offline key over the information of
  * an AML officer status change.
  */
 struct TALER_MasterAmlOfficerStatusPS
@@ -62,7 +62,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_aml_officer_status_sign (
+TALER_donau_offline_aml_officer_status_sign (
   const struct TALER_AmlOfficerPublicKeyP *officer_pub,
   const char *officer_name,
   struct GNUNET_TIME_Timestamp change_date,
@@ -89,7 +89,7 @@ TALER_exchange_offline_aml_officer_status_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_aml_officer_status_verify (
+TALER_donau_offline_aml_officer_status_verify (
   const struct TALER_AmlOfficerPublicKeyP *officer_pub,
   const char *officer_name,
   struct GNUNET_TIME_Timestamp change_date,
@@ -119,8 +119,8 @@ TALER_exchange_offline_aml_officer_status_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange offline key over the information of
- * an auditor to be added to the exchange's set of auditors.
+ * @brief Signature made by the donau offline key over the information of
+ * an auditor to be added to the donau's set of auditors.
  */
 struct TALER_MasterAddAuditorPS
 {
@@ -150,7 +150,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_auditor_add_sign (
+TALER_donau_offline_auditor_add_sign (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   const char *auditor_url,
   struct GNUNET_TIME_Timestamp start_date,
@@ -174,7 +174,7 @@ TALER_exchange_offline_auditor_add_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_auditor_add_verify (
+TALER_donau_offline_auditor_add_verify (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   const char *auditor_url,
   struct GNUNET_TIME_Timestamp start_date,
@@ -202,8 +202,8 @@ TALER_exchange_offline_auditor_add_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange offline key over the information of
- * an auditor to be removed from the exchange's set of auditors.
+ * @brief Signature made by the donau offline key over the information of
+ * an auditor to be removed from the donau's set of auditors.
  */
 struct TALER_MasterDelAuditorPS
 {
@@ -229,7 +229,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_auditor_del_sign (
+TALER_donau_offline_auditor_del_sign (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   struct GNUNET_TIME_Timestamp end_date,
   const struct TALER_MasterPrivateKeyP *master_priv,
@@ -249,7 +249,7 @@ TALER_exchange_offline_auditor_del_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_auditor_del_verify (
+TALER_donau_offline_auditor_del_verify (
   const struct TALER_AuditorPublicKeyP *auditor_pub,
   struct GNUNET_TIME_Timestamp end_date,
   const struct TALER_MasterPublicKeyP *master_pub,
@@ -293,7 +293,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_denomination_revoke_sign (
+TALER_donau_offline_denomination_revoke_sign (
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig)
@@ -311,7 +311,7 @@ TALER_exchange_offline_denomination_revoke_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_denomination_revoke_verify (
+TALER_donau_offline_denomination_revoke_verify (
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig)
@@ -334,7 +334,7 @@ TALER_exchange_offline_denomination_revoke_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Message confirming that an exchange online signing key was revoked.
+ * @brief Message confirming that an donau online signing key was revoked.
  */
 struct TALER_MasterSigningKeyRevocationPS
 {
@@ -344,9 +344,9 @@ struct TALER_MasterSigningKeyRevocationPS
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * The exchange's public key.
+   * The donau's public key.
    */
-  struct TALER_ExchangePublicKeyP exchange_pub;
+  struct TALER_DonauPublicKeyP donau_pub;
 
 };
 
@@ -354,8 +354,8 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_signkey_revoke_sign (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_revoke_sign (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig)
 {
@@ -363,7 +363,7 @@ TALER_exchange_offline_signkey_revoke_sign (
     .purpose.purpose = htonl (
       TALER_SIGNATURE_MASTER_SIGNING_KEY_REVOKED),
     .purpose.size = htonl (sizeof (kv)),
-    .exchange_pub = *exchange_pub
+    .donau_pub = *donau_pub
   };
 
   GNUNET_CRYPTO_eddsa_sign (&master_priv->eddsa_priv,
@@ -373,8 +373,8 @@ TALER_exchange_offline_signkey_revoke_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_signkey_revoke_verify (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_revoke_verify (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig)
 {
@@ -382,7 +382,7 @@ TALER_exchange_offline_signkey_revoke_verify (
     .purpose.purpose = htonl (
       TALER_SIGNATURE_MASTER_SIGNING_KEY_REVOKED),
     .purpose.size = htonl (sizeof (rm)),
-    .exchange_pub = *exchange_pub
+    .donau_pub = *donau_pub
   };
 
   return GNUNET_CRYPTO_eddsa_verify (
@@ -396,11 +396,11 @@ TALER_exchange_offline_signkey_revoke_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Information about a signing key of the exchange.  Signing keys are 
used
- * to sign exchange messages other than coins, i.e. to confirm that a
+ * @brief Information about a signing key of the donau.  Signing keys are used
+ * to sign donau messages other than coins, i.e. to confirm that a
  * deposit was successful or that a refresh was accepted.
  */
-struct TALER_ExchangeSigningKeyValidityPS
+struct TALER_DonauSigningKeyValidityPS
 {
 
   /**
@@ -415,7 +415,7 @@ struct TALER_ExchangeSigningKeyValidityPS
 
   /**
    * When does this signing key expire? Note: This is currently when
-   * the Exchange will definitively stop using it.  Signatures made with
+   * the Donau will definitively stop using it.  Signatures made with
    * the key remain valid until @e end.  When checking validity periods,
    * clients should allow for some overlap between keys and tolerate
    * the use of either key during the overlap time (due to the
@@ -426,39 +426,39 @@ struct TALER_ExchangeSigningKeyValidityPS
   /**
    * When do signatures with this signing key become invalid?  After
    * this point, these signatures cannot be used in (legal) disputes
-   * anymore, as the Exchange is then allowed to destroy its side of the
+   * anymore, as the Donau is then allowed to destroy its side of the
    * evidence.  @e end is expected to be significantly larger than @e
    * expire (by a year or more).
    */
   struct GNUNET_TIME_TimestampNBO end;
 
   /**
-   * The public online signing key that the exchange will use
+   * The public online signing key that the donau will use
    * between @e start and @e expire.
    */
-  struct TALER_ExchangePublicKeyP signkey_pub;
+  struct TALER_DonauPublicKeyP signkey_pub;
 };
 
 GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_signkey_validity_sign (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_validity_sign (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct GNUNET_TIME_Timestamp start_sign,
   struct GNUNET_TIME_Timestamp end_sign,
   struct GNUNET_TIME_Timestamp end_legal,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig)
 {
-  struct TALER_ExchangeSigningKeyValidityPS skv = {
+  struct TALER_DonauSigningKeyValidityPS skv = {
     .purpose.purpose = htonl (
       TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY),
     .purpose.size = htonl (sizeof (skv)),
     .start = GNUNET_TIME_timestamp_hton (start_sign),
     .expire = GNUNET_TIME_timestamp_hton (end_sign),
     .end = GNUNET_TIME_timestamp_hton (end_legal),
-    .signkey_pub = *exchange_pub
+    .signkey_pub = *donau_pub
   };
 
   GNUNET_CRYPTO_eddsa_sign (&master_priv->eddsa_priv,
@@ -468,22 +468,22 @@ TALER_exchange_offline_signkey_validity_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_signkey_validity_verify (
-  const struct TALER_ExchangePublicKeyP *exchange_pub,
+TALER_donau_offline_signkey_validity_verify (
+  const struct TALER_DonauPublicKeyP *donau_pub,
   struct GNUNET_TIME_Timestamp start_sign,
   struct GNUNET_TIME_Timestamp end_sign,
   struct GNUNET_TIME_Timestamp end_legal,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig)
 {
-  struct TALER_ExchangeSigningKeyValidityPS skv = {
+  struct TALER_DonauSigningKeyValidityPS skv = {
     .purpose.purpose = htonl (
       TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY),
     .purpose.size = htonl (sizeof (skv)),
     .start = GNUNET_TIME_timestamp_hton (start_sign),
     .expire = GNUNET_TIME_timestamp_hton (end_sign),
     .end = GNUNET_TIME_timestamp_hton (end_legal),
-    .signkey_pub = *exchange_pub
+    .signkey_pub = *donau_pub
   };
 
   return
@@ -510,7 +510,7 @@ struct TALER_DenominationKeyValidityPS
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * The long-term offline master key of the exchange that was
+   * The long-term offline master key of the donau that was
    * used to create @e signature.
    *
    * Note: This member is not strictly required, but here for
@@ -525,14 +525,14 @@ struct TALER_DenominationKeyValidityPS
   struct GNUNET_TIME_TimestampNBO start;
 
   /**
-   * The exchange will sign fresh coins between @e start and this time.
+   * The donau will sign fresh coins between @e start and this time.
    * @e expire_withdraw will be somewhat larger than @e start to
    * ensure a sufficiently large anonymity set, while also allowing
-   * the Exchange to limit the financial damage in case of a key being
-   * compromised.  Thus, exchanges with low volume are expected to have a
-   * longer withdraw period (@e expire_withdraw - @e start) than exchanges
+   * the Donau to limit the financial damage in case of a key being
+   * compromised.  Thus, donaus with low volume are expected to have a
+   * longer withdraw period (@e expire_withdraw - @e start) than donaus
    * with high transaction volume.  The period may also differ between
-   * types of coins.  A exchange may also have a few denomination keys
+   * types of coins.  A donau may also have a few denomination keys
    * with the same value with overlapping validity periods, to address
    * issues such as clock skew.
    */
@@ -541,7 +541,7 @@ struct TALER_DenominationKeyValidityPS
   /**
    * Coins signed with the denomination key must be spent or refreshed
    * between @e start and this expiration time.  After this time, the
-   * exchange will refuse transactions involving this key as it will
+   * donau will refuse transactions involving this key as it will
    * "drop" the table with double-spending information (shortly after)
    * this time.  Note that wallets should refresh coins significantly
    * before this time to be on the safe side.  @e expire_deposit must be
@@ -553,7 +553,7 @@ struct TALER_DenominationKeyValidityPS
   /**
    * When do signatures with this denomination key become invalid?
    * After this point, these signatures cannot be used in (legal)
-   * disputes anymore, as the Exchange is then allowed to destroy its side
+   * disputes anymore, as the Donau is then allowed to destroy its side
    * of the evidence.  @e expire_legal is expected to be significantly
    * larger than @e expire_deposit (by a year or more).
    */
@@ -581,7 +581,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_denom_validity_sign (
+TALER_donau_offline_denom_validity_sign (
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp stamp_start,
   struct GNUNET_TIME_Timestamp stamp_expire_withdraw,
@@ -617,7 +617,7 @@ TALER_exchange_offline_denom_validity_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_denom_validity_verify (
+TALER_donau_offline_denom_validity_verify (
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp stamp_start,
   struct GNUNET_TIME_Timestamp stamp_expire_withdraw,
@@ -656,8 +656,8 @@ TALER_exchange_offline_denom_validity_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange offline key over the information of
- * a payto:// URI to be added to the exchange's set of active wire accounts.
+ * @brief Signature made by the donau offline key over the information of
+ * a payto:// URI to be added to the donau's set of active wire accounts.
  */
 struct TALER_MasterAddWirePS
 {
@@ -674,7 +674,7 @@ struct TALER_MasterAddWirePS
   struct GNUNET_TIME_TimestampNBO start_date;
 
   /**
-   * Hash over the exchange's payto URI.
+   * Hash over the donau's payto URI.
    */
   struct TALER_PaytoHashP h_payto GNUNET_PACKED;
 
@@ -699,7 +699,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_wire_add_sign (
+TALER_donau_offline_wire_add_sign (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -731,7 +731,7 @@ TALER_exchange_offline_wire_add_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_wire_add_verify (
+TALER_donau_offline_wire_add_verify (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -768,8 +768,8 @@ TALER_exchange_offline_wire_add_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange offline key over the information of
- * a  wire method to be removed to the exchange's set of active accounts.
+ * @brief Signature made by the donau offline key over the information of
+ * a  wire method to be removed to the donau's set of active accounts.
  */
 struct TALER_MasterDelWirePS
 {
@@ -786,7 +786,7 @@ struct TALER_MasterDelWirePS
   struct GNUNET_TIME_TimestampNBO end_date;
 
   /**
-   * Hash over the exchange's payto URI.
+   * Hash over the donau's payto URI.
    */
   struct TALER_PaytoHashP h_payto GNUNET_PACKED;
 
@@ -796,7 +796,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_wire_del_sign (
+TALER_donau_offline_wire_del_sign (
   const char *payto_uri,
   struct GNUNET_TIME_Timestamp now,
   const struct TALER_MasterPrivateKeyP *master_priv,
@@ -817,7 +817,7 @@ TALER_exchange_offline_wire_del_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_wire_del_verify (
+TALER_donau_offline_wire_del_verify (
   const char *payto_uri,
   struct GNUNET_TIME_Timestamp sign_time,
   const struct TALER_MasterPublicKeyP *master_pub,
@@ -843,7 +843,7 @@ TALER_exchange_offline_wire_del_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Information signed by the exchange's master
+ * @brief Information signed by the donau's master
  * key stating the wire fee to be paid per wire transfer.
  */
 struct TALER_MasterWireFeePS
@@ -883,7 +883,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_wire_fee_sign (
+TALER_donau_offline_wire_fee_sign (
   const char *payment_method,
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
@@ -910,7 +910,7 @@ TALER_exchange_offline_wire_fee_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_wire_fee_verify (
+TALER_donau_offline_wire_fee_verify (
   const char *payment_method,
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
@@ -941,7 +941,7 @@ TALER_exchange_offline_wire_fee_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * Global fees charged by the exchange independent of
+ * Global fees charged by the donau independent of
  * denomination or wire method.
  */
 struct TALER_MasterGlobalFeePS
@@ -963,7 +963,7 @@ struct TALER_MasterGlobalFeePS
   struct GNUNET_TIME_TimestampNBO end_date;
 
   /**
-   * How long does an exchange keep a purse around after a purse
+   * How long does an donau keep a purse around after a purse
    * has expired (or been successfully merged)?  A 'GET' request
    * for a purse will succeed until the purse expiration time
    * plus this value.
@@ -971,14 +971,14 @@ struct TALER_MasterGlobalFeePS
   struct GNUNET_TIME_RelativeNBO purse_timeout;
 
   /**
-   * How long will the exchange preserve the account history?  After an
-   * account was deleted/closed, the exchange will retain the account history
+   * How long will the donau preserve the account history?  After an
+   * account was deleted/closed, the donau will retain the account history
    * for legal reasons until this time.
    */
   struct GNUNET_TIME_RelativeNBO history_expiration;
 
   /**
-   * Fee charged to the merchant per wire transfer.
+   * Fee charged to the charity per wire transfer.
    */
   struct TALER_GlobalFeeSetNBOP fees;
 
@@ -995,7 +995,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_global_fee_sign (
+TALER_donau_offline_global_fee_sign (
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
   const struct TALER_GlobalFeeSet *fees,
@@ -1024,7 +1024,7 @@ TALER_exchange_offline_global_fee_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_global_fee_verify (
+TALER_donau_offline_global_fee_verify (
   struct GNUNET_TIME_Timestamp start_time,
   struct GNUNET_TIME_Timestamp end_time,
   const struct TALER_GlobalFeeSet *fees,
@@ -1057,7 +1057,7 @@ TALER_exchange_offline_global_fee_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Signature made by the exchange offline key over the manifest of
+ * @brief Signature made by the donau offline key over the manifest of
  * an extension.
  */
 struct TALER_MasterExtensionManifestPS
@@ -1078,7 +1078,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_extension_manifests_hash_sign (
+TALER_donau_offline_extension_manifests_hash_sign (
   const struct TALER_ExtensionManifestsHashP *h_manifest,
   const struct TALER_MasterPrivateKeyP *master_priv,
   struct TALER_MasterSignatureP *master_sig)
@@ -1095,7 +1095,7 @@ TALER_exchange_offline_extension_manifests_hash_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_extension_manifests_hash_verify (
+TALER_donau_offline_extension_manifests_hash_verify (
   const struct TALER_ExtensionManifestsHashP *h_manifest,
   const struct TALER_MasterPublicKeyP *master_pub,
   const struct TALER_MasterSignatureP *master_sig
@@ -1117,8 +1117,8 @@ TALER_exchange_offline_extension_manifests_hash_verify (
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
- * @brief Information signed by the exchange's master
- * key affirming the IBAN details for the exchange.
+ * @brief Information signed by the donau's master
+ * key affirming the IBAN details for the donau.
  */
 struct TALER_MasterWireDetailsPS
 {
@@ -1155,7 +1155,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_wire_signature_check (
+TALER_donau_wire_signature_check (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -1186,7 +1186,7 @@ TALER_exchange_wire_signature_check (
 
 
 void
-TALER_exchange_wire_signature_make (
+TALER_donau_wire_signature_make (
   const char *payto_uri,
   const char *conversion_url,
   const json_t *debit_restrictions,
@@ -1239,7 +1239,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_partner_details_sign (
+TALER_donau_offline_partner_details_sign (
   const struct TALER_MasterPublicKeyP *partner_pub,
   struct GNUNET_TIME_Timestamp start_date,
   struct GNUNET_TIME_Timestamp end_date,
@@ -1270,7 +1270,7 @@ TALER_exchange_offline_partner_details_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_partner_details_verify (
+TALER_donau_offline_partner_details_verify (
   const struct TALER_MasterPublicKeyP *partner_pub,
   struct GNUNET_TIME_Timestamp start_date,
   struct GNUNET_TIME_Timestamp end_date,
@@ -1305,7 +1305,7 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * Message signed by account to drain profits
- * from the escrow account of the exchange.
+ * from the escrow account of the donau.
  */
 struct TALER_DrainProfitPS
 {
@@ -1325,7 +1325,7 @@ GNUNET_NETWORK_STRUCT_END
 
 
 void
-TALER_exchange_offline_profit_drain_sign (
+TALER_donau_offline_profit_drain_sign (
   const struct TALER_WireTransferIdentifierRawP *wtid,
   struct GNUNET_TIME_Timestamp date,
   const struct TALER_Amount *amount,
@@ -1355,7 +1355,7 @@ TALER_exchange_offline_profit_drain_sign (
 
 
 enum GNUNET_GenericReturnValue
-TALER_exchange_offline_profit_drain_verify (
+TALER_donau_offline_profit_drain_verify (
   const struct TALER_WireTransferIdentifierRawP *wtid,
   struct GNUNET_TIME_Timestamp date,
   const struct TALER_Amount *amount,
diff --git a/src/util/os_installation.c b/src/util/os_installation.c
index 1cbb9e7..a13ec50 100644
--- a/src/util/os_installation.c
+++ b/src/util/os_installation.c
@@ -9,7 +9,7 @@
 
      Taler is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      General Public License for more details.
 
      You should have received a copy of the GNU General Public License
@@ -33,7 +33,7 @@
 static const struct GNUNET_OS_ProjectData taler_pd = {
   .libname = "libtalerutil",
   .project_dirname = "taler",
-  .binary_name = "taler-exchange-httpd",
+  .binary_name = "taler-donau-httpd",
   .env_varname = "TALER_PREFIX",
   .base_config_varname = "TALER_BASE_CONFIG",
   .bug_email = "taler@gnu.org",
diff --git a/src/util/taler-config.c b/src/util/taler-config.c
index 0e432f8..4f19a6e 100644
--- a/src/util/taler-config.c
+++ b/src/util/taler-config.c
@@ -9,7 +9,7 @@
 
      Taler is distributed in the hope that it will be useful, but
      WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     CHARITYABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Affero General Public License for more details.
 
      You should have received a copy of the GNU Affero General Public License
diff --git a/src/util/wallet_signatures.c b/src/util/wallet_signatures.c
index 4b2fab6..0f6cb8b 100644
--- a/src/util/wallet_signatures.c
+++ b/src/util/wallet_signatures.c
@@ -7,7 +7,7 @@
   Foundation; either version 3, or (at your option) any later version.
 
   TALER is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+  WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License along with
@@ -29,7 +29,7 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * @brief Format used to generate the signature on a request to deposit
- * a coin into the account of a merchant.
+ * a coin into the account of a charity.
  */
 struct TALER_DepositRequestPS
 {
@@ -51,14 +51,14 @@ struct TALER_DepositRequestPS
   struct TALER_AgeCommitmentHash h_age_commitment GNUNET_PACKED;
 
   /**
-   * Hash over optional policy extension attributes shared with the exchange.
+   * Hash over optional policy extension attributes shared with the donau.
    */
   struct TALER_ExtensionPolicyHashP h_policy GNUNET_PACKED;
 
   /**
-   * Hash over the wiring information of the merchant.
+   * Hash over the wiring information of the charity.
    */
-  struct TALER_MerchantWireHashP h_wire GNUNET_PACKED;
+  struct TALER_CharityWireHashP h_wire GNUNET_PACKED;
 
   /**
    * Hash over the denomination public key used to sign the coin.
@@ -68,20 +68,20 @@ struct TALER_DepositRequestPS
   /**
    * Time when this request was generated.  Used, for example, to
    * assess when (roughly) the income was achieved for tax purposes.
-   * Note that the Exchange will only check that the timestamp is not "too
+   * Note that the Donau will only check that the timestamp is not "too
    * far" into the future (i.e. several days).  The fact that the
    * timestamp falls within the validity period of the coin's
    * denomination key is irrelevant for the validity of the deposit
-   * request, as obviously the customer and merchant could conspire to
-   * set any timestamp.  Also, the Exchange must accept very old deposit
-   * requests, as the merchant might have been unable to transmit the
+   * request, as obviously the donor and charity could conspire to
+   * set any timestamp.  Also, the Donau must accept very old deposit
+   * requests, as the charity might have been unable to transmit the
    * deposit request in a timely fashion (so back-dating is not
    * prevented).
    */
   struct GNUNET_TIME_TimestampNBO wallet_timestamp;
 
   /**
-   * How much time does the merchant have to issue a refund request?
+   * How much time does the charity have to issue a refund request?
    * Zero if refunds are not allowed.  After this time, the coin
    * cannot be refunded.
    */
@@ -89,27 +89,27 @@ struct TALER_DepositRequestPS
 
   /**
    * Amount to be deposited, including deposit fee charged by the
-   * exchange.  This is the total amount that the coin's value at the exchange
+   * donau.  This is the total amount that the coin's value at the donau
    * will be reduced by.
    */
   struct TALER_AmountNBO amount_with_fee;
 
   /**
-   * Depositing fee charged by the exchange.  This must match the Exchange's
+   * Depositing fee charged by the donau.  This must match the Donau's
    * denomination key's depositing fee.  If the client puts in an
    * invalid deposit fee (too high or too low) that does not match the
-   * Exchange's denomination key, the deposit operation is invalid and
-   * will be rejected by the exchange.  The @e amount_with_fee minus the
+   * Donau's denomination key, the deposit operation is invalid and
+   * will be rejected by the donau.  The @e amount_with_fee minus the
    * @e deposit_fee is the amount that will be transferred to the
    * account identified by @e h_wire.
    */
   struct TALER_AmountNBO deposit_fee;
 
   /**
-   * The Merchant's public key.  Allows the merchant to later refund
+   * The Charity's public key.  Allows the charity to later refund
    * the transaction or to inquire about the wire transfer identifier.
    */
-  struct TALER_MerchantPublicKeyP merchant;
+  struct TALER_CharityPublicKeyP charity;
 
   /**
    * Hash over a JSON containing data provided by the
@@ -125,14 +125,14 @@ void
 TALER_wallet_deposit_sign (
   const struct TALER_Amount *amount,
   const struct TALER_Amount *deposit_fee,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct GNUNET_HashCode *wallet_data_hash,
   const struct TALER_AgeCommitmentHash *h_age_commitment,
   const struct TALER_ExtensionPolicyHashP *h_policy,
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct GNUNET_TIME_Timestamp wallet_timestamp,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   const struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_CoinSpendPrivateKeyP *coin_priv,
   struct TALER_CoinSpendSignatureP *coin_sig)
@@ -145,7 +145,7 @@ TALER_wallet_deposit_sign (
     .h_denom_pub = *h_denom_pub,
     .wallet_timestamp = GNUNET_TIME_timestamp_hton (wallet_timestamp),
     .refund_deadline = GNUNET_TIME_timestamp_hton (refund_deadline),
-    .merchant = *merchant_pub
+    .charity = *charity_pub
   };
 
   if (NULL != wallet_data_hash)
@@ -168,14 +168,14 @@ enum GNUNET_GenericReturnValue
 TALER_wallet_deposit_verify (
   const struct TALER_Amount *amount,
   const struct TALER_Amount *deposit_fee,
-  const struct TALER_MerchantWireHashP *h_wire,
+  const struct TALER_CharityWireHashP *h_wire,
   const struct TALER_PrivateContractHashP *h_contract_terms,
   const struct GNUNET_HashCode *wallet_data_hash,
   const struct TALER_AgeCommitmentHash *h_age_commitment,
   const struct TALER_ExtensionPolicyHashP *h_policy,
   const struct TALER_DenominationHashP *h_denom_pub,
   struct GNUNET_TIME_Timestamp wallet_timestamp,
-  const struct TALER_MerchantPublicKeyP *merchant_pub,
+  const struct TALER_CharityPublicKeyP *charity_pub,
   struct GNUNET_TIME_Timestamp refund_deadline,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_CoinSpendSignatureP *coin_sig)
@@ -188,7 +188,7 @@ TALER_wallet_deposit_verify (
     .h_denom_pub = *h_denom_pub,
     .wallet_timestamp = GNUNET_TIME_timestamp_hton (wallet_timestamp),
     .refund_deadline = GNUNET_TIME_timestamp_hton (refund_deadline),
-    .merchant = *merchant_pub,
+    .charity = *charity_pub,
   };
 
   if (NULL != wallet_data_hash)
@@ -218,7 +218,7 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * @brief Format used for to allow the wallet to authenticate
- * link data provided by the exchange.
+ * link data provided by the donau.
  */
 struct TALER_LinkDataPS
 {
@@ -451,11 +451,11 @@ struct TALER_RefreshMeltCoinAffirmationPS
   struct TALER_AmountNBO amount_with_fee;
 
   /**
-   * Melting fee charged by the exchange.  This must match the Exchange's
+   * Melting fee charged by the donau.  This must match the Donau's
    * denomination key's melting fee.  If the client puts in an invalid
-   * melting fee (too high or too low) that does not match the Exchange's
+   * melting fee (too high or too low) that does not match the Donau's
    * denomination key, the melting operation is invalid and will be
-   * rejected by the exchange.  The @e amount_with_fee minus the @e
+   * rejected by the donau.  The @e amount_with_fee minus the @e
    * melt_fee is the amount that will be credited to the melting
    * session.
    */
@@ -546,7 +546,7 @@ struct TALER_WithdrawRequestPS
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * Value of the coin being exchanged (matching the denomination key)
+   * Value of the coin being donaud (matching the denomination key)
    * plus the transaction fee.  We include this in what is being
    * signed so that we can verify a reserve's remaining total balance
    * without needing to access the respective denomination key
@@ -560,7 +560,7 @@ struct TALER_WithdrawRequestPS
   struct TALER_DenominationHashP h_denomination_pub GNUNET_PACKED;
 
   /**
-   * Hash of the (blinded) message to be signed by the Exchange.
+   * Hash of the (blinded) message to be signed by the Donau.
    */
   struct TALER_BlindedCoinHashP h_coin_envelope GNUNET_PACKED;
 };
@@ -637,7 +637,7 @@ struct TALER_AgeWithdrawRequestPS
   struct TALER_ReservePublicKeyP reserve_pub;
 
   /**
-   * Value of the coin being exchanged (matching the denomination key)
+   * Value of the coin being donaud (matching the denomination key)
    * plus the transaction fee.  We include this in what is being
    * signed so that we can verify a reserve's remaining total balance
    * without needing to access the respective denomination key
@@ -808,7 +808,7 @@ struct TALER_ReserveHistoryRequestPS
   struct GNUNET_TIME_TimestampNBO request_timestamp;
 
   /**
-   * How much does the exchange charge for the history?
+   * How much does the donau charge for the history?
    */
   struct TALER_AmountNBO history_fee;
 
@@ -1144,17 +1144,17 @@ struct TALER_PurseDepositPS
   struct TALER_PurseContractPublicKeyP purse_pub;
 
   /**
-   * Hash of the base URL of the exchange hosting the
+   * Hash of the base URL of the donau hosting the
    * @e purse_pub.
    */
-  struct GNUNET_HashCode h_exchange_base_url GNUNET_PACKED;
+  struct GNUNET_HashCode h_donau_base_url GNUNET_PACKED;
 };
 
 GNUNET_NETWORK_STRUCT_END
 
 void
 TALER_wallet_purse_deposit_sign (
-  const char *exchange_base_url,
+  const char *donau_base_url,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_Amount *amount,
   const struct TALER_DenominationHashP *h_denom_pub,
@@ -1170,9 +1170,9 @@ TALER_wallet_purse_deposit_sign (
     .h_age_commitment = *h_age_commitment
   };
 
-  GNUNET_CRYPTO_hash (exchange_base_url,
-                      strlen (exchange_base_url) + 1,
-                      &pm.h_exchange_base_url);
+  GNUNET_CRYPTO_hash (donau_base_url,
+                      strlen (donau_base_url) + 1,
+                      &pm.h_donau_base_url);
   TALER_amount_hton (&pm.coin_amount,
                      amount);
   GNUNET_CRYPTO_eddsa_sign (&coin_priv->eddsa_priv,
@@ -1183,7 +1183,7 @@ TALER_wallet_purse_deposit_sign (
 
 enum GNUNET_GenericReturnValue
 TALER_wallet_purse_deposit_verify (
-  const char *exchange_base_url,
+  const char *donau_base_url,
   const struct TALER_PurseContractPublicKeyP *purse_pub,
   const struct TALER_Amount *amount,
   const struct TALER_DenominationHashP *h_denom_pub,
@@ -1199,9 +1199,9 @@ TALER_wallet_purse_deposit_verify (
     .h_age_commitment = *h_age_commitment
   };
 
-  GNUNET_CRYPTO_hash (exchange_base_url,
-                      strlen (exchange_base_url) + 1,
-                      &pm.h_exchange_base_url);
+  GNUNET_CRYPTO_hash (donau_base_url,
+                      strlen (donau_base_url) + 1,
+                      &pm.h_donau_base_url);
   TALER_amount_hton (&pm.coin_amount,
                      amount);
   return GNUNET_CRYPTO_eddsa_verify (

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]