Basically, the Bitcoin Cheque is a file promising that the its issuer will pay a certain amount to the holder.
Bitcoin Cheque is a file promising that its issuer will pay a certain amount of bitcoin to a receiver. The cheque can be used to transfer bitcoins between two persons or pay for online purchases. Assuming the receiver trusts the cheque and its issuer, this can facilitate instant payment.
Bitcoin Cheque shares many characteristics with the long-existing bank payment cheque, which is usually printed on paper. The cheque file format is standardized, so it can be read and processed by different parties. An image of the cheque can be generated, which can show as a file icon. The image can be embedded into the cheque file or linked externally.
Conditions can be added to the cheque to set constrain for who can receive its value. The condition can be set to a Bitcoin wallet address, an e-mail address or a Money Address. Bitcoin Cheque includes an expiration time. If it has not been claimed within that time, the cheque expires, and the bitcoins are returned to the user who draws it. The cheque can be signed so its authenticity can be verified by anybody having the issuers’ public key.
The Payment Cheque standard is based upon the following requirements and premises:
- The cheque must be able to hold any currency
- both as defined by ISO 4217;
- and commonly used by the crypto-currency com community.
- The cheque must be an item independent from the payment protocol
- It must be possible to store the cheque as a file for later usage.
- It must be possible to give the cheque to others by using the protocols outlined at Bitcoin Cheque project, or by sending the file by e-mails or other data transferring mechanisms, or by printing it on paper.
- The cheque data shall be stored in JSON format. The whole JSON structure shall be encoded in Base64, for easy data transmission. This will also allow a check file to be copied and pasted as text.
- The cheque shall have a Serial Number and Access Code. It shall be possible for a user to collect the cheque’s money from its issuing bank by knowing the cheque’s Serial Number and Access Code. (Provided that the bank offers such service.)
- The cheque file shall contain a hash calculation of its information.
- The cheque shall have a field for a bank to sign it using the bank’s private key. The sign shall be made from the hash.
- It shall be permitted and safe to give the cheque’s has, digital signature and its issuing bank URL address (so that the bank’s public key can be obtained) to the third party. Since the signature is made from the hash, the third party can verify the cheque. This way a third party can receive financial information without having the Access Key to steal the cheque’s money or knowing anything else about the payer, but what has voluntarily being sent by others.
- The cheque shall include a money-back feature. (A service that in practice will be offered by a bank.)
- Have the ability to be crossed, i.e. the cheque’s money can only be collected by the assigned receiver (This is currently being referred to as “Locked” in the texts and drafts of the standard.)
The latest version of the Bitcoin Cheque standard is located on GitHub: