Background
As the BSV blockchain 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:
- 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
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.
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:
- https://github.com/bitcoin-sv-specs/brfc-merchantapi
- https://github.com/bitcoin-sv-specs/brfc-minerid
- 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:
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 have 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:
- 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.
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:
- 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.