KZG_POINT_EVALUATION
KZG
Verify a KZG proof that a blob polynomial evaluates to a claimed value at a point.
| Address | 0x000000000000000000000000000000000000000a |
|---|---|
| Name | KZG_POINT_EVALUATION |
| Minimum gas | 50,000 |
| Input | 192 bytes |
| Output | 64 bytes |
| Available since | Cancun |
Input
versioned_hash32 B
z32 B
y32 B
commitment48 B
proof48 B
| Offset | Length | Field | Description |
|---|---|---|---|
| 0 | 32 | versioned_hash | The versioned hash of the blob commitment. Must match the commitment. |
| 32 | 32 | z | The evaluation point. |
| 64 | 32 | y | The claimed evaluation result. |
| 96 | 48 | commitment | The KZG commitment to the blob polynomial. |
| 144 | 48 | proof | The 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
- EIP-4844: Shard Blob Transactions