Verifiable RPC replies

Description

This bounty can be split into sub-bounties by each individual RPC request type (e.g. view access key, view access keys list, transaction in the block, view state, etc). Each sub-bounty can be implemented by a different team. In order to benefit from having Near light client integrated into near-api-js, we need the RPC interface of Near node to return proofs for most of the RPC replies (e.g. have an option to do it when “proof” parameter is passed). For example, the proof of a transaction being included into the block would consist of: merkle path towards transaction in a shard, merkle path towards shard hash. For access keys and viewing state you would need to provide the path in merkle patricia trie. We have already implemented proof for Transaction Status, which you can use as an example: https://docs.near.org/api/rpc/transactions#transaction-status.

Acceptance criteria

Please complete your bounties in the form of pull-requests to https://github.com/near/nearcore

Rewards

16000 reward pool

Resources

Check out Near’s technical documentation
https://docs.near.org/
Dev Tools
https://near.org/developers/tools/
NEAR BOS Docs
https://thewiki.near.page/near.social_docs
Bounty video