delu-oracle ยท v16 ยท 2026-07-10 ยท sha256 f78fc5886206efe0

delu-oracle v16A

Immutable. This exact content is served forever at /api/v1/blob/f78fc5886206efe0.

---
name: delu-oracle
version: 16
description: Full-cognition token analysis for Base EVM tokens via the deluagent oracle. Pass a CA or cashtag, get back a flat decision header (action, conviction, entry/stop/size, read) plus full cognition report. Tiered x402 pricing โ€” 100M+ DELU free, 50M+ 50k DELU, public 250k DELU. Sequential calls only.
tags: [trading, defi, base, oracle, analysis]
visibility: public
metadata:
  clawdbot:
    emoji: "๐Ÿ”ฎ"
    homepage: "https://github.com/deluonchain/deluskill"
---

# delu-oracle

Intelligence layer for any Base trading agent. Pass one Base EVM contract address (or cashtag like `$BNKR`) and get back a flat `decision` header an agent can act on in a single hop โ€” `action`, `conviction`, entry/stop/size, and a one-line delu-voiced `read` โ€” with the full cognition report underneath for the why.

Scout, auditor, and quant run server-side on every call. The full `observed` block is always present. Social signal (checkr) is opt-in via `?social=true`.

## Endpoint

```
GET https://x402.bankr.bot/0xed2ceca9de162c4f2337d7c1ab44ee9c427709da/delu-oracle/analyze/{ca}
```

Base is the only supported chain โ€” no chain parameter needed.

## Parameters

| Parameter | Location | Required | Notes |
|---|---|---|---|
| `ca` | path | yes | 0x-prefixed EVM address **or** cashtag / symbol (e.g. `$BNKR`, `BNKR`). Ambiguous symbols return a 400 asking for the CA directly. |
| `social` | query | no | `?social=true` enables checkr social enrichment (+$0.45 USDC, billed to caller) |
| `verbose` | query | no | Accepted but no-op โ€” `observed` and `summary` are always present. |

## โš ๏ธ Sequential calls required

**Do not call this endpoint in parallel.** The x402 `upto` scheme uses a single-use Permit2 signature per authorization. Parallel calls with the same payer wallet result in `402 Payment could not be verified` on all but the first.

**Always call sequentially โ€” one CA at a time, await the full response, then call the next.**

```js
// โœ… correct
for (const ca of watchlist) {
  const result = await oracle.analyze(ca);
  process(result);
}

// โŒ wrong
const results = await Promise.all(watchlist.map(ca => oracle.analyze(ca)));
```

## The decision header โ€” read this first

Flat, no traversal needed:

```json
"decision": {
  "action": "ENTER",       // ENTER | WATCH | AVOID
  "conviction": 71,        // 0-100
  "direction": "long",
  "entry_low": 0.00051,
  "entry_high": 0.00053,
  "stop": 0.00048,
  "size_pct": 3.1,
  "read": "one line, delu voice"
}
```

Simple gate: `decision.action === "ENTER" && decision.conviction >= 70 && confidence >= 0.6`

`action` maps from `verdict`: strong_buy/buy โ†’ `ENTER`, hold โ†’ `WATCH`, avoid/drop โ†’ `AVOID`.

## WATCH mandate โ€” null position fields

When `verdict` is `hold`, all position-specific fields are `null` in both `decision` and `mandate` โ€” `entry_low`, `entry_high`, `stop`, `size_pct`, `entry_zone`, `stop_loss`, `stop_basis`, `size_hint_pct`, `size_basis`. Only `horizon` and `invalidations` are populated.

## Payment tier

The endpoint uses the `upto` scheme โ€” agents sign for the 250k DELU ceiling, but the handler settles based on the caller's DELU balance on Base.

| Tier | Balance | Settled |
|---|---|---|
| `whale` | 100M+ DELU | 0 DELU (free) |
| `holder` | 50M+ DELU | 50,000 DELU |
| `public` | < 50M DELU | 250,000 DELU |

**Payment token:** DELU โ€” `0x7b0ee9dcb5c1d4d7cd630c652959951936512ba3` on Base (18 decimals).

Check `payment_tier.settled_delu` in the response body for what was actually charged โ€” not the x402 authorization ceiling.

## Response schema summary

- `decision` โ€” flat header: `action`, `conviction`, `direction`, `entry_low`, `entry_high`, `stop`, `size_pct`, `read`
- `ca`, `chain`, `oracle_version`
- `verdict` โ€” `strong_buy` | `buy` | `hold` | `avoid` | `drop`
- `score` โ€” 0โ€“100 fused cognition score
- `confidence` โ€” 0โ€“1 data quality and signal agreement
- `drivers` / `risks` โ€” up to 3 each
- `signals` โ€” momentum, flow, structure, volatility, liquidity
- `context` โ€” regime_label, regime_confidence, base_eco_pulse, macro_pulse
- `mandate` โ€” action, entry_zone, stop_loss, stop_basis, size_hint_pct, size_basis, horizon, invalidations
- `payment_tier` โ€” tier, delu_balance, settled_delu, note
- `observed` โ€” always present: market, regime, social, deluagent (scout/auditor/quant mirror with `weights_used`)
- `summary`, `selected_timeframe`, `candle_count`, `pool_source`, `timestamp`

See [`references/response-schema.md`](./references/response-schema.md) for the full field-by-field schema.
See [`references/mandate-fields.md`](./references/mandate-fields.md) for mandate construction details.
See [`references/example-response.md`](./references/example-response.md) for a full annotated response example.
See [`references/social-enrichment.md`](./references/social-enrichment.md) for the opt-in two-step social flow.
See [`references/external-clients.md`](./references/external-clients.md) for standalone client recipes.

## Error codes

| Status | Meaning |
|---|---|
| `400` | Bad `ca`, symbol not found on Base, ambiguous symbol, or no supported Base pair |
| `402` | Payment required or failed. `402 Payment could not be verified` on retry = parallel calls โ€” switch to sequential |
| `404` | Unknown token or no reportable data |
| `5xx` | Oracle or upstream failure โ€” retry later |