---
title: "warden api — developer docs and quickstart · warden.cash"
description: "the warden api: defi governance intelligence as json. one keyless call maps a wallet to every rule change touching its positions, with simulated impact and source links."
canonical: https://warden.cash/developers
last_updated: 2026-10-13
---

# the api, on file.

> the warden api: defi governance intelligence as json. one keyless call maps a wallet to every rule change touching its positions, with simulated impact and source links.

## quickstart

one call. positions behind an address, plus every rule change touching them, with simulated impact and source links.

```
curl "https://try.warden.cash/api/scan/vitalik.eth?view=compact"
```

`{address}` takes evm (0x…), ens names, solana, cosmos, or xrp. handing the result to a person? link `https://try.warden.cash/w/{address}` — the same scan, rendered for people.

## keys and auth

none. no api key, no signup, no oauth. the api is anonymous, read-only, and rate limited per client, so there is nothing to issue or rotate. cors is open — call it straight from a browser.

## endpoints

- `GET /api/scan/{address}` — positions + matched rule changes. the main call.
- `GET /api/proposals` — the cross-protocol rule-change feed. add `?address=` for that wallet's impact.
- `GET /api/proposals/{id}` — one rule change. add `?address=` to attach wallet impact.
- `GET /api/positions/{address}` — positions only.
- `GET /api/ens/resolve?name=` — ens name to address.
- `GET /api/health` — liveness.

parameters and schemas live in the [openapi spec](https://try.warden.cash/api/openapi.json). the [api index](https://try.warden.cash/api) is the canonical catalog — trust it if this page drifts.

## rate limits

30 requests a minute per client. throttled responses carry the ietf `RateLimit` and `RateLimit-Policy` headers (plus legacy `x-ratelimit-*`). a 429 carries `retry-after` in seconds — wait that long.

## errors

every error is json: `{ error, code, hint }`. `code` is one of `invalid_address`, `invalid_input`, `unsupported_version`, `not_found`, `rate_limited`, `upstream_unavailable`, `internal_error`. `hint` says what to do next. unknown paths answer 404 with the same envelope.

## versioning

every api response carries `x-api-version`, the same semver as the openapi spec. the api is pre-1.0: shapes may change. send `api-version: 0.1` to pin the line you built against — when the shapes change, a pinned call answers 400 `unsupported_version` instead of a different shape. a deprecated endpoint is flagged in the spec and answers with `Deprecation` (rfc 9745) and `Sunset` (rfc 8594) headers before it goes away. changes land in [llms.txt](https://try.warden.cash/llms.txt) first.

## sandbox

there is no separate sandbox. the api is read-only and keyless, so the live api is safe to call while you build — try [vitalik.eth](https://try.warden.cash/api/scan/vitalik.eth?view=compact). scans of demo wallets come back with `mode: "mock"` — never treat those as real exposure.

## for agents

start at [llms.txt](https://try.warden.cash/llms.txt) — quickstart, filters, how to read results, honest blind spots. this site's own [llms.txt](/llms.txt) says when to reach for warden. every page on warden.cash also answers `Accept: text/markdown`.

---

warden.cash — defi governance intelligence. simulation only, not financial advice. html: https://warden.cash/developers · agents: https://warden.cash/llms.txt · sitemap: https://warden.cash/sitemap.xml
