Links
Comment on page

Ord Schema Type

The "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.

Required Fields:

app - The name of the app that originally produced the ordinal
type - This should always be "ord". This helps indexers find the metadata based on type.
name - Name description of the ordinal.

1Sat Ordinals - Metadata Proposal

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.

Top-Level Metadata

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

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

Payment Type

The type definition for PaymentType:
type PaymentType = 'paymail' | 'address' | 'script';

Transaction Structure

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]

Example ordtype

{
"app": "take_it",
"type": "ord",
"name": "Awesome ordinal",
"royalties": [
{"type": "paymail", "destination": "[email protected]", "percentage": "0.03"},
{"type": "address", "destination": "1MvYhFajARJ82sbgxuAXziq1FmgSY1XQwD", "percentage": "0.025"}
]
}