Check whether an IBC client still holds a proof height
A relayer can possess a valid counterparty proof and still fail verification if the local client lacks the corresponding consensus state. Inspect the client’s stored heights.
List heights on the verifying chain
Set HOST to the verifying chain’s TLS gRPC endpoint with reflection. Replace the example client ID. Compare both revisionNumber and revisionHeight and continue pagination using the returned key when needed.
grpcurl -d '{"clientId":"07-tendermint-0","pagination":{"limit":"50"}}' "$HOST" ibc.core.client.v1.Query/ConsensusStateHeights
A proof for 3-1200 needs the state for revision 3, height 1200. Seeing 2-1200 in the list only matches the numeric suffix. To inspect a specific state, query ConsensusState with its exact revision fields.
Check readiness beyond presence
A stored height does not establish that the client is active, connection delays have elapsed or the proof path and value are correct. Check client status and the precise chain height the proof producer returned before rebuilding the relay message. github.com ibc-go Query API