Skip to content
Bitrequest edited this page Dec 16, 2022 · 12 revisions

Bitrequest: Accept crypto anywhere

Abstract. Over a decade after the creation of bitcoin there are still very few places accepting cryptocurrencies.
Nobody accepts crypto, because nobody pays with crypto. Nobody pays with crypto, because nobody accepts crypto.
This is known as the chicken and egg problem. The few places that accept cryptocurrencies often don't offer a very user friendly experience.
Bitrequest's goal is to take the egg out of the equation, by making the process of accepting cryptocurrencies as easy and user friendly as possible.

1. About

Bitrequest is an application for accepting cryptocurrencies.
The application generates payment requests which can be used as:

  • Point of sale
  • Shared with whatsapp, sms, email etc.
  • E-commerce checkouts

Cryptocurrencies currently supported are: Bitcoin, Litecoin, Dogecoin, Monero, Nano, Bitcoin-cash, Ethereum and Erc20-tokens.

Bitrequest was build as a non profit project by XpressZo with the goal for wider crypto adoption.
Donations are welcome.

Goals

  • Wider crypto adoption
  • Improving and maintaining bitrequest

2. Payment requests

Payment requests (bitrequests) consist of:

  • Cryptocurrency address input
  • Amount input (in fiat or crypto)
  • URI (Uniform Resource Identifier)
  • QR-code (Encoded URI)

Amounts in fiat are converted to the equivalent in crypto in real time.
The QR-code is an encoded URI consisting of app-protocol, address and amount and can be scanned by most crypto wallet apps. Opening the URI or scanning the QR-code with a crypto wallet will autofill the wallets send dialog with the corresponding address and amount (if supported).

3. Request feedback (notifications)

When the QR-code is visible, a websocket connection is opened in the background that listens for incoming transactions on the request address. When incoming transactions are detected, the request status will change to 'paid' or 'pending', depending on the number of selected confirmations. This will make it clear for Point of Sale requests when a payment is received as the request dialog shows instant feedback.

4. Sharing requests

Each request has a unique URL which can be shared with whatsapp, sms, email etc.
Bitrequest has a build in share function which opens your device 'share' dialog and automatically shortens the URL (optional).

5. Crypto addresses

Addresses can be added;

  • Manually
  • Derived from Bip39 12-word secret phrase
  • Derived from Bip32 Xpub

Multiple addresses can be added per cryptocurrency.
Priority can be set by dragging addresses higher to the top or you can select randomly.

6. Request overview and status

Bitrequest saves all shared and received requests and monitors its status by scanning the blockchain.

7. Settings

7.1 Account name

Set your name or company name. A recipient of your request will see this name on his request.

7.2 Contact form

When bitrequest is integrated in a webshop, this form can be used to provide billing / shipping information.

7.3 Local fiat currency

Set your countries local currency or one of 170 world currencies.

7.4 Cryptocurrency price API

Choose where bitrequest gets it's crypto Exchange rates from:

7.5 Fiat price API

Choose where bitrequest gets it's fiat Exchange rates from:

7.6 Url shortener

When sharing a request, request urls get shortened by default:

Or turn off url shortening. Please take a look at Bitrequest's Privacy policy.

7.7 Backup

Bitrequest saves all your data on your device. When you clear your device storage all data will be lost. Bitrequest gives frequent reminders to backup your data. This can be done by downloading a backup file (json format) or by logging in with your google account. Backups wil be done to your google drive account on every change made in your app. Please take a look at Bitrequest's Privacy policy.

7.8 Restore from Backup

Restore your data from a previous backup or import your data from a different device.

7.9 Security

Someone with access to your device could potentially change your stored addresses or look into request details. You can prevent this by entering a pinlock in the app settings. The app will ask for a pincode when entering your admin area.

7.10 API Proxys

See 8.1

7.11 API keys

Enter your API keys here. By default bitrequest's api keys are used. These are all free API keys which can reach their limits if bitrequest get's used a lot. Bitrequest will stop working properly. By providing your own api keys limits are reduced to your own usage.

7.12 Cache control / updates

Check for updates or clear your appdata.

8. Technical details

Bitrequest a is a Progressive web application (PWA).
98% of the code runs in the client (webbrowser).
Programming language is javascript / jquery.
The source code is 100% open-source and can be downloaded from github.
When downloaded it can run on your desktop by double clicking index.html

  • 8.1 API Proxy
  • 8.2 API keys
  • 8.3 Confirmations
  • 8.4 Get historical exchange rates
  • 8.5 Connect to a (remote) node
  • 8.6. Webshop integration

8.1 API Proxy

There's a small amount of php for caching / proxying api calls which has to run on a server: https://github.com/bitrequest/bitrequest.github.io/tree/master/api.

API calls are proxied by default through app.bitrequest.io. This is done so the app can be used out of the box without applying for API keys yourself. If you have the code running on your own server you can use that as a proxy instead. In that case, you will have to set the host in the config-file and provide your own API keys. API keys can also be entered in the apps setting page. Using your own API keys gives you more control and prevents API limits being reached if the app gets used by lots of people.

8.2 API keys

All API keys are configured in the config file and run on the official online webapp: app.bitrequest.io.
They are left blank in the github repository to prevent them from being used for other applications than bitrequest.

8.3 Permissions

Limit your app access with readonly permissions by choosing cashier.

8.4 Team invite

Invite team members (staff, employees etc.) to make requests on your behalf.
This will install Bitrequest on your team member's device, pre-installed with your public keys and restricted access (cashier).
Your team members are unable to access funds or make changes.

9. Coin settings

9.1 Confirmations

For Proof of work coins like Bitcoin, you can set a minimum of confirmations before a request's status gets confirmed to 'paid'. This is more secure for larger payments. For smaller payments like coffee, you might consider going for 0 confirmations, which will give you instant confirmations with a small risk for double spends.

9.2 Connect to a (remote) node

In currency settings you can enter the address of your remote or local node. Transactions will be scanned by your own node instead of public API's.

10. General features

10.1 Get historical exchange rates

When a request is sent to someone in fiat currency, the time between sending and the time of payment has most probably passed significantly enough for substantial price fluctuations, considering the volatile nature of crypto markets.
To check if an incoming payment matches the initial fiat amount, bitrequest uses external API's to lookup the historical exchange-rate during the time the payment was sent and checks if the amount received in fiat during that time matches the original request amount.

10.2. Webshop integration

Bitrequest can also be used as a checkout for e-commerce websites.
Documentation and resources can be found here: https://github.com/bitrequest/webshop-integration.
A working demo can be found here: https://www.bitrequest.io/brewery/.

11. Native apps (IOS and Android)

Bitrequest is available for IOS in the appstore and for android on google play.
These 'native apps' are 'wrappers' for the PWA (Progressive Web Application) bitrequest.github.io and facilitate a more uniform workflow since web applications are heavily dependent on the type of webbrowser.

12. Privacy / Disclaimer

Privacy / Disclaimer

13. Terms and conditions

Terms and conditions