Skip to content
LogoLogo

Submit Metadata

The Symbiotic UI displays TVL, allocations, and relationships between curators, vaults, operators, and networks. To make your entity visible on the UI, submit its metadata to the corresponding repository.

After you submit metadata, the Symbiotic team reviews and merges it. Once merged, your data appears on the UI.

Add a New Entity Template

Choose a Repository

ChainURL
Mainnethttps://github.com/symbioticfi/metadata-mainnet
Hoodihttps://github.com/symbioticfi/metadata-hoodi

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, include 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, ensure its collateral token entity is registered in the tokens folder before adding the vault metadata. If not, 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.

The Symbiotic team reviews your PR after automated checks pass. If approved, it will be merged into the repository.


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

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