Triton One Solana RPC API

Triton's enhanced Solana JSON-RPC interface. Exposes the full Solana JSON-RPC surface plus Triton's custom extensions — getTransactionsForAddress (single-call address history with slot, blockTime, status, and tokenAccounts filters and pagination) and the percentile-aware getRecentPrioritizationFees. Backed by global bare-metal nodes with GeoDNS routing.

OpenAPI Specification

triton-one-solana-rpc-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Triton One Solana RPC API
  description: >
    Triton's enhanced Solana JSON-RPC interface. Exposes the full Solana JSON-RPC
    surface plus Triton's custom extensions including getTransactionsForAddress
    (consolidated address history), the improved getRecentPrioritizationFees
    percentile-aware priority fees API, and the Whirligig WebSocket
    transactionSubscribe stream. All calls share the standard Solana JSON-RPC
    request envelope ({jsonrpc, id, method, params}).
  version: '1.0'
  contact:
    name: Triton One Support
    url: https://triton.one
    email: [email protected]

servers:
  - url: https://{endpoint}.rpcpool.com
    description: Triton RPC endpoint (replace {endpoint} with your endpoint slug).
    variables:
      endpoint:
        default: mainnet-beta

security:
  - TokenAuth: []

tags:
  - name: PriorityFees
    description: Improved getRecentPrioritizationFees with percentile parameter.
  - name: AddressHistory
    description: Triton's getTransactionsForAddress consolidated address history method.
  - name: Standard
    description: Standard Solana JSON-RPC methods accepted at the same endpoint.

paths:
  /:
    post:
      summary: Solana JSON-RPC Call
      description: >
        Single JSON-RPC entrypoint. Set the `method` field to one of Triton's
        supported methods. See operation examples for Triton's custom methods.
      operationId: callRpc
      tags: [Standard]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonRpcRequest'
            examples:
              getRecentPrioritizationFees:
                summary: Improved priority fees with percentile
                value:
                  jsonrpc: '2.0'
                  id: 1
                  method: getRecentPrioritizationFees
                  params:
                    - []
                    - { percentile: 5000 }
              getTransactionsForAddress:
                summary: Consolidated address history (Triton extension)
                value:
                  jsonrpc: '2.0'
                  id: 1
                  method: getTransactionsForAddress
                  params:
                    - "VinesnNPRzZBnTGzzybjJM1qZmxF8aQB6FA9P2J2TYP"
                    - transactionDetails: full
                      sortOrder: desc
                      limit: 100
                      commitment: finalized
                      encoding: jsonParsed
                      filters:
                        slot: { gte: 200000000 }
                        status: succeeded
                        tokenAccounts: balanceChanged
      responses:
        '200':
          description: JSON-RPC response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcResponse'

components:
  securitySchemes:
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: RPC consumption token from Customers API.
  schemas:
    JsonRpcRequest:
      type: object
      required: [jsonrpc, method]
      properties:
        jsonrpc: { type: string, enum: ['2.0'] }
        id: { type: [integer, string] }
        method: { type: string }
        params: { type: array }
    JsonRpcResponse:
      type: object
      properties:
        jsonrpc: { type: string }
        id: { type: [integer, string] }
        result: {}
        error:
          type: object
          properties:
            code: { type: integer }
            message: { type: string }
            data: {}
    PrioritizationFee:
      type: object
      properties:
        slot: { type: integer, description: Block slot number. }
        prioritizationFee:
          type: integer
          description: Fee value (micro-lamports) at the requested percentile.
    AddressHistoryOptions:
      type: object
      properties:
        transactionDetails:
          type: string
          enum: [signatures, full]
          default: signatures
        sortOrder:
          type: string
          enum: [asc, desc]
          default: desc
        limit:
          type: integer
          description: Default 1000 for signatures, 100 for full.
        paginationToken:
          type: string
          description: Cursor from a previous response for continued scanning.
        commitment:
          type: string
          enum: [confirmed, finalized]
          default: finalized
        encoding:
          type: string
          enum: [json, jsonParsed, base58, base64]
        filters:
          type: object
          properties:
            slot:
              type: object
              properties:
                gte: { type: integer }
                gt: { type: integer }
                lte: { type: integer }
                lt: { type: integer }
            blockTime:
              type: object
              properties:
                gte: { type: integer }
                gt: { type: integer }
                lte: { type: integer }
                lt: { type: integer }
            status:
              type: string
              enum: [any, succeeded, failed]
            tokenAccounts:
              type: string
              enum: [none, balanceChanged, all]
    AddressHistorySignaturesResult:
      type: object
      properties:
        signature: { type: string }
        slot: { type: integer }
        transactionIndex: { type: integer }
        err: {}
        memo: { type: [string, "null"] }
        blockTime: { type: [integer, "null"] }
        confirmationStatus: { type: string }
    AddressHistoryFullResult:
      type: object
      properties:
        slot: { type: integer }
        transactionIndex: { type: integer }
        blockTime: { type: [integer, "null"] }
        transaction: {}
        meta: {}