gnunet-svn
[Top][All Lists]
Advanced

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

[taler-donau] 01/02: Initial refactoring


From: gnunet
Subject: [taler-donau] 01/02: Initial refactoring
Date: Thu, 28 Sep 2023 14:22:35 +0200

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

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

commit 2a960230dec58a33b5b8facd9d446d0a4a07c0db
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
AuthorDate: Thu Sep 28 14:12:44 2023 +0200

    Initial refactoring
---
 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 +-
 contrib/taler-exchange-dbconfig                    |   24 +-
 contrib/uncrustify-mode.el                         |    2 +-
 debian/.gitignore                                  |   22 +-
 debian/README-packaging.md                         |    4 +-
 debian/changelog                                   |  126 +--
 debian/control                                     |   60 +-
 debian/copyright                                   |    8 +-
 .../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 +-
 debian/libtalerexchange-dev.install                |    8 +-
 debian/libtalerexchange.install                    |    2 +-
 debian/po/POTFILES.in                              |    2 +-
 debian/rules                                       |   38 +-
 debian/taler-auditor.install                       |    4 +-
 debian/taler-exchange-database.install             |   16 +-
 debian/taler-exchange-offline.install              |    4 +-
 debian/taler-exchange-offline.postinst             |   12 +-
 debian/taler-exchange-offline.tmpfiles             |    2 +-
 debian/taler-exchange.README.Debian                |   26 +-
 debian/taler-exchange.install                      |   54 +-
 debian/taler-exchange.lintan-overrides             |    2 +-
 debian/taler-exchange.postinst                     |   26 +-
 debian/taler-exchange.postrm                       |   24 +-
 ...aler-exchange.taler-exchange-aggregator.service |   10 +-
 ...ler-exchange.taler-exchange-aggregator@.service |   10 +-
 .../taler-exchange.taler-exchange-closer.service   |   10 +-
 .../taler-exchange.taler-exchange-expire.service   |   10 +-
 debian/taler-exchange.taler-exchange-httpd.service |   18 +-
 debian/taler-exchange.taler-exchange-httpd.socket  |   10 +-
 .../taler-exchange.taler-exchange-httpd@.service   |   16 +-
 debian/taler-exchange.taler-exchange-httpd@.socket |    8 +-
 ...taler-exchange.taler-exchange-secmod-cs.service |   12 +-
 ...er-exchange.taler-exchange-secmod-eddsa.service |   12 +-
 ...aler-exchange.taler-exchange-secmod-rsa.service |   12 +-
 .../taler-exchange.taler-exchange-transfer.service |   10 +-
 ...taler-exchange.taler-exchange-wirewatch.service |   10 +-
 ...aler-exchange.taler-exchange-wirewatch@.service |   10 +-
 debian/taler-exchange.taler-exchange.slice         |    4 +-
 debian/taler-exchange.taler-exchange.target        |   14 +-
 debian/taler-exchange.tmpfiles                     |   14 +-
 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                              |  294 +++---
 src/Makefile.am                                    |    6 +-
 src/exchange-tools/.gitignore                      |    2 +-
 src/exchange-tools/Makefile.am                     |   26 +-
 src/exchange-tools/exchange-offline.conf           |    8 +-
 src/exchange-tools/taler-exchange-dbinit.c         |   26 +-
 src/exchange-tools/taler-exchange-offline.c        |  468 ++++-----
 src/exchange/.gitignore                            |   26 +-
 src/exchange/Makefile.am                           |  224 ++---
 src/exchange/exchange.conf                         |   28 +-
 src/exchange/taler-exchange-httpd.c                |  224 ++---
 src/exchange/taler-exchange-httpd.h                |   22 +-
 src/exchange/taler-exchange-httpd_batch-deposit.c  |  108 +-
 src/exchange/taler-exchange-httpd_batch-deposit.h  |   10 +-
 src/exchange/taler-exchange-httpd_batch-withdraw.c |   48 +-
 src/exchange/taler-exchange-httpd_batch-withdraw.h |   10 +-
 src/exchange/taler-exchange-httpd_common_deposit.c |   30 +-
 src/exchange/taler-exchange-httpd_common_deposit.h |    8 +-
 src/exchange/taler-exchange-httpd_config.c         |   12 +-
 src/exchange/taler-exchange-httpd_config.h         |   14 +-
 src/exchange/taler-exchange-httpd_csr.c            |   38 +-
 src/exchange/taler-exchange-httpd_csr.h            |   10 +-
 src/exchange/taler-exchange-httpd_db.c             |   32 +-
 src/exchange/taler-exchange-httpd_db.h             |   16 +-
 src/exchange/taler-exchange-httpd_deposits_get.c   |   72 +-
 src/exchange/taler-exchange-httpd_deposits_get.h   |   14 +-
 src/exchange/taler-exchange-httpd_keys.c           |  244 ++---
 src/exchange/taler-exchange-httpd_keys.h           |   72 +-
 src/exchange/taler-exchange-httpd_metrics.c        |   92 +-
 src/exchange/taler-exchange-httpd_metrics.h        |   16 +-
 src/exchange/taler-exchange-httpd_mhd.c            |   16 +-
 src/exchange/taler-exchange-httpd_mhd.h            |   10 +-
 src/exchange/taler-exchange-httpd_reserves_close.c |   26 +-
 src/exchange/taler-exchange-httpd_reserves_close.h |   10 +-
 src/exchange/taler-exchange-httpd_reserves_get.c   |   16 +-
 src/exchange/taler-exchange-httpd_reserves_get.h   |   10 +-
 .../taler-exchange-httpd_reserves_history.c        |   28 +-
 .../taler-exchange-httpd_reserves_history.h        |   10 +-
 src/exchange/taler-exchange-httpd_reserves_open.c  |   28 +-
 src/exchange/taler-exchange-httpd_reserves_open.h  |   10 +-
 .../taler-exchange-httpd_reserves_status.c         |   22 +-
 .../taler-exchange-httpd_reserves_status.h         |   10 +-
 src/exchange/taler-exchange-httpd_responses.c      |  268 ++---
 src/exchange/taler-exchange-httpd_responses.h      |   24 +-
 src/exchange/taler-exchange-httpd_terms.c          |   12 +-
 src/exchange/taler-exchange-httpd_terms.h          |   10 +-
 src/exchange/taler-exchange-httpd_withdraw.c       |   42 +-
 src/exchange/taler-exchange-httpd_withdraw.h       |   10 +-
 src/exchange/test_taler_exchange_httpd.conf        |   22 +-
 src/exchange/test_taler_exchange_httpd.sh          |   32 +-
 src/exchange/test_taler_exchange_unix.conf         |   20 +-
 src/exchangedb/.gitignore                          |   20 +-
 src/exchangedb/0002-account_merges.sql             |   10 +-
 src/exchangedb/0002-batch_deposits.sql             |   20 +-
 src/exchangedb/0002-coin_deposits.sql              |   14 +-
 src/exchangedb/0002-cs_nonce_locks.sql             |    8 +-
 src/exchangedb/0002-denomination_revocations.sql   |    2 +-
 src/exchangedb/0002-denominations.sql              |    6 +-
 src/exchangedb/0002-exchange_sign_keys.sql         |   22 +-
 src/exchangedb/0002-known_coins.sql                |   12 +-
 src/exchangedb/0002-reserves.sql                   |    8 +-
 src/exchangedb/0002-reserves_in.sql                |   16 +-
 src/exchangedb/0002-reserves_out.sql               |   22 +-
 src/exchangedb/0002-signkey_revocations.sql        |    4 +-
 src/exchangedb/0002-wad_in_entries.sql             |   14 +-
 src/exchangedb/0002-wad_out_entries.sql            |   10 +-
 src/exchangedb/0002-wads_in.sql                    |   22 +-
 src/exchangedb/0002-wads_out.sql                   |   14 +-
 src/exchangedb/Makefile.am                         |   80 +-
 src/exchangedb/bench-db-postgres.conf              |    6 +-
 src/exchangedb/benchmark-0001.sql                  |    2 +-
 src/exchangedb/drop.sql                            |    8 +-
 src/exchangedb/exchange-0001.sql                   |   52 +-
 src/exchangedb/exchange-0002.sql.in                |   14 +-
 src/exchangedb/exchange_do_account_merge.sql       |    2 +-
 src/exchangedb/exchange_do_batch_coin_known.sql    |   10 +-
 .../exchange_do_batch_reserves_update.sql          |   10 +-
 src/exchangedb/exchange_do_batch_withdraw.sql      |   10 +-
 .../exchange_do_batch_withdraw_insert.sql          |   14 +-
 src/exchangedb/exchange_do_deposit.sql             |   30 +-
 src/exchangedb/exchange_do_gc.sql                  |   52 +-
 src/exchangedb/exchange_do_reserves_in_insert.sql  |   16 +-
 src/exchangedb/exchange_do_withdraw.sql            |   18 +-
 src/exchangedb/exchange_do_withdraw.sql~           |   16 +-
 src/exchangedb/exchangedb-postgres.conf            |    4 +-
 src/exchangedb/exchangedb.conf                     |   10 +-
 src/exchangedb/exchangedb_plugin.c                 |   22 +-
 src/exchangedb/exchangedb_transactions.c           |   30 +-
 src/exchangedb/list.txt                            |   12 +-
 src/exchangedb/pg_activate_signing_key.c           |   14 +-
 src/exchangedb/pg_activate_signing_key.h           |   14 +-
 src/exchangedb/pg_add_denomination_key.c           |    6 +-
 src/exchangedb/pg_add_denomination_key.h           |    8 +-
 src/exchangedb/pg_batch_ensure_coin_known.c        |   18 +-
 src/exchangedb/pg_batch_ensure_coin_known.h        |    8 +-
 src/exchangedb/pg_commit.c                         |    4 +-
 src/exchangedb/pg_commit.h                         |    6 +-
 src/exchangedb/pg_count_known_coins.c              |    4 +-
 src/exchangedb/pg_count_known_coins.h              |    6 +-
 src/exchangedb/pg_create_tables.c                  |   12 +-
 src/exchangedb/pg_create_tables.h                  |    6 +-
 src/exchangedb/pg_do_batch_withdraw.c              |    6 +-
 src/exchangedb/pg_do_batch_withdraw.h              |    6 +-
 src/exchangedb/pg_do_batch_withdraw_insert.c       |    8 +-
 src/exchangedb/pg_do_batch_withdraw_insert.h       |    8 +-
 src/exchangedb/pg_do_deposit.c                     |   24 +-
 src/exchangedb/pg_do_deposit.h                     |   12 +-
 src/exchangedb/pg_do_withdraw.c                    |    8 +-
 src/exchangedb/pg_do_withdraw.h                    |    8 +-
 src/exchangedb/pg_drop_tables.c                    |    6 +-
 src/exchangedb/pg_drop_tables.h                    |    6 +-
 src/exchangedb/pg_ensure_coin_known.c              |   20 +-
 src/exchangedb/pg_ensure_coin_known.h              |    8 +-
 src/exchangedb/pg_event_listen.c                   |    4 +-
 src/exchangedb/pg_event_listen.h                   |    6 +-
 src/exchangedb/pg_event_listen_cancel.c            |    4 +-
 src/exchangedb/pg_event_listen_cancel.h            |    6 +-
 src/exchangedb/pg_event_notify.c                   |    4 +-
 src/exchangedb/pg_event_notify.h                   |    6 +-
 src/exchangedb/pg_gc.c                             |   10 +-
 src/exchangedb/pg_gc.h                             |    6 +-
 src/exchangedb/pg_get_coin_denomination.c          |    6 +-
 src/exchangedb/pg_get_coin_denomination.h          |    6 +-
 src/exchangedb/pg_get_coin_transactions.c          |  138 +--
 src/exchangedb/pg_get_coin_transactions.h          |    6 +-
 src/exchangedb/pg_get_denomination_info.c          |    6 +-
 src/exchangedb/pg_get_denomination_info.h          |    8 +-
 src/exchangedb/pg_get_denomination_revocation.c    |    4 +-
 src/exchangedb/pg_get_denomination_revocation.h    |    6 +-
 src/exchangedb/pg_get_expired_reserves.c           |    8 +-
 src/exchangedb/pg_get_expired_reserves.h           |    6 +-
 src/exchangedb/pg_get_known_coin.c                 |    6 +-
 src/exchangedb/pg_get_known_coin.h                 |    6 +-
 src/exchangedb/pg_get_ready_deposit.c              |   12 +-
 src/exchangedb/pg_get_ready_deposit.h              |   12 +-
 src/exchangedb/pg_get_reserve_balance.c            |    4 +-
 src/exchangedb/pg_get_reserve_balance.h            |    6 +-
 src/exchangedb/pg_get_reserve_by_h_blind.c         |    4 +-
 src/exchangedb/pg_get_reserve_by_h_blind.h         |    6 +-
 src/exchangedb/pg_get_withdraw_info.c              |    6 +-
 src/exchangedb/pg_get_withdraw_info.h              |    8 +-
 src/exchangedb/pg_have_deposit2.c                  |   28 +-
 src/exchangedb/pg_have_deposit2.h                  |   18 +-
 src/exchangedb/pg_helper.h                         |    4 +-
 src/exchangedb/pg_insert_denomination_info.c       |    6 +-
 src/exchangedb/pg_insert_denomination_info.h       |    8 +-
 src/exchangedb/pg_insert_denomination_revocation.c |    4 +-
 src/exchangedb/pg_insert_denomination_revocation.h |    6 +-
 src/exchangedb/pg_insert_signkey_revocation.c      |   12 +-
 src/exchangedb/pg_insert_signkey_revocation.h      |   10 +-
 src/exchangedb/pg_iterate_active_signkeys.c        |   24 +-
 src/exchangedb/pg_iterate_active_signkeys.h        |   10 +-
 src/exchangedb/pg_iterate_denomination_info.c      |   12 +-
 src/exchangedb/pg_iterate_denomination_info.h      |    8 +-
 src/exchangedb/pg_iterate_denominations.c          |   10 +-
 src/exchangedb/pg_iterate_denominations.h          |    8 +-
 src/exchangedb/pg_lookup_denomination_key.c        |    6 +-
 src/exchangedb/pg_lookup_denomination_key.h        |    8 +-
 src/exchangedb/pg_lookup_signing_key.c             |   14 +-
 src/exchangedb/pg_lookup_signing_key.h             |   14 +-
 src/exchangedb/pg_lookup_signkey_revocation.c      |   12 +-
 src/exchangedb/pg_lookup_signkey_revocation.h      |   10 +-
 src/exchangedb/pg_preflight.c                      |    4 +-
 src/exchangedb/pg_preflight.h                      |    6 +-
 src/exchangedb/pg_reserves_get.c                   |    6 +-
 src/exchangedb/pg_reserves_get.h                   |    8 +-
 src/exchangedb/pg_reserves_get_origin.c            |    4 +-
 src/exchangedb/pg_reserves_get_origin.h            |    6 +-
 src/exchangedb/pg_reserves_in_insert.c             |   24 +-
 src/exchangedb/pg_reserves_in_insert.h             |    8 +-
 src/exchangedb/pg_reserves_update.c                |    6 +-
 src/exchangedb/pg_reserves_update.h                |    8 +-
 src/exchangedb/pg_rollback.c                       |    4 +-
 src/exchangedb/pg_rollback.h                       |    6 +-
 src/exchangedb/pg_start.c                          |    4 +-
 src/exchangedb/pg_start.h                          |    6 +-
 src/exchangedb/pg_start_read_committed.c           |    4 +-
 src/exchangedb/pg_start_read_committed.h           |    6 +-
 src/exchangedb/pg_start_read_only.c                |    4 +-
 src/exchangedb/pg_start_read_only.h                |    6 +-
 src/exchangedb/pg_template.c                       |    4 +-
 src/exchangedb/pg_template.h                       |    6 +-
 src/exchangedb/pg_template.sh                      |    4 +-
 src/exchangedb/plugin_exchangedb_common.c          |   80 +-
 src/exchangedb/plugin_exchangedb_common.h          |   14 +-
 src/exchangedb/plugin_exchangedb_postgres.c        |   64 +-
 src/exchangedb/procedures.sql.in                   |   60 +-
 src/exchangedb/test_exchangedb.c                   |  260 ++---
 src/exchangedb/versioning.sql                      |    2 +-
 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 +--
 src/lib/exchange_api_batch_deposit.c               |  196 ++--
 src/lib/exchange_api_batch_withdraw.c              |  104 +-
 src/lib/exchange_api_batch_withdraw2.c             |  102 +-
 src/lib/exchange_api_common.c                      |  384 +++----
 src/lib/exchange_api_common.h                      |   62 +-
 src/lib/exchange_api_csr_withdraw.c                |   68 +-
 src/lib/exchange_api_curl_defaults.c               |    8 +-
 src/lib/exchange_api_curl_defaults.h               |    8 +-
 src/lib/exchange_api_deposits_get.c                |  128 +--
 src/lib/exchange_api_handle.c                      |  312 +++---
 src/lib/exchange_api_handle.h                      |   16 +-
 src/lib/exchange_api_reserves_close.c              |   52 +-
 src/lib/exchange_api_reserves_get.c                |   46 +-
 src/lib/exchange_api_reserves_history.c            |   72 +-
 src/lib/exchange_api_reserves_open.c               |   78 +-
 src/lib/exchange_api_reserves_status.c             |   68 +-
 src/lib/exchange_api_transfers_get.c               |   94 +-
 src/lib/exchange_api_withdraw.c                    |   94 +-
 src/lib/exchange_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 +-
 src/testing/test_exchange_api-cs.conf              |    2 +-
 src/testing/test_exchange_api-rsa.conf             |    2 +-
 src/testing/test_exchange_api.c                    |  172 ++--
 src/testing/test_exchange_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 +-
 src/testing/testing_api_cmd_get_exchange.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 +-
 src/util/conversion.c                              |    2 +-
 src/util/crypto_confirmation.c                     |    4 +-
 src/util/crypto_contract.c                         |   16 +-
 src/util/exchange_signatures.c                     |  636 ++++++------
 src/util/merchant_signatures.c                     |  158 +--
 src/util/offline_signatures.c                      |  162 +--
 src/util/os_installation.c                         |    4 +-
 src/util/taler-config.c                            |    2 +-
 src/util/wallet_signatures.c                       |   80 +-
 324 files changed, 6449 insertions(+), 6498 deletions(-)

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-exchange-dbconfig
index dc92abb..47ee1ec 100755
--- a/contrib/taler-exchange-dbconfig
+++ b/contrib/taler-exchange-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-taler-exchange/apache2/sites-available/taler-exchange.conf 
b/debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf
index 3ec14fe..612a08f 100644
--- a/debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf
+++ b/debian/etc-taler-exchange/apache2/sites-available/taler-exchange.conf
@@ -1,4 +1,4 @@
-<Location "/taler-exchange/">
-ProxyPass 
"unix:/run/taler/exchange-httpd/exchange-http.sock|http://example.com/";
+<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-exchange/nginx/sites-available/taler-exchange
index 9b61a32..4955a18 100644
--- a/debian/etc-taler-exchange/nginx/sites-available/taler-exchange
+++ b/debian/etc-taler-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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-exchange/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/libtalerexchange-dev.install 
b/debian/libtalerexchange-dev.install
index 0654f72..606ca3d 100644
--- a/debian/libtalerexchange-dev.install
+++ b/debian/libtalerexchange-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.install b/debian/libtalerexchange.install
index 56b69e6..5d760ab 100644
--- a/debian/libtalerexchange.install
+++ b/debian/libtalerexchange.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/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-exchange-database.install 
b/debian/taler-exchange-database.install
index da8b0dc..406527d 100644
--- a/debian/taler-exchange-database.install
+++ b/debian/taler-exchange-database.install
@@ -1,8 +1,8 @@
-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
+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-exchange-offline.install 
b/debian/taler-exchange-offline.install
index 617715d..4edf5d0 100644
--- a/debian/taler-exchange-offline.install
+++ b/debian/taler-exchange-offline.install
@@ -1,2 +1,2 @@
-usr/bin/taler-exchange-offline
-usr/share/man/man1/taler-exchange-offline*
+usr/bin/taler-donau-offline
+usr/share/man/man1/taler-donau-offline*
diff --git a/debian/taler-exchange-offline.postinst 
b/debian/taler-exchange-offline.postinst
index 337bfa5..4fbb870 100644
--- a/debian/taler-exchange-offline.postinst
+++ b/debian/taler-exchange-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-exchange-offline.tmpfiles 
b/debian/taler-exchange-offline.tmpfiles
index 5f9dcb0..67df339 100644
--- a/debian/taler-exchange-offline.tmpfiles
+++ b/debian/taler-exchange-offline.tmpfiles
@@ -1,2 +1,2 @@
 #Type Path        Mode UID  GID  Age Argument
