Skip to main content

Get wallet preferences – Earn API

Updated on
Jul 31, 2026

Overview

ToS state, global hide list, the approval-banner flag, and the covered-access signals. Unknown wallets return defaults (empty hide list, both covered flags false). The OpenAPI operation description identifies approved as a legacy field that is always true; the current response schema does not define this field. covered_access / opencover_terms_accepted are SOFT wizard signals only; the hard covered boundary is enforced at strategy create.

Endpoint

GET https://earn-api.quicknode.dev/functions/v1/api/v1/wallets/{addr}/prefs

Authorization

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

Parameters

ParameterLocationTypeRequiredDescription
addrpathstringYesWallet address (`0x` + 40 hex).

Example request

curl --location 'https://earn-api.quicknode.dev/functions/v1/api/v1/wallets/0x1234567890abcdef1234567890abcdef12345678/prefs' \
--header 'Accept: application/json' \
--header 'apikey: <EARN_PUBLIC_API_KEY>'

Response

FieldTypeRequiredDescription
addressstringYesLowercased wallet address.
has_agreementbooleanYesWhether the wallet has recorded a ToS agreement.
hidden_vault_keysarray<string>YesThe wallet's global `chainId:0xaddress` hide list (lowercased).
hide_approvalbooleanYesWhether the wallet has dismissed the approval banner.
covered_accessbooleanNoWhether the wallet is on the covered-access allowlist (`approved_wallets`) and may select COVERED in the strategy wizard. A SOFT UI signal only — the hard boundary is re-checked at strategy create (`POST /v1/strategies` → 403 `covered_not_allowed`). Defaults to false on a lookup hiccup. Absent on older gateway builds.
opencover_terms_acceptedbooleanNoWhether the wallet has a stored OpenCover terms signature (`POST /v1/wallets/{addr}/opencover-terms`). A SOFT UI signal; the covered create re-checks it (403 `covered_terms_required`). Defaults to false on a lookup hiccup. Absent on older gateway builds.

Example response

{
"address": "0x1234567890abcdef1234567890abcdef12345678",
"has_agreement": false,
"hidden_vault_keys": [],
"hide_approval": false,
"covered_access": false,
"opencover_terms_accepted": false
}

HTTP responses

StatusDescription
200The wallet's preferences.
400Invalid wallet address.
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.
500Internal server error.
OpenAPI source

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

Share this doc