Skip to content

KZG_POINT_EVALUATION

KZG

Verify a KZG proof that a blob polynomial evaluates to a claimed value at a point.

Address0x000000000000000000000000000000000000000a
NameKZG_POINT_EVALUATION
Minimum gas50,000
Input192 bytes
Output64 bytes
Available sinceCancun

Input

versioned_hash32 B
z32 B
y32 B
commitment48 B
proof48 B
OffsetLengthFieldDescription
032versioned_hashThe versioned hash of the blob commitment. Must match the commitment.
3232zThe evaluation point.
6432yThe claimed evaluation result.
9648commitmentThe KZG commitment to the blob polynomial.
14448proofThe KZG opening proof.

Output

A 64-byte constant encoding FIELD_ELEMENTS_PER_BLOB (4096) and the BLS modulus, returned only when the proof verifies.

Gas

50000

Failure behaviour

  • Reverts if the input is not exactly 192 bytes.
  • Reverts if the versioned hash does not match the commitment.
  • Reverts if the KZG proof does not verify.

Calling it

Precompiles have no ABI and no function selector: the input is raw bytes at the exact offsets above. Call with staticcall.

// KZG_POINT_EVALUATION at 0x0a
(bool ok, bytes memory out) = address(0x0a).staticcall(input);
require(ok, "KZG_POINT_EVALUATION reverted");

Specification