npm npm-downloads
code-style-prettier

@solana/rpc-api

This package contains types that describe the methods of the Solana JSON RPC API, and utilities for creating a RpcApi implementation with sensible defaults. It can be used standalone, but it is also exported as part of the Solana JavaScript SDK @solana/web3.js@next.

Each RPC method is described in terms of a TypeScript type of the following form:

type ExampleApi = {
getSomething(address: Address): Something;
};

A RpcApi that implements ExampleApi will ultimately expose its defined methods on any Rpc that uses it.

const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... */);
const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();

These types represent the RPC methods available on a specific Solana cluster.

For instance, the test clusters support the RequestAirdropApi while mainnet does not.

Creates a RpcApi implementation of the Solana JSON RPC API with some default behaviours.

The default behaviours include:

  • A transform that converts bigint inputs to number for compatibility with version 1.0 of the Solana JSON RPC.
  • A transform that calls the config's onIntegerOverflow handler whenever a bigint input would overflow a JavaScript IEEE 754 number. See this GitHub issue for more information.
  • A transform that applies a default commitment wherever not specified

A config object with the following properties:

  • defaultCommitment: An optional default Commitment value. Given an RPC method that takes commitment as a parameter, this value will be used when the caller does not supply one.
  • onIntegerOverflow(request, keyPath, value): void: An optional function that will be called whenever a bigint input exceeds that which can be expressed using JavaScript numbers. This is used in the default SolanaRpcApi to throw an exception rather than to allow truncated values to propagate through a program.

Modules

<internal>

Type Aliases

GetAccountInfoApi
GetBalanceApi
GetBlockApi
GetBlockCommitmentApi
GetBlockHeightApi
GetBlockProductionApi
GetBlocksApi
GetBlocksWithLimitApi
GetBlockTimeApi
GetClusterNodesApi
GetEpochInfoApi
GetEpochScheduleApi
GetFeeForMessageApi
GetFirstAvailableBlockApi
GetGenesisHashApi
GetHealthApi
GetHighestSnapshotSlotApi
GetIdentityApi
GetInflationGovernorApi
GetInflationRateApi
GetInflationRewardApi
GetLargestAccountsApi
GetLatestBlockhashApi
GetLeaderScheduleApi
GetMaxRetransmitSlotApi
GetMaxShredInsertSlotApi
GetMinimumBalanceForRentExemptionApi
GetMultipleAccountsApi
GetProgramAccountsApi
GetRecentPerformanceSamplesApi
GetRecentPrioritizationFeesApi
GetSignaturesForAddressApi
GetSignatureStatusesApi
GetSlotApi
GetSlotLeaderApi
GetSlotLeadersApi
GetStakeMinimumDelegationApi
GetSupplyApi
GetTokenAccountBalanceApi
GetTokenAccountsByDelegateApi
GetTokenAccountsByOwnerApi
GetTokenLargestAccountsApi
GetTokenSupplyApi
GetTransactionApi
GetTransactionCountApi
GetVersionApi
GetVoteAccountsApi
IsBlockhashValidApi
MinimumLedgerSlotApi
RequestAirdropApi
SendTransactionApi
SimulateTransactionApi
SolanaRpcApi
SolanaRpcApiDevnet
SolanaRpcApiMainnet
SolanaRpcApiTestnet

Functions

createSolanaRpcApi