Manifest is a public JSON file that defines the provider's obligation regarding the data that they provide. It sets fetching interval, tokens, sources and other public technical details for the provided data.
These are examples of ready-to-use manifests:
- main.json - 1000+ tokens, used by the main redstone provider
- rapid.json - 10 most popular tokens, used by
redstone-rapid
provider - coinbase.json - 20 tokens, uses only coinbase fetcher
Param | Optionality | Type | Description |
---|---|---|---|
interval | required | Number | Data fetching interval in milliseconds |
priceAggregator | required | String | Aggregator id. Currently only median aggregator is supported |
defaultSource | optional | String[] | Array of fetcher names that will be used by default for tokens that have no specified sources |
sourceTimeout | required | Number | Default timeout in milliseconds for sources |
maxPriceDeviationPercent | required | Number | Default maximum price deviation percent for tokens. It may also be set for each token separately |
evmChainId | required | Number | EVM chain id, that will be used during EVM price signing. Pass 1 if you're not sure, it will point to the Ethereum Mainnet. |
tokens | required | Object | Object with tokens in the following format: { "TOKEN_SYMBOL": { "source": ["source-name-1", "source-name-2", ...], "maxPriceDeviationPercent": 25 }, ... } . Note that source and maxPriceDeviationPercent params per token are optional. This is also a correct tokens configuration: { "TOKEN_SYMBOL_1": {}, "TOKEN_SYMBOL_2": {} } |
You should place your JSON manifest file inside the manifests
folder. The manifest file should be named using kebab case, i.e: manifest.json
, good-manifest.json
, or your-source.json
.
You can also publish your manifest to the Arweave smart contracts using this manifest deployment guide.