# HALOWERK defiwerk – DeFi Yield Normalizer

> HALOWERK defiwerk – DeFi Yield Normalizer is a paid API for AI agents from defi.halowerk.com, paid per call via x402, $0.006/call, status unknown (last checked 2026-09-14).

Resolves a DeFi pool by chain, protocol, and ID/symbol, then returns both the advertised total APY and a conservative APY (7-day realized base yield excluding token emissions), with reward tokens priced at call time and net APY adjusted for gas costs across configurable stake sizes.

## Facts

- Endpoint: POST https://defi.halowerk.com/yield/normalize
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-defiwerk-defi-yield-normalizer-e933f091
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_D8GMwt9TFMHWm78BcaQVf

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability halowerk-defiwerk-defi-yield-normalizer-e933f091 -d '<json body>'
```

Example prompt: What's the real yield on the WETH-USDC pool on Aerodrome v1 on Base? I want to see both the advertised APY and the conservative 7-day base yield without emissions, and calculate net APY after gas for stake sizes of $1,000 and $10,000.

## When to prefer this

Choose this endpoint when you need a yield figure that separates real base yield from inflationary token emissions, or when you need APY adjusted for gas costs at specific position sizes. It is the right choice when the advertised APY from a protocol dashboard seems suspiciously high and you want a conservative, emission-stripped estimate. Prefer it over raw protocol APIs when you need reward tokens priced at call time and gas-drag modeled across stake sizes.

## Known failure modes

- Pool not found in directory for the given chain/protocol/symbol — returns 404 or empty result
- Unsupported chain value outside the allowed enum — returns validation error
- Reward token price unavailable at call time — may return null price or degrade the APY calculation
- Protocol ID unrecognized or misspelled — fails to resolve pool
- Stake size outside allowed range (1–100,000,000 USD) or more than 8 values provided — validation error
- On-chain data temporarily unavailable for the requested network — timeout or upstream error

## How this service works

Resolves a pool in a public yield directory by chain, protocol and pool id or symbol, then rebuilds the number a buyer actually needs. Advertised total APY and a conservative APY are reported separately: the conservative figure uses the trailing seven-day realised base yield and deliberately excludes token emissions, because emissions are only worth what the reward token is worth. Every reward token is priced at the moment of the call and that price is stated as the assumption it is; the end of 

## Output

Returns the pool's advertised total APY alongside a conservative APY derived from the trailing 7-day realized base yield with emissions excluded. Each reward token is priced at call time and explicitly flagged as a point-in-time assumption. For each configured stake size (default: $200, $1,000, $10,000, $100,000), a net APY after estimated gas costs is returned, allowing the caller to understand how gas drag scales with position size.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "pool": {
   "type": "string",
   "description": "Directory pool id (uuid) or the pool symbol, for example \"WETH-USDC\"."
  },
  "chain": {
   "enum": [
    "base",
    "ethereum",
    "arbitrum",
    "optimism",
    "polygon"
   ],
   "type": "string"
  },
  "protocol": {
   "type": "string",
   "description": "Protocol id as the directory names it, for example \"aave-v3\", \"uniswap-v3\", \"aerodrome-v1\"."
  },
  "stake_sizes_usd": {
   "type": "array",
   "items": {
    "type": "number",
    "maximum": 100000000,
    "minimum": 1
   },
   "maxItems": 8,
   "description": "Stake sizes for net_apy_after_gas. Default 200, 1000, 10000, 100000."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-defiwerk-defi-yield-normalizer-e933f091/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from defi.halowerk.com](https://www.zero.xyz/host/defi.halowerk.com/llms.txt)
