engine_newPayloadV3
Method
- JSON-RPC method name:
engine_newPayloadV3 - JSON-RPC version:
2.0
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Execution payload | object | yes | |
| Expected blob versioned hashes | string[] | yes | |
| Root of the parent beacon block | string | yes |
Parameter schema
{
"Execution payload": {
"required": true,
"schema": {
"title": "Execution payload object V3",
"type": "object",
"required": [
"parentHash",
"feeRecipient",
"stateRoot",
"receiptsRoot",
"logsBloom",
"prevRandao",
"blockNumber",
"gasLimit",
"gasUsed",
"timestamp",
"extraData",
"baseFeePerGas",
"blockHash",
"transactions",
"withdrawals",
"blobGasUsed",
"excessBlobGas"
],
"properties": {
"parentHash": {
"title": "Parent block hash",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"feeRecipient": {
"title": "Recipient of transaction priority fees",
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"stateRoot": {
"title": "State root",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"receiptsRoot": {
"title": "Receipts root",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"logsBloom": {
"title": "Bloom filter",
"type": "string",
"pattern": "^0x[0-9a-f]{512}$"
},
"prevRandao": {
"title": "Previous randao value",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"blockNumber": {
"title": "Block number",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"gasLimit": {
"title": "Gas limit",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"gasUsed": {
"title": "Gas used",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"timestamp": {
"title": "Timestamp",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"extraData": {
"title": "Extra data",
"type": "string",
"pattern": "^0x[0-9a-f]{0,64}$"
},
"baseFeePerGas": {
"title": "Base fee per gas",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,63})$"
},
"blockHash": {
"title": "Block hash",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"transactions": {
"title": "Transactions",
"type": "array",
"items": {
"title": "hex encoded bytes",
"type": "string",
"pattern": "^0x[0-9a-f]*$"
}
},
"withdrawals": {
"title": "Withdrawals",
"type": "array",
"items": {
"title": "Withdrawal object V1",
"type": "object",
"required": [
"index",
"validatorIndex",
"address",
"amount"
],
"properties": {
"index": {
"title": "Withdrawal index",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"validatorIndex": {
"title": "Validator index",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"address": {
"title": "Withdrawal address",
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"amount": {
"title": "Withdrawal amount",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
}
}
}
},
"blobGasUsed": {
"title": "Blob gas used",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"excessBlobGas": {
"title": "Excess blob gas",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
}
}
}
},
"Expected blob versioned hashes": {
"required": true,
"schema": {
"type": "array",
"items": {
"title": "32 byte hex value",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
}
}
},
"Root of the parent beacon block": {
"required": true,
"schema": {
"title": "32 byte hex value",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
}
}
}
Result
- Name:
Payload status - Type:
object
Result schema
{
"title": "Payload status object deprecating INVALID_BLOCK_HASH status",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"title": "Payload validation status",
"type": "string",
"enum": [
"VALID",
"INVALID",
"SYNCING",
"ACCEPTED"
]
},
"latestValidHash": {
"title": "The hash of the most recent valid block",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"validationError": {
"title": "Validation error message",
"type": "string"
}
}
}
Positional parameters
Parameter order:
Execution payloadExpected blob versioned hashesRoot of the parent beacon block
Errors
This method may return JSON-RPC standard errors (e.g. -32600, -32601, -32602, -32603) as well as application-specific errors.
TODO: Document method-specific error codes and conditions.