Skip to content

Submit Metadata

Symbiotic UI provides users with accurate and up-to-date information about various data regarding TVL, allocations, relations between Curators, Vaults, Operators and Networks, etc. However, for the mentioned counterparties to be easily accessible and visible on the UI - their metadata should should be submitted to the corresponding repositories.

Once, the metadata is submitted, it should be reviewed and merged by the Symbiotic team. After that the new data starts to be shown publicly on the UI.

Add a New Entity Template

Choose a Repository

ChainURL
Mainnethttps://github.com/symbioticfi/metadata-mainnet
Hoodihttps://github.com/symbioticfi/metadata-hoodi
Sepoliahttps://github.com/symbioticfi/metadata-sepolia
Holeškyhttps://github.com/symbioticfi/metadata-holesky

Repository Structure

The repository is organized as follows:

repository/
├── vaults/
│   ├── 0x<address>/
│   │   ├── info.json
│   │   └── logo.png (optional)
├── networks/
├── operators/
├── tokens/

Each entity is identified by its Ethereum address (0x...), and its data is stored in a folder named after the address. Inside this folder, there must be a file info.json containing metadata, and optionally, an icon file logo.png.


Steps to Add a New Entity

Note: After your PR is submitted, email your PR link to verify@symbiotic.fi from your official business email (domain must match that of your entity website) to allow us to confirm your identity ahead of merging your PR.
  1. Determine the entity type:
    • Decide whether the entity belongs to vaults, networks, operators, tokens or points.
    • If the entity is a vault, please be sure that it's collateral token entity is registered in the tokens folder before adding the vault metadata. If not, please add the token first.
  2. Register the entity in the registry:
    • Before adding metadata for vaults, networks, or operators, ensure that they are registered in their respective registries. You can find the current registry contract addresses in the Addresses page. Unregistered entities will not be accepted.
  3. Create a new folder:
    • Navigate to the appropriate directory for the entity type.
    • Create a folder named after the Ethereum address (e.g., 0x1234567890abcdef1234567890abcdef12345678).
  4. Add the info.json file:
    • Include metadata in the specified format (see below).
  5. (Optional) Add an icon file:
    • If available, include a logo.png file with the entity’s logo.

Your PR will be reviewed by the Symbiotic team, and if approved, it will be merged into the repository. Please note that the PR will be reviewed only after the entity is checked with automated checks.


File Format: info.json

The info.json file must follow this structure:

Required Fields

  • name (string): The name of the entity.
  • description (string): A brief description of the entity.
  • tags (array of strings): Tags categorizing the entity.
  • links (array of objects): External links related to the entity.

Fields for Tokens

  • cmcId (string): The CoinMarketCap ID for the token. Used to fetch price of the token in USD.
  • permitName (string): The name field for EIP-2612 support.
  • permitVersion (string): The version field for EIP-2612 support.

Fields for Vaults

  • curatorId (string): The ID of the curator of the vault.
  • vaultType (string): The type of the vault. Can be one of:
    • eth-restaking: Vaults with ETH-flavored collateral restaked across multiple networks
    • btc-restaking: Vaults with BTC-flavored collateral restaked across multiple networks
    • network-exclusive: Vaults exclusive to a single network

Supported links Types

Each link should include:

  • type: The type of the link. Supported values are:
    • website: The official website of the entity.
    • explorer: A blockchain explorer link for the entity's Ethereum address or contract.
    • docs: Documentation related to the entity.
    • example: Example use cases or tutorials.
    • externalLink: A link to be shown below the entity's name.
  • name: A user-friendly name for the link.
  • url: The URL of the resource.

Icon File: logo.png (Optional)

If you want to include an icon for the entity, follow these guidelines:

  • File Name: logo.png
  • Dimensions: 256x256 pixels
  • Format: PNG

Place the logo.png file in the same folder as the info.json file.


Validation

Before submitting your PR, ensure the following:

  1. The Ethereum address is valid:
    • It must start with 0x and be exactly 42 characters long.
  2. The info.json file is valid:
  3. The logo.png file (if included) meets the size requirement of 256x256 pixels.

Submitting the Pull Request

Once your files are added to the repository, create a Pull Request with the following details:

  1. Entity Type: Specify the type (vault, network, operator, token).
  2. Ethereum Address: Provide the address of the entity.
  3. Description: Summarize the entity’s purpose and data.

Example PR Description

Added new token entity: 0x1234567890abcdef1234567890abcdef12345678
 
- **Name**: USDT
- **Description**: USDT is a stablecoin pegged to the US Dollar, widely used for trading and liquidity in cryptocurrency markets.
- **Tags**: stablecoin, usdt
- **Links**:
  - [Website](https://tether.to/)
  - [Etherscan](https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7)
  - [Tether Documentation](https://docs.tether.to/)
- **CMC ID**: 825
- **Permit Name**: USDT Permit Token
- **Permit Version**: 1
- **Icon**: Included (256x256 px)

Review and Approval

Your PR will be reviewed to ensure:

  • The info.json file has all required fields and valid data.
  • The logo.png file (if included) meets the requirements.
  • The metadata is accurate and well-structured.
  • The submitter of the PR is from the entity in question (verified via an email with your PR link to verify@symbiotic.fi from your official business email)

After approval, your changes will be merged into the repository.

Add a Curator

Create a new folder in the /curators directory
Create a new json file in the folder with the following structure:
info.json
{
    "name": "My Curator",
    "description": "My Curator is a curator that allows you to manage your vaults.",
    "tags": ["curator", "staking"],
    "links": [
        { "type": "website", "name": "Website", "url": "https://mycurator.com" },
        { "type": "twitter", "name": "Twitter", "url": "https://x.com/mycurator" },
        {
            "type": "explorer",
            "name": "Explorer",
            "url": "https://etherscan.io/address/0x1234567890abcdef1234567890abcdef12345678"
        }
    ]
}
Save a logo of the Curator to logo.png of 256x256 pixels size

Add a Token

Create a new folder in the /tokens directory
Create a new json file in the folder with the following structure:
info.json
{
    "name": "My Token",
    "description": "My Token is a token that allows you to earn rewards.",
    "tags": ["token", "staking"],
    "cmcId": "1234567890",
    "links": [{ "type": "website", "name": "Website", "url": "https://mytoken.com" }]
}
Save a logo of the Token to logo.png of 256x256 pixels size

Add a Vault

Create a new folder in the /vaults directory
Create a new json file in the folder with the following structure:
info.json
{
    "name": "DeFi Vault",
    "description": "A secure vault for decentralized finance.",
    "tags": ["vault", "DeFi"],
    "curatorName": "My Curator",
    "links": [
        {
            "type": "website",
            "name": "Website",
            "url": "https://example-vault.com/"
        },
        {
            "type": "docs",
            "name": "Vault Documentation",
            "url": "https://example-vault.com/docs"
        }
    ]
}
Save a logo of the Vault to logo.png of 256x256 pixels size