Comment on page
Ord Schema Type
The base schema type for ordinals metadata is
ord
. This base type can be extended with the subType
property so that wallets and markets will understand how to interpret and display metadata.
While subtypes can be created at will, a list of common subTypes is maintained at https://bitcoinschema.org.
app
- The name of the app that originally produced the ordinaltype
- This should always be "ord". This helps indexers find the metadata based on type.name
- Name description of the ordinal.The following outlines a standard set of metadata properties that should be utilized by creators and implemented by developers when adding metadata to 1Sat Ordinals. Adhering to these specifications when creating and displaying content across applications will make for a better and more cohesive cross-platform user experience.
Added to the inscription output using MAP protocol in OP_RETURN.
Please note that the MAP protocol expects all data types for the value in the key value pair to be of type
string
.Description | Required | Type | Example |
---|---|---|---|
app
The name of the app that originally produced the ordinal | Y | string | handcash |
type
The type of MAP data. For this spec we use ord | Y | string | ord |
name
Name of the ordinal | Y | string | Joe Racoon |
subType
The subType | N | string | collectionItem, collection, website |
subTypeData
A stringified version of the data required by the specific subType specified. See subType documentation. | N
SubType: Y
| stringified JSON | { file: ..., fileType: ... } |
royalties
Where creator royalties should be sent | N | stringified JSON array of royalty | see definition below |
previewUrl | N | string URL | http://so.me/prev.png
b://<txid><idx>
c://<contentHash> |
...
You can add additional fields with MAP as needed. | N | any |
Royalties should be applied when a sale of an item occurs. The definition of
royalty
within the royalties
array:Name | Description | Required | Type |
---|---|---|---|
type | Currently supports paymail and any valid script/address/paymail | Y | PaymentType |
destination | The destination of the payment (the receivers address/paymail) | Y | string |
percentage | The royalty percentage (3% would be 0.03 ) | Y | string |
The type definition for
PaymentType
:type PaymentType = 'paymail' | 'address' | 'script';
This pseudo-script creates an ordinal with metadata called "The Awesome Ordinal" with only the minimum required fields, and adds a signature via AIP so the issuer can be verified.
Output 1:
1SAT_P2PKH <INSCRIPTION> OP_RETURN MAP SET app <mint_platform> type ord name "The Awesome Ordinal" | AIP <address> "BITCOIN_ECDSA" <signature> [-1]
{
"app": "take_it",
"type": "ord",
"name": "Awesome ordinal",
"royalties": [
{"type": "paymail", "destination": "[email protected]", "percentage": "0.03"},
{"type": "address", "destination": "1MvYhFajARJ82sbgxuAXziq1FmgSY1XQwD", "percentage": "0.025"}
]
}
Last modified 7mo ago