The BLOCKv platform is built around the concept of vAtoms, which are interactive virtual objects created by publishers.
To create a vAtom, a publisher will first create a Template that defines how the vAtom will be viewed (Faces) and the user behaviors it supports (Actions). At this point, the vAtom still does not contain any content. The publisher will then create one or more Template Variations for their Template which contain the content they'd like to display to the user. From here, a publisher will "emit" one or more vAtoms from the template variation, which can all be individually owned by different users, and change state independently of one another.
Below is a visual depiction of a Pizza
Template, a PizzaNapoli
Template Variation, and vAtoms:
The following is an example of how a publisher would setup the relationship between a Template, Template Variation, and vAtoms:
EventTicket
Template, which is meant to display event information to the user and allow them to check-in to a specific event.
The Template will include default/empty values for event information and check-in status.{
"template": "publisher_fqdn::EventTicket::v1",
...
"vatom": {
"vAtom::vAtomType": {
"title": "Event Ticket",
"description": "Ticket for an event",
"resources": [
...
{
"name": "EventLocationImage",
"resourceType": "",
"value": {
"resourceValueType": "ResourceValueType::URI",
"value": ""
}
}
]
},
"private": {
"event_location": "",
"check_in_status": false
}
}
}
RockExtravaganzaTicket
Template Variation based off of the EventTicket
Template which includes specific information and assets regarding one event.
The Template Variation will include default/empty values for check-in status.{
"template_variation": "publisher_fqdn::EventTicket::v1::RockExtravaganzaTicket::v1",
"template": "publisher_fqdn::EventTicket::v1",
...
"vatom": {
"vAtom::vAtomType": {
"title": "Rock Extravaganza Concert Ticket",
"description": "Join us for Rock Extravaganza!!",
"resources": [
...
{
"name": "EventLocationImage",
"resourceType": "ResourceType::Image::PNG",
"value": {
"resourceValueType": "ResourceValueType::URI",
"value": "https://example.com/event-location-image.png"
}
}
]
},
"private": {
"event_location": "Santa Monica Pier",
"check_in_status": false
}
}
}
RockapaloozaConcert
Template Variation which will include event information and include the default/empty values for check-in status. These 1,000 vAtoms can then be transferred to or acquired by users, and when the user checks into the event, the check-in status of their particular vAtom can be changed independently of all other RockapaloozaConcert
vAtoms.Some properties of vAtoms must have initial values specified on their Template. Some of these properties may be overridden on Template Variations, or individual vAtoms.
The cloneable
property is a boolean value that controls whether or not the Clone
action should successfully duplicate the vAtom and transfer ownership of the copy to the caller.
The default value of this property should be specified in the Template, but can be overridden on an individual Template Variation, or on a vAtom.
The redeemable
property is a boolean value that controls whether or not the Redeem
action should successfully transfer ownership of a vAtom to the publisher, and facilitate the redemption process.
The default value of this property should be specified in the Template, but can be overridden on an individual Template Variation, or on a vAtom.
The acquirable
property is a boolean value that controls whether or not the Acquire
action should successfully transfer ownership of a vAtom to the caller.
The default value of this property should be specified in the Template, but can be overridden on an individual Template Variation, or on a vAtom.
The transferable
property is a boolean value that controls whether or not the Transfer
action should successfully transfer ownership of a vAtom from the caller.
The default value of this property should be specified in the Template, but can be overridden on an individual Template Variation, or on a vAtom.
Publishers may wish to keep certain vAtoms off-chain if they have no inherent value or scarcity and are not intended for use outside of the BLOCKv platform. For vAtoms that are intended to be used on-chain (and therefore viewable in external wallets), publishers may choose to enable this functionality in any or all of their templates.
The platform also allows publishers to choose which blockchain network to leverage (Bitcoin, Ethereum, EOS, etc.), giving them the freedom to choose a network that best meets their requirements, including performance targets and processing costs, and can specify their chosen blockchain for each template.