Skip to content

Action Provider Proposal: OpenRelay — x402-paid LLM inference + on-chain tools on Base #1466

Description

@GitVova999

Proposal

Add an ActionProvider that exposes OpenRelay to any AgentKit agent — an OpenAI-compatible LLM gateway and utility toolbox where every call is auto-paid in USDC on Base via x402, using the agent's own EvmWalletProvider. No API key, no signup, no upfront funding.

Package already published: @openrelay999/agentkit-provider · v0.1.0, MIT
Source: https://github.com/GitVova999/openrelay-agentkit-provider
Backend (open, indexed on x402scan): https://x402scan.com/server/2ed5dcb1-e941-411f-927f-bf221729a62e

Actions surfaced

Action Price / call What it does
openrelay_prompt $0.001-0.05 (capped) OpenAI-compatible chat completion — DeepSeek V4 Flash (400k ctx), Kimi K2.6, MiniMax M2.7
openrelay_wallet_balance $0.001 USDC / native balance on Base or Solana
openrelay_base_gas $0.001 Base gas price w/ slow/std/fast tiers
openrelay_tx_status $0.001 tx confirmation Base or Solana
openrelay_polymarket_markets $0.003 active Polymarket markets by volume

Why this fits AgentKit

Security posture (already implemented in v0.1.0)

  • Trusted-host allow-list (only openrelay.hggfffdfy687.workers.dev by default)
  • resource.url in x402 challenge must match request URL — rejects challenge substitution
  • Amount = positive integer µUSDC regex; addresses validated by regex
  • accepts[] size cap = 20 entries
  • Hard USD cap per request (default $0.05)
  • Single retry after signing — no unbounded loop

Proposed layout in the AgentKit monorepo

typescript/agentkit/src/action-providers/openrelay/
├── openrelayActionProvider.ts
├── schemas.ts
├── x402.ts
├── index.ts
├── openrelayActionProvider.test.ts
└── README.md

I have the code ready to submit as a PR once you're OK with the scope. Happy to accommodate any structural preferences (e.g., splitting the LLM prompt action into its own provider vs bundling with tools).

Optional follow-up (post-merge)

  • Solana branch — needs a SvmWalletProvider analog, blocked on AgentKit's Solana surface
  • Streaming (SSE) for chat completions
  • Python parallel implementation

Thanks for looking. Ping if a maintainer wants a video walkthrough of the x402 handshake / plugin behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions