Metadata
This section details the metadata fields in blocklet.yml
. These fields define your Blocklet's core identity, descriptive information, and associated links. Properly configured metadata is essential for discoverability and presentation in environments like the Blocklet Server dashboard and the Blocklet Store.
For a high-level overview of the blocklet.yml
file, please see the Overview documentation.
Core Identity#
Every Blocklet requires a unique identity, established through a combination of its name, decentralized identifier (DID), and version. These fields are fundamental for the Blocklet Server to manage and differentiate between Blocklets.
The Blocklet's did
is deterministically generated from its name
. The following diagram illustrates this relationship:
Field | Type | Description | Required |
---|---|---|---|
|
| The Blocklet's Decentralized Identifier (DID). It must be a valid DID and correspond to the | Yes |
|
| The blocklet's unique, human-readable identifier. It is used to generate the | Yes |
|
| The semantic version number of the Blocklet (e.g., | Yes |
|
| The version of the Blocklet Specification this file adheres to. Should be a semantic version | No |
Example:
name: 'hello-blocklet'
did: 'z8iZqeDbCRs1fW9Zg6K229s6j6gC3zhA6oXEf'
version: '1.0.0'
specVersion: '1.16.0'
Descriptive Information#
These fields provide the primary content used to describe your Blocklet in user interfaces.
Field | Type | Description | Required |
---|---|---|---|
|
| A short, descriptive title for the Blocklet. It has a maximum length of 120 characters. | Yes |
|
| A brief summary of the Blocklet's purpose and functionality. It must be between 3 and 160 characters. | Yes |
|
| A relative path or a public URL to the Blocklet's logo image. | No |
|
| The category the Blocklet belongs to. Valid options include | No |
Example:
title: 'Hello Blocklet'
description: 'A simple demonstration blocklet that serves a static web page.'
logo: 'logo.png'
group: 'dapp'
People & Ownership#
This group of fields credits the individuals and entities behind the Blocklet and provides copyright information.
The author
, contributors
, and maintainers
fields all use a Person
object with the following structure:
Key | Type | Description | Required |
---|---|---|---|
|
| The person's full name. | Yes |
|
| The person's email address. | No |
|
| A URL to the person's website or profile. | No |
Field | Type | Description | Required |
---|---|---|---|
|
| The primary author of the Blocklet. | No |
|
| An array of people who have contributed to the Blocklet. | No |
|
| An array of people who currently maintain the Blocklet. | No |
|
| Copyright information, with | No |
Example:
author:
name: 'Jane Doe'
email: 'jane.doe@arcblock.io'
url: 'https://github.com/janedoe'
contributors:
- name: 'John Smith'
email: 'john.smith@arcblock.io'
copyright:
owner: 'ArcBlock'
year: 2024
Associated Links#
Provide links to external resources where users can find more information, get help, or engage with the community.
Field | Type | Description | Required |
---|---|---|---|
|
| The URL of the Blocklet's official homepage. | No |
|
| The URL of the Blocklet's documentation. | No |
|
| The URL of the community forum, chat, or discussion group. | No |
|
| A support URL or email address. | No |
|
| The license under which the Blocklet is distributed (e.g., 'MIT', 'GPL-3.0-or-later'). | No |
Example:
homepage: 'https://www.arcblock.io/your-blocklet'
documentation: 'https://docs.arcblock.io/your-blocklet'
community: 'https://community.arcblock.io/'
support: 'support@arcblock.io'
license: 'MIT'
Categorization & Keywords#
Help users find your Blocklet by providing relevant keywords and tags.
Field | Type | Description | Required |
---|---|---|---|
|
| An array of keywords that describe the Blocklet's functionality. | No |
|
| An array of tags for filtering and categorization, often used interchangeably with keywords. | No |
Example:
keywords:
- 'web server'
- 'static site'
- 'demo'
tags:
- 'beginner'
- 'framework'
With the metadata defined, the next step is to configure how your Blocklet runs. Proceed to the Execution section to learn about defining the runtime engine, lifecycle scripts, and environment variables.