-d /var/lib/taler/exchange-offline 0700 taler-exchange-offline 
taler-exchange-offline  - -
+d /var/lib/taler/donau-offline 0700 taler-donau-offline taler-donau-offline  - 
-
diff --git a/debian/taler-exchange.README.Debian 
b/debian/taler-exchange.README.Debian
index cce5d9f..fb78fad 100644
--- a/debian/taler-exchange.README.Debian
+++ b/debian/taler-exchange.README.Debian
@@ -1,18 +1,18 @@
-taler-exchange
+taler-donau
 --------------
 
 Note that the configuration is incomplete, and that Debian cannot launch an
-exchange with this minimal template. You must:
+donau with this minimal template. You must:
 
-* Configure the Postgres database for the exchange, ideally including
+* Configure the Postgres database for the donau, ideally including
   remote replication of the database to the auditor.
-* Run `taler-exchange-dbinit` (also after package upgrades).
+* 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-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``.
+* 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
@@ -20,15 +20,15 @@ required complete configuration details.
 
 
 Once you have done this, you can use the following commands to start, stop or
-restart the Taler exchange:
+restart the Taler donau:
 
-  # systemctl start taler-exchange-httpd.service
-  # systemctl stop taler-exchange-httpd.service
-  # systemctl restart taler-exchange-httpd.service
+  # systemctl start taler-donau-httpd.service
+  # systemctl stop taler-donau-httpd.service
+  # systemctl restart taler-donau-httpd.service
 
