Skip to main content

Try It Now Dialog

engine_forkchoiceUpdatedV2


Method

  • JSON-RPC method name: engine_forkchoiceUpdatedV2
  • JSON-RPC version: 2.0

Parameters

NameTypeRequiredDescription
Forkchoice stateobjectyes
Payload attributesobjectno

Parameter schema

{
"Forkchoice state": {
"required": true,
"schema": {
"title": "Forkchoice state object V1",
"type": "object",
"required": [
"headBlockHash",
"safeBlockHash",
"finalizedBlockHash"
],
"properties": {
"headBlockHash": {
"title": "Head block hash",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"safeBlockHash": {
"title": "Safe block hash",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"finalizedBlockHash": {
"title": "Finalized block hash",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
}
}
}
},
"Payload attributes": {
"required": false,
"schema": {
"title": "Payload attributes object V2",
"type": "object",
"required": [
"timestamp",
"prevRandao",
"suggestedFeeRecipient",
"withdrawals"
],
"properties": {
"timestamp": {
"title": "Timestamp",
"type": "string",
"pattern": "^0x(0|[1-9a-f][0-9a-f]{0,15})$"
},
"prevRandao": {
"title": "Previous randao value",
"type": "string",
"pattern": "^0x[0-9a-f]{64}$"
},
"suggestedFeeRecipient": {
"title": "Suggested fee recipient",
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"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})$"
}
}
}
}
}
}
}
}

Result

  • Name: Response object
  • Type: object

Result schema

{
"title": "Forkchoice updated response",
"type": "object",
"required": [
"payloadStatus"
],
"properties": {
"payloadStatus": {
"title": "Payload status",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"title": "Payload validation status",
"type": "string",
"enum": [
"VALID",
"INVALID",
"SYNCING"
],
"description": "Set of possible values is restricted to VALID, INVALID, SYNCING"
},
"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"
}
}
},
"payloadId": {
"title": "Payload id",
"type": "string",
"pattern": "^0x[0-9a-f]{16}$"
}
}
}

Positional parameters

Parameter order:

  1. Forkchoice state
  2. Payload attributes

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.