json rpc svm

QoreChain provides a Solana-compatible JSON-RPC interface through its SVM (Solana Virtual Machine) runtime, enabling existing Solana tooling and SDKs to interact with QoreChain natively.

Connection

Transport
Default Address

HTTP

http://localhost:8899


Methods

Method
Parameters
Description

getAccountInfo

pubkey (base58 string)

Returns account data, owner, lamports, and executable flag

getBalance

pubkey (base58 string)

Returns the balance in lamports for the given public key

getSlot

none

Returns the current slot number

getMinimumBalanceForRentExemption

dataLength (integer)

Returns the minimum balance for rent exemption given data size

getVersion

none

Returns the node software version

getHealth

none

Returns node health status ("ok" if healthy)


Response Format

All responses follow the JSON-RPC 2.0 specification. Responses that reference on-chain state include a context object with the current slot:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "context": {
      "slot": 123456
    },
    "value": { ... }
  }
}

Examples

getAccountInfo

Request:

Response:

getBalance

Request:

Response:

getVersion

Request:

Response:

The version string 1.18.0-qorechain indicates compatibility with the Solana 1.18.0 RPC interface running on the QoreChain SVM runtime.


@solana/web3.js Integration

Existing Solana applications can connect to QoreChain by pointing the Connection object to the local SVM endpoint:


Notes

  • Address format: SVM accounts use base58-encoded public keys (standard Solana format), not the qor1 Bech32 prefix used by the native QoreChain SDK modules.

  • Cross-VM bridging: To move assets between EVM and SVM runtimes, use the Cross-VM module (x/crossvm). See the Transaction Commandsarrow-up-right for crossvm call syntax.

  • Program deployment: Deploy BPF programs via the CLI (qorechaind tx svm deploy-program) or programmatically through the SVM runtime.

  • Compute budget: The SVM runtime enforces a compute budget of 1,400,000 compute units per transaction by default. This is configurable via module parameters.