• Stars
    star
    161
  • Rank 233,470 (Top 5 %)
  • Language
    C#
  • License
    MIT License
  • Created about 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sign with software or hardware wallets

NuGet Build status

BTCPayServer.Vault

This project is composed of two parts:

The video below explains how to use BTCPay Vault with BTCPay Server.

Why BTCPayServer Vault

BTCPayServer Vault allows web applications to access your hardware wallet, this enables a better integrated user experience.

How to install

Direct download

The binaries are on our release page.

Via brew (macOS only)

You can use brew:

brew install btcpayserver-vault

How does BTCPayServer Vault work

When running the BTCPayServer Vault, a local webserver is hosted on http://127.0.0.1:65092 which web applications, via your local browser, can connect to in order to interact with your hardware wallet.

The protocol is fairly simple:

First, the web application needs to make a permission request to the Vault by sending a HTTP request GET to http://127.0.0.1:65092/hwi-bridge/v1/request-permission

This will prompt the user to grant access to the web application and if the user accepts, the request returns HTTP 200. Note that internally, the Vault relies on the ORIGIN HTTP header to identify the web application requesting access. If the access was granted previously, the request returns HTTP 200.

Second, the web application can query the hardware through POST requests to http://127.0.0.1:65092/hwi-bridge/v1.

{
    "params": [ "param1", "param2" ]
}

Those parameters are then passed as-is to hwi and the result is returned as a string.

NuGet

Is it safe?

Hardware wallets have been created to protect your money, even if your computer was compromised.

However, while it protects your money, it will not protect your privacy if you allow an untrusted application to access your public keys. This is why BTCPayServer Vault always ask permission to user first before allowing any web application to access your hardware wallet.

How to build?

This is a two step process:

  1. Install the latest version of the .NET Core 6.0 SDK
  2. Run dotnet build

If you want to run it for testing:

cd BTCPayServer.Vault
dotnet run

Documentation

Video below explains how to use BTCPay Vault with BTCPay Server.

Licence

This project is under MIT License.

Special thanks

Special thanks to Wasabi Wallet, this code is based on their work, and as well to the bitcoin developers and achow101 for the HWI Project.

More Repositories

1

btcpayserver

Accept Bitcoin payments. Free, open-source & self-hosted, Bitcoin payment processor.
C#
6,371
star
2

btcpayserver-docker

Docker resources for hosting BTCPayServer easily
Shell
575
star
3

btcpayserver-doc

BTCPay Server Official Documentation
Shell
378
star
4

BTCPayServer.Lightning

Client library for lightning network implementations to build Lightning Network Apps in C#.
C#
96
star
5

node-btcpay

BTCPay NodeJS client
TypeScript
84
star
6

btcpay-python

Python client for the BTCPay API.
Python
81
star
7

btcTransmuter

A self-hosted ,modular IFTTT-inspired system for bitcoin services written in C#
C#
80
star
8

woocommerce-plugin

Plugin for connecting Woocommerce with BTCPayServer
PHP
51
star
9

btcpayserver.org

BTCPay Server Official Website Repository
CSS
41
star
10

directory.btcpayserver.org

BTCPay Server Directory - Merchants, Projects & Charities accepting Bitcoin
JavaScript
32
star
11

btcpayserver-php-client

PHP implementation for the BTCPayServer cryptographically secure RESTful API
PHP
30
star
12

dockerfile-deps

Repository hosting some Dockerfile used for external dependencies
Dockerfile
28
star
13

btcpayserver-greenfield-php

PHP
28
star
14

btcpayserver-design

BTCPay Server Design System
CSS
23
star
15

whmcs-plugin

WHMCS plugin for BTCPay
PHP
22
star
16

btcpayserver-plugins

A repository storing verified BTCPay Server Plugins.
AGS Script
19
star
17

organization

Open-organization, meetings, calendars, project management
17
star
18

woocommerce-greenfield-plugin

BTCPay Server for WooCommerce V2 plugin.
PHP
16
star
19

prestashop-plugin

Prestashop module for BTCPay Server payment integration
PHP
15
star
20

btcpayserver-googlecloud

Instructions to deploy BTCPay Server with a Google Cloud account
PowerShell
15
star
21

btcpayserver-infra

The docker compose running several services for the BTCPay Server community
Shell
14
star
22

btcpayserver-plugin-template

A template for your own BTCPay Server plugin.
C#
14
star
23

blog

BTCPay Server Official Blog
Stylus
13
star
24

php-bitpay-client

PHP implementation for the BitPay cryptographically secure RESTful API
PHP
13
star
25

zapier

BTCPay Server Zapier Integration
JavaScript
13
star
26

btcpayserver-configurator

An easy UI to configure new and existing BTCPay deployments.
CSS
12
star
27

btcpayserver-azure

Instructions to deploy BTCPay Server with an Microsoft Azure account
Shell
11
star
28

commerce_btcpay

BTCPay server plugin for Drupal Commerce 2.x
PHP
9
star
29

prestashop-plugin-legacy

Prestashop plugin for BTCPay Server
PHP
9
star
30

BTCPayServer.BIP78

a BIP78 Payjoin implemention in C# for both sender and receiver.
C#
7
star
31

btcpayserver-media

Media asset for BTCPayServer
7
star
32

btcpayserver-plugin-builder

A server building plugins for BTCPay Server
C#
6
star
33

app

C#
6
star
34

BTCPayServer.BoltCardTools

C#
6
star
35

xenforo

PHP
5
star
36

magento2-plugin

PHP
5
star
37

odoo

BTCPay Server addon for Odoo
Python
5
star
38

docker-compose-builder

Repository building docker-compose images
Dockerfile
4
star
39

foundation.btcpayserver.org

The official website of the BTCPay Server Foundation
CSS
4
star
40

docker-woocommerce

Archived and moved to the https://github.com/btcpayserver/dockerfile-deps repo. A wordpress image with woocommerce and BTCPayServer plugin pre-installed.
Shell
4
star
41

grandnode

BTCPay plugin for GrandNode
C#
3
star
42

opencart

OpenCart payment extension for BTCPay Server.
PHP
3
star
43

ledgerwebsocket

A websocket bridge to connect transport U2F of ledger to a wallet
TypeScript
3
star
44

nopcommerce

C#
2
star
45

btcpayserverslackbot

C#
1
star
46

db-doc-generator

Shell
1
star
47

joomla-virtuemart

Joomla Virtuemart 3 Integration
PHP
1
star
48

btcpayserver-installer

Because I felt like I had enough time to create another side project
Vue
1
star