> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aioka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# ETH Council Verdict

> Latest ETH AI Council verdict with 6 specialist agent votes, confidence score, and signal snapshot

<Note>
  Pro tier endpoint -- requires a valid Pro API key. The ETH council
  runs 6 specialist agents tuned to Ethereum-specific intelligence
  (Sprint ETH Phase 2).
</Note>

**Tier:** Pro (\$199/mo)
**Cache:** None
**Rate limit:** 30/min (per tier)
**Read-only:** Never writes to any trading table.

## Response Fields

### Top-level

| Field                | Type           | Meaning                                                                                                 |
| -------------------- | -------------- | ------------------------------------------------------------------------------------------------------- |
| `verdict`            | object \| null | Latest ETH council verdict. `null` if no verdict has been produced yet (first 30 minutes after deploy). |
| `nextRefreshMinutes` | int            | Minutes until the next scheduled council auto-refresh. Always `30`.                                     |

### verdict fields

| Field                | Type           | Meaning                                                                                                                                                                                              |
| -------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                 | string         | UUID of this verdict record                                                                                                                                                                          |
| `ruling`             | string         | `STRONG_BUY` / `BUY` / `ACCUMULATE` / `HOLD` / `REDUCE` / `AVOID`                                                                                                                                    |
| `confidence`         | number         | 0.0 -- 1.0. ETH entry threshold is confidence >= 0.65.                                                                                                                                               |
| `agentVotes`         | object         | Per-agent breakdown from all 6 ETH specialist agents                                                                                                                                                 |
| `agentVotes.<AGENT>` | object         | Each agent entry has `ruling` (string) and `confidence` (number)                                                                                                                                     |
| `chiefRationale`     | string \| null | Chief Judge's plain-language explanation of the ruling and why agent disagreements were resolved as they were                                                                                        |
| `plainExplanation`   | string \| null | Plain-English, jargon-free 2-3 sentence summary of WHY the council reached its ruling, synthesized by the Chief Judge in the same call. `null` for historical verdicts recorded before this feature. |
| `snapshotSignals`    | object         | Raw signal readings at the time of council deliberation (key-value pairs)                                                                                                                            |
| `createdAt`          | string         | ISO 8601 timestamp of verdict                                                                                                                                                                        |

## Specialist Agents

The ETH council replaces the generic BTC agent personas with 6 specialists
calibrated for Ethereum-specific intelligence. Each agent produces an
independent ruling and confidence score. The Chief Judge aggregates all 6
votes into the final verdict.

| Agent                   | Weight | Veto    | Domain                                                 |
| ----------------------- | ------ | ------- | ------------------------------------------------------ |
| `VALIDATOR_ORACLE`      | 0.20   | No      | PoS network health, staking APY, ETH/BTC ratio         |
| `MACRO_SAGE`            | 0.15   | No      | DXY, US10Y, BTC dominance, Fear & Greed, ETH ETF flows |
| `GAS_FEE_ANALYST`       | 0.20   | No      | EIP-1559 burn, DeFi TVL, L2 activity proxy             |
| `MOMENTUM_HUNTER`       | 0.20   | No      | RSI 1H/4H, MACD, EMA distance, funding rate            |
| `DEFI_LIQUIDITY_WARDEN` | 0.10   | **Yes** | DeFi exit risk, funding squeeze, liquidations          |
| `RISK_WARDEN`           | 0.15   | **Yes** | Tail risks, F\&G extremes, ETH ETF outflow reversals   |

The `agentVotes` object in every verdict response maps each agent name
to its individual `ruling` and `confidence`. Disagreement between agents
is reflected in the final confidence score -- unanimous verdicts carry
the highest confidence.

## Veto Rules

DEFI\_LIQUIDITY\_WARDEN and RISK\_WARDEN carry veto power. When either
returns AVOID with confidence > 0.7, the council ruling becomes AVOID
regardless of what the other four agents vote. Vetoes are enforced
deterministically in Python -- never trusted to LLM compliance.

| Veto Agent              | Trigger                  | Effect                         |
| ----------------------- | ------------------------ | ------------------------------ |
| `DEFI_LIQUIDITY_WARDEN` | AVOID + confidence > 0.7 | Council ruling forced to AVOID |
| `RISK_WARDEN`           | AVOID + confidence > 0.7 | Council ruling forced to AVOID |

