Core Metadata
Core metadata fields establish the fundamental identity of a Blocklet. They provide essential, at-a-glance information for identification, versioning, and discoverability within the Blocklet ecosystem. Every blocklet.yml file must define these foundational properties to be considered valid.
Identity & Versioning#
These fields uniquely identify your Blocklet and track its evolution.
did (Decentralized Identifier)#
The did is the globally unique and immutable identifier for the Blocklet. It serves as its primary key across the entire ArcBlock ecosystem, ensuring that every Blocklet can be securely and unambiguously referenced.
A valid Decentralized Identifier. The DID's type information must specify RoleType.ROLE_BLOCKLET.
Validation Rules#
The system validates that the provided DID is not just syntactically correct but also has the appropriate role type (ROLE_BLOCKLET), which is a critical security and integrity feature.
blocklet.yml
did: z8ia29UsENBg6tLZUKi2HABj38Cw1LmHZocbQname#
The name is a human-readable identifier for the Blocklet. While the did is the canonical identifier for machines, the name provides a convenient, memorable alias for developers and users. In legacy configurations, it was also used to derive the Blocklet's DID.
Relationship Between name and did#
It's crucial to understand how name and did interact:
- DID-First (Recommended): You provide a valid, pre-registered Blocklet DID. This is the modern and most robust approach.
- Name-First (Legacy Support): If you provide a
name, the system can derive a DID from it. For the metadata to be valid, thedidfield in yourblocklet.ymlmust match the expected DID generated from thename. An inconsistency will result in a validation error.
blocklet.yml
# This name is used for display and can be used to derive the DID
name: 'my-awesome-blocklet'
# This DID must be a valid Blocklet DID. If using the name-first approach,
# it must match the DID derived from 'my-awesome-blocklet'.
did: z8ia29UsENBg6tLZUKi2HABj38Cw1LmHZocbQversion#
The version field tracks the release version of the Blocklet, enabling proper dependency management and version control for users and other Blocklets.
blocklet.yml
version: '1.0.0'specVersion#
This field specifies the version of the blocklet.yml specification that your metadata file adheres to. This allows Blocklet runtimes and tools to correctly parse and interpret the file's contents, ensuring forward compatibility.
A valid SemVer string indicating the specification version, which must be 1.0.0 or greater.
blocklet.yml
specVersion: '1.2.0'Presentation & Classification#
These fields define how your Blocklet is presented in user interfaces and how it's categorized.
title#
The title is a display-friendly name for the Blocklet. It is used in user interfaces such as the Blocklet Store, dashboards, and launchpads where a more descriptive or branded name is preferable to the short name.
blocklet.yml
title: 'My Awesome Blocklet'description#
The description provides a concise summary of the Blocklet's purpose and functionality. It is heavily used in search results and UI previews to help users quickly understand what the Blocklet does.
A brief summary of the Blocklet, between 3 and 160 characters long.
blocklet.yml
description: 'A Blocklet that provides amazing data visualization tools for your DID Space.'logo#
This field specifies the path or URL to the Blocklet's logo. The logo is used for branding in the Blocklet Store, on dashboards, and in other user interfaces.
A relative path or an absolute HTTP(S) URL to the logo image. It should not point to the well-known logo path (/.well-known/blocklet/logo) used internally by the system.
blocklet.yml
# Using a relative path within the Blocklet bundle
logo: 'images/logo.png'
# Or using an absolute URL
# logo: 'https://cdn.example.com/blocklet-logo.svg'group#
The group field categorizes the Blocklet, which helps with organization and discoverability in registries and marketplaces.
The category of the Blocklet. Must be one of the predefined values.
Valid values for group include:
Value | Description |
|---|---|
| A decentralized application. |
| A static website or single-page application. |
| A backend service or API. |
| A reusable component designed to be composed within other Blocklets. |
blocklet.yml
# Categorizes this Blocklet as a decentralized application.
group: 'dapp'Complete Example#
Here is a snippet showing all the core metadata fields working together in a blocklet.yml file.
blocklet.yml
name: 'data-visualizer'
did: z8ia29UsENBg6tLZUKi2HABj38Cw1LmHZocbQ # Corresponds to 'data-visualizer'
version: '1.2.0'
specVersion: '1.2.0'
title: 'Data Visualizer'
description: 'A Blocklet that provides amazing data visualization tools for your DID Space.'
logo: 'images/logo.svg'
group: 'dapp'Now that you understand the core identity of a Blocklet, the next section will cover how to specify its creators and maintainers.