The TRDEFI Liquidity API: a public, read-first interface over the live non-custodial liquidity catalogue — and a prepare-only write path for integrators holding a key.
v1 https://yield.trdefi.com the API never signs
Every GET /api/* endpoint is open to anyone: catalogue, positions, stats, quotes,
badges. No signup, no key, no account.
To initiate a trade — create or swap a position through the API — you need an API key, issued after a short review. It prepares unsigned transactions; your own wallet signs them.
The endpoints, the response shape, the rate-limit headers and the error codes. Includes a copy-paste quickstart.
Read · 5 minNeeded to create or swap a position through the API. Reading never needs one. Keys are issued after a short review.
Write path · key requiredThe machine-readable contract. Import it into Postman, Insomnia, or generate a typed client.
ContractWhat the API is — and what it explicitly is not. Data sources, freshness, the custody model, scope boundaries and the service level we commit to.
Foundation · read firstAuthentication, rate limits, idempotency and retries, error handling, webhooks, versioning, deprecation and acceptable use.
Operating rulesEvery endpoint with schemas and examples, the prepare-only write path, the fee, the integration flow and the configuration surface.
Reference · integrationA machine-readable index of this documentation, for AI agents and code assistants.
For agents# Catalogue totals (no key required)
curl -s https://yield.trdefi.com/api/stats | head -c 400
# Which chains are live right now
curl -s https://yield.trdefi.com/api/chains
# An indicative quote for one strategy — nothing is signed
curl -s "https://yield.trdefi.com/api/quote?hash=<strategyHash>&chain=ethereum&amount=1000000"
# Read your own quota before a burst
curl -sD - -o /dev/null https://yield.trdefi.com/api/stats | grep -i '^ratelimit'
Reading needs no credential. Creating a position does — request one above. The write path returns unsigned transactions; your own wallet signs them.
# 1 · prepare (returns UNSIGNED transactions + the fee breakdown)
curl -s -X POST https://yield.trdefi.com/v1/positions \
-H "Authorization: Bearer $TRDEFI_KEY" \
-H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
-d '{"chain":"arc","wallet":"0xYourOwnWallet","checkBalances":true,
"deposits":[{"symbol":"USDC","amount":"1000000"},{"symbol":"EURC","amount":"900000"}]}'
# 2 · sign each transaction with your own wallet, in order, then broadcast
# — we never sign, never hold a key, never broadcast
# 3 · track it (positionId == the strategyHash from step 1)
curl -s https://yield.trdefi.com/v1/positions/<strategyHash> \
-H "Authorization: Bearer $TRDEFI_KEY"
| Property | Value |
|---|---|
| Base URL | https://yield.trdefi.com |
| Authentication | None to read. An API key is required only to create a position or swap — it prepares unsigned transactions and can never sign, broadcast or move value. Request one. |
| Request id | X-Request-Id on every response, echoed in the body |
| Rate limits | RateLimit-Limit, -Remaining, -Reset, -Policy on success and failure; Retry-After on every 429 |
| Errors | { error: { code, message, requestId, retryable, documentation } } |
| Freshness | meta.freshnessSeconds on every derived value |
| Versioning | Path-versioned; breaking changes get a new version and a minimum 90-day notice |
| Claim | Where to check |
|---|---|
| Positions and settled volume | yield.trdefi.com/stats.html — each figure maps to on-chain transactions |
| Which chains and pairs are live | GET /api/chains · GET /api/strategies |
| The Circle infrastructure we use | yield.trdefi.com/circle — documented against its transactions |