View on GitHub

Whiteflag API

Reference implementation of the Whiteflag protocol as a web API in Node.js to connect applications with the underlying blockchains

Whiteflag API Connector for Bitcoin

The Whiteflag API natively supports the Bitcoin blockchain.


Note that Bitcoin lacks the concept of an account, whereas Whiteflag assumes an identifiable originator that has an account on a blockchain. Such a blockchain account is nothing else than a key pair for signing blockchain transactions, with some related information, e.g. an address, balance etc. Therefore, what the API calls an account is nothing else than what sometimes is referred to as a “wallet”.

For the purposes of (testing) Whiteflag, the same account, i.e. Bitcoin address, is reused. This is not a good practice for several reasons, such as anonimity. However, for Whiteflag it is necessary that different transactions can be linked to the same originator. Therefore, it is strongly recommended NOT to use the Whiteflag account for anything else, such as payments or transfers.

Bitcoin configuration

The blockchains configuration file config/blockchains.toml should contain the Bitcoin specific parameters in one of its [[blockchains]] sections.

These parameters manage Bitcoin blockchain accounts (i.e. wallets):

For retrieving transactions containing Whiteflag messages from the blockchain, these parameters may be provided, otherwise default values are used:

To send and receive Whiteflag messages, the API must be connected to a Bitcoin node exposing the standard Bitcoin RPC interface. These parameters are used to configure the connection: