starknet-meta
Starknet dApps metadata repository.
Goals
🔍 API-first metadata repository: Prioritize seamless integration of Starknet dApp metadata, assets, and textual data for developers.
🌟 Reliable dApp assets and metadata resource: Provide a reliable source for both dApp textual metadata and common visual assets, catering to developers' needs.
🌉 Contract addresses repository: Offer a dependable resource for dApp contract addresses across Starknet networks.
🛠️ Use Cases
📝 Contract address validation for protocols: Enable protocols to verify which contracts are associated with a dApp.
🌎 API-first dApp discovery: Enable dApp aggregators to efficiently find, list, and showcase new dApps in the Starknet ecosystem using an API-first approach.
How to submit a new project
To add a new dApp to starknet-meta, follow these steps:
- Fork the
starknet-meta
repository. - Create a new folder under the
/repository
directory, using the desired id
for the new project as the folder name. - Add a
metadata.json
file to the new folder, following the JSON schema rules described below (you can easily validate your changes by executing validator.js
). - Add an
icon
image file to the new folder. The icon must be square and up to 1 MB in size. Supported formats are PNG, JPEG, SVG, and WebP. - Add a
cover
image file to the new folder. The cover image must be up to 1500x500px in size and have a 0.33 aspect ratio. Supported formats are PNG, JPEG, SVG, and WebP. - Create a pull request to the
starknet-meta
repository with your changes.
JSON schema rules
Property | Description | Example |
---|
id | A unique string identifier for the project | "my_project" |
displayName | A string containing the project's display name (up to 50 characters, ASCII only). | "My Project" |
description | A string containing the project's description (up to 300 characters, ASCII only). | "This is a description of my project." |
host | A string containing a valid URL host name (one URL for all supported networks), or an object with network-name keys and an optional others key to non-specified network support. | "example.com" // will be used by all networks
- or -
{"mainnet-alpha": "example.com", "goerli-alpha": "testnet.example.com"}
- or - "others" covers for all non mainnet-alpha networks:
{"others": "test.example.com", "mainnet-alpha": "app.example.com"} |
contracts | An array of contract objects with tag , addresses , and optional implements properties.
Please make sure to include all known addresses, including historical/deprecated ones, since protocols may require this information to verify historical interactions with old/deprecated contracts. To differentiate between current and historical addresses, you can either use different objects with distinct tags (e.g., "router_old", "router_current") or list them all under a single object (e.g., "router") within an array of addresses sorted from old to new. i.e.: [{ "tag": "router", "addresses": ["0x123..." (old), "0x456..." (deprecated), "0x789" (current)] }] | [{ "tag": "myswap_liquidity_tokens", "implements": ["erc20"], "addresses": { "mainnet-alpha": ["0x123..."] } }] |
categories | An array of strings, each representing a category to which the project belongs. The categories should be the values from the enumeration defined in the JSON schema. | ["nft", "defi"] |
Please ensure that your submission adheres to the schema rules and asset requirements.
Use the validator.js
script to validate your changes before submitting a PR.
Updating an existing project
To update an existing dApp project, follow the same steps as submitting a new dApp, but modify the existing project folder in the /repository
directory:
- Fork the
starknet-meta
repository. - Locate the project folder under the
/repository
directory, using the id
of the project you want to update. - Update the
metadata.json
file in the project folder if necessary, following the JSON schema rules described below (you can easily validate your changes by executing validator.js
). - Update the
icon
image file in the project folder if necessary. The icon must be square and up to 1 MB in size. Supported formats are PNG, JPEG, SVG, and WebP. - Update the
cover
image file in the project folder if necessary. The cover image must be up to 1500x500px in size and have a 0.33 aspect ratio. Supported formats are PNG, JPEG, SVG, and WebP. - Create a pull request to the
starknet-meta
repository with your changes.
Authors
License
MIT