Skip to main content

Get configuration – Earn API

Updated on
Jul 31, 2026

Overview

The Earn contract address (the same on every chain) and per-chain display names and minimum strategy sizes. A chain missing from chains is not currently served. minStrategyUsdc is sizing guidance only, not enforced by POST /v1/strategies. banner is the first-party announcement strip the Earn app renders above its nav, and is null whenever none is active. Responses carry Cache-Control: public, max-age=300.

Endpoint

GET https://earn-api.quicknode.dev/functions/v1/api/v1/config

Authorization

Include the published apikey header. This read request is public and does not require a SIWE signature.

Parameters

This endpoint does not accept path or query parameters.

Example request

curl --request GET \
--url 'https://earn-api.quicknode.dev/functions/v1/api/v1/config' \
--header 'Accept: application/json' \
--header 'apikey: <EARN_PUBLIC_API_KEY>'

Response

FieldTypeRequiredDescription
earnContractstringYesThe Quicknode Earn contract address (the same on every chain).
chainsarray<object>YesOne entry per served chain; a chain missing here is not currently served.
chains[].chainIdintegerYesNumeric identifier of the served chain.
chains[].namestringYesDisplay name of the chain.
chains[].minStrategyUsdcnumber | nullYesSuggested minimum strategy size in decimal USDC. This is UI guidance and is not enforced by `POST /v1/strategies`. Returns null when unset.
bannerobject | nullYesSite-wide announcement banner, or null when none is active.
banner.textstringWhen presentMessage displayed in the announcement banner.
banner.buttonCtastringWhen presentLabel displayed on the banner button.
banner.buttonIconstring | nullWhen presentHTTPS URL or site-relative path of the icon displayed beside the button label. Returns null when unset.
banner.buttonUrlstringWhen presentHTTPS destination opened by the banner button.

Example response

{
"earnContract": "0x48b415841165304f7EfaA7D5dD5FC65cc7B4bd8e",
"chains": [
{
"chainId": 1,
"name": "Ethereum",
"minStrategyUsdc": 5000
},
{
"chainId": 10,
"name": "Optimism",
"minStrategyUsdc": 250
},
{
"chainId": 130,
"name": "Unichain",
"minStrategyUsdc": 250
},
{
"chainId": 137,
"name": "Polygon",
"minStrategyUsdc": 500
},
{
"chainId": 143,
"name": "Monad",
"minStrategyUsdc": 250
},
{
"chainId": 8453,
"name": "Base",
"minStrategyUsdc": 500
},
{
"chainId": 42161,
"name": "Arbitrum",
"minStrategyUsdc": 500
}
],
"banner": {
"text": "Join the Quicknode Earn Telegram Group To Chat And Stay Up To Date",
"buttonCta": "Telegram",
"buttonIcon": "/banner/telegram.svg",
"buttonUrl": "https://t.me/quicknode_earn"
}
}

HTTP responses

StatusDescription
200The deployment config.
429Rate limit exceeded. `Retry-After` (seconds) tells you when to retry. Reads, feedback, and push writes are keyed per IP; create/update/delete are keyed per wallet+IP; deposit/withdraw/claim calldata is keyed per strategy+IP.
500Deployment config unavailable.
OpenAPI source

This page is based on operation getDeploymentConfig in the Earn OpenAPI 3.1 specification.

Share this doc