BLOCKv Basics

vAtom
Ecosystem Roles
Template and Variation
Action
Face

Building vAtoms

Overview
Guidelines

Configuring Faces

Image
Image Progress
Image Policy
Image Layered
3D
Web Face

Template and Variation

Overview

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:

Templates

Example: Event Tickets

Templates

The following is an example of how a publisher would setup the relationship between a Template, Template Variation, and vAtoms:

  1. Create an 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.

Abridged Example `EventTicket` Template

{
	"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
		}
	}
}
  1. Create a 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.

Abridged Example `RockExtravaganzaTicket` Template Variation

{
	"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
		}
	}
}
  1. Emit 1,000 vAtoms based off of the 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.

Template-Level Properties

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.

Cloneable

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.

Redeemable

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.

Acquirable

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.

Transferable

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.

Blockchain Implementation

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.

©2020 BLOCKv
Info