Miner ID and Merchant API beta release
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.
Merchant API provides two critical services to enable application and wallet developers to use the Bitcoin network more efficiently:
- 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.
- 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.
- User based fee policies to enable different fee structures for different use cases.
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:
- Service advertising for Merchant API REST endpoints.
- Provision of identities for signing Merchant API responses.
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.
The draft specifications are in BRFC format and can be found here:
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 can be found here:
Scaling test network
For application developers that would like to test against the Merchant API a test instance is currently available.
Block explorer: https://stn.whatsonchain.com/
Faucet: : https://faucet.bitcoinscaling.io/
Mempool have made available a mainnet instance of Merchant API for developer testing.
Example endpoint: https://www.ddpurse.com/openapi/mapi/feeQuote
In order to use this endpoint you will need to add the HTTP header:
More Merchant API instances on mainnet are expected to be up and running soon.
For support and general discussion of both standards and reference implementations please join the following telegram group: https://t.me/joinchat/JB6ZzktqwaiJX_5lzQpQIA
Further features are planned for both services.
Work has already begun on phases 2 and 3 of Merchant API with a view to adding the following features:
- Enabling callbacks for Merkle proofs and double spend notifications.
- An underlying messaging system is under development to solve the problem of offline communications which is a dependency for this feature.
- 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.
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:
- Publication of further policies and default fee specifications
- Miner communication where miners can communicate with each other or with the public with proof of their mining history
- Certification of statements of truth by collecting statements from numerous Miner IDs and aggregating total hash power backing the statement
- Double spend notifications backed by miner reputation
- Authentication mechanism for access to miner exclusive services e.g. Streaming block template protocol.