Skip to main content

Impossibility to retrieve and prove KV data with nil values

Due to a bug in the ICS23 proof verification package, it’s currently not possible to query a nil or empty value from a remote chain. If your KV query is registered with a key K and the value under this key is nil or empty, the submission of such a KV result will fail due to an IAVL-proof verification error:
failed to verify proof: empty value in membership proof
Additionally, because of the nature of IAVL proofs, which is the mechanism used for verifying KV query results, it’s also impossible to verify an IAVL absence proof if the proof contains a nil or empty value. This results in the error:
failed to verify proof: could not verify absence of key. Please ensure that the path is correct.
The team is working on ICS32 as a potential successor to ICS23 that may address these limitations. In the meantime, the only way to avoid this problem is to ensure that your queries do not target keys with nil or empty values.
I