This project is still under development and not yet recommended for production. Use it with caution!
Promise is a self hosted bitcoin wallet for sending and recieving bitcoins. If you want to build a custodial bitcoin wallet for sending and recieving bitcoin, you can fork this code and self host.
- Account creation (name and email)
- Passwordless login (email)
- Wallet creation
- Send / Recieve (onchain and between internal ledgers)
- Transaction history
- Account updates
- Self Hosted
- No Bitcoin Node required
- Native APIs
The following softwares and services are required to run this projects.
- PHP 8.0 and above
- MySQL or MariaDb database
- Tatum API Keys
- MailGun API Keys
- Download or clone this repo
- Open your terminal and run
composer install
- Create the neccessary database tables by executing the file
database/tables.sql
- Rename the
.env-example
file to.env
and input your database info and other config details - Within your terminal, navigate to
/app
- Start up a PHP server
php -S localhost:5000
- Test run on POSTMAN
We don't like to remember passwords. Passwords are predicatable. This wallet provides an endpoint to authenticate users via email. When a you input an email to the /auth/new-token
endpoint, a code will be sent to your email to verify. Once your verification is successfull, you are granted access. No need to remember or save passwords and someone has to gain access to your email account to have access to your funds.
Emails are sent via MailGun email service, so you will need to create a MailGun account and add your keys to the configuration file.
This wallet is powered by Tatum API. Tatum API is a blockchain infastructure service that provide API for building Bitcoin wallets. You will need to create a Tatum account, get your API keys, and input them in the configuration file.
If you run into an issue, kindly open an issue. If you need custom or extensive support self hosting this project you can message me on Twitter or Telegram.
This project is currently on Beta and not yet recommended for production.