Bitcoin Goods Trading Protocol (BGP v1.0) Whitepaper About Introduction Bitcoin Goods Trading Protocol (BGP) is a Bitcoin blockchain-based goods trading protocol, which aims to realize the creation, production, gifting, and trading flow of virtual and physical goods through the Bitcoin blockchain. The protocol adopts the Ordinals theory of the Bitcoin blockchain and introduces the concept of Goods collections, which defines relevant information and transaction rules for the standard goods in each Goods collection. Please note that BGP is an experimental protocol, described below as BGP-10 (BGP v1.0). Before using this protocol, please read and understand everything carefully and be aware of the possible risks involved. We do not assume any legal responsibility for any problems that may arise from the use of this protocol.The BGP protocol is under free and open copyright, and any individual or organization is free to use, develop and improve the BGP protocol. This idea originated from discussions in the aWSB (@awsbclub_cn) community and the MeshBeatles (@meshbeatles) community on Twitter Spaces, and it was also inspired by the Unisat Wallet project.For BGP inquiries or feedback, DM Twitter: @bitflowers. Thank you! The creation of BGP has three main reasons o Paying tribute to Satoshi Nakamoto and deepening the spirit of Satoshi Nakamoto. o Looking forward to the close integration of the Bitcoin blockchain with real-world business activities, let's have a dialectical discussion on the interdependence between decentralization and centralization. o By leveraging the widespread application of Ordinals theory, the BGP protocol aims to stimulate creators' motivation to participate in a new mode of production, protecting the rights and benefits of creators in the long term through cryptographic techniques. The concept of BGP o Accept the UTF-8 character encoding standard and do not accept homographic characters. In BGP, it is assumed that full access to the ordinal data structure is possible, which includes basic details (such as content type, ID) and the content itself. o Validate that the recorded content type is one of the following: text/plain application/json Extract the original text content to be the content of the record. o Deploy new BGP goods collection contracts by deploying events. Increase or decrease the index of goods by importing or removing events, and determine the rules for the distribution of rights and interests of beneficiaries in commodity transactions. It should be noted that any Ordinals inscription that implements the deployment of BGP operations can be considered as an instance of the BGP goods collection contract, owned or controlled by the deployer. However, please be aware that BGP-10 is experimental, and the deployer has complete discretion over the availability or inherent value of BGP goods collection contracts and Ordinals inscriptions created using the BGP protocol. You can quickly get started with BGP-10 by performing deployments, importing events, and so on. BGP Spec 1.Deploy BGP-10 Goods Collection Contract Before you can use the BGP-10 protocol, you need to deploy it. Anyone, whether an individual or Project party, can deploy the BGP goods collection contract. By inscribing a deployment event, you can deploy the BGP goods collection contract. The deployer must declare ownership of the BGP goods collection contract, otherwise it will be controlled by the owner's wallet address. Allowed key value is: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Name |Key |Required |Description +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Protocol |P |yes |Protocol: "BGP-10". +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Operation |Op |yes |Specify the type of event, for here: deploy. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ticker |Tick |yes |Equivalent to the contract name, the name registered first is the only valid one. The symbol for BGP must be 3-16 characters in size, case insensitive, and should not include spaces. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Brand name |Brand |no |limited to 40 characters in size. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Collection Owner's Address |COA |no |The Bitcoin wallet address or Bitcoin blockchain-supported domain of the designated contract owner.If left blank, it defaults to the holder of the contract's inscription. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Description |Des |no |limited to 200 characters in size. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example of a new BGP-10 with defaults: Deploy a BGP-10 contract named 'bitflowers'. { "p":"BGP-10", "op":"deploy", "tick":"bitflowers", "Brand":"BitFlowers", "COA":"Oldmoney.sats", "Des":"Bitflowers were minted on Bitcoin Block 9, making them the first standard goods of the BGP protocol. They include the oldest and rarest Bitcoin personally mined by Nakamoto. Each flower is an artist's masterpiece and will exist forever." } To register a new goods collection contract in the BGP protocol, simply perform a deployment with a record containing the desired name. Here, "bitflowers" is an example and the first BGP contract. 2.Import and Remove Standard Goods Index A standard goods index refers to the specific content within a collection of goods, which is used to index and collect information such as Inscription ID, creator information, and transaction fee rates for all standard goods within the goods collection. It should be created by the owner of the goods collection to be valid. By inscribing an import or remove event of a BGP-10 protocol, you initialize or remove an inscription as proof of ownership for the original goods creator. The allowed key values are: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Name |Key |Required |Description +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Protocol |P |yes |Protocol: "BGP-10" +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Operation |Op |yes |Specify the type of event, for here: import,remove +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Collection of Goods Inscription IDs |CID |yes |Inscription ID for "BGP-10" Protocol Compliance using Ordinals Theory. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Standard Goods Inscription ID |SID |yes |Original File Ordinals Inscription ID created by the creator, encompassing the display of goods' appearance or features. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Standard goods name |SGN |yes |Please provide a string, ranging from 2 to 15 characters in length. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Holders Revenue Share Fee |HFee |no |Percentage or a specific amount in satoshis (e.g., 200sats). +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Creator Revenue Share Fee |CFee |no |Percentage or a specific amount in satoshis (e.g., 200sats). +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Creator Name |CN |no |limited to 15 characters in size. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Creator Email |CE |no |Please enter a valid email address, for example: example@example.com. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Creator's Twitter handle |CTH |no |Please provide a valid Twitter handle,For example:@bitflowers. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Creator's Bitcoin Wallet Address |CBW |no |Supports Bitcoin wallet addresses. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Form of Goods |FOG |yes |Please use "V" to represent virtual goods and "P" to represent physical goods,choose one option. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Description |Des |no |limited to 200 characters in size. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ example of an import event: { "p": "BGP-10", "op": "import", "CID": "", "SID": "", "SGN": "BitFlowers#1", "HFee": "2000 sats", "CFee": "2000 sats", "CN": "", "CE": "", "CTw": "", "CBW": "", "FOG": "V", "Des": "" } example of a remove event: { "p": "BGP-10", "op": "remove", "CID": "", "SID": "" } 3.Regarding standard goods and rules for the distribution of rights and benefits Standard goods are created by creators and contain Ordinals inscriptions, which display the appearance or characteristics of the goods. Creators can set encrypted content in the inscriptions and control them through cryptography. During the minting process, it is encouraged to add unusual sat elements to increase the uniqueness of standard goods. The inscription IDs of standard goods can only be imported or removed from the BGP goods collection contracts by the owners of the BGP goods collection. The Ordinals inscriptions of standard goods can be freely traded without any restrictions.The holders of Ordinals inscriptions of standard goods and creators can receive a certain proportion of recursive call fees as dividends according to the provisions of the BGP goods collection contract.These rights and obligations need legal protection, and it is recommended for the Bitcoin Core Development Group to include them in the Ordinal theory. This means that when the Ordinals inscriptions of standard goods are traded or recursive events occur, copyright protection and beneficiary interest distribution can be achieved through the allocation of miners' fees on the Bitcoin blockchain to protect the interests of investors and creators. 4.Virtual Goods Transaction Process Buyers can select their desired Standard goods Ordinals Inscription as material and generate a to-be-minted inscription through a recursive method. The buyers will purchase it as a new virtual goods. The generated order will go through the payment process, with the option to pay using Bitcoin, other cryptocurrencies, or traditional financial payment methods. Order information should include: o Recipient's wallet address (optional): Specifies the Bitcoin Taproot wallet address of the recipient. o Recipient's social media handle (optional): Specifies the social media handle of the person receiving the virtual goods. o Recipient's email (Provide either the recipient's social media handle or email address, at least one of them): Used for better communication with the recipient. o Order amount: The transaction price is denominated in sats units and simultaneously converted into the equivalent amount in US dollars or other currencies. 5.Physical Goods Trading Process Buyer selects a Standard goods inscription as source material and recursively generates a souvenir inscription with the physical goods' pattern. After payment, goods and souvenir inscription are shipped. Payment can be made via Bitcoin, other cryptocurrencies, or traditional methods. Order information should include: o Recipient's wallet address (required): Specifies the buyer's Taproot address. o Email address (required): The buyer's email address. o Buyer's social media account (optional): Used for better communication with the buyer. o Buyer's name, address, contact phone number (required): Used to accurately deliver the physical goods to the buyer's address. o Order amount: the transaction price is denominated in sats and converted to the prevailing amount in US dollars or other currencies. This transaction involves physical goods in traditional e-commerce. Cooperate with e-commerce platforms or create your own B2C/P2P platform. The souvenir inscription is issued when the buyer confirms receipt and doesn't return the goods. It serves as a consumption voucher and asset on the Bitcoin chain. To ensure security, use a reputable bitcoin payment intermediary. Buyer pays bitcoin to the intermediary. After receipt confirmation, the intermediary settles the payment. Alternatively, a refund process can be initiated. This method prevents counterfeiting and promotes goods via the Bitcoin blockchain, enhancing user engagement. Recommended for adoption.