This repository is designed to manage metadata and related resources for decentralized entities, such as vaults, networks, operators, and tokens. It provides a standardized structure for organizing and accessing information about these entities. By contributing to this repository, you help create a reliable, decentralized knowledge base. After being merged, this data will be used in app.symbiotic.fi to provide users with accurate and up-to-date information about various entities in the DeFi ecosystem.
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
.
- Determine the entity type:
- Decide whether the entity belongs to
vaults
,networks
,operators
, ortokens
. - If the entity is a
vault
, please be sure that it's collateral token entity is registered in thetokens
folder before adding the vault metadata. If not, please add the token first.
- Decide whether the entity belongs to
- 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 Symbiotic documentation. Unregistered entities will not be accepted.
- Create a new folder:
- Navigate to the appropriate directory for the entity type.
- Create a folder named after the Ethereum address (e.g.,
0x1234567890abcdef1234567890abcdef12345678
).
- Add the
info.json
file:- Include metadata in the specified format (see below).
- (Optional) Add an icon file:
- If available, include a
logo.png
file with the entity’s logo.
- If available, include a
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.
The info.json
file must follow this structure:
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.
cmcId
(string): The CoinMarketCap ID for the token. Used to fetch price of the token in USD.permitName
(string): Thename
field for EIP-2612 support.permitVersion
(string): Theversion
field for EIP-2612 support.
curatorName
(string): Thename
of the curator of the vault.
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.
{
"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": [
{
"type": "website",
"name": "Website",
"url": "https://tether.to/"
},
{
"type": "explorer",
"name": "Etherscan",
"url": "https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7"
},
{
"type": "docs",
"name": "Tether Documentation",
"url": "https://docs.tether.to/"
},
{
"type": "example",
"name": "Integration Guide",
"url": "https://example.com/usdt-integration"
}
],
"cmcId": "825",
"permitName": "USDT Permit Token",
"permitVersion": "1"
}
{
"name": "DeFi Vault",
"description": "A secure vault for decentralized finance.",
"tags": ["vault", "DeFi"],
"links": [
{
"type": "website",
"name": "Website",
"url": "https://example-vault.com/"
},
{
"type": "docs",
"name": "Vault Documentation",
"url": "https://example-vault.com/docs"
}
]
}
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.
Before submitting your PR, ensure the following:
- The Ethereum address is valid:
- It must start with
0x
and be exactly 42 characters long.
- It must start with
- The
info.json
file is valid:- Use a JSON validator, such as https://jsonlint.com/.
- The
logo.png
file (if included) meets the size requirement of 256x256 pixels.
Once your files are added to the repository, create a Pull Request with the following details:
- Entity Type: Specify the type (vault, network, operator, token).
- Ethereum Address: Provide the address of the entity.
- Description: Summarize the entity’s purpose and data.
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)
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.
After approval, your changes will be merged into the repository. Thank you for your contribution! 🎉
If you have any questions or issues, feel free to reach out to the symbiotic team.