<RequestExample>
  ```bash curl theme={null}
  curl https://api.aioka.io/v1/eth/council \
    -H "X-API-Key: aik_pro_your_key_here"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "verdict": {
      "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "ruling": "ACCUMULATE",
      "confidence": 0.72,
      "agentVotes": {
        "VALIDATOR_ORACLE": {"ruling": "BUY", "confidence": 0.76},
        "MACRO_SAGE": {"ruling": "ACCUMULATE", "confidence": 0.68},
        "GAS_FEE_ANALYST": {"ruling": "BUY", "confidence": 0.74},
        "MOMENTUM_HUNTER": {"ruling": "BUY", "confidence": 0.79},
        "DEFI_LIQUIDITY_WARDEN": {"ruling": "ACCUMULATE", "confidence": 0.65},
        "RISK_WARDEN": {"ruling": "HOLD", "confidence": 0.58}
      },
      "chiefRationale": "Validator network healthy, gas fees rising, momentum aligned. RISK_WARDEN's HOLD dissent reflects elevated ETH/BTC spread uncertainty. Confidence trimmed to 0.72.",
      "plainExplanation": "The council leaned moderately bullish because Ethereum's network activity and staking health are strengthening while macro conditions stay supportive. Momentum is firm but not extreme, so the stance is a measured accumulate rather than an aggressive buy.",
      "snapshotSignals": {
        "eth_price": 3265.0,
        "rsi_1h": 52.4,
        "ema_200": 3210.5,
        "fear_greed": 58,
        "staking_apy": 3.82
      },
      "createdAt": "2026-05-06T08:30:00+00:00"
    },
    "nextRefreshMinutes": 30
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /v1/eth/council
openapi: 3.1.0
info:
  title: AIOKA Intelligence API
  description: |

    ## AI-powered crypto market intelligence

    AIOKA Intelligence API provides real-time access to our AI Council verdicts,
    market signals, regime detection, and Ghost Trader entry signals.

    ### Tiers
    - **Free**: 100 calls/day — Verdict + Regime
    - **Basic** ($49/mo): 1,000 calls/day — + Signals
    - **Pro** ($199/mo): 10,000 calls/day — + Council + Ghost

    ### Authentication
    Pass your API key in the `X-API-Key` header:

    ```
    X-API-Key: aik_free_xxxxxxxxxxxx
    ```

    ### Get your API key
    `POST /v1/keys/generate` (free tier, no credit card)
  contact:
    name: AIOKA Support
    url: https://docs.aioka.io/
    email: api@aioka.io
  license:
    name: Commercial
    url: https://aioka.io/terms
  version: 1.0.0
servers:
  - url: https://api.aioka.io
    description: Production — AIOKA Intelligence API
security: []
paths:
  /v1/eth/council:
    get:
      tags:
        - ETH Ghost Trader
      summary: Latest ETH Council Verdict
      description: >-
        Latest ETH Council verdict with full agent breakdown (6 ETH Phase 2

        specialist agents), chief rationale, and signal snapshot at convene
        time.


        **Tier:** Pro

        **Cache:** None

        **Rate limit:** 30/min (per tier)
      operationId: get_eth_council_v1_eth_council_get
      responses:
        '200':
          description: ETH council verdict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ETHCouncilResponse'
        '401':
          description: Missing or invalid API key
        '403':
          description: Tier insufficient
      security:
        - APIKeyHeader: []
components:
  schemas:
    ETHCouncilResponse:
      properties:
        verdict:
          anyOf:
            - $ref: '#/components/schemas/ETHCouncilVerdict'
            - type: 'null'
        nextRefreshMinutes:
          type: integer
          title: Nextrefreshminutes
          default: 30
      type: object
      title: ETHCouncilResponse
    ETHCouncilVerdict:
      properties:
        id:
          type: string
          title: Id
        ruling:
          type: string
          title: Ruling
        confidence:
          type: number
          title: Confidence
        agentVotes:
          type: object
          title: Agentvotes
        riskFlags:
          items:
            type: string
          type: array
          title: Riskflags
        chiefRationale:
          anyOf:
            - type: string
            - type: 'null'
          title: Chiefrationale
        snapshotSignals:
          type: object
          title: Snapshotsignals
        plainExplanation:
          anyOf:
            - type: string
            - type: 'null'
          title: Plainexplanation
        createdAt:
          type: string
          format: date-time
          title: Createdat
      type: object
      required:
        - id
        - ruling
        - confidence
        - createdAt
      title: ETHCouncilVerdict
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: 'Your AIOKA Intelligence API key (format: aik_{tier}_{random})'
      in: header
      name: X-API-Key

````