/starknet-meta

Starknet metadata repository

Primary LanguageJavaScriptMIT LicenseMIT

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:

  1. Fork the starknet-meta repository.
  2. Create a new folder under the /repository directory, using the desired id for the new project as the folder name.
  3. 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).
  4. 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.
  5. 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.
  6. 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:

  1. Fork the starknet-meta repository.
  2. Locate the project folder under the /repository directory, using the id of the project you want to update.
  3. 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).
  4. 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.
  5. 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.
  6. Create a pull request to the starknet-meta repository with your changes.

Authors

License

MIT