Registry Examples
This directory includes several Bitcoin Cash Metadata Registry examples. Each example is briefly described below.
Fungible Token
The fungible-token.json
example demonstrates how the issuer of a single kind of fungible token might publish information about the token.
The registry includes only one identity, Example Asset
, defined as authbase 89cad9e3e34280eb1e8bc420542c00a7fcc01002b663dbf7f38bceddf80e680c
with a matching token category ID. Example Asset
has the ticker symbol XAMPL
and 6 decimal places, i.e. 1,000,000
fungible tokens should be displayed as 1.000000 XAMPL
.
The registry also includes some historical background for Example Asset
– it was first released at 2023-01-03T00:00:00.000Z
, with the ticker symbol EXAMPLE
and 8 decimal places before being redenominated and rebranded; from a user's perspective, 1 EXAMPLE
became 100 XAMPL
. The rebranding and re-denomination migration began at 2023-01-13T00:00:00.000Z
and was considered complete at 2023-02-13T00:00:00.000Z
. The old icon
and a web
URI providing more information about the migration is also included.
For more detail, see the descriptions in the example.
Art Collection
The art-collection.json
example demonstrates how the issuer of a non-fungible token (NFT) art collection might publish information about each token in the collection.
The registry includes only one identity, Example NFT Collection
, defined as authbase 89cad9e3e34280eb1e8bc420542c00a7fcc01002b663dbf7f38bceddf80e680c
with a matching token category ID.
Example NFT Collection
has the ticker symbol XAMPLZ
and defines metadata for 3 sequential NFTs, Example #0
(XAMPLZ-0
), Example #1
(XAMPLZ-1
), and Example #2
(XAMPLZ-2
). The icon
for each NFT is published via IPFS (as recommended), so clients may download each icon by querying IPFS or by using HTTP Gateways, e.g. ipfs://bafybeihnmh5bkbaspp3xfdanje74pekhsklhobzzraeyywq6gcpb3iuvey/0.svg
may be accessed via CloudFlare's gateway at https://cf-ipfs.com/ipfs/bafybeihnmh5bkbaspp3xfdanje74pekhsklhobzzraeyywq6gcpb3iuvey/0.svg
.
For more detail, see the descriptions in the example.
Decentralized Application
The decentralized-application.json
example demonstrates how a registry might specify the structure of NFTs used by a decentralized application.
The registry includes only one identity, Crowdfunding Example
, defined as authbase 89cad9e3e34280eb1e8bc420542c00a7fcc01002b663dbf7f38bceddf80e680c
with a matching token category ID.
This decentralized application uses only one type of parsable NFT, Pledge Receipt
, which itself contains only one field, Pledge Value
. This field demonstrates the additional capabilities of the number
encoding: clients are informed that Pledge Value
can be aggregated (by addition) in views containing multiple NFTs to provide useful information to the user. For example, if the wallet holds two NFTs, one with a Pledge Value
of 123456
and one of 654321
, the wallet can display a total of the user's pledges to this campaign in relevant user interfaces: 0.00777777 BCH
.
For more detail, see the descriptions in the example.
Payouts or Dividends
The payouts-or-dividends.json
example demonstrates how a registry might publish information about fungible tokens that receive on-chain payouts or dividends, either from off-chain activities (e.g. equity or debt instruments) or as part of an on-chain mechanism (e.g. payouts from a decentralized application or sidechain). The example is documented as if the client is reading the registry shortly after its latestRevision
of 2023-04-14.
The registry includes only one identity, Example Payout Shares
, defined as authbase 978306aa4e02fd06e251b38d2e961f78f4af2ea6524a3e4531126776276a6af1
.
The first issue of Example Payout Shares
was issued as token category 978306aa4e02fd06e251b38d2e961f78f4af2ea6524a3e4531126776276a6af1
with symbol XAMPL-23Q1
. On 2023-03-31, the asset experienced a a metadata update in which the initial token category was replaced with the current category b1a35cadd5ddb1bd18787eeb99ee061f34b946f0db375d84caadd8ab621c10f5
and symbol XAMPL-23Q2
. Token holders of the initial category (978306...
) could visit the new snapshot's migrate
URI (https://app.example.com/payouts/2023Q1
) for guidance or assistance in exchanging XAMPL-23Q1
tokens for the latest XAMPL-23Q2
tokens; presumably, the new tokens are locked in an on-chain covenant with which XAMPL-23Q1
holders can swap in their old tokens and receive both a payout for the first quarter of 2023 and the new XAMPL-23Q2
tokens.
Leading up to 2023-03-31, user wallets would have displayed tokens of the initial category (978306...
) as XAMPL
. When the new snapshot became effective, these wallets should have immediately switch to identifying 978306...
tokens as XAMPL-23Q1
, as the category of the current snapshot (b1a35c...
) became the new XAMPL
. Users holding both assets would have seen them listed separately, as XAMPL-23Q1
entitles the user to both an unpaid payout and current XAMPL
(XAMPL-23Q2
) tokens.
Finally, the registry includes information for a planned future snapshot that will become current on 2023-06-30. Clients may notify users in advance if this snapshot appears to impact a user's holdings. As before, clients should consider the current tokens (category b1a35c...
) to be XAMPL
until the time of the migration. After the future snapshot comes into effect (2023-06-30T00:00:00.000Z
), the current tokens should be labelled with their fully-qualified symbol
, XAMPL-23Q2
, while tokens of the third category (89cad9...
) become the new XAMPL
.
Note, that the mechanics of this example can also be used to improve user experiences in cases where an asset is re-issued or migrated for other technical reasons: on-chain voting, fee assessment, mergers, spinoffs, resolution of contract vulnerabilities, etc.