Klayr Service API v2 vs v3

A comprehensive comparison between Klayr Service v2 and Klayr Service v3 API specification.

To see an overview of the available events in Klayr Service API v3, please check out the Publish/Subscribe API (Klayr Service) reference.
Table 1. Klayr Service API v2 vs v3
v2 endpoint (/api/v2) v3 endpoint (/api/v3) Comments

Accounts

  • HTTP: GET /accounts

  • RPC: get.accounts

X

Deprecated. Split into module-specific endpoints. Following are some of the endpoints that can be used to reconstruct the account-related information:

Auth

X

  • HTTP: GET /auth

  • RPC: get.auth

New endpoint to fetch all the auth information for a given address from the Auth module.

Blockchain

X

  • HTTP: GET /blockchain/apps

  • RPC: get.blockchain.apps

New endpoint to list all the Klayr applications on the network. This is expected to be supported only on the main chain by observing the registration CCMs. Sidechains proxy through the mainchain deployment.

X

  • HTTP: GET /blockchain/apps/statistics

  • RPC: get.blockchain.apps.statistics

New endpoint to fetch the current network statistics with regard to interoperability.

X

  • HTTP: GET /blockchain/apps/meta/list

  • RPC: get.blockchain.apps.meta.list

New endpoint to list the Klayr applications for which the off-chain metadata is available in the app-registry.

X

  • HTTP: GET /blockchain/apps/meta

  • RPC: get.blockchain.apps.meta

New endpoint to fetch the off-chain metadata for Klayr applications, available in the app-registry.

X

  • HTTP: GET /blockchain/apps/meta/tokens

  • RPC: get.blockchain.apps.meta.tokens

New endpoint to fetch the off-chain metadata for Klayr application tokens, available in the app-registry.

X

  • HTTP: GET /blockchain/apps/meta/tokens/supported

  • RPC: get.blockchain.apps.meta.tokens.supported

New endpoint to fetch the off-chain metadata for all the supported tokens, available for a specified chain.

Blocks

  • HTTP: GET /blocks

  • RPC: get.blocks

  • HTTP: GET /blocks

  • RPC: get.blocks

generatorUsername request query param removed.

X

  • HTTP: GET /blocks/assets

  • RPC: get.blocks.assets

New endpoint to query the block assets, introduced with SDK v6.

Events

X

  • HTTP: GET /events

  • RPC: get.events

New endpoint to query blockchain events, introduced with SDK v6.

Export

  • HTTP: GET /transactions/export

  • RPC: get.transactions.export

  • HTTP: GET /export/transactions

  • RPC: get.export.transactions

Refactored the endpoint to emphasise it as a separate microservice.

Exports

  • HTTP: GET /exports/{fileName}

  • RPC: X

  • HTTP: GET /exports/download

  • RPC: X

filename is now a mandatory request query param instead of a request path param.

Fees

  • HTTP: GET /fees

  • RPC: get.fees

  • HTTP: GET /fees

  • RPC: get.fees

Updated response structure. Merges some constants from the Fee module.

Generators

  • HTTP: GET /forgers

  • RPC: get.forgers

  • HTTP: GET /generators

  • RPC: get.generators

Updated the endpoint to make it consensus-algorithm-generic. The response structure also varies.

Index

X

  • HTTP: GET /index/status

  • RPC: get.index.status

New endpoint to list the current indexing status.

Invoke

X

  • HTTP: POST /invoke

  • RPC: post.invoke

Responds with the requested endpoint response, deserialized by schema while maintaining the original response structure.

Legacy

X

  • HTTP: GET /legacy

  • RPC: get.legacy

Used to be part of the response of v2/accounts

Market

  • HTTP: GET /market/prices

  • RPC: get.market.prices

  • HTTP: GET /market/prices

  • RPC: get.market.prices

X

Network

  • HTTP: GET /network/statistics

  • RPC: get.network.statistics

  • HTTP: GET /network/statistics

  • RPC: get.network.statistics

X

  • HTTP: HTTP: GET /network/status

  • RPC: get.network.status

  • HTTP: GET /network/status

  • RPC: get.network.status

Updated response structure.

Newsfeed

  • HTTP: GET /newsfeed

  • RPC: get.newsfeed

X

Discontinued.

Peers

  • HTTP: GET /peers

  • RPC: get.peers

  • HTTP: GET /network/peers

  • RPC: get.network.peers

The endpoint has now been moved under the network namespace.

  • HTTP: GET /peers/connected

  • RPC: get.peers.connected

X

