HAPI currently provides 2 types of endpoints: JSON-RPC and gRPC. The JSON-RPC endpoints expose some layer 1 information while the gRPC endpoints support layer 2 as well as streaming of events related to blocks and transactions/transitions.

JSON-RPC Endpoints

Layer Endpoint Description
1 getBestBlockHash Returns block hash of the chaintip
1 getBlockHash Returns block hash of the requested block
1 getMnListDiff Returns masternode list diff for the provided block hashes

gRPC Endpoints

Core gRPC Service

Layer Endpoint
1 broadcastTransaction Broadcasts the provided transaction
1 getBlock Returns information for the requested block
1 getStatus Returns blockchain status information
1 getTransaction Returns details for the requested transaction
1 subscribeTo BlockHeadersWithChainLocks Returns the requested block headers along with the associated ChainLocks.
1 subscribeTo TransactionsWithProofs Returns transactions matching the provided bloom filter along with the associated islock message and merkle block

Platform gRPC Service

In addition to providing the request data, the following endpoints can also provide proofs that the data returned is valid and complete. The endpoints are versioned so updates can be made to them without introducing issues for endpoint consumers.

Layer Endpoint
2 broadcastStateTransition Broadcasts the provided State Transition
2 getIdentity Returns the requested identity
2 getIdentityBalance Returns the requested identity’s balance
2 getIdentityBalanceAndRevision Returns the requested identity’s balance and revision
2 getIdentityByPublicKeyHash Returns the identity associated with the provided public key hash
2 getIdentityKeys Returns the requested identity keys
2 getIdentities Returns the requested identities
2 getIdentitiesByPublicKeyHashes Returns the identities associated with the provided public key hashes
2 getDataContract Returns the requested data contract
2 getDataContracts Returns the requested data contracts
2 getDataContractHistory Returns the requested data contract history
2 getDocuments Returns the requested document(s)
2 getEpochsInfo Returns information about the requested epoch(s)
2 getProofs Returns proof information for the requested identities, contracts, and/or document(s)
2 getProtocolVersionUpgradeState Returns the number of votes cast for each protocol version
2 getProtocolVersionUpgradeVoteStatus Returns protocol version upgrade status
2 waitForStateTransitionResult Responds with the state transition hash and either a proof that the state transition was confirmed in a block or an error