Decentralized Storage (PoR)

Native L1 Proof-of-Retrievability, query files, challenges, archive nodes, and V2 coverage. Powers snip.sumchain.io (https://snip.sumchain.io). Archive-node withdrawal (issue #20) and reassignment (issue #62) are active on mainnet (their 8,900,000 gates have been reached).

8 methods · verified against the live mainnet RPC at https://rpc.sumchain.io.

storage_getFundedFiles

Returns all files with fee_pool > 0. New archive nodes use this to discover what to store and earn from.

Request
{"jsonrpc":"2.0","method":"storage_getFundedFiles","params":[],"id":1}
Response (live)
{"jsonrpc":"2.0","result":[],"id":1}
storage_getAccessList

Returns full metadata for a file by its merkle_root, including the on-chain ACL.

Request
{"jsonrpc":"2.0","method":"storage_getAccessList","params":["0xabc..."],"id":1}
storage_getActiveChallenges

Open Proof-of-Retrievability challenges assigned to a specific archive node. Failure to respond within 50 blocks slashes 5% of stake.

Request
{"jsonrpc":"2.0","method":"storage_getActiveChallenges","params":["8zZ1pfbpUcAmoByWKYgJgiFZWpmhWQKJ4"],"id":1}
storage_getNodeRecord

Returns the NodeRegistry record (role, staked balance, status) for an address.

nodeRegistry_buildTransaction

Build an unsigned node-registry transaction (register, begin-unstake, withdraw-unbonded, register-encryption-key), returns unsigned tx material + signing hash; no private keys.

storage_getAssignmentCoverageV2

Per-file chunk coverage: attested vs assigned per archive, missing chunks, and can_activate_now. Epoch-aware/aggregate since the reassignment work (issue #62).

storage_getActiveNodesAtHeight

The active-archive snapshot at a given height, used to reproduce the deterministic chunk assignment client-side.

storage_getArchiveUnbonding

Pending archive-node stake-unbonding record for an operator, or null. Part of archive-node withdrawal (issue #20), active on mainnet (gate 8,900,000 reached).