-To permanently the exchange whenever the system boots, use:
+To permanently the donau whenever the system boots, use:
 
-  # systemctl enable taler-exchange-httpd
+  # 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.install b/debian/taler-exchange.install
index 38b3d55..adfe3b3 100644
--- a/debian/taler-exchange.install
+++ b/debian/taler-exchange.install
@@ -1,37 +1,37 @@
-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/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-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-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-exchange-wire-gateway-client*
+usr/share/man/man1/taler-donau-wire-gateway-client*
 usr/share/info/taler-bank*
-usr/share/info/taler-exchange*
+usr/share/info/taler-donau*
 usr/share/taler/config.d/*
-usr/share/taler/exchange/templates/*.must
+usr/share/taler/donau/templates/*.must
 
 # configuration files in /etc/taler
-debian/etc-taler-exchange/* etc/
+debian/etc-taler-donau/* etc/
 
 # Terms of service / privacy policy templates
 usr/share/taler/terms/*.rst
diff --git a/debian/taler-exchange.lintan-overrides 
b/debian/taler-exchange.lintan-overrides
index b11557a..ec4e2fd 100644
--- a/debian/taler-exchange.lintan-overrides
+++ b/debian/taler-exchange.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-exchange.postinst
index 6278dac..078e268 100644
--- a/debian/taler-exchange.postinst
+++ b/debian/taler-exchange.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-exchange.postrm
index 9edf548..6ee810f 100644
--- a/debian/taler-exchange.postrm
+++ b/debian/taler-exchange.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.taler-exchange-aggregator.service 
b/debian/taler-exchange.taler-exchange-aggregator.service
index 246cad5..8ef8d33 100644
--- a/debian/taler-exchange.taler-exchange-aggregator.service
+++ b/debian/taler-exchange.taler-exchange-aggregator.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange aggregator service
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau aggregator service
+PartOf=taler-donau.target
 After=postgres.service
 
 [Service]
-User=taler-exchange-aggregator
+User=taler-donau-aggregator
 Type=simple
 Restart=always
 RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-aggregator -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-aggregator@.service 
b/debian/taler-exchange.taler-exchange-aggregator@.service
index bfc44a9..e971cce 100644
--- a/debian/taler-exchange.taler-exchange-aggregator@.service
+++ b/debian/taler-exchange.taler-exchange-aggregator@.service
@@ -1,17 +1,17 @@
 [Unit]
-Description=GNU Taler payment system exchange aggregator service
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau aggregator service
+PartOf=taler-donau.target
 
 [Service]
-User=taler-exchange-aggregator
+User=taler-donau-aggregator
 Type=simple
 Restart=always
 RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-aggregator -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-exchange.taler-exchange-closer.service
index 97a385c..35c8b8f 100644
--- a/debian/taler-exchange.taler-exchange-closer.service
+++ b/debian/taler-exchange.taler-exchange-closer.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange closer service
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau closer service
+PartOf=taler-donau.target
 After=network.target postgres.service
 
 [Service]
-User=taler-exchange-closer
+User=taler-donau-closer
 Type=simple
 Restart=always
 RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-closer -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-exchange.taler-exchange-expire.service 
b/debian/taler-exchange.taler-exchange-expire.service
index 250f210..6f46389 100644
--- a/debian/taler-exchange.taler-exchange-expire.service
+++ b/debian/taler-exchange.taler-exchange-expire.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange expire service
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau expire service
+PartOf=taler-donau.target
 After=postgres.service
 
 [Service]
-User=taler-exchange-expire
+User=taler-donau-expire
 Type=simple
 Restart=always
 RestartSec=1s
-ExecStart=/usr/bin/taler-exchange-expire -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-expire -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-httpd.service 
b/debian/taler-exchange.taler-exchange-httpd.service
index 3671bdc..4ec86e9 100644
--- a/debian/taler-exchange.taler-exchange-httpd.service
+++ b/debian/taler-exchange.taler-exchange-httpd.service
@@ -1,12 +1,12 @@
 [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
+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-exchange-httpd
+User=taler-donau-httpd
 Type=simple
 
 # Depending on the configuration, the service process kills itself and then
@@ -16,18 +16,18 @@ 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
+# them here explicitly, as the donau code assumes StartLimitInterval
 # to be >=5s.
 StartLimitBurst=5
 StartLimitInterval=5s
 
-ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-httpd -c /etc/taler/taler.conf
 StandardOutput=journal
 StandardError=journal
 PrivateTmp=no
 PrivateDevices=yes
 ProtectSystem=full
-Slice=taler-exchange.slice
+Slice=taler-donau.slice
 
 [Install]
 WantedBy=multi-user.target
diff --git a/debian/taler-exchange.taler-exchange-httpd.socket 
b/debian/taler-exchange.taler-exchange-httpd.socket
index adbfb93..4c871fc 100644
--- a/debian/taler-exchange.taler-exchange-httpd.socket
+++ b/debian/taler-exchange.taler-exchange-httpd.socket
@@ -1,12 +1,12 @@
 [Unit]
-Description=Taler Exchange Socket
-PartOf=taler-exchange-httpd.service
+Description=Taler Donau Socket
+PartOf=taler-donau-httpd.service
 
 [Socket]
-ListenStream=/run/taler/exchange-httpd/exchange-http.sock
+ListenStream=/run/taler/donau-httpd/donau-http.sock
 Accept=no
-Service=taler-exchange-httpd.service
-SocketUser=taler-exchange-httpd
+Service=taler-donau-httpd.service
+SocketUser=taler-donau-httpd
 SocketGroup=www-data
 SocketMode=0660
 
diff --git a/debian/taler-exchange.taler-exchange-httpd@.service 
b/debian/taler-exchange.taler-exchange-httpd@.service
index e024689..c7ec730 100644
--- a/debian/taler-exchange.taler-exchange-httpd@.service
+++ b/debian/taler-exchange.taler-exchange-httpd@.service
@@ -1,13 +1,13 @@
 % 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
+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-exchange-httpd
+User=taler-donau-httpd
 Type=simple
 # Depending on the configuration, the service suicides and then
 # needs to be restarted.
@@ -15,13 +15,13 @@ Restart=always
 # Do not dally on restarts.
 RestartSec=1ms
 EnvironmentFile=/etc/environment
-ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf
+ExecStart=/usr/bin/taler-donau-httpd -c /etc/taler/taler.conf
 StandardOutput=journal
 StandardError=journal
 PrivateTmp=no
 PrivateDevices=yes
 ProtectSystem=full
-Slice=taler-exchange.slice
+Slice=taler-donau.slice
 
 [Install]
 WantedBy=multi-user.target
diff --git a/debian/taler-exchange.taler-exchange-httpd@.socket 
b/debian/taler-exchange.taler-exchange-httpd@.socket
index e1d6b6b..76d5cb6 100644
--- a/debian/taler-exchange.taler-exchange-httpd@.socket
+++ b/debian/taler-exchange.taler-exchange-httpd@.socket
@@ -1,12 +1,12 @@
 [Unit]
-Description=Taler Exchange Socket at %I
-PartOf=taler-exchange-httpd@%i.service
+Description=Taler Donau Socket at %I
+PartOf=taler-donau-httpd@%i.service
 
 [Socket]
 ListenStream=80
 Accept=no
-Service=taler-exchange-httpd@%i.service
-SocketUser=taler-exchange-httpd
+Service=taler-donau-httpd@%i.service
+SocketUser=taler-donau-httpd
 SocketGroup=www-data
 SocketMode=0660
 
diff --git a/debian/taler-exchange.taler-exchange-secmod-cs.service 
b/debian/taler-exchange.taler-exchange-secmod-cs.service
index 3b5e074..9a4d90f 100644
--- a/debian/taler-exchange.taler-exchange-secmod-cs.service
+++ b/debian/taler-exchange.taler-exchange-secmod-cs.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange CS security module
-AssertPathExists=/run/taler/exchange-secmod-cs
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau CS security module
+AssertPathExists=/run/taler/donau-secmod-cs
+PartOf=taler-donau.target
 
 [Service]
-User=taler-exchange-secmod-cs
+User=taler-donau-secmod-cs
 Type=simple
 Restart=always
 RestartSec=100ms
-ExecStart=/usr/bin/taler-exchange-secmod-cs -c /etc/taler/taler.conf
+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-exchange.slice
+Slice=taler-donau.slice
diff --git a/debian/taler-exchange.taler-exchange-secmod-eddsa.service 
b/debian/taler-exchange.taler-exchange-secmod-eddsa.service
index e8fba17..29fe967 100644
--- a/debian/taler-exchange.taler-exchange-secmod-eddsa.service
+++ b/debian/taler-exchange.taler-exchange-secmod-eddsa.service
@@ -1,19 +1,19 @@
 [Unit]
-Description=GNU Taler payment system exchange EdDSA security module
-AssertPathExists=/run/taler/exchange-secmod-eddsa
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau EdDSA security module
+AssertPathExists=/run/taler/donau-secmod-eddsa
+PartOf=taler-donau.target
 
 [Service]
-User=taler-exchange-secmod-eddsa
+User=taler-donau-secmod-eddsa
 Type=simple
 Restart=always
 RestartSec=100ms
-ExecStart=/usr/bin/taler-exchange-secmod-eddsa -c /etc/taler/taler.conf
+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-exchange.slice
+Slice=taler-donau.slice
 
diff --git a/debian/taler-exchange.taler-exchange-secmod-rsa.service 
b/debian/taler-exchange.taler-exchange-secmod-rsa.service
index 10a9585..2b7b3c4 100644
--- a/debian/taler-exchange.taler-exchange-secmod-rsa.service
+++ b/debian/taler-exchange.taler-exchange-secmod-rsa.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange RSA security module
-AssertPathExists=/run/taler/exchange-secmod-rsa
-PartOf=taler-exchange.target
+Description=GNU Taler payment system donau RSA security module
+AssertPathExists=/run/taler/donau-secmod-rsa
+PartOf=taler-donau.target
 
 [Service]
-User=taler-exchange-secmod-rsa
+User=taler-donau-secmod-rsa
 Type=simple
 Restart=always
 RestartSec=100ms
-ExecStart=/usr/bin/taler-exchange-secmod-rsa -c /etc/taler/taler.conf
+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-exchange.slice
+Slice=taler-donau.slice
diff --git a/debian/taler-exchange.taler-exchange-transfer.service 
b/debian/taler-exchange.taler-exchange-transfer.service
index e26af20..b28e377 100644
--- a/debian/taler-exchange.taler-exchange-transfer.service
+++ b/debian/taler-exchange.taler-exchange-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-wirewatch.service 
b/debian/taler-exchange.taler-exchange-wirewatch.service
index 7b74737..2bafc96 100644
--- a/debian/taler-exchange.taler-exchange-wirewatch.service
+++ b/debian/taler-exchange.taler-exchange-wirewatch.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange wirewatch service
+Description=GNU Taler payment system donau wirewatch 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
 RuntimeMaxSec=3600s
-ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf
+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
+Slice=taler-donau.slice
diff --git a/debian/taler-exchange.taler-exchange-wirewatch@.service 
b/debian/taler-exchange.taler-exchange-wirewatch@.service
index 85bb926..63554fd 100644
--- a/debian/taler-exchange.taler-exchange-wirewatch@.service
+++ b/debian/taler-exchange.taler-exchange-wirewatch@.service
@@ -1,18 +1,18 @@
 [Unit]
-Description=GNU Taler payment system exchange wirewatch service
+Description=GNU Taler payment system donau wirewatch service
 After=network.target
-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-wirewatch -c /etc/taler/taler.conf
+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
+Slice=taler-donau.slice
 RuntimeMaxSec=3600s
diff --git a/debian/taler-exchange.taler-exchange.slice 
b/debian/taler-exchange.taler-exchange.slice
index b5bb71e..6dede4d 100644
--- a/debian/taler-exchange.taler-exchange.slice
+++ b/debian/taler-exchange.taler-exchange.slice
@@ -1,7 +1,7 @@
 [Unit]
-Description=Slice for GNU taler exchange processes
+Description=Slice for GNU taler donau processes
 Before=slices.target
 
 [Slice]
-# Add settings that should affect all GNU Taler exchange
+# Add settings that should affect all GNU Taler donau
 # components here.
diff --git a/debian/taler-exchange.taler-exchange.target 
b/debian/taler-exchange.taler-exchange.target
index 65ec77c..d6df16b 100644
--- a/debian/taler-exchange.taler-exchange.target
+++ b/debian/taler-exchange.taler-exchange.target
@@ -1,13 +1,13 @@
 [Unit]
-Description=GNU Taler exchange
+Description=GNU Taler donau
 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
+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-exchange.tmpfiles b/debian/taler-exchange.tmpfiles
index c2a7965..52ed130 100644
--- a/debian/taler-exchange.tmpfiles
+++ b/debian/taler-exchange.tmpfiles
@@ -1,8 +1,8 @@
 #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  - -
+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/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-exchange.pot
index 6d05be5..514123c 100644
--- a/po/taler-exchange.pot
+++ b/po/taler-exchange.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/exchange-tools/.gitignore
index 69279d7..630c705 100644
--- a/src/exchange-tools/.gitignore
+++ b/src/exchange-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/exchange-tools/Makefile.am
index 9555445..9545d7b 100644
--- a/src/exchange-tools/Makefile.am
+++ b/src/exchange-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/exchange-offline.conf 
b/src/exchange-tools/exchange-offline.conf
index 020eb34..bdc68e1 100644
--- a/src/exchange-tools/exchange-offline.conf
+++ b/src/exchange-tools/exchange-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/exchange-tools/taler-exchange-dbinit.c
index d2cd22c..250cc7c 100644
--- a/src/exchange-tools/taler-exchange-dbinit.c
+++ b/src/exchange-tools/taler-exchange-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/exchange-tools/taler-exchange-offline.c
index fed2943..9ae4497 100644
--- a/src/exchange-tools/taler-exchange-offline.c
+++ b/src/exchange-tools/taler-exchange-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/exchange/.gitignore b/src/exchange/.gitignore
index bcfdb7e..1e98805 100644
--- a/src/exchange/.gitignore
+++ b/src/exchange/.gitignore
@@ -1,13 +1,13 @@
-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
+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/exchange/Makefile.am b/src/exchange/Makefile.am
index 607ea91..a6f5bae 100644
--- a/src/exchange/Makefile.am
+++ b/src/exchange/Makefile.am
@@ -12,185 +12,185 @@ endif
 pkgcfgdir = $(prefix)/share/taler/config.d/
 
 pkgcfg_DATA = \
-  exchange.conf
+  donau.conf
 
 # Programs
 bin_SCRIPTS = \
-  taler-exchange-kyc-aml-pep-trigger.sh
+  taler-donau-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 = \
+  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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -ljansson \
   -lgnunetcurl \
   -lgnunetutil \
   $(XLIB)
 
 
-taler_exchange_closer_SOURCES = \
-  taler-exchange-closer.c
-taler_exchange_closer_LDADD = \
+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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -ljansson \
   -lgnunetcurl \
   -lgnunetutil \
   $(XLIB)
 
-taler_exchange_drain_SOURCES = \
-  taler-exchange-drain.c
-taler_exchange_drain_LDADD = \
+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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -ljansson \
   -lgnunetcurl \
   -lgnunetutil \
   $(XLIB)
 
-taler_exchange_expire_SOURCES = \
-  taler-exchange-expire.c
-taler_exchange_expire_LDADD = \
+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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -ljansson \
   -lgnunetcurl \
   -lgnunetutil \
   $(XLIB)
 
-taler_exchange_router_SOURCES = \
-  taler-exchange-router.c
-taler_exchange_router_LDADD = \
+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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -ljansson \
   -lgnunetcurl \
   -lgnunetutil \
   $(XLIB)
 
-taler_exchange_transfer_SOURCES = \
-  taler-exchange-transfer.c
-taler_exchange_transfer_LDADD = \
+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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.la \
   -ljansson \
   -lgnunetcurl \
   -lgnunetutil \
   $(XLIB)
 
-taler_exchange_wirewatch_SOURCES = \
-  taler-exchange-wirewatch.c
-taler_exchange_wirewatch_LDADD = \
+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/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/donaudb/libtalerdonaudb.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 = \
+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/exchangedb/libtalerexchangedb.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 \
@@ -209,10 +209,10 @@ taler_exchange_httpd_LDADD = \
 AM_TESTS_ENVIRONMENT=export TALER_PREFIX=$${TALER_PREFIX:-@libdir@};export 
PATH=$${TALER_PREFIX:-@prefix@}/bin:$$PATH;
 
 check_SCRIPTS = \
-  test_taler_exchange_httpd.sh
+  test_taler_donau_httpd.sh
 if HAVE_EXPENSIVE_TESTS
 check_SCRIPTS += \
-  test_taler_exchange_httpd_afl.sh
+  test_taler_donau_httpd_afl.sh
 endif
 
 .NOTPARALLEL:
@@ -222,11 +222,11 @@ TESTS = \
 # 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 \
+  
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/exchange/exchange.conf
index f7387ce..12ee7ab 100644
--- a/src/exchange/exchange.conf
+++ b/src/exchange/exchange.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/exchange/taler-exchange-httpd.c
index 149c60c..d211074 100644
--- a/src/exchange/taler-exchange-httpd.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd.h
index 9e18f9e..397c2c2 100644
--- a/src/exchange/taler-exchange-httpd.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_batch-deposit.c
index 6bf70ef..e982bd9 100644
--- a/src/exchange/taler-exchange-httpd_batch-deposit.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_batch-deposit.h
index 187fb9f..dd17417 100644
--- a/src/exchange/taler-exchange-httpd_batch-deposit.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_batch-withdraw.c
index 38a7f43..4dd37a7 100644
--- a/src/exchange/taler-exchange-httpd_batch-withdraw.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_batch-withdraw.h
index dfc6e5a..d67808b 100644
--- a/src/exchange/taler-exchange-httpd_batch-withdraw.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_common_deposit.c
index 0c91f0b..e8fed71 100644
--- a/src/exchange/taler-exchange-httpd_common_deposit.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_common_deposit.h
index 10fd7e8..cf1b5f9 100644
--- a/src/exchange/taler-exchange-httpd_common_deposit.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_config.c
index da5bf96..9034d87 100644
--- a/src/exchange/taler-exchange-httpd_config.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_config.h
index ea45517..1c8f756 100644
--- a/src/exchange/taler-exchange-httpd_config.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_csr.c
index 64892d3..346648f 100644
--- a/src/exchange/taler-exchange-httpd_csr.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_csr.h
index 615255f..6c3427e 100644
--- a/src/exchange/taler-exchange-httpd_csr.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_db.c
index 5660074..04669f6 100644
--- a/src/exchange/taler-exchange-httpd_db.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_db.h
index 482bc59..0b4b561 100644
--- a/src/exchange/taler-exchange-httpd_db.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_deposits_get.c
index 818900c..bc7916d 100644
--- a/src/exchange/taler-exchange-httpd_deposits_get.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_deposits_get.h
index c7b1698..aff2de5 100644
--- a/src/exchange/taler-exchange-httpd_deposits_get.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_keys.c
index 2389a21..e5f8d09 100644
--- a/src/exchange/taler-exchange-httpd_keys.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_keys.h
index e170b97..af83ab8 100644
--- a/src/exchange/taler-exchange-httpd_keys.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_metrics.c
index 1542801..608a02a 100644
--- a/src/exchange/taler-exchange-httpd_metrics.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_metrics.h
index 318113c..528924a 100644
--- a/src/exchange/taler-exchange-httpd_metrics.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_mhd.c
index 8d07c3c..cb31704 100644
--- a/src/exchange/taler-exchange-httpd_mhd.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_mhd.h
index 563975b..69c4487 100644
--- a/src/exchange/taler-exchange-httpd_mhd.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_close.c
index bcde808..d1f64c6 100644
--- a/src/exchange/taler-exchange-httpd_reserves_close.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_close.h
index 4c70b17..77449ec 100644
--- a/src/exchange/taler-exchange-httpd_reserves_close.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_get.c
index bbaac85..835c2a8 100644
--- a/src/exchange/taler-exchange-httpd_reserves_get.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_get.h
index 30c6559..3fbcba2 100644
--- a/src/exchange/taler-exchange-httpd_reserves_get.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_history.c
index ffdc6ea..73d9a69 100644
--- a/src/exchange/taler-exchange-httpd_reserves_history.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_history.h
index e02cb4d..a7f9d2b 100644
--- a/src/exchange/taler-exchange-httpd_reserves_history.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_open.c
index 5048799..070edba 100644
--- a/src/exchange/taler-exchange-httpd_reserves_open.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_open.h
index e28c22c..007f889 100644
--- a/src/exchange/taler-exchange-httpd_reserves_open.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_status.c
index 4e7b4f4..bfb583a 100644
--- a/src/exchange/taler-exchange-httpd_reserves_status.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_reserves_status.h
index 831b270..88d892a 100644
--- a/src/exchange/taler-exchange-httpd_reserves_status.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_responses.c
index 7d2d7a9..0800d89 100644
--- a/src/exchange/taler-exchange-httpd_responses.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_responses.h
index a57fa49..0fab896 100644
--- a/src/exchange/taler-exchange-httpd_responses.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_terms.c
index 10114f1..aa10bc5 100644
--- a/src/exchange/taler-exchange-httpd_terms.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_terms.h
index 9815080..921c12d 100644
--- a/src/exchange/taler-exchange-httpd_terms.h
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_withdraw.c
index 07fcc84..e352196 100644
--- a/src/exchange/taler-exchange-httpd_withdraw.c
+++ b/src/exchange/taler-exchange-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/exchange/taler-exchange-httpd_withdraw.h
index 2ec76bb..8b7aed3 100644
--- a/src/exchange/taler-exchange-httpd_withdraw.h
+++ b/src/exchange/taler-exchange-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/exchange/test_taler_exchange_httpd.conf
index 80cf623..bf42305 100644
--- a/src/exchange/test_taler_exchange_httpd.conf
+++ b/src/exchange/test_taler_exchange_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/exchange/test_taler_exchange_httpd.sh
index 0fe71f3..a0f9e2a 100755
--- a/src/exchange/test_taler_exchange_httpd.sh
+++ b/src/exchange/test_taler_exchange_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/exchange/test_taler_exchange_unix.conf
index e96bfba..ac413fc 100644
--- a/src/exchange/test_taler_exchange_unix.conf
+++ b/src/exchange/test_taler_exchange_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/exchangedb/.gitignore b/src/exchangedb/.gitignore
index 6e67fad..c180575 100644
--- a/src/exchangedb/.gitignore
+++ b/src/exchangedb/.gitignore
@@ -1,16 +1,16 @@
-test-exchangedb-postgres
+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
-exchange-0002.sql
+donau-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
+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/exchangedb/0002-account_merges.sql
index 1ea9e92..d9947cd 100644
--- a/src/exchangedb/0002-account_merges.sql
+++ b/src/exchangedb/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/exchangedb/0002-batch_deposits.sql
index af0764a..4439845 100644
--- a/src/exchangedb/0002-batch_deposits.sql
+++ b/src/exchangedb/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/exchangedb/0002-coin_deposits.sql
index c3eef6e..2a0780b 100644
--- a/src/exchangedb/0002-coin_deposits.sql
+++ b/src/exchangedb/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/exchangedb/0002-cs_nonce_locks.sql
index 36c0c7a..d911371 100644
--- a/src/exchangedb/0002-cs_nonce_locks.sql
+++ b/src/exchangedb/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/exchangedb/0002-denomination_revocations.sql
index 96e13cd..e19c366 100644
--- a/src/exchangedb/0002-denomination_revocations.sql
+++ b/src/exchangedb/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/exchangedb/0002-denominations.sql
index a3de2b1..a5f2c2a 100644
--- a/src/exchangedb/0002-denominations.sql
+++ b/src/exchangedb/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/exchangedb/0002-exchange_sign_keys.sql
index d6acc6b..82aa244 100644
--- a/src/exchangedb/0002-exchange_sign_keys.sql
+++ b/src/exchangedb/0002-exchange_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/exchangedb/0002-known_coins.sql
index a13beff..bebf289 100644
--- a/src/exchangedb/0002-known_coins.sql
+++ b/src/exchangedb/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/exchangedb/0002-reserves.sql
index d710dd0..b6060dc 100644
--- a/src/exchangedb/0002-reserves.sql
+++ b/src/exchangedb/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/exchangedb/0002-reserves_in.sql
index 7fc2811..953ea63 100644
--- a/src/exchangedb/0002-reserves_in.sql
+++ b/src/exchangedb/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/exchangedb/0002-reserves_out.sql
index 7c5cf55..d2c67f9 100644
--- a/src/exchangedb/0002-reserves_out.sql
+++ b/src/exchangedb/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/exchangedb/0002-signkey_revocations.sql
index 37ab32c..181dc62 100644
--- a/src/exchangedb/0002-signkey_revocations.sql
+++ b/src/exchangedb/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/exchangedb/0002-wad_in_entries.sql
index 000f5c6..c023f20 100644
--- a/src/exchangedb/0002-wad_in_entries.sql
+++ b/src/exchangedb/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/exchangedb/0002-wad_out_entries.sql
index 8da0f04..20d43a8 100644
--- a/src/exchangedb/0002-wad_out_entries.sql
+++ b/src/exchangedb/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/exchangedb/0002-wads_in.sql
index 479589b..b45a1d2 100644
--- a/src/exchangedb/0002-wads_in.sql
+++ b/src/exchangedb/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/exchangedb/0002-wads_out.sql
index e52010e..a69546d 100644
--- a/src/exchangedb/0002-wads_out.sql
+++ b/src/exchangedb/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/exchangedb/Makefile.am
index 4ffc574..b2e0f98 100644
--- a/src/exchangedb/Makefile.am
+++ b/src/exchangedb/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/exchangedb/bench-db-postgres.conf
index d51cf91..870c5c4 100644
--- a/src/exchangedb/bench-db-postgres.conf
+++ b/src/exchangedb/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/exchangedb/benchmark-0001.sql
index 34fed6a..aaa0d5c 100644
--- a/src/exchangedb/benchmark-0001.sql
+++ b/src/exchangedb/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/drop.sql b/src/exchangedb/drop.sql
index ff383d7..749e0fa 100644
--- a/src/exchangedb/drop.sql
+++ b/src/exchangedb/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-0001.sql b/src/exchangedb/exchange-0001.sql
index a4b1c8b..27d95e4 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/exchangedb/exchange-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/exchangedb/exchange-0002.sql.in
index 9a810aa..bb835d1 100644
--- a/src/exchangedb/exchange-0002.sql.in
+++ b/src/exchangedb/exchange-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/exchangedb/exchange_do_account_merge.sql
index 723154f..5932fa4 100644
--- a/src/exchangedb/exchange_do_account_merge.sql
+++ b/src/exchangedb/exchange_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_batch_coin_known.sql 
b/src/exchangedb/exchange_do_batch_coin_known.sql
index db96cb0..ac9853c 100644
--- a/src/exchangedb/exchange_do_batch_coin_known.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_batch_reserves_update.sql
index ebb58a1..ad702fc 100644
--- a/src/exchangedb/exchange_do_batch_reserves_update.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_batch_withdraw.sql
index b896e04..4e18baf 100644
--- a/src/exchangedb/exchange_do_batch_withdraw.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_batch_withdraw_insert.sql
index d36181a..7803cc5 100644
--- a/src/exchangedb/exchange_do_batch_withdraw_insert.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_deposit.sql
index 1156c7d..1dbd269 100644
--- a/src/exchangedb/exchange_do_deposit.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_gc.sql
index 5758cb2..40badcd 100644
--- a/src/exchangedb/exchange_do_gc.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_reserves_in_insert.sql
index d2347bd..7ae7a31 100644
--- a/src/exchangedb/exchange_do_reserves_in_insert.sql
+++ b/src/exchangedb/exchange_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/exchangedb/exchange_do_withdraw.sql
index c25267b..cae3908 100644
--- a/src/exchangedb/exchange_do_withdraw.sql
+++ b/src/exchangedb/exchange_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/exchange_do_withdraw.sql~ 
b/src/exchangedb/exchange_do_withdraw.sql~
index 243ef98..7c30578 100644
--- a/src/exchangedb/exchange_do_withdraw.sql~
+++ b/src/exchangedb/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/exchangedb-postgres.conf 
b/src/exchangedb/exchangedb-postgres.conf
index e481940..daf9c47 100644
--- a/src/exchangedb/exchangedb-postgres.conf
+++ b/src/exchangedb/exchangedb-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/exchangedb/exchangedb.conf
index 2bfcb2c..663755e 100644
--- a/src/exchangedb/exchangedb.conf
+++ b/src/exchangedb/exchangedb.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/exchangedb/exchangedb_plugin.c
index 5dc41d9..ca148d8 100644
--- a/src/exchangedb/exchangedb_plugin.c
+++ b/src/exchangedb/exchangedb_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/exchangedb/exchangedb_transactions.c
index f783937..0487ed4 100644
--- a/src/exchangedb/exchangedb_transactions.c
+++ b/src/exchangedb/exchangedb_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/list.txt b/src/exchangedb/list.txt
index dc920f6..73b9a3b 100644
--- a/src/exchangedb/list.txt
+++ b/src/exchangedb/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/exchangedb/pg_activate_signing_key.c
index fab2a0f..f5a4bc4 100644
--- a/src/exchangedb/pg_activate_signing_key.c
+++ b/src/exchangedb/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/exchangedb/pg_activate_signing_key.h
index 2d4df06..26fe3bc 100644
--- a/src/exchangedb/pg_activate_signing_key.h
+++ b/src/exchangedb/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/exchangedb/pg_add_denomination_key.c
index eb50304..0453a07 100644
--- a/src/exchangedb/pg_add_denomination_key.c
+++ b/src/exchangedb/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/exchangedb/pg_add_denomination_key.h
index d131679..f2299eb 100644
--- a/src/exchangedb/pg_add_denomination_key.h
+++ b/src/exchangedb/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/exchangedb/pg_batch_ensure_coin_known.c
index e498130..e8e4a5c 100644
--- a/src/exchangedb/pg_batch_ensure_coin_known.c
+++ b/src/exchangedb/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/exchangedb/pg_batch_ensure_coin_known.h
index 2c53676..2ffb60e 100644
--- a/src/exchangedb/pg_batch_ensure_coin_known.h
+++ b/src/exchangedb/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/exchangedb/pg_commit.c
index 8c4f87c..76390bc 100644
--- a/src/exchangedb/pg_commit.c
+++ b/src/exchangedb/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/exchangedb/pg_commit.h
index b1f4f96..650d8d9 100644
--- a/src/exchangedb/pg_commit.h
+++ b/src/exchangedb/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/exchangedb/pg_count_known_coins.c
index 872965a..98e76b0 100644
--- a/src/exchangedb/pg_count_known_coins.c
+++ b/src/exchangedb/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/exchangedb/pg_count_known_coins.h
index 69f07bd..f5469b7 100644
--- a/src/exchangedb/pg_count_known_coins.h
+++ b/src/exchangedb/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/exchangedb/pg_create_tables.c
index 1d5728d..6745384 100644
--- a/src/exchangedb/pg_create_tables.c
+++ b/src/exchangedb/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/exchangedb/pg_create_tables.h
index 58f5aae..31ae9d2 100644
--- a/src/exchangedb/pg_create_tables.h
+++ b/src/exchangedb/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/exchangedb/pg_do_batch_withdraw.c
index f89f327..543e2f5 100644
--- a/src/exchangedb/pg_do_batch_withdraw.c
+++ b/src/exchangedb/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/exchangedb/pg_do_batch_withdraw.h
index d0b8657..ea769b5 100644
--- a/src/exchangedb/pg_do_batch_withdraw.h
+++ b/src/exchangedb/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/exchangedb/pg_do_batch_withdraw_insert.c
index b95a179..6259c94 100644
--- a/src/exchangedb/pg_do_batch_withdraw_insert.c
+++ b/src/exchangedb/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/exchangedb/pg_do_batch_withdraw_insert.h
index 6bc1a9a..826dc1e 100644
--- a/src/exchangedb/pg_do_batch_withdraw_insert.h
+++ b/src/exchangedb/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/exchangedb/pg_do_deposit.c
index 1e2d1c3..eaa5c04 100644
--- a/src/exchangedb/pg_do_deposit.c
+++ b/src/exchangedb/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/exchangedb/pg_do_deposit.h
index 449ec04..40258ef 100644
--- a/src/exchangedb/pg_do_deposit.h
+++ b/src/exchangedb/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/exchangedb/pg_do_withdraw.c
index e32afcd..1fa3221 100644
--- a/src/exchangedb/pg_do_withdraw.c
+++ b/src/exchangedb/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/exchangedb/pg_do_withdraw.h
index e771b1a..1e95100 100644
--- a/src/exchangedb/pg_do_withdraw.h
+++ b/src/exchangedb/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/exchangedb/pg_drop_tables.c
index 5585701..79b2a70 100644
--- a/src/exchangedb/pg_drop_tables.c
+++ b/src/exchangedb/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/exchangedb/pg_drop_tables.h
index 58729d5..d79c120 100644
--- a/src/exchangedb/pg_drop_tables.h
+++ b/src/exchangedb/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/exchangedb/pg_ensure_coin_known.c
index 952acf2..d973e03 100644
--- a/src/exchangedb/pg_ensure_coin_known.c
+++ b/src/exchangedb/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/exchangedb/pg_ensure_coin_known.h
index 68c1017..5194b0a 100644
--- a/src/exchangedb/pg_ensure_coin_known.h
+++ b/src/exchangedb/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/exchangedb/pg_event_listen.c
index 6e1d328..a20c0ab 100644
--- a/src/exchangedb/pg_event_listen.c
+++ b/src/exchangedb/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/exchangedb/pg_event_listen.h
index 7e1e83a..73e5497 100644
--- a/src/exchangedb/pg_event_listen.h
+++ b/src/exchangedb/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/exchangedb/pg_event_listen_cancel.c
index 9d77668..ca68e0d 100644
--- a/src/exchangedb/pg_event_listen_cancel.c
+++ b/src/exchangedb/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/exchangedb/pg_event_listen_cancel.h
index 258d7a5..f31e778 100644
--- a/src/exchangedb/pg_event_listen_cancel.h
+++ b/src/exchangedb/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/exchangedb/pg_event_notify.c
index 1888557..f9d7764 100644
--- a/src/exchangedb/pg_event_notify.c
+++ b/src/exchangedb/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/exchangedb/pg_event_notify.h
index 8506965..660fefe 100644
--- a/src/exchangedb/pg_event_notify.h
+++ b/src/exchangedb/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/exchangedb/pg_gc.c
index e01c1e1..02383fe 100644
--- a/src/exchangedb/pg_gc.c
+++ b/src/exchangedb/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/exchangedb/pg_gc.h
index 8035814..a6f32b2 100644
--- a/src/exchangedb/pg_gc.h
+++ b/src/exchangedb/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/exchangedb/pg_get_coin_denomination.c
index 9f9256f..6253d9f 100644
--- a/src/exchangedb/pg_get_coin_denomination.c
+++ b/src/exchangedb/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/exchangedb/pg_get_coin_denomination.h
index 3b9f03f..14977d5 100644
--- a/src/exchangedb/pg_get_coin_denomination.h
+++ b/src/exchangedb/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/exchangedb/pg_get_coin_transactions.c
index 5deb3fd..da43771 100644
--- a/src/exchangedb/pg_get_coin_transactions.c
+++ b/src/exchangedb/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/exchangedb/pg_get_coin_transactions.h
index c95fd09..d5e4556 100644
--- a/src/exchangedb/pg_get_coin_transactions.h
+++ b/src/exchangedb/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/exchangedb/pg_get_denomination_info.c
index 4bae297..289638a 100644
--- a/src/exchangedb/pg_get_denomination_info.c
+++ b/src/exchangedb/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/exchangedb/pg_get_denomination_info.h
index 8432277..69e4d70 100644
--- a/src/exchangedb/pg_get_denomination_info.h
+++ b/src/exchangedb/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/exchangedb/pg_get_denomination_revocation.c
index 5e7a3a3..29bdf54 100644
--- a/src/exchangedb/pg_get_denomination_revocation.c
+++ b/src/exchangedb/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/exchangedb/pg_get_denomination_revocation.h
index 5f7f272..ec4faf3 100644
--- a/src/exchangedb/pg_get_denomination_revocation.h
+++ b/src/exchangedb/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/exchangedb/pg_get_expired_reserves.c
index be9ece9..c7e0837 100644
--- a/src/exchangedb/pg_get_expired_reserves.c
+++ b/src/exchangedb/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/exchangedb/pg_get_expired_reserves.h
index 0874b53..dfac6dd 100644
--- a/src/exchangedb/pg_get_expired_reserves.h
+++ b/src/exchangedb/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/exchangedb/pg_get_known_coin.c
index bab48c1..e3d1c4e 100644
--- a/src/exchangedb/pg_get_known_coin.c
+++ b/src/exchangedb/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/exchangedb/pg_get_known_coin.h
index c34bd2a..dcbbc82 100644
--- a/src/exchangedb/pg_get_known_coin.h
+++ b/src/exchangedb/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/exchangedb/pg_get_ready_deposit.c
index d8344fa..140ede1 100644
--- a/src/exchangedb/pg_get_ready_deposit.c
+++ b/src/exchangedb/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/exchangedb/pg_get_ready_deposit.h
index b1dd7a9..7baa817 100644
--- a/src/exchangedb/pg_get_ready_deposit.h
+++ b/src/exchangedb/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/exchangedb/pg_get_reserve_balance.c
index 140bf3b..fcd2fb1 100644
--- a/src/exchangedb/pg_get_reserve_balance.c
+++ b/src/exchangedb/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/exchangedb/pg_get_reserve_balance.h
index 6dc88d9..7696769 100644
--- a/src/exchangedb/pg_get_reserve_balance.h
+++ b/src/exchangedb/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/exchangedb/pg_get_reserve_by_h_blind.c
index f87fe6c..cd6763b 100644
--- a/src/exchangedb/pg_get_reserve_by_h_blind.c
+++ b/src/exchangedb/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/exchangedb/pg_get_reserve_by_h_blind.h
index 49c1c84..3357fed 100644
--- a/src/exchangedb/pg_get_reserve_by_h_blind.h
+++ b/src/exchangedb/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/exchangedb/pg_get_withdraw_info.c
index e06fa37..ed22508 100644
--- a/src/exchangedb/pg_get_withdraw_info.c
+++ b/src/exchangedb/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/exchangedb/pg_get_withdraw_info.h
index 7c3e06a..5fe578b 100644
--- a/src/exchangedb/pg_get_withdraw_info.h
+++ b/src/exchangedb/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/exchangedb/pg_have_deposit2.c
index e00ad74..6f55cae 100644
--- a/src/exchangedb/pg_have_deposit2.c
+++ b/src/exchangedb/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/exchangedb/pg_have_deposit2.h
index 0e8119c..efcf171 100644
--- a/src/exchangedb/pg_have_deposit2.h
+++ b/src/exchangedb/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/exchangedb/pg_helper.h
index c63c911..dcf5b48 100644
--- a/src/exchangedb/pg_helper.h
+++ b/src/exchangedb/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/exchangedb/pg_insert_denomination_info.c
index 878bc5d..97764cc 100644
--- a/src/exchangedb/pg_insert_denomination_info.c
+++ b/src/exchangedb/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/exchangedb/pg_insert_denomination_info.h
index 663f45b..2f5e020 100644
--- a/src/exchangedb/pg_insert_denomination_info.h
+++ b/src/exchangedb/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/exchangedb/pg_insert_denomination_revocation.c
index 49445f2..b8017c9 100644
--- a/src/exchangedb/pg_insert_denomination_revocation.c
+++ b/src/exchangedb/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/exchangedb/pg_insert_denomination_revocation.h
index e3da876..08c738c 100644
--- a/src/exchangedb/pg_insert_denomination_revocation.h
+++ b/src/exchangedb/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/exchangedb/pg_insert_signkey_revocation.c
index 9197be6..a243593 100644
--- a/src/exchangedb/pg_insert_signkey_revocation.c
+++ b/src/exchangedb/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/exchangedb/pg_insert_signkey_revocation.h
index 534e6d4..9d67e42 100644
--- a/src/exchangedb/pg_insert_signkey_revocation.h
+++ b/src/exchangedb/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/exchangedb/pg_iterate_active_signkeys.c
index 9c280c9..9624e20 100644
--- a/src/exchangedb/pg_iterate_active_signkeys.c
+++ b/src/exchangedb/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/exchangedb/pg_iterate_active_signkeys.h
index 5ebba9f..c51c7f6 100644
--- a/src/exchangedb/pg_iterate_active_signkeys.h
+++ b/src/exchangedb/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/exchangedb/pg_iterate_denomination_info.c
index cab51d5..09734e1 100644
--- a/src/exchangedb/pg_iterate_denomination_info.c
+++ b/src/exchangedb/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/exchangedb/pg_iterate_denomination_info.h
index 27c08d0..a7fbc28 100644
--- a/src/exchangedb/pg_iterate_denomination_info.h
+++ b/src/exchangedb/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/exchangedb/pg_iterate_denominations.c
index 684aa16..38d569e 100644
--- a/src/exchangedb/pg_iterate_denominations.c
+++ b/src/exchangedb/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/exchangedb/pg_iterate_denominations.h
index 9f59fc8..d2e4a9f 100644
--- a/src/exchangedb/pg_iterate_denominations.h
+++ b/src/exchangedb/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/exchangedb/pg_lookup_denomination_key.c
index 20eb703..cbf8fc5 100644
--- a/src/exchangedb/pg_lookup_denomination_key.c
+++ b/src/exchangedb/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/exchangedb/pg_lookup_denomination_key.h
index b7317ac..e7ab873 100644
--- a/src/exchangedb/pg_lookup_denomination_key.h
+++ b/src/exchangedb/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/exchangedb/pg_lookup_signing_key.c
index 3803d11..1326087 100644
--- a/src/exchangedb/pg_lookup_signing_key.c
+++ b/src/exchangedb/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/exchangedb/pg_lookup_signing_key.h
index 487d60d..e3504ca 100644
--- a/src/exchangedb/pg_lookup_signing_key.h
+++ b/src/exchangedb/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/exchangedb/pg_lookup_signkey_revocation.c
index 056ecdd..4c5d36b 100644
--- a/src/exchangedb/pg_lookup_signkey_revocation.c
+++ b/src/exchangedb/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/exchangedb/pg_lookup_signkey_revocation.h
index de0fb1d..1290c40 100644
--- a/src/exchangedb/pg_lookup_signkey_revocation.h
+++ b/src/exchangedb/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/exchangedb/pg_preflight.c
index 4533c9a..f605fe2 100644
--- a/src/exchangedb/pg_preflight.c
+++ b/src/exchangedb/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/exchangedb/pg_preflight.h
index ba994f1..a9ff5c4 100644
--- a/src/exchangedb/pg_preflight.h
+++ b/src/exchangedb/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/exchangedb/pg_reserves_get.c
index cae4764..128cc2d 100644
--- a/src/exchangedb/pg_reserves_get.c
+++ b/src/exchangedb/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/exchangedb/pg_reserves_get.h
index 8a96d53..dfb8ef1 100644
--- a/src/exchangedb/pg_reserves_get.h
+++ b/src/exchangedb/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/exchangedb/pg_reserves_get_origin.c
index 55d3179..e9658bd 100644
--- a/src/exchangedb/pg_reserves_get_origin.c
+++ b/src/exchangedb/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/exchangedb/pg_reserves_get_origin.h
index 22085d8..3770f91 100644
--- a/src/exchangedb/pg_reserves_get_origin.h
+++ b/src/exchangedb/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/exchangedb/pg_reserves_in_insert.c
index 1b85404..fc7d371 100644
--- a/src/exchangedb/pg_reserves_in_insert.c
+++ b/src/exchangedb/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/exchangedb/pg_reserves_in_insert.h
index 938df3a..4176bb8 100644
--- a/src/exchangedb/pg_reserves_in_insert.h
+++ b/src/exchangedb/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/exchangedb/pg_reserves_update.c
index bfd32c6..4e34d7b 100644
--- a/src/exchangedb/pg_reserves_update.c
+++ b/src/exchangedb/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/exchangedb/pg_reserves_update.h
index 24cf671..c35e175 100644
--- a/src/exchangedb/pg_reserves_update.h
+++ b/src/exchangedb/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/exchangedb/pg_rollback.c
index 3610487..6cdc0ee 100644
--- a/src/exchangedb/pg_rollback.c
+++ b/src/exchangedb/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/exchangedb/pg_rollback.h
index ddb9e41..0a44f02 100644
--- a/src/exchangedb/pg_rollback.h
+++ b/src/exchangedb/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/exchangedb/pg_start.c
index de5d698..42ead4c 100644
--- a/src/exchangedb/pg_start.c
+++ b/src/exchangedb/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/exchangedb/pg_start.h
index 0a3bb9e..81c7ba0 100644
--- a/src/exchangedb/pg_start.h
+++ b/src/exchangedb/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/exchangedb/pg_start_read_committed.c
index 1c8248a..9bb9251 100644
--- a/src/exchangedb/pg_start_read_committed.c
+++ b/src/exchangedb/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/exchangedb/pg_start_read_committed.h
index 08b60e6..000878b 100644
--- a/src/exchangedb/pg_start_read_committed.h
+++ b/src/exchangedb/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/exchangedb/pg_start_read_only.c
index 741d94b..6cab851 100644
--- a/src/exchangedb/pg_start_read_only.c
+++ b/src/exchangedb/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/exchangedb/pg_start_read_only.h
index bf639c1..c176c6f 100644
--- a/src/exchangedb/pg_start_read_only.h
+++ b/src/exchangedb/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/exchangedb/pg_template.c
index 095d896..d5dc916 100644
--- a/src/exchangedb/pg_template.c
+++ b/src/exchangedb/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/exchangedb/pg_template.h
index 88bb930..a3d9113 100644
--- a/src/exchangedb/pg_template.h
+++ b/src/exchangedb/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/exchangedb/pg_template.sh
index 73bd7e9..e1aecf5 100755
--- a/src/exchangedb/pg_template.sh
+++ b/src/exchangedb/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/exchangedb/plugin_exchangedb_common.c
index 562710e..5d86e11 100644
--- a/src/exchangedb/plugin_exchangedb_common.c
+++ b/src/exchangedb/plugin_exchangedb_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/exchangedb/plugin_exchangedb_common.h
index 0355c44..a3bc1c1 100644
--- a/src/exchangedb/plugin_exchangedb_common.h
+++ b/src/exchangedb/plugin_exchangedb_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/exchangedb/plugin_exchangedb_postgres.c
index 067e859..d89f463 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_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/exchangedb/procedures.sql.in b/src/exchangedb/procedures.sql.in
index cc67249..0a3ae5e 100644
--- a/src/exchangedb/procedures.sql.in
+++ b/src/exchangedb/procedures.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,35 +16,35 @@
 
 BEGIN;
 
-SET search_path TO exchange;
+SET search_path TO donau;
 
-#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"
+#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/exchangedb/test_exchangedb.c
index 6e1d3a0..46cc9f7 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.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/exchangedb/versioning.sql
index 444cf95..1bf45c5 100644
--- a/src/exchangedb/versioning.sql
+++ b/src/exchangedb/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/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 s