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

HUNTER · $DRPXBT · drpxbt.xyz edit this page