Supra · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Supra RPC Node API

6 actions 6 updates update extends ../openapi/supra-rpc-node-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Supra's API. It is a proposal applied on top of the contract, not a document Supra publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

termsOfServicex-documentation-urlx-api-reference-urlx-providerx-irreversiblex-reversal-operationx-agent-guidancex-idempotency

Targets 6

$.servers
$.info
$.info.description
$.tags
$.paths['/rpc/v3/transactions/submit'].post
$.paths..responses['410']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Supra RPC Node API
  version: 1.0.0
extends: ../openapi/supra-rpc-node-openapi.yml
x-provenance:
  generated: '2026-08-29'
  method: generated
  source: >-
    Enhancements over the verbatim OpenAPI 3.1.0 document Supra serves at
    https://rpc-mainnet.supra.com/docs/api.json (saved unmodified at
    openapi/_original/supra-rpc-node-openapi-original.json). Every value added here is taken from a Supra source
    named in the action's description — the network information page, the docs, or a live probe. The original
    is never mutated.
actions:
- target: $.servers
  description: >-
    The served contract declares servers as [{"url": "/"}] — correct for a node serving its own docs, useless
    for a client generated from the file, which ends up with no host at all. Replaced with the two real network
    hosts named on https://docs.supra.com/network-information, with the chain id each answers.
  update:
  - url: https://rpc-mainnet.supra.com
    description: Supra MoveVM Mainnet. Chain id 8.
  - url: https://rpc-testnet.supra.com
    description: Supra MoveVM Testnet. Chain id 6. Faucet enabled.
- target: $.info
  description: >-
    Adds the human documentation entry point, the terms of use, and a license. Source:
    https://docs.supra.com/network/move/rest-api and https://supra.com/terms-of-use/ (both HTTP 200 on
    2026-08-29). info.contact already names Supra Labs and https://supra.com in the served document and is left
    as published.
  update:
    termsOfService: https://supra.com/terms-of-use/
    x-documentation-url: https://docs.supra.com/network/move/rest-api
    x-api-reference-url: https://rpc-mainnet.supra.com/docs/
    x-provider: Supra (Entropy Foundation)
- target: $.info.description
  description: >-
    The served description is a raw build banner (version, tag, commit hash, build time) with no prose. Prepends
    a one-paragraph statement of what the API is, retaining the build banner underneath, so a generated client
    or an agent reading the spec alone knows what it is holding.
  update: >-
    The public JSON/REST interface of a Supra Layer 1 node. Keyless and permissionless: no API key, no OAuth, no
    securityScheme. Reads are open; writes are authorized by the Ed25519 signature inside the submitted
    transaction and made replay-safe by a per-account sequence number. Four path versions are live
    simultaneously (v1-v4); v1 and v2 are deprecated. Nodes prune history and answer 410 Gone for pruned ranges,
    with the retention floor in the x-supra-oldest-block response header.


    Build banner as served:

    0.5.0
    tag:supra_rpc_v11.5.2
    commit_hash:5e9ea652
    build_time:2026-08-25 08:38:29 +00:00
- target: $.tags
  description: >-
    The served tags are bare names with no descriptions. Adds a one-line description to each, derived from the
    operations grouped under it in the same document.
  update:
  - name: Accounts
    description: Read account state — sequence number, authentication key, published modules, stored Move resources, and transaction / coin / fungible-asset / automation history.
  - name: Transactions
    description: Submit, simulate and look up transactions; read chain id, transaction parameters, gas price estimates and inclusion certificates.
  - name: Block
    description: Fetch executed blocks by height, by hash, or the chain tip, and list the transactions a block contains.
  - name: Consensus
    description: Validator-facing layer — certified consensus blocks, per-epoch committee authorizations and authorized committees.
  - name: Events
    description: Query emitted Move events by fully qualified event type, with optional emission proofs.
  - name: Proofs
    description: Merkle inclusion and event-emission proofs, single or batched, so a consumer can verify a record without trusting the node that served it.
  - name: View
    description: Execute a read-only Move view function by fully qualified module::function and return its MoveValues.
  - name: Tables
    description: Read a Move table item by handle and key.
  - name: Faucet
    description: Testnet only — fund an address with test SUPRA and look up the resulting funding transaction.
  - name: Indexer
    description: Indexed query surface.
  - name: WebSocket
    description: JSON-RPC 2.0 subscription stream (supra_subscribe / supra_unsubscribe) for newBlocks and newBlockHeaders.
- target: $.paths['/rpc/v3/transactions/submit'].post
  description: >-
    Flags the irreversibility of the write path and points at the rehearsal endpoint. Derived from
    conventions/supra-conventions.yml reversibility, which is itself read from the contract and the docs.
  update:
    x-irreversible: true
    x-reversal-operation: null
    x-agent-guidance: >-
      One-way door. A committed transaction cannot be cancelled, refunded, voided or rolled back. Simulate with
      simulate_txn_v3 first, confirm the network from the x-supra-chain-id response header, and treat a 200 as
      final. Replay is safe — the account sequence number inside the signed payload prevents double execution —
      so a timeout may be retried with the identical bytes.
    x-idempotency: per-account sequence_number carried in the signed transaction; no Idempotency-Key header.
- target: $.paths..responses['410']
  description: >-
    Marks 410 as permanent for this node so generated clients and retry middleware do not treat it as a
    transient failure. The retention floor is published in the x-supra-oldest-block response header.
  update:
    x-retryable: false
    x-remediation: Read x-supra-oldest-block for the retention floor, then narrow the range or query an archival node.