Chains API

Solana protocol parameters: network, epochs, inflation, minimum stake, rent

Which network this is (genesis hash), slots per epoch, the inflation schedule and rate in force, the smallest stake delegation, and the balance an account needs to be rent-exempt.

GET/api/external/chain-analysis/network-parameters/{chain}

What it returns

Six protocol parameters of the chain, each read from the chain itself: the genesis hash (which names the network: mainnet has one, every test network another), the epoch schedule (slots per epoch and how far ahead the leader schedule is fixed), the inflation schedule over the years, the inflation rate in force this epoch, the smallest stake delegation accepted and the balance an account must hold to be exempt from rent (a base plus a rate per byte of account data). Every rate is a yearly FRACTION (0.036 = 3.6 %), not a percent. Balances are in lamports (1 SOL = 1,000,000,000 lamports). Each of the six is null when it could not be read, independently of the others. All but the current inflation rate change only by a protocol upgrade; the rate steps once per epoch (about two days).

Chains

  • Solana SOL

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/chain-analysis/network-parameters/SOL"
Parameters
ParameterDescription
chain

path · string · required

SOL only; every other chain returns 400. These are Solana protocol parameters (epochs, inflation, minimum stake, rent exemption) that other chains do not publish in this form.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Solana protocol parameters: network, epochs, inflation, minimum stake, rent
FieldTypeDescription
genesisHashstring | nullThe genesis block's hash, base58. It names the network.
epochScheduleobject | nullHow the chain divides slots into epochs.
epochSchedule.slotsPerEpochintegerSlots in every full-length epoch.
epochSchedule.leaderScheduleSlotOffsetintegerHow many slots before an epoch begins its leader schedule is fixed.
epochSchedule.warmupbooleanWhether the first epochs were shorter, doubling in length up to slotsPerEpoch.
epochSchedule.firstNormalEpochintegerThe first full-length epoch.
epochSchedule.firstNormalSlotintegerThe first slot of firstNormalEpoch.
inflationScheduleobject | nullThe schedule the yearly inflation rate follows, every value a fraction.
inflationSchedule.initialnumberThe yearly rate the schedule started at.
inflationSchedule.terminalnumberThe floor the rate falls to and then stays at.
inflationSchedule.tapernumberThe fraction by which the rate falls each year until it reaches terminal.
inflationSchedule.foundationnumberThe share of inflation paid to the foundation.
inflationSchedule.foundationTermnumberFor how many years the foundation share is paid.
inflationRateobject | nullThe yearly inflation rate in force for epoch, split by who receives it.
inflationRate.epochintegerThe epoch this rate applies to.
inflationRate.totalnumberThe total yearly rate.
inflationRate.validatornumberThe part paid to validators and their stakers.
inflationRate.foundationnumberThe part paid to the foundation.
stakeMinimumDelegationLamportsinteger | nullThe smallest stake delegation the chain accepts, in lamports.
rentExemptionobject | nullThe balance an account must hold to be exempt from rent: an account with N bytes of data needs at least emptyAccountLamports + N × lamportsPerDataByte lamports.
rentExemption.emptyAccountLamportsintegerThe minimum for an account with no data, in lamports.
rentExemption.lamportsPerDataByteintegerWhat each byte of account data adds to the minimum, in lamports.

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key