Bitcoin SV Miner ID and Merchant API beta release

By Press Release Published: April 3, 2020
miner-id-and-merchant-api-beta-release

Background

As the Bitcoin SV network continues its evolution toward the structural model described by Satoshi Nakamoto, new tools are emerging to support that change. As a part of the drive toward a safer instant transaction paradigm, the Miner ID and Merchant API projects have been discussed extensively.

These projects have been in private beta testing and are now being released as a public beta and entering a public review process in the form of an RFC release.

Services

Merchant API

Merchant API provides two critical services to enable application and wallet developers to use the Bitcoin network more efficiently:

1. Fee discovery: This service enables parties creating transactions to know in advance what fee levels are required to guarantee the necessary service level from miners. This is a critical service to enable a dynamic and floating real time fee market to emerge.

2. Direct transaction submission: This allows users to bypass the outer layers of the Bitcoin peer-to-peer network and submit transactions directly to miners. This avoids many of the propagation issues that arise in an environment where node policies are dynamically and competitively shifting.

3. User based fee policies to enable different fee structures for different use cases.

Miner ID

Miner ID is a mechanism for miners to securely take ownership of their identity and reputation backed by their own proof of work. It has many applications beyond the initial use cases presented in our first version and is designed to be extensible.

Initial use cases for Miner ID include:

1. Service advertising for Merchant API REST endpoints.

2. Provision of identities for signing Merchant API responses.

RFC phase

It is intended that standards for both Merchant API and Miner ID will be passed through the Bitcoin Association’ Technical Standards Committee (TSC) process, as soon as that is up and running. For expediency though, the proposed standards are being released now for public review.

Both API standards are on Github and we request that feedback be directed through the Github issue system.

Specifications

The draft specifications are in BRFC format and can be found here:

1. https://github.com/bitcoin-sv-specs/brfc-merchantapi

2. https://github.com/bitcoin-sv-specs/brfc-minerid

3. https://github.com/bitcoin-sv-specs/brfc-misc

The `misc` repository is for common specifications that have use cases outside of Merchant API and Miner ID. For example the fee spec standard will be proposed for adoption as a general standard for describing fees and will likely be proposed to be used in BIP270.

To offer feedback, please use the Github issue system for the respective standard repositories.

Reference implementations

Reference implementations can be found here:

4. https://github.com/bitcoin-sv/merchantapi-reference

5. https://github.com/bitcoin-sv/minerid-reference

Endpoints

Scaling test network
For application developers that would like to test against the Merchant API a test instance is currently available.
MAPI: https://galt.bitcoinscaling.io:9004/mapi/feeQuote
Block explorer: https://stn.whatsonchain.com/
Faucet: https://faucet.bitcoinscaling.io/

Mainnet
Mempool has made available a mainnet instance of Merchant API for developer testing.
Documentation: https://developers.dotwallet.com/en/dev/api/merchant
Example endpoint: https://www.ddpurse.com/openapi/mapi/feeQuote

In order to use this endpoint you will need to add the HTTP header:

token: 561b756d12572020ea9a104c3441b71790acbbce95a6ddbf7e0630971af9424b

More Merchant API instances on mainnet are expected to be up and running soon.

Contacts

For support and general discussion of both standards and reference implementations please join the following telegram group: https://t.me/joinchat/JB6ZzktqwaiJX_5lzQpQIA

Roadmaps

Further features are planned for both services.

Merchant API

Work has already begun on phases 2 and 3 of Merchant API with a view to adding the following features:

1. Enabling callbacks for Merkle proofs and double spend notifications.

a. An underlying messaging system is under development to solve the problem of offline communications which is a dependency for this feature.

2. Aggregator service that can act as an intermediary between merchant and many miners to provide fee aggregations services and dedicated distribution of transactions where required.

Miner ID

Use cases for Miner ID are implemented both as extensions to the protocol defining content of the coinbase document, along with uses of the actual ID in other contexts. Some examples include:

1. Publication of further policies and default fee specifications

2. Miner communication where miners can communicate with each other or with the public with proof of their mining history

3. Certification of statements of truth by collecting statements from numerous Miner IDs and aggregating total hash power backing the statement

4. Double spend notifications backed by miner reputation

5. Authentication mechanism for access to miner exclusive services e.g. Streaming block template protocol.