← all adapters

helius-style

simulates Helius Solana RPC + Enhanced API v0

restadapter v0.1.011 routes

verification

VMVM tier — no SDK suite yet· surface 11 · not implemented 3 · differs 6

use it

# add to stunt.yaml
services:
  helius:
    adapter: embedded:helius-style

# then
$ stunt up

The embedded: source extracts this adapter from the binary — no git clone, fully offline.

how to mock the Helius Solana RPC + Enhanced API locally

Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Helius Solana RPC + Enhanced API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Helius Solana RPC + Enhanced API v0 surface — the data is fake, the behavior is real.

api surface (11)

generated from the adapter manifest — exactly what boots, nothing more

11 routes
POST/
POST/v0/transactions
GET/v0/addresses/{address}/transactions
GET/v0/addresses/{address}/balances
GET/v0/addresses/{address}/nfts
POST/v0/names
POST/v0/webhooks
GET/v0/webhooks
GET/v0/webhooks/{webhookId}
PUT/v0/webhooks/{webhookId}
DELETE/v0/webhooks/{webhookId}

VM-verified behaviors (10)

  • the api-key query gate rejects both surfaces
  • the JSON-RPC reads answer deterministic values; an unknown method is a -32601 envelope
  • sendTransaction walks null → processed → confirmed → finalized, firing the enhanced webhook exactly once at first confirmation
  • simulate_fail lands an on-chain InstructionError while confirmation still proceeds
  • the enhanced history seeds once per address, newest first, in the Helius parsed shape
  • type/source filters and before/until/limit paging narrow the history
  • a sent transaction joins its address's history; other addresses do not see it
  • the parse-transactions contract holds and the balances/nfts/names lookups are deterministic
  • webhook registration round-trips the Helius config shape with 404s for unknown ids
  • deliveries are unsigned, carry authHeader as Authorization, honor transactionTypes and fire exactly once

Not implemented (3)

  • RPC covers 6 methods; no getAccountInfo, getSlot, getSignaturesForAddress
  • No DAS API (getAsset, searchAssets) or /v0/tokens metadata endpoints
  • No getPriorityFeeEstimate, requestAirdrop, or WebSocket subscriptions

Differs from the real API (6)

  • Webhook payloads carry one transaction each; real Helius batches an array
  • Confirmation milestones fixed by clock: processed 1-2s, confirmed 2-3s, final 3s+
  • sendTransaction config takes simulate_fail/simulate_type/simulate_address
  • Enhanced transactions limit capped at 100 (real API max 1000)
  • A crossed before/until cursor pair silently ignores the until signature
  • The confirmation webhook fires only when a read lands inside the 2-3s confirmed window
want more of the Helius Solana RPC + Enhanced API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.