Removed the redundant endpoints. /peers can be used to query the same with the optional state request query param.

  • HTTP: GET /peers/disconnected

  • RPC: get.peers.disconnected

X

PoS

X

  • HTTP: GET /pos/constants

  • RPC: get.pos.constants

New endpoint to fetch the module constants for the PoS module. Some of this information was priorly available through the /v2/network/status endpoint.

X

  • HTTP: GET /pos/rewards/locked

  • RPC: get.pos.rewards.locked

New endpoint to fetch the list of block generation rewards currently locked by the PoS module for the specified validator.

X

  • HTTP: GET /pos/rewards/claimable

  • RPC: get.pos.rewards.claimable

New endpoint to fetch the claimable rewards currently locked by the PoS module for the specified staker. Subset of /pos/rewards/locked

  • HTTP: GET /votes_sent

  • RPC: get.votes_sent

  • HTTP: GET /pos/stakes

  • RPC: get.pos.stakes

New endpoint that returns a list of stakes sent by the specified user by their address, publicKey, or validator name.

  • HTTP: GET /votes_received

  • RPC: get.votes_received

  • HTTP: GET /pos/stakers

  • RPC: get.pos.stakers

Changed the name of the endpoint. Retrieves the list of stakers (received stakes) for the specified validator.

X

  • HTTP: GET /pos/unlocks

  • RPC: get.pos.unlocks

Used to be part of the response of v2/accounts.

X

  • HTTP: GET /pos/validators

  • RPC: get.pos.validators

Equivalent of v2/accounts?isDelegate=true

Reward

X

  • HTTP: GET /reward/annual-inflation

  • RPC get.reward.annual-inflation

New endpoint to fetch the annual inflation of the reward token at the specified height.

X

  • HTTP: GET /reward/constants

  • RPC get.reward.constants

New endpoint to fetch the module constants for the Reward module. Some of this information was priorly available through the /v2/network/status endpoint.

X

  • HTTP: GET /reward/default

  • RPC get.reward.default

New endpoint to fetch the expected reward value at the specified height as per the node config. The actual reward might vary and can be determined from the rewardMinted event corresponding to the block height.

Token

X

  • HTTP: GET /token/balances

  • RPC: get.token.balances

New endpoint to fetch all the token information for a given address from the Token module.

X

  • HTTP: GET /token/summary

  • RPC: get.token.summary

New endpoint to fetch all the token summary which includes totalSupply, escrowedAmount, and supported tokens information of the Klayr application.

  • HTTP: GET /accounts

  • RPC: get.accounts

With request param sort=balance:desc

  • HTTP: GET /api/v3/token/available-ids

  • RPC: get.token.available-ids

New endpoint to fetch all the tokenIDs for which we currently index the balances.

  • HTTP: GET /api/v3/token/balances/top

  • RPC: get.token.balances.top

New endpoint to fetch all the addresses on the chain sorted by their balances for a specified tokenID.

Transactions

  • HTTP: GET /transactions

  • RPC: get.transactions

  • HTTP: GET /transactions

  • RPC: get.transactions

senderPublickey, senderUsername, recipientUsername, and recipientPublickey request query params removed.

X

  • HTTP: POST /transactions/dryrun

  • RPC: post.transactions.dryrun

New endpoint to dry run the transactions, introduced with SDK v6. Takes a mandatory transaction param in the request body.

  • HTTP: POST /transactions

  • RPC: post.transactions

  • HTTP: POST /transactions

  • RPC: post.transactions

X

X

  • HTTP: POST /transactions/estimate-fees

  • RPC: post.transactions.estimate-fees

New endpoint to estimate the transaction fees for a signed/unsigned transaction.

  • HTTP: GET /transactions/schemas

  • RPC: get.transactions.schemas

  • HTTP: GET /schemas

  • RPC: get.schemas

Returns all the available schemas for the Klayr application including blocks, header, transactions, event, all event data, and all command params, etc.

  • HTTP:

    • GET /transactions/statistics/day

    • GET /transactions/statistics/month

  • RPC:

    • get.transactions.statistics.day

    • get.transactions.statistics.month

  • HTTP: GET /transactions/statistics RPC: get.transactions.statistics

Now takes a mandatory query param interval and returns a response in the same format.

Validator

X

  • HTTP: GET /validator

  • RPC: get.validator

New endpoint to fetch all the validator information for a given address from the Validator module.

X

  • HTTP: GET /validator/validate-bls-key

  • RPC: get.validator.validate-bls-key

New endpoint to verify a BLS key against its corresponding Proof of Possession.