01 — System Context
Actors
| Actor | Interacts with | Authenticates via |
|---|---|---|
| Retail user / farmer | Terminal (chat, dashboards, access page) | SIWE wallet signature → JWT |
| Developer / quant | Inference API, SDK, CLI | API key (hk_live_…) |
| Another AI agent | Inference API, ACP job market | x402 payment, or ACP on-chain escrow |
| Operator (team) | Workers, treasury multisig, admin routes | Service tokens, multisig |
| Public / anyone | Marketing site, flywheel dashboard, signal scoreboard | none (public reads) |
External systems
| System | Used for | Failure posture |
|---|---|---|
| Base (L2) | Token, tier locks, staking, subscriptions, buybacks | Entitlement reads are cached; chain outage degrades to last-known tier |
| twitterapi.io | All X/Twitter reads | Retries with backoff; tools return empty rather than crash the agent |
| Hyperliquid API | Market data, whale alerts | Same, isolated in its MCP server |
| Model inference (OpenRouter today; owned GPU cluster planned) | Model inference | Gateway routes across backends by design; the boundary that lets us fail over or switch upstream with no API change |
| x402 facilitator | Verify/settle per-call payments | Verify failure = 402 (no service); settle failure = logged for reconciliation |
| Virtuals ACP | Agent-to-agent job market | [PLANNED] SDK worker; the seller-side execution API exists today |
| S3-compatible storage | Podcast audio, raw scrape payloads | Media only, non-critical path |
| OpenAI / ElevenLabs | TTS voices (media plane only) | Provider-abstracted; local TTS is the fallback |
Context diagram
flowchart TB
User([Retail user])
Dev([Developer])
Agent2([External AI agent])
Public([Public])
subgraph Hunter["Hunter Platform"]
WWW[Marketing site<br/>drpxbt.xyz]
UI[Terminal<br/>app.drpxbt.xyz — planned]
GW[Model Gateway<br/>hunter-gateway]
PA[Platform API<br/>hunter-platform]
AG[Agent<br/>hunter-agent]
WK[Workers<br/>hunter-workers]
MCP[Tool plane<br/>hunter-mcps]
DATA[(Data plane)]
MEDIA[Media suite<br/>hunter-podcast]
end
subgraph External
BASE[(Base L2<br/>token contracts)]
VLLM[Model inference<br/>OpenRouter today, own cluster planned]
TAPI[twitterapi.io]
HL[Hyperliquid]
X402[x402 facilitator]
ACP[Virtuals ACP]
end
User --> WWW --> UI
User --> UI
Dev --> GW
Agent2 -->|x402| GW
Agent2 -->|jobs| ACP -.->|PLANNED| AG
Public --> WWW
Public -->|scoreboard| PA
UI --> PA
UI --> GW
UI -->|lock / stake / subscribe| BASE
GW --> VLLM
GW --> PA
GW --> X402
AG --> GW
AG --> MCP
WK --> AG
WK --> BASE
WK --> PA
WK --> MEDIA
MCP --> TAPI
MCP --> HL
MCP --> DATA
AG --> DATA
The six planes
Hunter is organised into planes rather than a service-per-feature sprawl. Each plane owns one concern and exposes one contract.
| Plane | Owns | Contract it exposes |
|---|---|---|
| Marketing | Public narrative, live proof-of-revenue | none (static) |
| App | User-facing surfaces and session identity | consumes only |
| Platform | Identity → entitlement → metering → billing | Gateway OpenAPI, Platform REST |
| Agent | Reasoning, autonomous pipelines, agent commerce | MCP registry, internal pipeline API |
| Data | Ingestion, canonical schema, retrieval | Data-plane schema |
| Chain | Access rights and value accrual | Contract ABIs + events |
Why this shape. The planes match the four frozen interfaces in §05, so a change inside a plane never forces a coordinated release. It also matches how work is dispatched: one stream owns a plane end to end.
Trust boundaries
┌─ public internet ──────────────────────────────────────────┐
│ marketing site · terminal · gateway /v1 · public reads │
└────────────────────────────────────────────────────────────┘
│ SIWE JWT / API key / x402 payment
┌─ platform trust zone ──────────────────────────────────────┐
│ gateway internals · platform API · usage ledger │
└────────────────────────────────────────────────────────────┘
│ service tokens (never user credentials)
┌─ internal zone ────────────────────────────────────────────┐
│ agent · pipelines · ACP bridge · workers · data plane │
└────────────────────────────────────────────────────────────┘
│ outbound HTTPS today; private network once owned hardware is live
┌─ compute zone ─────────────────────────────────────────────┐
│ Model inference — OpenRouter today (public internet call);│
│ owned GPU cluster planned, never publicly routable │
└────────────────────────────────────────────────────────────┘
The gateway is the only path a user's request takes to inference, and therefore the only place tiering, metering and (once we self-host) privacy guarantees are enforced. Today that path leaves our infrastructure — the call to OpenRouter crosses back onto the public internet, unlike the fully internal "never publicly routable" compute zone this diagram describes for the owned-hardware end state. Details and the honest privacy caveat in §08.
What is deliberately not in the system
- No custody of user funds. Locks and stakes are user-initiated on-chain; the platform only reads them. (The [PLANNED] DeFAI vault changes this and is gated behind an external audit — design notes live in the contracts repo.)
- No prompt storage. See §08.
- No proprietary model training. We serve open-weight models; the moat is data, tooling and distribution, not weights.
- No mobile app. The terminal is responsive web.