From 3fa731d8ec80cc66ff476f44f6b4b58de63462d5 Mon Sep 17 00:00:00 2001 From: ralexstokes Date: Wed, 9 Oct 2024 19:41:55 +0000 Subject: [PATCH] deploy: 492bbbdbcad45249d9a8cd8c23e902c5dfe4ad28 --- beacon-node-oapi.yaml | 763 +- releases/v3.0.0-alpha.6/beacon-node-oapi.json | 107191 +++++++++++++++ 2 files changed, 107912 insertions(+), 42 deletions(-) create mode 100644 releases/v3.0.0-alpha.6/beacon-node-oapi.json diff --git a/beacon-node-oapi.yaml b/beacon-node-oapi.yaml index 4976be5a..79ce89f4 100644 --- a/beacon-node-oapi.yaml +++ b/beacon-node-oapi.yaml @@ -6276,7 +6276,7 @@ paths: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -6374,11 +6374,108 @@ paths: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 signature: type: string format: hex @@ -10175,7 +10272,7 @@ paths: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -10273,11 +10370,108 @@ paths: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 signature: type: string format: hex @@ -27889,7 +28083,7 @@ paths: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -27987,11 +28181,108 @@ paths: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 signature: type: string format: hex @@ -50447,7 +50738,7 @@ paths: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -50545,11 +50836,108 @@ paths: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 application/octet-stream: schema: description: 'SSZ serialized block or blinded block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version` and block type in `Eth-Blinded-Payload`.' @@ -54298,7 +54686,7 @@ paths: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -54396,11 +54784,108 @@ paths: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 application/octet-stream: schema: description: 'SSZ serialized block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version`.' @@ -78687,7 +79172,7 @@ components: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -78785,11 +79270,108 @@ components: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 Electra.SignedBlindedBeaconBlock: type: object description: 'A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.' @@ -79380,7 +79962,7 @@ components: - type: object required: - execution_payload_header - - execution_requests_root + - execution_requests properties: execution_payload_header: description: 'The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.' @@ -79478,11 +80060,108 @@ components: format: hex example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' pattern: '^0x[a-fA-F0-9]{64}$' - execution_requests_root: - type: string - format: hex - example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' - pattern: '^0x[a-fA-F0-9]{64}$' + execution_requests: + type: object + description: 'The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.' + required: + - deposits + - withdrawals + - consolidations + properties: + deposits: + type: array + items: + type: object + description: 'The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.' + required: + - pubkey + - withdrawal_credentials + - amount + - signature + - index + properties: + pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + withdrawal_credentials: + description: The withdrawal credentials. + type: string + format: hex + example: '0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2' + pattern: '^0x[a-fA-F0-9]{64}$' + amount: + description: The value to be deposited (gwei). + type: string + example: '1' + signature: + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{192}$' + example: '0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505' + index: + description: The index of the deposit request. + type: string + example: '1' + maxItems: 8192 + withdrawals: + type: array + items: + type: object + description: 'The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.' + required: + - source_address + - validator_pubkey + - amount + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + validator_pubkey: + description: BLS public key of validator. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + amount: + description: The value to be withdrawn (gwei). + type: string + example: '1' + maxItems: 16 + consolidations: + type: array + items: + type: object + description: 'The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.' + required: + - source_address + - source_pubkey + - target_pubkey + properties: + source_address: + description: Execution address which sent the request. + type: string + format: hex + example: '0xAbcF8e0d4e9587369b2301D0790347320302cc09' + pattern: '^0x[a-fA-F0-9]{40}$' + source_pubkey: + description: BLS public key of validator to consolidate from. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + target_pubkey: + description: BLS public key of validator to consolidate to. + type: string + format: hex + pattern: '^0x[a-fA-F0-9]{96}$' + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + maxItems: 1 signature: type: string format: hex diff --git a/releases/v3.0.0-alpha.6/beacon-node-oapi.json b/releases/v3.0.0-alpha.6/beacon-node-oapi.json new file mode 100644 index 00000000..2f5e2b1d --- /dev/null +++ b/releases/v3.0.0-alpha.6/beacon-node-oapi.json @@ -0,0 +1,107191 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Eth Beacon Node API", + "description": "API specification for the beacon node, which enables users to query and participate in Ethereum 2.0 phase 0 beacon chain.\n\nAll requests by default send and receive JSON, and as such should have either or both of the \"Content-Type: application/json\"\nand \"Accept: application/json\" headers. In addition, some requests can send and receive data in the SSZ format. The header\n\"Content-Type: application/octet-stream\" should be set in requests that contain SSZ data; a preference to receive SSZ data in\nresponse can be indicated by setting the \"Accept: application/octet-stream;q=1.0,application/json;q=0.9\" header. Note that\nonly a subset of requests can respond with data in SSZ format; these are noted in each individual request.\n\nWhen handling requests, the server should return a 415 status code if the \"Content-Type\" header in the request specifies a format\nthat is not supported. Similarly, it should return a 406 status code if it cannot produce a response in the format accepted by\nthe client as specified in the \"Accept\" header; if no \"Accept\" header is provided then it is assumed to be \"application/json\".\nIn any case, the server should indicate the format of the response by setting the corresponding \"Content-Type\" header.\n\nAPI endpoints are individually versioned. As such, there is no direct relationship between all v1 endpoints, all v2 endpoints,\n_etc._ and no such relationship should be inferred. All JSON responses return the requested data under a `data` key in the top\nlevel of their response. Additional metadata may or may not be present in other keys at the top level of the response, dependent\non the endpoint. The rules that require an increase in version number are as follows:\n\n - no field that is listed in an endpoint shall be removed without an increase in the version number\n - no field that is listed in an endpoint shall be altered in terms of format (_e.g._ from a string to an array) without an\n increase in the version number\n\nNote that it is possible for a field to be added to an endpoint's data or metadata without an increase in the version number.\n", + "version": "v3.0.0-alpha.6 - Ethereum Proof-of-Stake Consensus Specification v1.4.0", + "contact": { + "name": "Ethereum Github", + "url": "https://github.com/ethereum/beacon-apis/issues" + }, + "license": { + "name": "CC0-1.0", + "url": "https://creativecommons.org/publicdomain/zero/1.0/" + } + }, + "servers": [ + { + "url": "{server_url}", + "variables": { + "server_url": { + "description": "Beacon node API url", + "default": "http://localhost/" + } + } + } + ], + "tags": [ + { + "name": "Beacon", + "description": "Set of endpoints to query beacon chain." + }, + { + "name": "Builder", + "description": "Set of endpoints specific to building blocks." + }, + { + "name": "Config", + "description": "Endpoints to query chain configuration, specification, and fork schedules." + }, + { + "name": "Debug", + "description": "Set of endpoints to debug chain and shouldn't be exposed publicly." + }, + { + "name": "Events", + "description": "Set of endpoints for event subscription." + }, + { + "name": "Node", + "description": "Endpoints to query node related information." + }, + { + "name": "Validator", + "description": "Endpoints intended for validator clients." + }, + { + "name": "ValidatorRequiredApi", + "description": "Minimal set of endpoints to enable a working validator implementation.\n\n[Checkout validator flow](./validator-flow.md) to learn how to use this api.\n" + }, + { + "name": "Rewards", + "description": "Endpoints to query rewards and penalties for validators." + } + ], + "paths": { + "/eth/v1/beacon/genesis": { + "get": { + "operationId": "getGenesis", + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "summary": "Retrieve details of the chain's genesis.", + "description": "Retrieve details of the chain's genesis which can be used to identify chain.", + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "type": "object", + "title": "GetGenesisResponse", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "genesis_time", + "genesis_validators_root", + "genesis_fork_version" + ], + "properties": { + "genesis_time": { + "example": "1590832934", + "description": "The genesis_time configured for the beacon node, which is the unix time in seconds at which the Eth2.0 chain began.", + "type": "string" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "genesis_fork_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + } + } + } + } + } + } + } + }, + "404": { + "description": "Chain genesis info is not yet known", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Chain genesis info is not yet known" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/root": { + "get": { + "operationId": "getStateRoot", + "summary": "Get state SSZ HashTreeRoot", + "description": "Calculates HashTreeRoot for state with given 'stateId'. If stateId is root, same value will be returned.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateRootResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "root" + ], + "properties": { + "root": { + "description": "HashTreeRoot of BeaconState object", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/fork": { + "get": { + "operationId": "getStateFork", + "summary": "Get Fork object for requested state", + "description": "Returns [Fork](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object for state with given 'stateId'.", + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateForkResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/finality_checkpoints": { + "get": { + "operationId": "getStateFinalityCheckpoints", + "summary": "Get state finality checkpoints", + "description": "Returns finality checkpoints for state with given 'stateId'.\nIn case finality is not yet achieved, checkpoint should return epoch 0 and ZERO_HASH as root.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateFinalityCheckpointsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "previous_justified", + "current_justified", + "finalized" + ], + "properties": { + "previous_justified": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/validators": { + "get": { + "operationId": "getStateValidators", + "summary": "Get validators from state", + "description": "Returns filterable list of validators with their balance, status and index.\n\nInformation will be returned for all indices or public key that match known validators. If an index or public key does not\nmatch any known validator, no information will be returned but this will not cause an error. There are no guarantees for the\nreturned data in terms of ordering; both the index and public key are returned for each validator, and can be used to confirm\nfor which inputs a response has been returned.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "id", + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "in": "query", + "required": false, + "schema": { + "type": "array", + "maxItems": 64, + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + } + }, + { + "name": "status", + "description": "[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)", + "in": "query", + "required": false, + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "oneOf": [ + { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + { + "enum": [ + "active", + "pending", + "exited", + "withdrawal" + ] + } + ] + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateValidatorsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "balance", + "status", + "validator" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + }, + "status": { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + "validator": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state or validator ID, or status", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "414": { + "description": "Too many validator IDs", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 414, + "message": "Too many validator IDs in request" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "postStateValidators", + "summary": "Get validators from state", + "description": "Returns filterable list of validators with their balance, status and index.\n\nInformation will be returned for all indices or public key that match known validators. If an index or public key does not\nmatch any known validator, no information will be returned but this will not cause an error. There are no guarantees for the\nreturned data in terms of ordering; both the index and public key are returned for each validator, and can be used to confirm\nfor which inputs a response has been returned.\n\nThe POST variant of this endpoint has the same semantics as the GET endpoint but passes\nthe lists of IDs and statuses via a POST body in order to enable larger requests.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "requestBody": { + "description": "The lists of validator IDs and statuses to filter on. Either or both may be `null` to signal that no filtering on that attribute is desired.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [], + "properties": { + "ids": { + "type": "array", + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + }, + "statuses": { + "type": "array", + "uniqueItems": true, + "items": { + "oneOf": [ + { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + { + "enum": [ + "active", + "pending", + "exited", + "withdrawal" + ] + } + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateValidatorsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "balance", + "status", + "validator" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + }, + "status": { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + "validator": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state or validator ID, or status", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/validators/{validator_id}": { + "get": { + "operationId": "getStateValidator", + "summary": "Get validator from state by id", + "description": "Returns validator specified by state and id or public key along with status and balance.", + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "validator_id", + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateValidatorResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "index", + "balance", + "status", + "validator" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + }, + "status": { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + "validator": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state or validator ID", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "StateNotFound": { + "value": { + "code": 404, + "message": "State not found" + } + }, + "ValidatorNotFound": { + "value": { + "code": 404, + "message": "Validator not found" + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/validator_balances": { + "get": { + "operationId": "getStateValidatorBalances", + "summary": "Get validator balances from state", + "description": "Returns filterable list of validators balances.\n\nBalances will be returned for all indices or public key that match known validators. If an index or public key does not\nmatch any known validator, no balance will be returned but this will not cause an error. There are no guarantees for the\nreturned data in terms of ordering; the index is returned for each balance, and can be used to confirm for which inputs a\nresponse has been returned.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "id", + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "in": "query", + "required": false, + "schema": { + "type": "array", + "maxItems": 64, + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateValidatorBalancesResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "balance" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state or validator ID", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "414": { + "description": "Too many validator IDs", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 414, + "message": "Too many validator IDs in request" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "postStateValidatorBalances", + "summary": "Get validator balances from state", + "description": "Returns filterable list of validators balances.\n\nBalances will be returned for all indices or public keys that match known validators. If an index or public key does not\nmatch any known validator, no balance will be returned but this will not cause an error. There are no guarantees for the\nreturned data in terms of ordering; the index is returned for each balance, and can be used to confirm for which inputs a\nresponse has been returned.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "requestBody": { + "description": "An array of values, with each value either a hex encoded public key (any bytes48 with 0x prefix) or a validator index.\n\nIf the supplied list is empty (i.e. the body is `[]`) or no body is supplied then balances will be returned for all validators.\n", + "required": false, + "content": { + "application/json": { + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateValidatorBalancesResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "balance" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID or malformed request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/validator_identities": { + "post": { + "operationId": "postStateValidatorIdentities", + "summary": "Get validator identities from state", + "description": "Returns filterable list of validators identities.\n\nIdentities will be returned for all indices or public keys that match known validators. If an index or public key does not\nmatch any known validator, no identity will be returned but this will not cause an error. There are no guarantees for the\nreturned data in terms of ordering.\n\n Depending on `Accept` header data can be returned either as JSON or as bytes serialized by SSZ.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "requestBody": { + "description": "An array of values, with each value either a hex encoded public key (any bytes48 with 0x prefix) or a validator index.", + "required": false, + "content": { + "application/json": { + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "PostStateValidatorIdentitiesResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "pubkey", + "activation_epoch" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "pubkey": { + "description": "Public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + } + } + } + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized results. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "Invalid state ID or malformed request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/committees": { + "get": { + "operationId": "getEpochCommittees", + "summary": "Get all committees for a state.", + "description": "Retrieves the committees for the given state.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "epoch", + "description": "Fetch committees for the given epoch. If not present then the committees for the epoch of the state will be obtained.", + "in": "query", + "required": false, + "allowEmptyValue": false, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "index", + "description": "Restrict returned values to those matching the supplied committee index.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "slot", + "description": "Restrict returned values to those matching the supplied slot.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetEpochCommitteesResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "description": "Group of validators assigned to attest at specific slot and that have the same committee index (shard in phase 1)", + "type": "object", + "required": [ + "index", + "slot", + "validators" + ], + "properties": { + "index": { + "description": "Committee index at a slot", + "type": "string", + "example": "1" + }, + "slot": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "List of validator indices assigned to this committee", + "items": { + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID, index, epoch, slot, or combination thereof", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Slot does not belong in epoch" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/sync_committees": { + "get": { + "operationId": "getEpochSyncCommittees", + "summary": "Get sync committees for a state.", + "description": "Retrieves the current sync committee for the given state. Also returns the subcommittee assignments.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "epoch", + "description": "Fetch sync committees for the given epoch. If not present then the sync committees for the epoch of the state will be obtained.", + "in": "query", + "required": false, + "allowEmptyValue": false, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetEpochSyncCommitteesResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "validators", + "validator_aggregates" + ], + "properties": { + "validators": { + "description": "all of the validator indices in the current sync committee", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "validator_aggregates": { + "type": "array", + "items": { + "description": "Subcommittee slices of the current sync committee", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID or epoch", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Epoch is outside the sync committee period of the state" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/states/{state_id}/randao": { + "get": { + "operationId": "getStateRandao", + "summary": "Get the RANDAO mix for some epoch in a specified state.", + "description": "Fetch the RANDAO mix for the requested epoch from the state identified by `state_id`.\n\nIf an epoch is not specified then the RANDAO mix for the state's current epoch will be returned.\n\nBy adjusting the `state_id` parameter you can query for any historic value of the RANDAO mix.\nOrdinarily states from the same epoch will mutate the RANDAO mix for that epoch as blocks are\napplied.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "epoch", + "description": "Epoch to fetch the RANDAO mix for. Default: state's current epoch.", + "in": "query", + "required": false, + "allowEmptyValue": false, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetStateRandaoResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "randao" + ], + "properties": { + "randao": { + "description": "RANDAO mix for requested epoch in state.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid state ID or epoch", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Epoch is out of range for the `randao_mixes` of the state" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/headers": { + "get": { + "operationId": "getBlockHeaders", + "summary": "Get block headers", + "description": "Retrieves block headers matching given query. By default it will fetch current head slot blocks.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "slot", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "parent_root", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetBlockHeadersResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "root", + "canonical", + "header" + ], + "properties": { + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "canonical": { + "type": "boolean" + }, + "header": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/headers/{block_id}": { + "get": { + "operationId": "getBlockHeader", + "summary": "Get block header", + "description": "Retrieves block header for given block id.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetBlockHeaderResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "root", + "canonical", + "header" + ], + "properties": { + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "canonical": { + "type": "boolean" + }, + "header": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/blinded_blocks": { + "post": { + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "summary": "Publish a signed block.", + "deprecated": true, + "operationId": "publishBlindedBlock", + "description": "Instructs the beacon node to use the components of the `SignedBlindedBeaconBlock` to construct and publish a \n`SignedBeaconBlock` by swapping out the `transactions_root` for the corresponding full list of `transactions`.\nThe beacon node should broadcast a newly constructed `SignedBeaconBlock` to the beacon network,\nto be included in the beacon chain. The beacon node is not required to validate the signed\n`BeaconBlock`, and a successful response (20X) only indicates that the broadcast has been\nsuccessful. The beacon node is expected to integrate the new block into its state, and\ntherefore validate the block internally, however blocks which fail the validation are still\nbroadcast but a different status code is returned (202). Before Bellatrix, this endpoint will accept \na `SignedBeaconBlock`.\n", + "parameters": [ + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": false, + "name": "Eth-Consensus-Version", + "description": "The active consensus version to which the block being submitted belongs." + } + ], + "requestBody": { + "description": "The `SignedBlindedBeaconBlock` object composed of `BlindedBeaconBlock` object (produced by beacon node) and validator signature.", + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body." + } + } + } + }, + "responses": { + "200": { + "description": "The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database." + }, + "202": { + "description": "The block failed validation, but was successfully broadcast anyway. It was not integrated into the beacon node's database." + }, + "400": { + "description": "The `SignedBlindedBeaconBlock` object is invalid", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block: missing signature" + } + } + } + }, + "415": { + "description": "Supplied content-type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Content-Type\" header is unsupported, and the request has been rejected. This occurs when a HTTP request supplies a payload in a content-type that the server is not able to handle.", + "type": "number", + "example": 415 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 415, + "message": "Cannot read the supplied content type." + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v2/beacon/blinded_blocks": { + "post": { + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "summary": "Publish a signed block.", + "operationId": "publishBlindedBlockV2", + "description": "Instructs the beacon node to use the components of the `SignedBlindedBeaconBlock` to construct and publish a \n`SignedBeaconBlock` by swapping out the `transactions_root` for the corresponding full list of `transactions`.\nThe beacon node should broadcast a newly constructed `SignedBeaconBlock` to the beacon network,\nto be included in the beacon chain. The beacon node is not required to validate the signed\n`BeaconBlock`, and a successful response (20X) only indicates that the broadcast has been\nsuccessful. The beacon node is expected to integrate the new block into its state, and\ntherefore validate the block internally, however blocks which fail the validation are still\nbroadcast but a different status code is returned (202). Before Bellatrix, this endpoint will accept \na `SignedBeaconBlock`. The broadcast behaviour may be adjusted via the `broadcast_validation`\nquery parameter.\n", + "parameters": [ + { + "name": "broadcast_validation", + "in": "query", + "required": false, + "description": "Level of validation that must be applied to a block before it is broadcast.\n\nPossible values:\n- **`gossip`** (default): lightweight gossip checks only\n- **`consensus`**: full consensus checks, including validation of all signatures and\n blocks fields _except_ for the execution payload transactions.\n- **`consensus_and_equivocation`**: the same as `consensus`, with an extra equivocation\n check immediately before the block is broadcast. If the block is found to be an\n equivocation it fails validation.\n\nIf the block fails the requested level of a validation a 400 status MUST be returned\nimmediately and the block MUST NOT be broadcast to the network.\n\nIf validation succeeds, the block must still be fully verified before it is\nincorporated into the state and a 20x status is returned to the caller.\n", + "schema": { + "description": "Level of validation that must be applied to a block before it is broadcast.", + "type": "string", + "enum": [ + "gossip", + "consensus", + "consensus_and_equivocation" + ] + } + }, + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": true, + "name": "Eth-Consensus-Version", + "description": "The active consensus version to which the block being submitted belongs." + } + ], + "requestBody": { + "description": "The `SignedBlindedBeaconBlock` object composed of `BlindedBeaconBlock` object (produced by beacon node) and validator signature.", + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body." + } + } + } + }, + "responses": { + "200": { + "description": "The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database." + }, + "202": { + "description": "The block failed validation, but was successfully broadcast anyway. It was not integrated into the beacon node's database." + }, + "400": { + "description": "The `SignedBlindedBeaconBlock` object is invalid or broadcast validation failed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block: missing signature" + } + } + } + }, + "415": { + "description": "Supplied content-type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Content-Type\" header is unsupported, and the request has been rejected. This occurs when a HTTP request supplies a payload in a content-type that the server is not able to handle.", + "type": "number", + "example": 415 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 415, + "message": "Cannot read the supplied content type." + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/beacon/blocks": { + "post": { + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "summary": "Publish a signed block.", + "deprecated": true, + "operationId": "publishBlock", + "description": "Instructs the beacon node to broadcast a newly signed beacon block to the beacon network,\nto be included in the beacon chain. A success response (20x) indicates that the block\npassed gossip validation and was successfully broadcast onto the network.\nThe beacon node is also expected to integrate the block into state, but may broadcast it\nbefore doing so, so as to aid timely delivery of the block. Should the block fail full\nvalidation, a separate success response code (202) is used to indicate that the block was\nsuccessfully broadcast but failed integration. After Deneb, this additionally instructs\nthe beacon node to broadcast all given blobs.\n", + "parameters": [ + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": false, + "name": "Eth-Consensus-Version", + "description": "The active consensus version to which the block being submitted belongs." + } + ], + "requestBody": { + "description": "The `SignedBeaconBlock` object composed of `BeaconBlock` object (produced by beacon node) and validator signature.", + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The required signed components of block production according to the Deneb CL spec.", + "required": [ + "signed_block", + "kzg_proofs", + "blobs" + ], + "properties": { + "signed_block": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + { + "type": "object", + "description": "The required signed components of block production according to the Electra CL spec.", + "required": [ + "signed_block", + "kzg_proofs", + "blobs" + ], + "properties": { + "signed_block": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + } + ] + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body." + } + } + } + }, + "responses": { + "200": { + "description": "The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database." + }, + "202": { + "description": "The block could not be integrated into the beacon node's database as it failed validation, but was successfully broadcast." + }, + "400": { + "description": "The `SignedBeaconBlock` object is invalid and could not be broadcast", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block: missing signature" + } + } + } + }, + "415": { + "description": "Supplied content-type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Content-Type\" header is unsupported, and the request has been rejected. This occurs when a HTTP request supplies a payload in a content-type that the server is not able to handle.", + "type": "number", + "example": 415 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 415, + "message": "Cannot read the supplied content type." + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v2/beacon/blocks": { + "post": { + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "summary": "Publish a signed block.", + "operationId": "publishBlockV2", + "description": "Instructs the beacon node to broadcast a newly signed beacon block to the beacon network,\nto be included in the beacon chain. A success response (20x) indicates that the block\npassed gossip validation and was successfully broadcast onto the network.\nThe beacon node is also expected to integrate the block into the state, but may broadcast it\nbefore doing so, so as to aid timely delivery of the block. Should the block fail full\nvalidation, a separate success response code (202) is used to indicate that the block was\nsuccessfully broadcast but failed integration. After Deneb, this additionally instructs\nthe beacon node to broadcast all given blobs. The broadcast behaviour may be adjusted via the\n`broadcast_validation` query parameter.\n", + "parameters": [ + { + "name": "broadcast_validation", + "in": "query", + "required": false, + "description": "Level of validation that must be applied to a block before it is broadcast.\n\nPossible values:\n- **`gossip`** (default): lightweight gossip checks only\n- **`consensus`**: full consensus checks, including validation of all signatures and\n blocks fields _except_ for the execution payload transactions.\n- **`consensus_and_equivocation`**: the same as `consensus`, with an extra equivocation\n check immediately before the block is broadcast. If the block is found to be an\n equivocation it fails validation.\n\nIf the block fails the requested level of a validation a 400 status MUST be returned\nimmediately and the block MUST NOT be broadcast to the network.\n\nIf validation succeeds, the block must still be fully verified before it is\nincorporated into the state and a 20x status is returned to the caller.\n", + "schema": { + "description": "Level of validation that must be applied to a block before it is broadcast.", + "type": "string", + "enum": [ + "gossip", + "consensus", + "consensus_and_equivocation" + ] + } + }, + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": true, + "name": "Eth-Consensus-Version", + "description": "The active consensus version to which the block being submitted belongs." + } + ], + "requestBody": { + "description": "The `SignedBeaconBlock` object composed of `BeaconBlock` object (produced by beacon node) and validator signature.", + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The required signed components of block production according to the Deneb CL spec.", + "required": [ + "signed_block", + "kzg_proofs", + "blobs" + ], + "properties": { + "signed_block": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + { + "type": "object", + "description": "The required signed components of block production according to the Electra CL spec.", + "required": [ + "signed_block", + "kzg_proofs", + "blobs" + ], + "properties": { + "signed_block": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + } + ] + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body." + } + } + } + }, + "responses": { + "200": { + "description": "The block was validated successfully and has been broadcast. It has also been integrated into the beacon node's database." + }, + "202": { + "description": "The block could not be integrated into the beacon node's database as it failed validation, but was successfully broadcast." + }, + "400": { + "description": "The `SignedBeaconBlock` object is invalid or broadcast validation failed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block: missing signature" + } + } + } + }, + "415": { + "description": "Supplied content-type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Content-Type\" header is unsupported, and the request has been rejected. This occurs when a HTTP request supplies a payload in a content-type that the server is not able to handle.", + "type": "number", + "example": 415 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 415, + "message": "Cannot read the supplied content type." + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v2/beacon/blocks/{block_id}": { + "get": { + "operationId": "getBlockV2", + "summary": "Get block", + "description": "Retrieves block details for given block id.\nDepending on `Accept` header it can be returned either as json or as bytes serialized by SSZ\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Successful response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetBlockV2Response", + "type": "object", + "required": [ + "version", + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "anyOf": [ + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/blocks/{block_id}/root": { + "get": { + "operationId": "getBlockRoot", + "summary": "Get block root", + "description": "Retrieves hashTreeRoot of BeaconBlock/BeaconBlockHeader", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "title": "GetBlockRootResponse", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "required": [ + "root" + ], + "properties": { + "root": { + "description": "HashTreeRoot of BeaconBlock/BeaconBlockHeader object", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/blocks/{block_id}/attestations": { + "get": { + "operationId": "getBlockAttestations", + "summary": "Get block attestations", + "deprecated": true, + "description": "Retrieves attestation included in requested block.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetBlockAttestationsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/beacon/blocks/{block_id}/attestations": { + "get": { + "operationId": "getBlockAttestationsV2", + "summary": "Get block attestations", + "description": "Retrieves attestation included in requested block.", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the attestations belong.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetBlockAttestationsV2Response", + "type": "object", + "required": [ + "version", + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/blob_sidecars/{block_id}": { + "get": { + "operationId": "getBlobSidecars", + "summary": "Get blob sidecars", + "description": "Retrieves blob sidecars for a given block id.\nDepending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n\nIf the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\nfor the returned blob sidecars in terms of ordering.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + }, + { + "name": "indices", + "in": "query", + "description": "Array of indices for blob sidecars to request for in the specified block. Returns all blob sidecars in the block if not specified.", + "required": false, + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "example": "1" + } + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "headers": { + "Eth-Consensus-Version": { + "required": false, + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetBlobSidecarsResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "deneb" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "description": "A blob sidecar as defined in the Deneb consensus spec.", + "required": [ + "index", + "blob", + "kzg_commitment", + "kzg_proof", + "signed_block_header", + "kzg_commitment_inclusion_proof" + ], + "properties": { + "index": { + "type": "string", + "example": "1" + }, + "blob": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "kzg_commitment": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "kzg_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "signed_block_header": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_commitment_inclusion_proof": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 17, + "maxItems": 17 + } + } + }, + "minItems": 0, + "maxItems": 6 + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized `BlobSidecars` bytes. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/rewards/sync_committee/{block_id}": { + "post": { + "operationId": "getSyncCommitteeRewards", + "summary": "Get sync committee rewards", + "description": "Retrieves rewards info for sync committee members specified by array of public keys or validator index. If no array is provided, return reward info for every committee member.", + "tags": [ + "Beacon", + "Rewards" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "requestBody": { + "description": "An array of either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "required": false, + "content": { + "application/json": { + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetSyncCommitteeRewardsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "description": "Rewards info for sync committee members", + "type": "array", + "items": { + "type": "object", + "description": "Rewards info for a single sync committee member", + "required": [ + "validator_index", + "reward" + ], + "properties": { + "validator_index": { + "example": "0", + "description": "one entry for every validator participating in the sync committee", + "type": "string" + }, + "reward": { + "example": "2000", + "description": "sync committee reward in gwei for the validator", + "type": "string" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid get sync committee rewards request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 400, + "message": "Invalid request to retrieve sync committee rewards info" + } + } + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/deposit_snapshot": { + "get": { + "operationId": "getDepositSnapshot", + "summary": "Get Deposit Tree Snapshot", + "description": "Retrieve [EIP-4881](https://eips.ethereum.org/EIPS/eip-4881) Deposit Tree Snapshot.\nDepending on `Accept` header it can be returned either as json or as bytes serialized by SSZ\n", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "title": "GetDepositSnapshotResponse", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "finalized", + "deposit_root", + "deposit_count", + "execution_block_hash", + "execution_block_height" + ], + "properties": { + "finalized": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 0, + "maxItems": 32 + }, + "deposit_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "type": "string", + "example": "1" + }, + "execution_block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "execution_block_height": { + "type": "string", + "example": "1" + } + } + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use Accept header to choose this response type" + } + } + } + }, + "404": { + "description": "No Finalized Snapshot Available", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "No Finalized Snapshot Available" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/rewards/blocks/{block_id}": { + "get": { + "operationId": "getBlockRewards", + "summary": "Get block rewards", + "description": "Retrieve block reward info for a single block", + "tags": [ + "Beacon", + "Rewards" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetBlockRewardsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "description": "Rewards info for a single block", + "required": [ + "proposer_index", + "total", + "attestations", + "sync_aggregate", + "proposer_slashings", + "attester_slashings" + ], + "properties": { + "proposer_index": { + "example": "123", + "description": "proposer of the block, the proposer index who receives these rewards", + "type": "string" + }, + "total": { + "example": "123", + "description": "total block reward in gwei, equal to attestations + sync_aggregate + proposer_slashings + attester_slashings", + "type": "string" + }, + "attestations": { + "example": "123", + "description": "block reward component due to included attestations in gwei", + "type": "string" + }, + "sync_aggregate": { + "example": "123", + "description": "block reward component due to included sync_aggregate in gwei", + "type": "string" + }, + "proposer_slashings": { + "example": "123", + "description": "block reward component due to included proposer_slashings in gwei", + "type": "string" + }, + "attester_slashings": { + "example": "123", + "description": "block reward component due to included attester_slashings in gwei", + "type": "string" + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid get block rewards request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 400, + "message": "Invalid request to retrieve block rewards info" + } + } + } + } + } + }, + "404": { + "description": "Block or required state not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 404, + "message": "Block or required state not found" + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/rewards/attestations/{epoch}": { + "post": { + "operationId": "getAttestationsRewards", + "summary": "Get attestations rewards", + "description": "Retrieve attestation reward info for validators specified by array of public keys or validator index. If no array is provided, return reward info for every validator.", + "tags": [ + "Beacon", + "Rewards" + ], + "parameters": [ + { + "name": "epoch", + "in": "path", + "required": true, + "description": "The epoch to get rewards info from", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "requestBody": { + "description": "An array of either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "required": false, + "content": { + "application/json": { + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "description": "Either hex encoded public key (any bytes48 with 0x prefix) or validator index", + "type": "string" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetAttestationsRewardsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "object", + "description": "Rewards info for attestations", + "required": [ + "ideal_rewards", + "total_rewards" + ], + "properties": { + "ideal_rewards": { + "type": "array", + "items": { + "type": "object", + "description": "Ideal rewards info for a single attestation", + "required": [ + "effective_balance", + "head", + "target", + "source", + "inactivity" + ], + "properties": { + "effective_balance": { + "example": "1000000000", + "description": "validator's effective balance in gwei", + "type": "string" + }, + "head": { + "example": "2500", + "description": "Ideal attester's reward for head vote in gwei", + "type": "string" + }, + "target": { + "example": "5000", + "description": "Ideal attester's reward for target vote in gwei", + "type": "string" + }, + "source": { + "example": "5000", + "description": "Ideal attester's reward for source vote in gwei", + "type": "string" + }, + "inclusion_delay": { + "example": "5000", + "description": "Ideal attester's inclusion_delay reward in gwei (phase0 only)", + "type": "string" + }, + "inactivity": { + "example": "5000", + "description": "Ideal attester's inactivity penalty in gwei", + "type": "string" + } + } + } + }, + "total_rewards": { + "type": "array", + "items": { + "type": "object", + "description": "Rewards info for a single attestation", + "required": [ + "validator_index", + "head", + "target", + "source", + "inactivity" + ], + "properties": { + "validator_index": { + "example": "0", + "description": "one entry for every validator based on their attestations in the epoch", + "type": "string" + }, + "head": { + "example": "2000", + "description": "attester's reward for head vote in gwei", + "type": "string" + }, + "target": { + "example": "2000", + "description": "attester's reward for target vote in gwei", + "type": "string" + }, + "source": { + "example": "4000", + "description": "attester's reward for source vote in gwei", + "type": "string" + }, + "inclusion_delay": { + "example": "2000", + "description": "attester's inclusion_delay reward in gwei (phase0 only)", + "type": "string" + }, + "inactivity": { + "example": "2000", + "description": "attester's inactivity penalty in gwei", + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid get attestations rewards request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 400, + "message": "Invalid request to retrieve attestations rewards info" + } + } + } + } + } + }, + "404": { + "description": "Epoch not known or required data not available", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 404, + "message": "Epoch not known or required data not available" + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/blinded_blocks/{block_id}": { + "get": { + "operationId": "getBlindedBlock", + "summary": "Get blinded block", + "description": "Retrieves blinded block for given block ID.\nDepending on `Accept` header it can be returned either as JSON or as bytes serialized by SSZ\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Successful response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetBlindedBlockResponse", + "type": "object", + "required": [ + "version", + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "anyOf": [ + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "The block ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block ID: current" + } + } + } + }, + "404": { + "description": "Block not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Block not found" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/light_client/bootstrap/{block_root}": { + "get": { + "operationId": "getLightClientBootstrap", + "summary": "Get `LightClientBootstrap` structure for a requested block root", + "description": "Requests the [`LightClientBootstrap`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#lightclientbootstrap) structure corresponding to a given post-Altair beacon block root.\nDepending on the `Accept` header it can be returned either as JSON or SSZ-serialized bytes.\n\nServers SHOULD provide results as defined in [`create_light_client_bootstrap`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/full-node.md#create_light_client_bootstrap). To fulfill a request, the requested block's post state needs to be known.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "block_root", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "description": "Block root.\n\\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetLightClientBootstrapResponse", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + } + } + }, + { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + } + } + }, + { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + } + } + }, + { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized `LightClientBootstrap` bytes. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "Malformed request parameter", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid block root value" + } + } + } + }, + "404": { + "description": "`LightClientBootstrap` instance cannot be produced for the given block root", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "LC bootstrap unavailable" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/light_client/updates": { + "get": { + "operationId": "getLightClientUpdatesByRange", + "summary": "Get `LightClientUpdate` instances in a requested sync committee period range", + "description": "Requests the [`LightClientUpdate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#lightclientupdate) instances in the sync committee period range `[start_period, start_period + count)`, leading up to the current head sync committee period as selected by fork choice.\nDepending on the `Accept` header they can be returned either as JSON or SSZ-serialized bytes.\n\nServers SHOULD provide results as defined in [`create_light_client_update`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/full-node.md#create_light_client_update). They MUST respond with at least the earliest known result within the requested range, and MUST send results in consecutive order (by period). The response MUST NOT contain more than [`min(MAX_REQUEST_LIGHT_CLIENT_UPDATES, count)`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/p2p-interface.md#configuration) results.\n", + "tags": [ + "Beacon" + ], + "parameters": [ + { + "name": "start_period", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "count", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetLightClientUpdatesByRangeResponse", + "type": "array", + "items": { + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 7, + "maxItems": 7 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + } + ] + } + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "Sequence of zero or more `response_chunk`. Each _successful_ `response_chunk` MUST contain a single `LightClientUpdate` payload:\n```\n(\n response_chunk_len: Little-endian Uint64 byte length of `response_chunk`\n response_chunk: (\n context: 4 byte `ForkDigest`\n payload: SSZ serialized payload bytes\n )\n)\n```\nUse Accept header to choose this response type\n\nFor each `response_chunk`, a `ForkDigest`-context based on `compute_fork_version(compute_epoch_at_slot(update.attested_header.beacon.slot))` is used to select the fork namespace of the Response type. Note that this `fork_version` may be different from the one used to verify the `update.sync_aggregate`, which is based on `update.signature_slot`.\n\nPer `context = compute_fork_digest(fork_version, genesis_validators_root)`:\n\n| `fork_version` | Response chunk SSZ type |\n| ------------------------------------------------------------------- | ------------------------------------- |\n| `GENESIS_FORK_VERSION` | n/a |\n| `ALTAIR_FORK_VERSION` through `BELLATRIX_FORK_VERSION` | `altair.LightClientUpdate` |\n| `CAPELLA_FORK_VERSION` | `capella.LightClientUpdate` |\n| `DENEB_FORK_VERSION` | `deneb.LightClientUpdate` |\n| `ELECTRA_FORK_VERSION` and later | `electra.LightClientUpdate` |\n" + } + } + } + }, + "400": { + "description": "Malformed or missing request parameter", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidSyncPeriod": { + "value": { + "code": 400, + "message": "Invalid sync committee period requested" + } + }, + "InvalidCount": { + "value": { + "code": 400, + "message": "Invalid count requested" + } + }, + "MissingStartPeriodValue": { + "value": { + "code": 400, + "message": "Missing `start_period` value" + } + }, + "MissingCountValue": { + "value": { + "code": 400, + "message": "Missing `count` value" + } + } + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/light_client/finality_update": { + "get": { + "operationId": "getLightClientFinalityUpdate", + "summary": "Get the latest known `LightClientFinalityUpdate`", + "description": "Requests the latest [`LightClientFinalityUpdate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#lightclientfinalityupdate) known by the server.\nDepending on the `Accept` header it can be returned either as JSON or SSZ-serialized bytes.\n\nServers SHOULD provide results as defined in [`create_light_client_finality_update`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/full-node.md#create_light_client_finality_update).\n", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetLightClientFinalityUpdateResponse", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 7, + "maxItems": 7 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized `LightClientFinalityUpdate` bytes. Use Accept header to choose this response type" + } + } + } + }, + "404": { + "description": "No `LightClientFinalityUpdate` is available", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "LC finality update unavailable" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/light_client/optimistic_update": { + "get": { + "operationId": "getLightClientOptimisticUpdate", + "summary": "Get the latest known `LightClientOptimisticUpdate`", + "description": "Requests the latest [`LightClientOptimisticUpdate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#lightclientoptimisticupdate) known by the server.\nDepending on the `Accept` header it can be returned either as JSON or SSZ-serialized bytes.\n\nServers SHOULD provide results as defined in [`create_light_client_optimistic_update`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/full-node.md#create_light_client_optimistic_update).\n", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetLightClientOptimisticUpdateResponse", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized `LightClientOptimisticUpdate` bytes. Use Accept header to choose this response type" + } + } + } + }, + "404": { + "description": "No `LightClientOptimisticUpdate` is available", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "LC optimistic update unavailable" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/pool/attestations": { + "get": { + "operationId": "getPoolAttestations", + "summary": "Get Attestations from operations pool", + "deprecated": true, + "description": "Retrieves attestations known by the node but not necessarily incorporated into any block", + "parameters": [ + { + "name": "slot", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "committee_index", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "title": "GetPoolAttestationsResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "The slot or committee index could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid slot: current" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolAttestations", + "summary": "Submit Attestation objects to node", + "deprecated": true, + "description": "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\n\nIf an attestation is validated successfully the node MUST publish that attestation on the appropriate subnet.\n\nIf one or more attestations fail validation the node MUST return a 400 error with details of which attestations have failed, and why.\n", + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Attestations are stored in pool and broadcast on appropriate subnet" + }, + "400": { + "description": "Errors with one or more attestations", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message", + "failures" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "some failures" + }, + "failures": { + "description": "List of individual items that have failed", + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "message" + ], + "properties": { + "index": { + "description": "Index of item in the request list that caused the error", + "type": "number", + "example": 3 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "invalid signature" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/beacon/pool/attestations": { + "get": { + "operationId": "getPoolAttestationsV2", + "summary": "Get attestations from operations pool", + "description": "Retrieves attestations known by the node but not necessarily incorporated into any block", + "parameters": [ + { + "name": "slot", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "committee_index", + "in": "query", + "required": false, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetPoolAttestationsV2Response", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "The slot or committee index could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid slot: current" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolAttestationsV2", + "summary": "Submit Attestation objects to node", + "description": "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\n\nIf an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\n\nIf one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.\n", + "parameters": [ + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": true, + "name": "Eth-Consensus-Version", + "description": "The consensus version to which the attestations being submitted belong." + } + ], + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Attestations are stored in pool and broadcast on the appropriate subnet" + }, + "400": { + "description": "Errors with one or more attestations", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message", + "failures" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "some failures" + }, + "failures": { + "description": "List of individual items that have failed", + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "message" + ], + "properties": { + "index": { + "description": "Index of item in the request list that caused the error", + "type": "number", + "example": 3 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "invalid signature" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/pool/attester_slashings": { + "get": { + "operationId": "getPoolAttesterSlashings", + "summary": "Get AttesterSlashings from operations pool", + "deprecated": true, + "description": "Retrieves attester slashings known by the node but not necessarily incorporated into any block", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "title": "GetPoolAttesterSlashingsResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolAttesterSlashings", + "summary": "Submit AttesterSlashing object to node's pool", + "deprecated": true, + "description": "Submits AttesterSlashing object to node's pool and if passes validation node MUST broadcast it to network.", + "tags": [ + "Beacon" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Invalid attester slashing", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid attester slashing, it will never pass validation so it's rejected" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/beacon/pool/attester_slashings": { + "get": { + "operationId": "getPoolAttesterSlashingsV2", + "summary": "Get attester slashings from operations pool", + "description": "Retrieves attester slashings known by the node but not necessarily incorporated into any block", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetPoolAttesterSlashingsV2Response", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + ] + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolAttesterSlashingsV2", + "summary": "Submit AttesterSlashing object to node's pool", + "description": "Submits AttesterSlashing object to node's pool. Upon successful validation the node MUST broadcast it to network.", + "parameters": [ + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": true, + "name": "Eth-Consensus-Version", + "description": "The active consensus version to which the attester slashing being submitted belongs." + } + ], + "tags": [ + "Beacon" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Invalid attester slashing", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid attester slashing, it will never pass validation so it's rejected" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/pool/proposer_slashings": { + "get": { + "operationId": "getPoolProposerSlashings", + "summary": "Get ProposerSlashings from operations pool", + "description": "Retrieves proposer slashings known by the node but not necessarily incorporated into any block", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "title": "GetPoolProposerSlashingsResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolProposerSlashings", + "summary": "Submit ProposerSlashing object to node's pool", + "description": "Submits ProposerSlashing object to node's pool and if passes validation node MUST broadcast it to network.", + "tags": [ + "Beacon" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Invalid proposer slashing", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid proposer slashing, it will never pass validation so it's rejected" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/pool/sync_committees": { + "post": { + "operationId": "submitPoolSyncCommitteeSignatures", + "summary": "Submit sync committee signatures to node", + "description": "Submits sync committee signature objects to the node.\n\nSync committee signatures are not present in phase0, but are required for Altair networks.\n\nIf a sync committee signature is validated successfully the node MUST publish that sync committee signature on all applicable subnets.\n\nIf one or more sync committee signatures fail validation the node MUST return a 400 error with details of which sync committee signatures have failed, and why.\n", + "tags": [ + "Beacon", + "ValidatorRequiredApi" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "validator_index", + "signature" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "validator_index": { + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Sync committee signatures are stored in pool and broadcast on appropriate subnet" + }, + "400": { + "description": "Errors with one or more sync committee signatures", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message", + "failures" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "some failures" + }, + "failures": { + "description": "List of individual items that have failed", + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "message" + ], + "properties": { + "index": { + "description": "Index of item in the request list that caused the error", + "type": "number", + "example": 3 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "invalid signature" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/pool/voluntary_exits": { + "get": { + "operationId": "getPoolVoluntaryExits", + "summary": "Get SignedVoluntaryExit from operations pool", + "description": "Retrieves voluntary exits known by the node but not necessarily incorporated into any block", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "title": "GetPoolVoluntaryExitsResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolVoluntaryExit", + "summary": "Submit SignedVoluntaryExit object to node's pool", + "description": "Submits SignedVoluntaryExit object to node's pool and if passes validation node MUST broadcast it to network.", + "tags": [ + "Beacon" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Voluntary exit is stored in node and broadcasted to network" + }, + "400": { + "description": "Invalid voluntary exit", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid voluntary exit, it will never pass validation so it's rejected" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/beacon/pool/bls_to_execution_changes": { + "get": { + "operationId": "getPoolBLSToExecutionChanges", + "summary": "Get SignedBLSToExecutionChange from operations pool", + "description": "Retrieves BLS to execution changes known by the node but not necessarily incorporated into any block", + "tags": [ + "Beacon" + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "title": "GetPoolBLSToExecutionChangesResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + }, + "post": { + "operationId": "submitPoolBLSToExecutionChange", + "summary": "Submit SignedBLSToExecutionChange object to node's pool", + "description": "Submits a list of SignedBLSToExecutionChange objects to node's pool. Any that pass validation MUST be broadcast to the network.", + "tags": [ + "Beacon" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "BLS to execution changes were all stored to the pool and broadcast on the appropriate subnet." + }, + "400": { + "description": "Errors in one or more BLS to execution changes", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message", + "failures" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "some failures" + }, + "failures": { + "description": "List of individual items that have failed", + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "message" + ], + "properties": { + "index": { + "description": "Index of item in the request list that caused the error", + "type": "number", + "example": 3 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "invalid signature" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/builder/states/{state_id}/expected_withdrawals": { + "get": { + "operationId": "getNextWithdrawals", + "summary": "Get the withdrawals that are to be included for the block built on the specified state.", + "description": "Get the withdrawals computed from the specified state, that will be included in the block \nthat gets built on the specified state.\n", + "tags": [ + "Builder" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + { + "name": "proposal_slot", + "description": "The slot that a block is being built for, with the specified state as the parent. Defaults to the slot after the parent state if not specified.", + "in": "query", + "required": false, + "allowEmptyValue": false, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetNextWithdrawalsResponse", + "type": "object", + "required": [ + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + } + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized Withdrawals list. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "An error occurred preparing the withdrawals from the specified state for the proposal slot.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "The specified state is not a capella state." + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/debug/beacon/states/{state_id}": { + "get": { + "operationId": "getStateV2", + "summary": "Get full BeaconState object", + "description": "Returns full BeaconState object for given stateId.\nDepending on `Accept` header it can be returned either as json or as bytes serialized by SSZ\n", + "tags": [ + "Debug" + ], + "parameters": [ + { + "name": "state_id", + "in": "path", + "required": true, + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetStateV2Response", + "type": "object", + "required": [ + "version", + "execution_optimistic", + "finalized", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "data": { + "anyOf": [ + { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_attestations", + "current_epoch_attestations", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#pendingattestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "inclusion_delay", + "proposer_index" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "inclusion_delay": { + "type": "string", + "example": "1" + }, + "proposer_index": { + "type": "string", + "example": "1" + } + } + } + }, + "current_epoch_attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#pendingattestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "inclusion_delay", + "proposer_index" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "inclusion_delay": { + "type": "string", + "example": "1" + }, + "proposer_index": { + "type": "string", + "example": "1" + } + } + } + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconstate) object from the CL Altair spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. New in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + } + }, + { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconstate) object from the Eth2.0 Bellatrix spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in Gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconstate) object from the Eth2.0 Capella spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header", + "next_withdrawal_index", + "next_withdrawal_validator_index", + "historical_summaries" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items. Frozen in Capella, replaced by historical_summaries.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "next_withdrawal_index": { + "type": "string", + "example": "1" + }, + "next_withdrawal_validator_index": { + "type": "string", + "example": "1" + }, + "historical_summaries": { + "type": "array", + "items": { + "type": "object", + "description": "The [`HistoricalSummary`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#historicalsummary) object from the CL Capella spec.", + "required": [ + "block_summary_root", + "state_summary_root" + ], + "properties": { + "block_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "description": "Variable length list, maximum 16777216 items" + } + } + }, + { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconstate) object from the Eth2.0 Deneb spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header", + "next_withdrawal_index", + "next_withdrawal_validator_index", + "historical_summaries" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items. Frozen in Capella, replaced by historical_summaries.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "next_withdrawal_index": { + "type": "string", + "example": "1" + }, + "next_withdrawal_validator_index": { + "type": "string", + "example": "1" + }, + "historical_summaries": { + "type": "array", + "items": { + "type": "object", + "description": "The [`HistoricalSummary`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#historicalsummary) object from the CL Capella spec.", + "required": [ + "block_summary_root", + "state_summary_root" + ], + "properties": { + "block_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "description": "Variable length list, maximum 16777216 items" + } + } + }, + { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconstate) object from the CL Electra spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header", + "next_withdrawal_index", + "next_withdrawal_validator_index", + "historical_summaries", + "deposit_requests_start_index", + "deposit_balance_to_consume", + "exit_balance_to_consume", + "earliest_exit_epoch", + "consolidation_balance_to_consume", + "earliest_consolidation_epoch", + "pending_balance_deposits", + "pending_partial_withdrawals", + "pending_consolidations" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items. Frozen in Capella, replaced by historical_summaries.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "next_withdrawal_index": { + "type": "string", + "example": "1" + }, + "next_withdrawal_validator_index": { + "type": "string", + "example": "1" + }, + "historical_summaries": { + "type": "array", + "items": { + "type": "object", + "description": "The [`HistoricalSummary`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#historicalsummary) object from the CL Capella spec.", + "required": [ + "block_summary_root", + "state_summary_root" + ], + "properties": { + "block_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "description": "Variable length list, maximum 16777216 items" + }, + "deposit_requests_start_index": { + "type": "string", + "example": "1" + }, + "deposit_balance_to_consume": { + "type": "string", + "example": "1" + }, + "exit_balance_to_consume": { + "type": "string", + "example": "1" + }, + "earliest_exit_epoch": { + "type": "string", + "example": "1" + }, + "consolidation_balance_to_consume": { + "type": "string", + "example": "1" + }, + "earliest_consolidation_epoch": { + "type": "string", + "example": "1" + }, + "pending_balance_deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingBalanceDeposit`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingbalancedeposit) object from the CL Electra spec.", + "required": [ + "index", + "amount" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 134217728 + }, + "pending_partial_withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingPartialWithdrawal`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingpartialwithdrawal) object from the CL Electra spec.", + "required": [ + "index", + "amount", + "withdrawable_epoch" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "The epoch when the amount is withdrawable.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 134217728 + }, + "pending_consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingConsolidation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingconsolidation) object from the CL Electra spec.", + "required": [ + "source_index", + "target_index" + ], + "properties": { + "source_index": { + "description": "Index of validator to consolidate from.", + "type": "string", + "example": "1" + }, + "target_index": { + "description": "Index of validator to consolidate to.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 262144 + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized state bytes. Use Accept header to choose this response type" + } + } + } + }, + "400": { + "description": "Invalid state ID", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid state ID: current" + } + } + } + }, + "404": { + "description": "State not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "State not found" + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/debug/beacon/heads": { + "get": { + "operationId": "getDebugChainHeadsV2", + "summary": "Get fork choice leaves", + "description": "Retrieves all possible chain heads (leaves of fork choice tree).", + "tags": [ + "Debug" + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetDebugChainHeadsResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "root", + "slot", + "execution_optimistic" + ], + "properties": { + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/debug/fork_choice": { + "get": { + "operationId": "getDebugForkChoice", + "summary": "Get fork choice array", + "description": "Retrieves all current fork choice context.", + "tags": [ + "Debug" + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetForkChoiceResponse", + "type": "object", + "description": "Debugging context of fork choice", + "required": [ + "justified_checkpoint", + "finalized_checkpoint" + ], + "properties": { + "justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "fork_choice_nodes": { + "type": "array", + "description": "Fork choice nodes", + "minItems": 1, + "items": { + "type": "object", + "description": "fork choice node attributes", + "required": [ + "slot", + "block_root", + "parent_root", + "justified_epoch", + "finalized_epoch", + "weight", + "validity", + "execution_block_hash" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "block_root": { + "description": "The signing merkle root of the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "justified_epoch": { + "type": "string", + "example": "1" + }, + "finalized_epoch": { + "type": "string", + "example": "1" + }, + "weight": { + "type": "string", + "example": "1" + }, + "validity": { + "type": "string", + "enum": [ + "valid", + "invalid", + "optimistic" + ] + }, + "execution_block_hash": { + "description": "The `block_hash` from the `execution_payload` of the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "extra_data": { + "type": "object", + "description": "Optional extra data that clients may provide, which could differ from client to client." + } + } + } + }, + "extra_data": { + "type": "object", + "description": "Optional extra data that clients may provide, which could differ from client to client." + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/identity": { + "get": { + "operationId": "getNetworkIdentity", + "tags": [ + "Node" + ], + "summary": "Get node network identity", + "description": "Retrieves data about the node's network presence", + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "title": "GetNetworkIdentityResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "peer_id", + "enr", + "p2p_addresses", + "discovery_addresses", + "metadata" + ], + "properties": { + "peer_id": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "enr": { + "type": "string", + "description": "Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778)", + "example": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8" + }, + "p2p_addresses": { + "type": "array", + "items": { + "description": "Node's addresses on which eth2 RPC requests are served. [Read more](https://docs.libp2p.io/reference/glossary/#multiaddr)", + "type": "string", + "example": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + } + }, + "discovery_addresses": { + "type": "array", + "items": { + "description": "Node's addresses on which is listening for discv5 requests. [Read more](https://docs.libp2p.io/reference/glossary/#multiaddr)", + "example": "/ip4/7.7.7.7/udp/30303/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N", + "type": "string" + } + }, + "metadata": { + "type": "object", + "description": "Based on eth2 [Metadata object](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/p2p-interface.md#metadata)", + "required": [ + "seq_number", + "attnets" + ], + "properties": { + "seq_number": { + "description": "Uint64 starting at 0 used to version the node's metadata. If any other field in the local MetaData changes, the node MUST increment seq_number by 1.", + "type": "string", + "example": "1" + }, + "attnets": { + "description": "Bitvector representing the node's persistent attestation subnet subscriptions.", + "example": "0x0000000000000000", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "syncnets": { + "description": "Bitvector representing the node's sync committee subnet subscriptions. This metadata is not present in phase0, but will be present in Altair.", + "example": "0x0f", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/peers": { + "get": { + "operationId": "getPeers", + "tags": [ + "Node" + ], + "summary": "Get node network peers", + "description": "Retrieves data about the node's network peers. By default this returns all peers. Multiple query params are combined using AND conditions", + "parameters": [ + { + "name": "state", + "in": "query", + "required": false, + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "disconnected", + "connecting", + "connected", + "disconnecting" + ] + } + } + }, + { + "name": "direction", + "in": "query", + "required": false, + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "inbound", + "outbound" + ] + } + } + } + ], + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "title": "GetPeersResponse", + "type": "object", + "required": [ + "data", + "meta" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "peer_id", + "enr", + "last_seen_p2p_address", + "state", + "direction" + ], + "properties": { + "peer_id": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "enr": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "description": "Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778)", + "example": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8" + } + ] + }, + "last_seen_p2p_address": { + "description": "Multiaddrs used in last peer connection.", + "type": "string", + "example": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "state": { + "type": "string", + "enum": [ + "disconnected", + "connecting", + "connected", + "disconnecting" + ] + }, + "direction": { + "type": "string", + "enum": [ + "inbound", + "outbound" + ] + } + } + } + }, + "meta": { + "type": "object", + "required": [ + "count" + ], + "properties": { + "count": { + "description": "Total number of items", + "type": "number", + "example": 1 + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/peers/{peer_id}": { + "get": { + "operationId": "getPeer", + "tags": [ + "Node" + ], + "summary": "Get peer", + "description": "Retrieves data about the given peer", + "parameters": [ + { + "name": "peer_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + } + } + ], + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "title": "GetPeerResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "peer_id", + "enr", + "last_seen_p2p_address", + "state", + "direction" + ], + "properties": { + "peer_id": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "enr": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "description": "Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778)", + "example": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8" + } + ] + }, + "last_seen_p2p_address": { + "description": "Multiaddrs used in last peer connection.", + "type": "string", + "example": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "state": { + "type": "string", + "enum": [ + "disconnected", + "connecting", + "connected", + "disconnecting" + ] + }, + "direction": { + "type": "string", + "enum": [ + "inbound", + "outbound" + ] + } + } + } + } + } + } + } + }, + "400": { + "description": "The peer ID supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid peer ID: localhost" + } + } + } + }, + "404": { + "description": "Peer not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Peer not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/peer_count": { + "get": { + "operationId": "getPeerCount", + "tags": [ + "Node" + ], + "summary": "Get peer count", + "description": "Retrieves number of known peers.", + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "title": "GetPeerCountResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "disconnected", + "connecting", + "connected", + "disconnecting" + ], + "properties": { + "disconnected": { + "example": "12", + "type": "string" + }, + "connecting": { + "example": "34", + "type": "string" + }, + "connected": { + "example": "56", + "type": "string" + }, + "disconnecting": { + "example": "5", + "type": "string" + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/version": { + "get": { + "operationId": "getNodeVersion", + "tags": [ + "Node" + ], + "summary": "Get version string of the running beacon node.", + "description": "Requests that the beacon node identify information about its implementation in a format similar to a [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) field.", + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "title": "GetVersionResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "version" + ], + "properties": { + "version": { + "type": "string", + "description": "A string which uniquely identifies the client implementation and its version; similar to [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3).", + "example": "Lighthouse/v0.1.5 (Linux x86_64)" + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/syncing": { + "get": { + "operationId": "getSyncingStatus", + "tags": [ + "Node", + "ValidatorRequiredApi" + ], + "summary": "Get node syncing status", + "description": "Requests the beacon node to describe if it's currently syncing or not, and if it is, what block it is up to.", + "responses": { + "200": { + "description": "Request successful", + "content": { + "application/json": { + "schema": { + "title": "GetSyncingStatusResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "head_slot", + "sync_distance", + "is_syncing", + "is_optimistic", + "el_offline" + ], + "properties": { + "head_slot": { + "description": "Head slot node is trying to reach", + "type": "string", + "example": "1" + }, + "sync_distance": { + "description": "How many slots node needs to process to reach head. 0 if synced.", + "type": "string", + "example": "1" + }, + "is_syncing": { + "type": "boolean", + "description": "Set to true if the node is syncing, false if the node is synced." + }, + "is_optimistic": { + "type": "boolean", + "description": "Set to true if the node is optimistically tracking head." + }, + "el_offline": { + "type": "boolean", + "description": "Set to true if the execution client is offline." + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/node/health": { + "get": { + "operationId": "getHealth", + "tags": [ + "Node" + ], + "summary": "Get health check", + "description": "Returns node health status in http status codes. Useful for load balancers.", + "parameters": [ + { + "name": "syncing_status", + "in": "query", + "required": false, + "description": "Customize syncing status instead of default status code (206)", + "schema": { + "type": "integer", + "minimum": 100, + "maximum": 599 + } + } + ], + "responses": { + "200": { + "description": "Node is ready" + }, + "206": { + "description": "Either the beacon node is syncing, or its execution node is optimistic or offline, so data served may be incorrect" + }, + "400": { + "description": "Invalid syncing status code" + }, + "503": { + "description": "Node not initialized or having issues" + } + } + } + }, + "/eth/v1/config/fork_schedule": { + "get": { + "operationId": "getForkSchedule", + "summary": "Get scheduled upcoming forks.", + "description": "Retrieve all forks, past present and future, of which this node is aware.", + "tags": [ + "Config" + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetForkScheduleResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/config/spec": { + "get": { + "operationId": "getSpec", + "summary": "Get spec params.", + "description": "Retrieve specification configuration used on this node. The configuration should include:\n - Constants for all hard forks known by the beacon node, for example the [phase 0](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#constants) and [altair](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#constants) values\n - Presets for all hard forks supplied to the beacon node, for example the [phase 0](https://github.com/ethereum/consensus-specs/blob/v1.3.0/presets/mainnet/phase0.yaml) and [altair](https://github.com/ethereum/consensus-specs/blob/v1.3.0/presets/mainnet/altair.yaml) values\n - Configuration for the beacon node, for example the [mainnet](https://github.com/ethereum/consensus-specs/blob/v1.3.0/configs/mainnet.yaml) values\n\nValues are returned with following format:\n - any value starting with 0x in the spec is returned as a hex string\n - numeric values are returned as a quoted integer\n", + "tags": [ + "Config", + "ValidatorRequiredApi" + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetSpecResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "description": "Key value mapping of all constants, presets and configuration values for all known hard forks\nValues are returned with following format:\n - any value starting with 0x in the spec is returned as a hex string\n - numeric values are returned as a quoted integer\n", + "type": "object", + "example": { + "DEPOSIT_CONTRACT_ADDRESS": "0x00000000219ab540356cBB839Cbe05303d7705Fa", + "DEPOSIT_NETWORK_ID": "1", + "DOMAIN_AGGREGATE_AND_PROOF": "0x06000000", + "INACTIVITY_PENALTY_QUOTIENT": "67108864", + "INACTIVITY_PENALTY_QUOTIENT_ALTAIR": "50331648" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/config/deposit_contract": { + "get": { + "operationId": "getDepositContract", + "summary": "Get deposit contract address.", + "description": "Retrieve Eth1 deposit contract address and chain ID.", + "tags": [ + "Config" + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "title": "GetDepositContractResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "chain_id", + "address" + ], + "properties": { + "chain_id": { + "description": "Id of Eth1 chain on which contract is deployed.", + "example": "1", + "type": "string" + }, + "address": { + "description": "Hex encoded deposit contract address with 0x prefix", + "example": "0x00000000219ab540356cBB839Cbe05303d7705Fa", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/duties/attester/{epoch}": { + "post": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "summary": "Get attester duties", + "operationId": "getAttesterDuties", + "description": "Requests the beacon node to provide a set of attestation duties, which should be performed by validators, for a particular epoch.\nDuties should only need to be checked once per epoch, however a chain reorganization (of > MIN_SEED_LOOKAHEAD epochs) could occur, resulting in a change of duties. For full safety, you should monitor head events and confirm the dependent root in this response matches:\n- event.previous_duty_dependent_root when `compute_epoch_at_slot(event.slot) == epoch`\n- event.current_duty_dependent_root when `compute_epoch_at_slot(event.slot) + 1 == epoch`\n- event.block otherwise\n\nThe dependent_root value is `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch - 1) - 1)` or the genesis block root in the case of underflow.", + "parameters": [ + { + "name": "epoch", + "description": "Should only be allowed 1 epoch ahead", + "in": "path", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "requestBody": { + "description": "An array of the validator indices for which to obtain the duties.", + "required": true, + "content": { + "application/json": { + "schema": { + "title": "GetAttesterDutiesBody", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "example": "1" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success response", + "content": { + "application/json": { + "schema": { + "title": "GetAttesterDutiesResponse", + "type": "object", + "required": [ + "dependent_root", + "execution_optimistic", + "data" + ], + "properties": { + "dependent_root": { + "description": "The block root that this response is dependent on.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "pubkey", + "validator_index", + "committee_index", + "committee_length", + "committees_at_slot", + "validator_committee_index", + "slot" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "validator_index": { + "description": "Index of validator in validator registry", + "type": "string", + "example": "1" + }, + "committee_index": { + "description": "The committee index", + "type": "string", + "example": "1" + }, + "committee_length": { + "description": "Number of validators in committee", + "type": "string", + "example": "1" + }, + "committees_at_slot": { + "description": "Number of committees at the provided slot", + "type": "string", + "example": "1" + }, + "validator_committee_index": { + "description": "Index of validator in committee", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which the validator must attest.", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid epoch or index", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid epoch: -2" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/duties/proposer/{epoch}": { + "get": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "summary": "Get block proposers duties", + "operationId": "getProposerDuties", + "description": "Request beacon node to provide all validators that are scheduled to propose a block in the given epoch.\nDuties should only need to be checked once per epoch, however a chain reorganization could occur that results in a change of duties. For full safety, you should monitor head events and confirm the dependent root in this response matches:\n- event.current_duty_dependent_root when `compute_epoch_at_slot(event.slot) == epoch`\n- event.block otherwise\n\nThe dependent_root value is `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1)` or the genesis block root in the case of underflow.", + "parameters": [ + { + "name": "epoch", + "in": "path", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success response", + "content": { + "application/json": { + "schema": { + "title": "GetProposerDutiesResponse", + "type": "object", + "required": [ + "dependent_root", + "execution_optimistic", + "data" + ], + "properties": { + "dependent_root": { + "description": "The block root that this response is dependent on.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "pubkey", + "validator_index", + "slot" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "validator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which the validator must propose block.", + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid epoch", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid epoch: -2" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/duties/sync/{epoch}": { + "post": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "summary": "Get sync committee duties", + "operationId": "getSyncCommitteeDuties", + "description": "Requests the beacon node to provide a set of sync committee duties for a particular epoch.", + "parameters": [ + { + "name": "epoch", + "description": "epoch // EPOCHS_PER_SYNC_COMMITTEE_PERIOD <= current_epoch // EPOCHS_PER_SYNC_COMMITTEE_PERIOD + 1", + "in": "path", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "requestBody": { + "description": "An array of the validator indices for which to obtain the duties.", + "required": true, + "content": { + "application/json": { + "schema": { + "title": "GetSyncCommitteeDutiesBody", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "example": "1" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success response", + "content": { + "application/json": { + "schema": { + "title": "GetSyncCommitteeDutiesResponse", + "type": "object", + "required": [ + "execution_optimistic", + "data" + ], + "properties": { + "execution_optimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "pubkey", + "validator_index", + "validator_sync_committee_indices" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "validator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "validator_sync_committee_indices": { + "type": "array", + "description": "The indices of the validator in the sync committee.", + "minItems": 1, + "items": { + "type": "string", + "example": "1" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid epoch or index", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid epoch: -2" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v2/validator/blocks/{slot}": { + "get": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "operationId": "produceBlockV2", + "summary": "Produce a new block, without signature.", + "deprecated": true, + "description": "Requests a beacon node to produce a valid block, which can then be signed by a validator.\n\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.\n", + "parameters": [ + { + "name": "slot", + "in": "path", + "required": true, + "description": "The slot for which the block should be proposed.", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "randao_reveal", + "in": "query", + "required": true, + "description": "The validator's randao reveal value.", + "schema": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + }, + { + "name": "graffiti", + "in": "query", + "required": false, + "description": "Arbitrary data validator wants to include in block.", + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + { + "name": "skip_randao_verification", + "in": "query", + "required": false, + "description": "Skip verification of the `randao_reveal` value. If this flag is set then the\n`randao_reveal` must be set to the point at infinity (`0xc0..00`). \n", + "schema": { + "type": "string", + "minLength": 0, + "maxLength": 0 + }, + "allowEmptyValue": true + } + ], + "responses": { + "200": { + "description": "Success response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "ProduceBlockV2Response", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "type": "object", + "description": "The required object for block production according to the Deneb CL spec.", + "required": [ + "block", + "kzg_proofs", + "blobs" + ], + "properties": { + "block": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + { + "type": "object", + "description": "The required object for block production according to the Electra CL spec.", + "required": [ + "block", + "kzg_proofs", + "blobs" + ], + "properties": { + "block": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version`." + } + } + } + }, + "400": { + "description": "Invalid block production request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 400, + "message": "Invalid request to produce a block" + } + } + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v3/validator/blocks/{slot}": { + "get": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "operationId": "produceBlockV3", + "summary": "Produce a new block, without signature.", + "description": "Requests a beacon node to produce a valid block, which can then be signed by a validator. The\nreturned block may be blinded or unblinded, depending on the current state of the network as\ndecided by the execution and beacon nodes.\n\nThe beacon node must return an unblinded block if it obtains the execution payload from its\npaired execution node. It must only return a blinded block if it obtains the execution payload\nheader from an MEV relay.\n\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.\n", + "parameters": [ + { + "name": "slot", + "in": "path", + "required": true, + "description": "The slot for which the block should be proposed.", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "randao_reveal", + "in": "query", + "required": true, + "description": "The validator's randao reveal value.", + "schema": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + }, + { + "name": "graffiti", + "in": "query", + "required": false, + "description": "Arbitrary data validator wants to include in block.", + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + { + "name": "skip_randao_verification", + "in": "query", + "required": false, + "description": "Skip verification of the `randao_reveal` value. If this flag is set then the\n`randao_reveal` must be set to the point at infinity (`0xc0..00`). \n", + "schema": { + "type": "string", + "minLength": 0, + "maxLength": 0 + }, + "allowEmptyValue": true + }, + { + "name": "builder_boost_factor", + "in": "query", + "required": false, + "description": "Percentage multiplier to apply to the builder's payload value when choosing between a\nbuilder payload header and payload from the paired execution node. This parameter is only\nrelevant if the beacon node is connected to a builder, deems it safe to produce a builder\npayload, and receives valid responses from both the builder endpoint _and_ the paired\nexecution node. When these preconditions are met, the server MUST act as follows:\n\n* if `exec_node_payload_value >= builder_boost_factor * (builder_payload_value // 100)`,\n then return a full (unblinded) block containing the execution node payload.\n* otherwise, return a blinded block containing the builder payload header.\n\nServers must support the following values of the boost factor which encode common\npreferences:\n\n* `builder_boost_factor=0`: prefer the local execution node payload unless an error makes it\n unviable.\n* `builder_boost_factor=100`: profit maximization mode; choose whichever\n payload pays more.\n* `builder_boost_factor=2**64 - 1`: prefer the external builder payload unless an error or\n beacon node health check makes it unviable.\n\nServers should use saturating arithmetic or another technique to ensure that large values of\nthe `builder_boost_factor` do not trigger overflows or errors. If this parameter is\nprovided and the beacon node is not configured with a builder then the beacon node MUST\nrespond with a full block, which the caller can choose to reject if it wishes.\nIf the value is provided but out of range for a 64-bit unsigned integer, then an error\nresponse with status code 400 MUST be returned.\n", + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + }, + "Eth-Execution-Payload-Blinded": { + "description": "Required in response so client can deserialize returned json or ssz data to the correct object.", + "required": true, + "schema": { + "type": "boolean" + } + }, + "Eth-Execution-Payload-Value": { + "description": "Execution payload value in Wei. Required in response so client can determine relative value\nof execution payloads.\n", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + }, + "Eth-Consensus-Block-Value": { + "description": "Consensus rewards paid to the proposer for this block, in Wei. Required in response so\nclient can determine relative value of consensus blocks.\n", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "ProduceBlockV3Response", + "type": "object", + "required": [ + "version", + "execution_payload_blinded", + "execution_payload_value", + "consensus_block_value", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "execution_payload_blinded": { + "type": "boolean", + "example": false + }, + "execution_payload_value": { + "type": "string", + "example": "12345" + }, + "consensus_block_value": { + "type": "string", + "example": "12345" + }, + "data": { + "anyOf": [ + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "type": "object", + "description": "The required object for block production according to the Deneb CL spec.", + "required": [ + "block", + "kzg_proofs", + "blobs" + ], + "properties": { + "block": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "type": "object", + "description": "The required object for block production according to the Electra CL spec.", + "required": [ + "block", + "kzg_proofs", + "blobs" + ], + "properties": { + "block": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block or blinded block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version` and block type in `Eth-Blinded-Payload`." + } + } + } + }, + "400": { + "description": "Invalid block production request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 400, + "message": "Invalid request to produce a block" + } + } + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/blinded_blocks/{slot}": { + "get": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "operationId": "produceBlindedBlock", + "summary": "Produce a new blinded block, without signature.", + "deprecated": true, + "description": "Requests a beacon node to produce a valid blinded block, which can then be signed by a validator. \nA blinded block is a block with only a transactions root, rather than a full transactions list.\n\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.\n\nBefore Bellatrix, this endpoint will return a `BeaconBlock`.\n", + "parameters": [ + { + "name": "slot", + "in": "path", + "required": true, + "description": "The slot for which the block should be proposed.", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "randao_reveal", + "in": "query", + "required": true, + "description": "The validator's randao reveal value.", + "schema": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + }, + { + "name": "graffiti", + "in": "query", + "required": false, + "description": "Arbitrary data validator wants to include in block.", + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + { + "name": "skip_randao_verification", + "in": "query", + "required": false, + "description": "Skip verification of the `randao_reveal` value. If this flag is set then the\n`randao_reveal` must be set to the point at infinity (`0xc0..00`). \n", + "schema": { + "type": "string", + "minLength": 0, + "maxLength": 0 + }, + "allowEmptyValue": true + } + ], + "responses": { + "200": { + "description": "Success response", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "ProduceBlindedBlockResponse", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "bellatrix" + }, + "data": { + "anyOf": [ + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + ] + } + } + } + }, + "application/octet-stream": { + "schema": { + "description": "SSZ serialized block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version`." + } + } + } + }, + "400": { + "description": "Invalid block production request", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "examples": { + "InvalidRequest": { + "value": { + "code": 400, + "message": "Invalid request to produce a block" + } + } + } + } + } + }, + "406": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/attestation_data": { + "get": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "operationId": "produceAttestationData", + "summary": "Produce an attestation data", + "description": "Requests that the beacon node produce an AttestationData.\n\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the attestation attests to a block\nthat has not been fully verified by an execution engine).\n", + "parameters": [ + { + "name": "slot", + "in": "query", + "required": true, + "description": "The slot for which an attestation data should be created.", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "committee_index", + "in": "query", + "description": "The committee index for which an attestation data should be created.", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Success response", + "content": { + "application/json": { + "schema": { + "title": "ProduceAttestationDataResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/aggregate_attestation": { + "get": { + "operationId": "getAggregatedAttestation", + "summary": "Get aggregated attestation", + "deprecated": true, + "description": "Aggregates all attestations matching given attestation data root and slot.\n\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\nto a block that has not been fully verified by an execution engine).\n\nA 404 error must be returned if no attestation is available for the requested\n`attestation_data_root`.\n", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "parameters": [ + { + "name": "attestation_data_root", + "in": "query", + "required": true, + "description": "HashTreeRoot of AttestationData that validator wants aggregated", + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + { + "name": "slot", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Returns aggregated `Attestation` object with same `AttestationData` root.", + "content": { + "application/json": { + "schema": { + "title": "GetAggregatedAttestationResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "404": { + "description": "Not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Requested item not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/validator/aggregate_attestation": { + "get": { + "operationId": "getAggregatedAttestationV2", + "summary": "Get aggregated attestation", + "description": "Aggregates all attestations matching given attestation data root, slot and committee index.\n\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\nto a block that has not been fully verified by an execution engine).\n\nA 404 error must be returned if no attestation is available for the requested\n`attestation_data_root`.\n", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "parameters": [ + { + "name": "attestation_data_root", + "in": "query", + "required": true, + "description": "HashTreeRoot of AttestationData that validator wants aggregated", + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + { + "name": "slot", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "committee_index", + "in": "query", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "responses": { + "200": { + "description": "Returns aggregated `Attestation` object with same `AttestationData` root, slot and committee index.", + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + } + }, + "content": { + "application/json": { + "schema": { + "title": "GetAggregatedAttestationV2Response", + "type": "object", + "required": [ + "version", + "data" + ], + "properties": { + "version": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "data": { + "anyOf": [ + { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "404": { + "description": "Not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Requested item not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/aggregate_and_proofs": { + "post": { + "operationId": "publishAggregateAndProofs", + "summary": "Publish multiple aggregate and proofs", + "deprecated": true, + "description": "Verifies given aggregate and proofs and publishes them on appropriate gossipsub topic.", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedAggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#signedaggregateandproof) object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "allOf": [ + { + "type": "object", + "description": "The [`AggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#aggregateandproof) without selection_proof", + "required": [ + "aggregator_index", + "aggregate" + ], + "properties": { + "aggregator_index": { + "type": "string", + "example": "1" + }, + "aggregate": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "selection_proof" + ], + "properties": { + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v2/validator/aggregate_and_proofs": { + "post": { + "operationId": "publishAggregateAndProofsV2", + "summary": "Publish multiple aggregate and proofs", + "description": "Verifies given aggregate and proofs and publishes them on appropriate gossipsub topic.", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "parameters": [ + { + "in": "header", + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "required": true, + "name": "Eth-Consensus-Version", + "description": "The active consensus version to which the aggregate and proofs being submitted belong." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedAggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#signedaggregateandproof) object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "allOf": [ + { + "type": "object", + "description": "The [`AggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#aggregateandproof) without selection_proof", + "required": [ + "aggregator_index", + "aggregate" + ], + "properties": { + "aggregator_index": { + "type": "string", + "example": "1" + }, + "aggregate": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "selection_proof" + ], + "properties": { + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedAggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/validator.md#signedaggregateandproof) object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "allOf": [ + { + "type": "object", + "description": "The [`AggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/validator.md#aggregateandproof) without selection_proof", + "required": [ + "aggregator_index", + "aggregate" + ], + "properties": { + "aggregator_index": { + "type": "string", + "example": "1" + }, + "aggregate": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + }, + { + "type": "object", + "required": [ + "selection_proof" + ], + "properties": { + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/beacon_committee_subscriptions": { + "post": { + "operationId": "prepareBeaconCommitteeSubnet", + "summary": "Signal beacon node to prepare for a committee subnet", + "description": "After beacon node receives this request,\nsearch using discv5 for peers related to this subnet\nand replace current peers with those ones if necessary\nIf validator `is_aggregator`, beacon node must:\n- announce subnet topic subscription on gossipsub\n- aggregate attestations received on that subnet\n", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "title": "SubscribeToBeaconCommitteeSubnetRequestBody", + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "committee_index", + "committees_at_slot", + "slot", + "is_aggregator" + ], + "properties": { + "validator_index": { + "type": "string", + "example": "1" + }, + "committee_index": { + "type": "string", + "example": "1" + }, + "committees_at_slot": { + "description": "Number of committees at the returned slot", + "type": "string", + "example": "1" + }, + "slot": { + "description": "Should be slot at which validator is assigned to attest", + "type": "string", + "example": "1" + }, + "is_aggregator": { + "type": "boolean", + "description": "Signals to BN that a validator on the VC has been chosen for aggregator role." + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Slot signature is valid and beacon node has prepared the attestation subnet.\n\nNote that we cannot be certain the Beacon node will find peers for that subnet for various reasons.\n" + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/sync_committee_subscriptions": { + "post": { + "operationId": "prepareSyncCommitteeSubnets", + "summary": "Subscribe to sync committee subnets", + "description": "Subscribe to a number of sync committee subnets\n\nSync committees are not present in phase0, but are required for Altair networks.\n\nSubscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.\n", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "sync_committee_indices", + "until_epoch" + ], + "properties": { + "validator_index": { + "type": "string", + "example": "1" + }, + "sync_committee_indices": { + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "until_epoch": { + "description": "The final epoch (exclusive value) that the specified validator requires the subscription for.", + "type": "string", + "example": "1" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/beacon_committee_selections": { + "post": { + "operationId": "submitBeaconCommitteeSelections", + "summary": "Determine if a distributed validator has been selected to aggregate attestations", + "description": "This endpoint should be used by a validator client running as part of a distributed validator cluster, and is \nimplemented by a distributed validator middleware client. This endpoint is used to exchange partial \nselection proofs for combined/aggregated selection proofs to allow a validator client \nto correctly determine if any of its validators has been selected to perform an attestation aggregation duty in a slot. \nValidator clients running in a distributed validator cluster must query this endpoint at the start of an epoch for the current and lookahead (next) epochs for\nall validators that have attester duties in the current and lookahead epochs. Consensus clients need not support this\nendpoint and may return a 501.\n", + "tags": [ + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "title": "BeaconCommitteeSelectionRequest", + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "slot", + "selection_proof" + ], + "properties": { + "validator_index": { + "description": "Index of the validator", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which a validator is assigned to attest", + "type": "string", + "example": "1" + }, + "selection_proof": { + "description": "The `slot_signature` calculated by the validator for the upcoming attestation slot", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the threshold aggregated beacon committee selection proofs.\n", + "content": { + "application/json": { + "schema": { + "title": "BeaconCommitteeSelectionResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "slot", + "selection_proof" + ], + "properties": { + "validator_index": { + "description": "Index of the validator", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which a validator is assigned to attest", + "type": "string", + "example": "1" + }, + "selection_proof": { + "description": "The `slot_signature` calculated by the validator for the upcoming attestation slot", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "501": { + "description": "Endpoint not implemented.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 501 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 501, + "message": "Endpoint not implemented" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/sync_committee_contribution": { + "get": { + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "operationId": "produceSyncCommitteeContribution", + "summary": "Produce a sync committee contribution", + "description": "Requests that the beacon node produce a sync committee contribution.\n\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the sync committee contribution\nrefers to a block that has not been fully verified by an execution engine).\n\nA 404 error must be returned if no sync committee contribution is available\nfor the requested `beacon_block_root`.\n", + "parameters": [ + { + "name": "slot", + "in": "query", + "required": true, + "description": "The slot for which a sync committee contribution should be created.", + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "subcommittee_index", + "in": "query", + "description": "the subcommittee index for which to produce the contribution.", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + }, + { + "name": "beacon_block_root", + "in": "query", + "description": "the block root for which to produce the contribution.", + "required": true, + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + ], + "responses": { + "200": { + "description": "Success response", + "content": { + "application/json": { + "schema": { + "title": "produceSyncCommitteeContributionResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "subcommittee_index", + "aggregation_bits", + "signature" + ], + "properties": { + "slot": { + "description": "The slot at which the validator is providing a sync committee contribution.", + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "Block root for this contribution.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "subcommittee_index": { + "description": "The index of the subcommittee that the contribution pertains to.", + "type": "string", + "example": "1" + }, + "aggregation_bits": { + "description": "A bit is set if a signature from the validator at the corresponding index in the subcommittee is present in the aggregate `signature`.", + "example": "0xffffffffffffffffffffffffffffffff", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "signature": { + "description": "Signature by the validator(s) over the block root of `slot`", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "404": { + "description": "Not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Requested item not found" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/sync_committee_selections": { + "post": { + "operationId": "submitSyncCommitteeSelections", + "summary": "Determine if a distributed validator has been selected to make a sync committee contribution", + "description": "Submit sync committee selections to a DVT middleware client. It returns the threshold aggregated sync \ncommittee selection. This endpoint should be used by a validator client running as part of a distributed \nvalidator cluster, and is implemented by a distributed validator middleware client. This endpoint is \nused to exchange partial selection proofs (slot signatures) for combined/aggregated selection proofs to \nallow a validator client to correctly determine if any of its validators has been selected to perform a \nsync committee contribution (sync aggregation) duty in a slot. Validator clients running in a distributed validator cluster must query this endpoint\nat the start of each slot for all validators that are included in the current sync committee. Consensus\nclients need not support this endpoint and may return a 501.\n", + "tags": [ + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "title": "SyncCommitteeSelectionRequest", + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "slot", + "subcommittee_index", + "selection_proof" + ], + "properties": { + "validator_index": { + "description": "Index of the validator", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which validator is assigned to produce a sync committee contribution", + "type": "string", + "example": "1" + }, + "subcommittee_index": { + "description": "SubcommitteeIndex to which the validator is assigned", + "type": "string", + "example": "1" + }, + "selection_proof": { + "description": "The `slot_signature` calculated by the validator for the upcoming sync committee slot", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the threshold aggregated sync committee selection proofs.\n", + "content": { + "application/json": { + "schema": { + "title": "SyncCommitteeSelectionResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "slot", + "subcommittee_index", + "selection_proof" + ], + "properties": { + "validator_index": { + "description": "Index of the validator", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which validator is assigned to produce a sync committee contribution", + "type": "string", + "example": "1" + }, + "subcommittee_index": { + "description": "SubcommitteeIndex to which the validator is assigned", + "type": "string", + "example": "1" + }, + "selection_proof": { + "description": "The `slot_signature` calculated by the validator for the upcoming sync committee slot", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "501": { + "description": "Endpoint not implemented.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 501 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 501, + "message": "Endpoint not implemented" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/validator/contribution_and_proofs": { + "post": { + "operationId": "publishContributionAndProofs", + "summary": "Publish multiple contribution and proofs", + "description": "Publish multiple signed sync committee contribution and proofs", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "required": [ + "aggregator_index", + "selection_proof", + "contribution" + ], + "properties": { + "aggregator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "contribution": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "subcommittee_index", + "aggregation_bits", + "signature" + ], + "properties": { + "slot": { + "description": "The slot at which the validator is providing a sync committee contribution.", + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "Block root for this contribution.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "subcommittee_index": { + "description": "The index of the subcommittee that the contribution pertains to.", + "type": "string", + "example": "1" + }, + "aggregation_bits": { + "description": "A bit is set if a signature from the validator at the corresponding index in the subcommittee is present in the aggregate `signature`.", + "example": "0xffffffffffffffffffffffffffffffff", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "signature": { + "description": "Signature by the validator(s) over the block root of `slot`", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/prepare_beacon_proposer": { + "post": { + "operationId": "prepareBeaconProposer", + "summary": "Provide beacon node with proposals for the given validators.", + "description": "Prepares the beacon node for potential proposers by supplying information\nrequired when proposing blocks for the given validators. The information\nsupplied for each validator index will persist through the epoch in which\nthe call is submitted and for a further two epochs after that, or until the\nbeacon node restarts. It is expected that validator clients will send this\ninformation periodically, for example each epoch, to ensure beacon nodes have\ncorrect and timely fee recipient information.\n\nNote that there is no guarantee that the beacon node will use the supplied fee\nrecipient when creating a block proposal, so on receipt of a proposed block the\nvalidator should confirm that it finds the fee recipient within the block\nacceptable before signing it.\n\nAlso note that requests containing currently inactive or unknown validator\nindices will be accepted, as they may become active at a later epoch.\n", + "tags": [ + "ValidatorRequiredApi", + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "validator_index", + "fee_recipient" + ], + "properties": { + "validator_index": { + "type": "string", + "example": "1" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Preparation information has been received.\n" + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/register_validator": { + "post": { + "operationId": "registerValidator", + "summary": "Provide beacon node with registrations for the given validators to the external builder network.", + "description": "Prepares the beacon node for engaging with external builders. The\ninformation must be sent by the beacon node to the builder network. It is\nexpected that the validator client will send this information periodically\nto ensure the beacon node has correct and timely registration information\nto provide to builders.\n\nNote that only registrations for active or pending validators must be sent to the builder network.\nRegistrations for unknown or exited validators must be filtered out and not sent to the builder network.\n", + "tags": [ + "Validator" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "The `SignedValidatorRegistration` object from the Builder API specification.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The `ValidatorRegistration` object from the Builder API specification.", + "required": [ + "fee_recipient", + "gas_limit", + "timestamp", + "pubkey" + ], + "properties": { + "fee_recipient": { + "description": "Address to receive fees from the block.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "gas_limit": { + "description": "Preferred gas limit of validator.", + "type": "string", + "example": "1" + }, + "timestamp": { + "description": "Unix timestamp of registration.", + "type": "string", + "example": "1" + }, + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Registration information has been received." + }, + "400": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + }, + "/eth/v1/validator/liveness/{epoch}": { + "post": { + "tags": [ + "Validator" + ], + "summary": "Indicates if a validator has been observed on the network", + "operationId": "getLiveness", + "description": "Requests the beacon node to indicate if a validator has been observed to be live in a given epoch. The beacon node might detect liveness by observing messages from the validator on the network, in the beacon chain, from its API or from any other source. A beacon node SHOULD support the current and previous epoch, however it MAY support earlier epoch. It is important to note that the values returned by the beacon node are not canonical; they are best-effort and based upon a subjective view of the network. A beacon node that was recently started or suffered a network partition may indicate that a validator is not live when it actually is.", + "parameters": [ + { + "name": "epoch", + "description": "The epoch for which liveness is being queried", + "in": "path", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + ], + "requestBody": { + "description": "An array of the validator indices for which to detect liveness.", + "required": true, + "content": { + "application/json": { + "schema": { + "title": "PostLivenessRequestBody", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "example": "1" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success response", + "content": { + "application/json": { + "schema": { + "title": "PostLivenessResponseBody", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "is_live" + ], + "properties": { + "index": { + "type": "string", + "example": "1" + }, + "is_live": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Invalid epoch or index", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid epoch: -2" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "503": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + } + } + }, + "/eth/v1/events": { + "get": { + "operationId": "eventstream", + "summary": "Subscribe to beacon node events", + "tags": [ + "Events", + "ValidatorRequiredApi" + ], + "description": "Provides endpoint to subscribe to beacon node Server-Sent-Events stream.\nConsumers should use [eventsource](https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface)\nimplementation to listen on those events.\n\nServers _may_ send SSE comments beginning with `:` for any purpose, including to keep the\nevent stream connection alive in the presence of proxy servers.\n", + "parameters": [ + { + "name": "topics", + "in": "query", + "required": true, + "description": "Event types to subscribe to", + "schema": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "head", + "block", + "block_gossip", + "attestation", + "voluntary_exit", + "bls_to_execution_change", + "proposer_slashing", + "attester_slashing", + "finalized_checkpoint", + "chain_reorg", + "contribution_and_proof", + "light_client_finality_update", + "light_client_optimistic_update", + "payload_attributes", + "blob_sidecar" + ] + } + } + } + ], + "responses": { + "200": { + "description": "Opened SSE stream.", + "content": { + "text/event-stream": { + "schema": { + "type": "string", + "description": "https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format" + }, + "examples": { + "head": { + "description": "The node has finished processing, resulting in a new head. previous_duty_dependent_root is `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch - 1) - 1)` and current_duty_dependent_root is `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1)`. Both dependent roots use the genesis block root in the case of underflow.", + "value": "event: head\ndata: {\"slot\":\"10\", \"block\":\"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\", \"state\":\"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9\", \"epoch_transition\":false, \"previous_duty_dependent_root\":\"0x5e0043f107cb57913498fbf2f99ff55e730bf1e151f02f221e977c91a90a0e91\", \"current_duty_dependent_root\":\"0x5e0043f107cb57913498fbf2f99ff55e730bf1e151f02f221e977c91a90a0e91\", \"execution_optimistic\": false}\n" + }, + "block": { + "description": "The node has received a block (from P2P or API) that is successfully imported on the fork-choice `on_block` handler", + "value": "event: block\ndata: {\"slot\":\"10\", \"block\":\"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\", \"execution_optimistic\": false}\n" + }, + "block_gossip": { + "description": "The node has received a block (from P2P or API) that passes validation rules of the `beacon_block` topic", + "value": "event: block_gossip\ndata: {\"slot\":\"10\", \"block\":\"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\"}\n" + }, + "attestation": { + "description": "The node has received an Attestation (from P2P or API) that passes validation rules of the `beacon_attestation_{subnet_id}` topic", + "value": "event: attestation\ndata: {\"aggregation_bits\":\"0x01\", \"signature\":\"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505\", \"data\":{\"slot\":\"1\", \"index\":\"1\", \"beacon_block_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"source\":{\"epoch\":\"1\", \"root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"}, \"target\":{\"epoch\":\"1\", \"root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"}}}\n" + }, + "voluntary_exit": { + "description": "The node has received a SignedVoluntaryExit (from P2P or API) that passes validation rules of `voluntary_exit` topic", + "value": "event: voluntary_exit\ndata: {\"message\":{\"epoch\":\"1\", \"validator_index\":\"1\"}, \"signature\":\"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505\"}\n" + }, + "proposer_slashing": { + "description": "The node has received a ProposerSlashing (from P2P or API) that passes validation rules of the `proposer_slashing` topic", + "value": "event: proposer_slashing\ndata: {\"signed_header_1\":{\"message\":{\"slot\":\"0\",\"proposer_index\":\"0\",\"parent_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"state_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"body_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"},\"signature\":\"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"},\"signed_header_2\":{\"message\":{\"slot\":\"0\",\"proposer_index\":\"0\",\"parent_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"state_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"body_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"},\"signature\":\"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}}\n" + }, + "attester_slashing": { + "description": "The node has received an AttesterSlashing (from P2P or API) that passes validation rules of the `attester_slashing` topic", + "value": "event: attester_slashing\ndata: {\"attestation_1\":{\"attesting_indices\":[\"0\", \"1\"],\"data\":{\"slot\":\"0\",\"index\":\"0\",\"beacon_block_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"source\":{\"epoch\":\"0\",\"root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"},\"target\":{\"epoch\":\"0\",\"root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"}},\"signature\":\"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"},\"attestation_2\":{\"attesting_indices\":[\"0\", \"1\"],\"data\":{\"slot\":\"0\",\"index\":\"0\",\"beacon_block_root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"source\":{\"epoch\":\"0\",\"root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"},\"target\":{\"epoch\":\"0\",\"root\":\"0x0000000000000000000000000000000000000000000000000000000000000000\"}},\"signature\":\"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}}\n" + }, + "bls_to_execution_change": { + "description": "The node has received a SignedBLSToExecutionChange (from P2P or API) that passes validation rules of the `bls_to_execution_change` topic", + "value": "event: bls_to_execution_change\ndata: {\"message\":{\"validator_index\":\"1\", \"from_bls_pubkey\":\"0x933ad9491b62059dd065b560d256d8957a8c402cc6e8d8ee7290ae11e8f7329267a8811c397529dac52ae1342ba58c95\", \"to_execution_address\":\"0x9Be8d619c56699667c1feDCD15f6b14D8B067F72\"}, \"signature\":\"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505\"}\n" + }, + "finalized_checkpoint": { + "description": "Finalized checkpoint has been updated", + "value": "event: finalized_checkpoint\ndata: {\"block\":\"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\", \"state\":\"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9\", \"epoch\":\"2\", \"execution_optimistic\": false }\n" + }, + "chain_reorg": { + "description": "The node has reorganized its chain", + "value": "event: chain_reorg\ndata: {\"slot\":\"200\", \"depth\":\"50\", \"old_head_block\":\"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\", \"new_head_block\":\"0x76262e91970d375a19bfe8a867288d7b9cde43c8635f598d93d39d041706fc76\", \"old_head_state\":\"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\", \"new_head_state\":\"0x600e852a08c1200654ddf11025f1ceacb3c2e74bdd5c630cde0838b2591b69f9\", \"epoch\":\"2\", \"execution_optimistic\": false}\n" + }, + "contribution_and_proof": { + "description": "The node has received a SignedContributionAndProof (from P2P or API) that passes validation rules of the `sync_committee_contribution_and_proof` topic", + "value": "event: contribution_and_proof\ndata: {\"message\": {\"aggregator_index\": \"997\", \"contribution\": {\"slot\": \"168097\", \"beacon_block_root\": \"0x56f1fd4262c08fa81e27621c370e187e621a67fc80fe42340b07519f84b42ea1\", \"subcommittee_index\": \"0\", \"aggregation_bits\": \"0xffffffffffffffffffffffffffffffff\", \"signature\": \"0x85ab9018e14963026476fdf784cc674da144b3dbdb47516185438768774f077d882087b90ad642469902e782a8b43eed0cfc1b862aa9a473b54c98d860424a702297b4b648f3f30bdaae8a8b7627d10d04cb96a2cc8376af3e54a9aa0c8145e3\"}, \"selection_proof\": \"0x87c305f04bfe5db27c2b19fc23e00d7ac496ec7d3e759cbfdd1035cb8cf6caaa17a36a95a08ba78c282725e7b66a76820ca4eb333822bd399ceeb9807a0f2926c67ce67cfe06a0b0006838203b493505a8457eb79913ce1a3bcd1cc8e4ef30ed\"}, \"signature\": \"0xac118511474a94f857300b315c50585c32a713e4452e26a6bb98cdb619936370f126ed3b6bb64469259ee92e69791d9e12d324ce6fd90081680ce72f39d85d50b0ff977260a8667465e613362c6d6e6e745e1f9323ec1d6f16041c4e358839ac\"}\n" + }, + "light_client_finality_update": { + "description": "The node's latest known `LightClientFinalityUpdate` has been updated", + "value": "event: light_client_finality_update\ndata: {\"version\":\"altair\", \"data\": {\"attested_header\": {\"beacon\": {\"slot\":\"1\", \"proposer_index\":\"1\", \"parent_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"state_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"body_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"}}, \"finalized_header\": {\"beacon\": {\"slot\":\"1\", \"proposer_index\":\"1\", \"parent_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"state_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"body_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"}}, \"finality_branch\": [\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"], \"sync_aggregate\": {\"sync_committee_bits\":\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffbffffffffffffffffffffbffffffffffffff\", \"sync_committee_signature\":\"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505\"}, \"signature_slot\":\"1\"}}\n" + }, + "light_client_optimistic_update": { + "description": "The node's latest known `LightClientOptimisticUpdate` has been updated", + "value": "event: light_client_optimistic_update\ndata: {\"version\":\"altair\", \"data\": {\"attested_header\": {\"beacon\": {\"slot\":\"1\", \"proposer_index\":\"1\", \"parent_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"state_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"body_root\":\"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"}}, \"sync_aggregate\": {\"sync_committee_bits\":\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffbffffffffffffffffffffbffffffffffffff\", \"sync_committee_signature\":\"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505\"}, \"signature_slot\":\"1\"}}\n" + }, + "payload_attributes": { + "description": "The node has computed new payload attributes for execution payload building.\n\nThis event gives block builders and relays sufficient information to construct or\nverify a block at `proposal_slot`. The meanings of the fields are:\n\n- `version`: the identifier of the beacon hard fork at `proposal_slot`, e.g.\n `\"bellatrix\"`, `\"capella\"`.\n- `proposal_slot`: the slot at which a block using these payload attributes may be\n built.\n- `parent_block_root`: the beacon block root of the parent block to be built upon.\n- `parent_block_number`: the execution block number of the parent block.\n- `parent_block_hash`: the execution block hash of the parent block.\n- `proposer_index`: the validator index of the proposer at `proposal_slot` on\n the chain identified by `parent_block_root`.\n- `payload_attributes`: beacon API encoding of `PayloadAttributesV` as\n defined by the `execution-apis` specification. The version `N` must match the\n payload attributes for the hard fork matching `version`.\n The beacon API encoded object must have equivalent fields to its counterpart in\n `execution-apis` with two differences: 1) `snake_case` identifiers must be used\n rather than `camelCase`; 2) integers must be encoded as quoted decimals rather\n than big-endian hex.\n\nThe frequency at which this event is sent may depend on beacon node configuration.\nThe fee recipient may also be set via beacon node config, but should likely be\nignored by block builders and most other API consumers.\n", + "value": "event: payload_attributes\ndata: {\"version\": \"capella\", \"data\": {\"proposer_index\": \"123\", \"proposal_slot\": \"10\", \"parent_block_number\": \"9\", \"parent_block_root\": \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"parent_block_hash\": \"0x9a2fefd2fdb57f74993c7780ea5b9030d2897b615b89f808011ca5aebed54eaf\", \"payload_attributes\": {\"timestamp\": \"123456\", \"prev_randao\": \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"suggested_fee_recipient\": \"0x0000000000000000000000000000000000000000\", \"withdrawals\": [{\"index\": \"5\", \"validator_index\": \"10\", \"address\": \"0x0000000000000000000000000000000000000000\", \"amount\": \"15640\"}]}}}\n" + }, + "blob_sidecar": { + "description": "The node has received a BlobSidecar (from P2P or API) that passes all gossip validations on the blob_sidecar_{subnet_id} topic", + "value": "event: blob_sidecar\ndata: {\"block_root\": \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\", \"index\": \"1\", \"slot\": \"1\", \"kzg_commitment\": \"0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505\", \"versioned_hash\": \"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2\"}\n" + } + } + } + } + }, + "400": { + "description": "The topics supplied could not be parsed", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 400, + "message": "Invalid topic: weather_forecast" + } + } + } + }, + "500": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "BeaconState": { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_attestations", + "current_epoch_attestations", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#pendingattestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "inclusion_delay", + "proposer_index" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "inclusion_delay": { + "type": "string", + "example": "1" + }, + "proposer_index": { + "type": "string", + "example": "1" + } + } + } + }, + "current_epoch_attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#pendingattestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "inclusion_delay", + "proposer_index" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "inclusion_delay": { + "type": "string", + "example": "1" + }, + "proposer_index": { + "type": "string", + "example": "1" + } + } + } + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "BeaconBlock": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "BroadcastValidation": { + "description": "Level of validation that must be applied to a block before it is broadcast.", + "type": "string", + "enum": [ + "gossip", + "consensus", + "consensus_and_equivocation" + ] + }, + "DepositSnapshotResponse": { + "type": "object", + "required": [ + "finalized", + "deposit_root", + "deposit_count", + "execution_block_hash", + "execution_block_height" + ], + "properties": { + "finalized": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 0, + "maxItems": 32 + }, + "deposit_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "type": "string", + "example": "1" + }, + "execution_block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "execution_block_height": { + "type": "string", + "example": "1" + } + } + }, + "SignedBeaconBlock": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockbody) object from the CL spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "SignedBeaconBlockHeader": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "ValidatorResponse": { + "type": "object", + "required": [ + "index", + "balance", + "status", + "validator" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + }, + "status": { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + "validator": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + } + }, + "ValidatorBalanceResponse": { + "type": "object", + "required": [ + "index", + "balance" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "balance": { + "description": "Current validator balance in gwei.", + "type": "string", + "example": "1" + } + } + }, + "ValidatorIdentityResponse": { + "type": "object", + "required": [ + "index", + "pubkey", + "activation_epoch" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "pubkey": { + "description": "Public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + } + } + }, + "ValidatorStatus": { + "description": "Possible statuses:\n- **pending_initialized** - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue.\n- **pending_queued** - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).\n- **active_ongoing** - When validator must be attesting, and have not initiated any exit.\n- **active_exiting** - When validator is still active, but filed a voluntary request to exit.\n- **active_slashed** - When validator is still active, but have a slashed status and is scheduled to exit.\n- **exited_unslashed** - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.\n- **exited_slashed** - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period.\n- **withdrawal_possible** - After validator has exited, a while later is permitted to move funds, and is truly out of the system.\n- **withdrawal_done** - (not possible in phase0, except slashing full balance) - actually having moved funds away\n\n[Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)\n", + "enum": [ + "pending_initialized", + "pending_queued", + "active_ongoing", + "active_exiting", + "active_slashed", + "exited_unslashed", + "exited_slashed", + "withdrawal_possible", + "withdrawal_done" + ], + "example": "active_ongoing" + }, + "Committee": { + "description": "Group of validators assigned to attest at specific slot and that have the same committee index (shard in phase 1)", + "type": "object", + "required": [ + "index", + "slot", + "validators" + ], + "properties": { + "index": { + "description": "Committee index at a slot", + "type": "string", + "example": "1" + }, + "slot": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "List of validator indices assigned to this committee", + "items": { + "type": "string", + "example": "1" + } + } + } + }, + "AttesterSlashing": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + "ProposerSlashing": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + "SignedVoluntaryExit": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "SignedBLSToExecutionChange": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "AttesterDuty": { + "type": "object", + "required": [ + "pubkey", + "validator_index", + "committee_index", + "committee_length", + "committees_at_slot", + "validator_committee_index", + "slot" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "validator_index": { + "description": "Index of validator in validator registry", + "type": "string", + "example": "1" + }, + "committee_index": { + "description": "The committee index", + "type": "string", + "example": "1" + }, + "committee_length": { + "description": "Number of validators in committee", + "type": "string", + "example": "1" + }, + "committees_at_slot": { + "description": "Number of committees at the provided slot", + "type": "string", + "example": "1" + }, + "validator_committee_index": { + "description": "Index of validator in committee", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which the validator must attest.", + "type": "string", + "example": "1" + } + } + }, + "ProposerDuty": { + "type": "object", + "required": [ + "pubkey", + "validator_index", + "slot" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "validator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which the validator must propose block.", + "type": "string", + "example": "1" + } + } + }, + "Altair.SyncDuty": { + "type": "object", + "required": [ + "pubkey", + "validator_index", + "validator_sync_committee_indices" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "validator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "validator_sync_committee_indices": { + "type": "array", + "description": "The indices of the validator in the sync committee.", + "minItems": 1, + "items": { + "type": "string", + "example": "1" + } + } + } + }, + "SignedAggregateAndProof": { + "type": "object", + "description": "The [`SignedAggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#signedaggregateandproof) object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "allOf": [ + { + "type": "object", + "description": "The [`AggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#aggregateandproof) without selection_proof", + "required": [ + "aggregator_index", + "aggregate" + ], + "properties": { + "aggregator_index": { + "type": "string", + "example": "1" + }, + "aggregate": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "selection_proof" + ], + "properties": { + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Attestation": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "AttestationData": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "BeaconCommitteeSelection": { + "type": "object", + "required": [ + "validator_index", + "slot", + "selection_proof" + ], + "properties": { + "validator_index": { + "description": "Index of the validator", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which a validator is assigned to attest", + "type": "string", + "example": "1" + }, + "selection_proof": { + "description": "The `slot_signature` calculated by the validator for the upcoming attestation slot", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "SyncCommitteeSelection": { + "type": "object", + "required": [ + "validator_index", + "slot", + "subcommittee_index", + "selection_proof" + ], + "properties": { + "validator_index": { + "description": "Index of the validator", + "type": "string", + "example": "1" + }, + "slot": { + "description": "The slot at which validator is assigned to produce a sync committee contribution", + "type": "string", + "example": "1" + }, + "subcommittee_index": { + "description": "SubcommitteeIndex to which the validator is assigned", + "type": "string", + "example": "1" + }, + "selection_proof": { + "description": "The `slot_signature` calculated by the validator for the upcoming sync committee slot", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "Checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "Uint64": { + "type": "string", + "example": "1" + }, + "NetworkIdentity": { + "type": "object", + "required": [ + "peer_id", + "enr", + "p2p_addresses", + "discovery_addresses", + "metadata" + ], + "properties": { + "peer_id": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "enr": { + "type": "string", + "description": "Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778)", + "example": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8" + }, + "p2p_addresses": { + "type": "array", + "items": { + "description": "Node's addresses on which eth2 RPC requests are served. [Read more](https://docs.libp2p.io/reference/glossary/#multiaddr)", + "type": "string", + "example": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + } + }, + "discovery_addresses": { + "type": "array", + "items": { + "description": "Node's addresses on which is listening for discv5 requests. [Read more](https://docs.libp2p.io/reference/glossary/#multiaddr)", + "example": "/ip4/7.7.7.7/udp/30303/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N", + "type": "string" + } + }, + "metadata": { + "type": "object", + "description": "Based on eth2 [Metadata object](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/p2p-interface.md#metadata)", + "required": [ + "seq_number", + "attnets" + ], + "properties": { + "seq_number": { + "description": "Uint64 starting at 0 used to version the node's metadata. If any other field in the local MetaData changes, the node MUST increment seq_number by 1.", + "type": "string", + "example": "1" + }, + "attnets": { + "description": "Bitvector representing the node's persistent attestation subnet subscriptions.", + "example": "0x0000000000000000", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "syncnets": { + "description": "Bitvector representing the node's sync committee subnet subscriptions. This metadata is not present in phase0, but will be present in Altair.", + "example": "0x0f", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + }, + "Peer": { + "type": "object", + "required": [ + "peer_id", + "enr", + "last_seen_p2p_address", + "state", + "direction" + ], + "properties": { + "peer_id": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "enr": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "description": "Ethereum node record. [Read more](https://eips.ethereum.org/EIPS/eip-778)", + "example": "enr:-IS4QHCYrYZbAKWCBRlAy5zzaDZXJBGkcnh4MHcBFZntXNFrdvJjX04jRzjzCBOonrkTfj499SZuOh8R33Ls8RRcy5wBgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPKY0yuDUmstAHYpMa2_oxVtw0RW_QAdpzBQA8yWM0xOIN1ZHCCdl8" + } + ] + }, + "last_seen_p2p_address": { + "description": "Multiaddrs used in last peer connection.", + "type": "string", + "example": "/ip4/7.7.7.7/tcp/4242/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "state": { + "type": "string", + "enum": [ + "disconnected", + "connecting", + "connected", + "disconnecting" + ] + }, + "direction": { + "type": "string", + "enum": [ + "inbound", + "outbound" + ] + } + } + }, + "PeerId": { + "type": "string", + "description": "Cryptographic hash of a peer’s public key. [Read more](https://docs.libp2p.io/concepts/peer-id/)", + "example": "QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N" + }, + "PeerConnectionState": { + "type": "string", + "enum": [ + "disconnected", + "connecting", + "connected", + "disconnecting" + ] + }, + "PeerConnectionDirection": { + "type": "string", + "enum": [ + "inbound", + "outbound" + ] + }, + "GenesisTime": { + "example": "1590832934", + "description": "The genesis_time configured for the beacon node, which is the unix time in seconds at which the Eth2.0 chain began.", + "type": "string" + }, + "Version": { + "type": "string", + "description": "A string which uniquely identifies the client implementation and its version; similar to [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3).", + "example": "Lighthouse/v0.1.5 (Linux x86_64)" + }, + "ForkVersion": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "DependentRoot": { + "description": "The block root that this response is dependent on.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "ExecutionOptimistic": { + "type": "boolean", + "example": false, + "description": "True if the response references an unverified execution payload. Optimistic information may be invalidated at a later time. If the field is not present, assume the False value." + }, + "Finalized": { + "type": "boolean", + "example": false, + "description": "True if the response references the finalized history of the chain, as determined by fork choice. If the field is not present, additional calls are necessary to compare the epoch of the requested information with the finalized checkpoint." + }, + "Root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "Graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "Signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "ErrorMessage": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "IndexedErrorMessage": { + "type": "object", + "required": [ + "code", + "message", + "failures" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "some failures" + }, + "failures": { + "description": "List of individual items that have failed", + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "message" + ], + "properties": { + "index": { + "description": "Index of item in the request list that caused the error", + "type": "number", + "example": 3 + }, + "message": { + "description": "Message describing error", + "type": "string", + "example": "invalid signature" + } + } + } + } + } + }, + "Altair.BeaconBlock": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "Altair.SignedBeaconBlock": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Altair spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Altair spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconblockbody) object from the CL Altair spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Altair.LightClientBootstrap": { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + } + } + }, + "Altair.LightClientUpdate": { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Altair.LightClientFinalityUpdate": { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Altair.LightClientOptimisticUpdate": { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Altair.BeaconState": { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#beaconstate) object from the CL Altair spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. New in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + } + }, + "Altair.SyncCommitteeSignature": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "validator_index", + "signature" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "validator_index": { + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Altair.SyncCommitteeSubscription": { + "type": "object", + "required": [ + "validator_index", + "sync_committee_indices", + "until_epoch" + ], + "properties": { + "validator_index": { + "type": "string", + "example": "1" + }, + "sync_committee_indices": { + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "until_epoch": { + "description": "The final epoch (exclusive value) that the specified validator requires the subscription for.", + "type": "string", + "example": "1" + } + } + }, + "Altair.ContributionAndProof": { + "type": "object", + "required": [ + "aggregator_index", + "selection_proof", + "contribution" + ], + "properties": { + "aggregator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "contribution": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "subcommittee_index", + "aggregation_bits", + "signature" + ], + "properties": { + "slot": { + "description": "The slot at which the validator is providing a sync committee contribution.", + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "Block root for this contribution.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "subcommittee_index": { + "description": "The index of the subcommittee that the contribution pertains to.", + "type": "string", + "example": "1" + }, + "aggregation_bits": { + "description": "A bit is set if a signature from the validator at the corresponding index in the subcommittee is present in the aggregate `signature`.", + "example": "0xffffffffffffffffffffffffffffffff", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "signature": { + "description": "Signature by the validator(s) over the block root of `slot`", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + "Altair.SignedContributionAndProof": { + "type": "object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "required": [ + "aggregator_index", + "selection_proof", + "contribution" + ], + "properties": { + "aggregator_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "contribution": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "subcommittee_index", + "aggregation_bits", + "signature" + ], + "properties": { + "slot": { + "description": "The slot at which the validator is providing a sync committee contribution.", + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "Block root for this contribution.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "subcommittee_index": { + "description": "The index of the subcommittee that the contribution pertains to.", + "type": "string", + "example": "1" + }, + "aggregation_bits": { + "description": "A bit is set if a signature from the validator at the corresponding index in the subcommittee is present in the aggregate `signature`.", + "example": "0xffffffffffffffffffffffffffffffff", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "signature": { + "description": "Signature by the validator(s) over the block root of `slot`", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Altair.SyncCommitteeContribution": { + "type": "object", + "required": [ + "slot", + "beacon_block_root", + "subcommittee_index", + "aggregation_bits", + "signature" + ], + "properties": { + "slot": { + "description": "The slot at which the validator is providing a sync committee contribution.", + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "Block root for this contribution.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "subcommittee_index": { + "description": "The index of the subcommittee that the contribution pertains to.", + "type": "string", + "example": "1" + }, + "aggregation_bits": { + "description": "A bit is set if a signature from the validator at the corresponding index in the subcommittee is present in the aggregate `signature`.", + "example": "0xffffffffffffffffffffffffffffffff", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "signature": { + "description": "Signature by the validator(s) over the block root of `slot`", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Altair.SyncCommittee": { + "type": "object", + "required": [ + "validators", + "validator_aggregates" + ], + "properties": { + "validators": { + "description": "all of the validator indices in the current sync committee", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "validator_aggregates": { + "type": "array", + "items": { + "description": "Subcommittee slices of the current sync committee", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + } + } + } + }, + "ExecutionAddress": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "Bellatrix.BeaconState": { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconstate) object from the Eth2.0 Bellatrix spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in Gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + }, + "Bellatrix.BeaconBlock": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "Bellatrix.SignedBeaconBlock": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Bellatrix.BlindedBeaconBlock": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "Bellatrix.SignedBlindedBeaconBlock": { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Bellatrix spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Bellatrix spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#beaconblockbody) object from the CL Bellatrix spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayloadheader) object from the CL Bellatrix spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#executionpayload) object from the CL Bellatrix spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "ConsensusVersion": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + }, + "SignedValidatorRegistration": { + "type": "object", + "description": "The `SignedValidatorRegistration` object from the Builder API specification.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The `ValidatorRegistration` object from the Builder API specification.", + "required": [ + "fee_recipient", + "gas_limit", + "timestamp", + "pubkey" + ], + "properties": { + "fee_recipient": { + "description": "Address to receive fees from the block.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "gas_limit": { + "description": "Preferred gas limit of validator.", + "type": "string", + "example": "1" + }, + "timestamp": { + "description": "Unix timestamp of registration.", + "type": "string", + "example": "1" + }, + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Capella.BeaconState": { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconstate) object from the Eth2.0 Capella spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header", + "next_withdrawal_index", + "next_withdrawal_validator_index", + "historical_summaries" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items. Frozen in Capella, replaced by historical_summaries.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "next_withdrawal_index": { + "type": "string", + "example": "1" + }, + "next_withdrawal_validator_index": { + "type": "string", + "example": "1" + }, + "historical_summaries": { + "type": "array", + "items": { + "type": "object", + "description": "The [`HistoricalSummary`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#historicalsummary) object from the CL Capella spec.", + "required": [ + "block_summary_root", + "state_summary_root" + ], + "properties": { + "block_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "description": "Variable length list, maximum 16777216 items" + } + } + }, + "Capella.BeaconBlock": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "Capella.SignedBeaconBlock": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Capella.BlindedBeaconBlock": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "Capella.SignedBlindedBeaconBlock": { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Capella spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblock) object from the CL Capella spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#beaconblockbody) object from the CL Capella spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes" + ], + "properties": { + "randao_reveal": { + "description": "The RanDAO reveal value provided by the validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Capella.LightClientBootstrap": { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + } + } + }, + "Capella.LightClientUpdate": { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Capella.LightClientFinalityUpdate": { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Capella.LightClientOptimisticUpdate": { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayloadheader) object from the CL Capella spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#executionpayload) object from the CL Capella spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Capella.Withdrawal": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "Deneb.BeaconState": { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconstate) object from the Eth2.0 Deneb spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header", + "next_withdrawal_index", + "next_withdrawal_validator_index", + "historical_summaries" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items. Frozen in Capella, replaced by historical_summaries.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "next_withdrawal_index": { + "type": "string", + "example": "1" + }, + "next_withdrawal_validator_index": { + "type": "string", + "example": "1" + }, + "historical_summaries": { + "type": "array", + "items": { + "type": "object", + "description": "The [`HistoricalSummary`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#historicalsummary) object from the CL Capella spec.", + "required": [ + "block_summary_root", + "state_summary_root" + ], + "properties": { + "block_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "description": "Variable length list, maximum 16777216 items" + } + } + }, + "Deneb.BeaconBlock": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "Deneb.BlockContents": { + "type": "object", + "description": "The required object for block production according to the Deneb CL spec.", + "required": [ + "block", + "kzg_proofs", + "blobs" + ], + "properties": { + "block": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + "Deneb.SignedBeaconBlock": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Deneb.SignedBlockContents": { + "type": "object", + "description": "The required signed components of block production according to the Deneb CL spec.", + "required": [ + "signed_block", + "kzg_proofs", + "blobs" + ], + "properties": { + "signed_block": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + "Deneb.BlindedBeaconBlock": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "Deneb.SignedBlindedBeaconBlock": { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Deneb spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md#beaconblock) object from the CL Deneb spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#beaconblockbody) object from the CL Deneb spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 2048, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Deneb.LightClientBootstrap": { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + } + } + }, + "Deneb.LightClientUpdate": { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 5, + "maxItems": 5 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Deneb.LightClientFinalityUpdate": { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Deneb.LightClientOptimisticUpdate": { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Blob": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "Deneb.BlobSidecars": { + "type": "array", + "items": { + "type": "object", + "description": "A blob sidecar as defined in the Deneb consensus spec.", + "required": [ + "index", + "blob", + "kzg_commitment", + "kzg_proof", + "signed_block_header", + "kzg_commitment_inclusion_proof" + ], + "properties": { + "index": { + "type": "string", + "example": "1" + }, + "blob": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "kzg_commitment": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "kzg_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "signed_block_header": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_commitment_inclusion_proof": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 17, + "maxItems": 17 + } + } + }, + "minItems": 0, + "maxItems": 6 + }, + "Electra.BeaconState": { + "type": "object", + "description": "The [`BeaconState`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconstate) object from the CL Electra spec.", + "required": [ + "genesis_time", + "genesis_validators_root", + "slot", + "fork", + "latest_block_header", + "block_roots", + "state_roots", + "historical_roots", + "eth1_data", + "eth1_data_votes", + "eth1_deposit_index", + "validators", + "balances", + "randao_mixes", + "slashings", + "previous_epoch_participation", + "current_epoch_participation", + "justification_bits", + "previous_justified_checkpoint", + "current_justified_checkpoint", + "finalized_checkpoint", + "inactivity_scores", + "current_sync_committee", + "next_sync_committee", + "latest_execution_payload_header", + "next_withdrawal_index", + "next_withdrawal_validator_index", + "historical_summaries", + "deposit_requests_start_index", + "deposit_balance_to_consume", + "exit_balance_to_consume", + "earliest_exit_epoch", + "consolidation_balance_to_consume", + "earliest_consolidation_epoch", + "pending_balance_deposits", + "pending_partial_withdrawals", + "pending_consolidations" + ], + "properties": { + "genesis_time": { + "type": "string", + "example": "1" + }, + "genesis_validators_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "slot": { + "type": "string", + "example": "1" + }, + "fork": { + "type": "object", + "description": "The [`Fork`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#fork) object from the CL spec.", + "required": [ + "previous_version", + "current_version", + "epoch" + ], + "properties": { + "previous_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "current_version": { + "type": "string", + "format": "hex", + "description": "a fork version number", + "example": "0x00000000", + "pattern": "^0x[a-fA-F0-9]{8}$" + }, + "epoch": { + "type": "string", + "example": "1" + } + } + }, + "latest_block_header": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "block_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "state_roots": { + "type": "array", + "description": "Fixed length of 8192 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "historical_roots": { + "type": "array", + "description": "Variable length list, maximum 16777216 items. Frozen in Capella, replaced by historical_summaries.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "eth1_data_votes": { + "type": "array", + "description": "Fixed length of 1024 items", + "items": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "maxItems": 1024 + }, + "eth1_deposit_index": { + "type": "string", + "example": "1" + }, + "validators": { + "type": "array", + "description": "Variable length list, maximum 1099511627776 items", + "items": { + "type": "object", + "required": [ + "pubkey", + "withdrawal_credentials", + "effective_balance", + "slashed", + "activation_eligibility_epoch", + "activation_epoch", + "exit_epoch", + "withdrawable_epoch" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "Root of withdrawal credentials", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "effective_balance": { + "description": "Balance at stake in Gwei.", + "type": "string", + "example": "1" + }, + "slashed": { + "type": "boolean", + "example": false, + "description": "Was validator slashed (not longer active)." + }, + "activation_eligibility_epoch": { + "description": "When criteria for activation were met.", + "type": "string", + "example": "1" + }, + "activation_epoch": { + "description": "Epoch when validator activated. 'FAR_FUTURE_EPOCH' if not activated", + "type": "string", + "example": "1" + }, + "exit_epoch": { + "description": "Epoch when validator exited. 'FAR_FUTURE_EPOCH' if not exited.", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "When validator can withdraw or transfer funds. 'FAR_FUTURE_EPOCH' if not defined", + "type": "string", + "example": "1" + } + } + } + }, + "balances": { + "type": "array", + "description": "Validator balances in gwei. Variable length list, maximum 1099511627776 items", + "items": { + "type": "string", + "example": "1" + } + }, + "randao_mixes": { + "type": "array", + "description": "Fixed length of 65536 items", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + }, + "slashings": { + "type": "array", + "description": "Per-epoch sums of slashed effective balances. Fixed length of 8192 items", + "items": { + "type": "string", + "example": "1" + } + }, + "previous_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "current_epoch_participation": { + "type": "array", + "items": { + "type": "string", + "description": "Unsigned 8 bit integer, max value 255", + "pattern": "^[1-2]?[0-9]{1,2}$", + "example": "0" + }, + "maxItems": 1099511627776 + }, + "justification_bits": { + "description": "Bit set for every recent justified epoch", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "previous_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "current_justified_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "finalized_checkpoint": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "inactivity_scores": { + "description": "Per-validator inactivity scores. Introduced in Altair. Variable length list, maximum 1099511627776 items", + "type": "array", + "items": { + "type": "string", + "example": "1" + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "latest_execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "next_withdrawal_index": { + "type": "string", + "example": "1" + }, + "next_withdrawal_validator_index": { + "type": "string", + "example": "1" + }, + "historical_summaries": { + "type": "array", + "items": { + "type": "object", + "description": "The [`HistoricalSummary`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#historicalsummary) object from the CL Capella spec.", + "required": [ + "block_summary_root", + "state_summary_root" + ], + "properties": { + "block_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_summary_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "description": "Variable length list, maximum 16777216 items" + }, + "deposit_requests_start_index": { + "type": "string", + "example": "1" + }, + "deposit_balance_to_consume": { + "type": "string", + "example": "1" + }, + "exit_balance_to_consume": { + "type": "string", + "example": "1" + }, + "earliest_exit_epoch": { + "type": "string", + "example": "1" + }, + "consolidation_balance_to_consume": { + "type": "string", + "example": "1" + }, + "earliest_consolidation_epoch": { + "type": "string", + "example": "1" + }, + "pending_balance_deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingBalanceDeposit`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingbalancedeposit) object from the CL Electra spec.", + "required": [ + "index", + "amount" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 134217728 + }, + "pending_partial_withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingPartialWithdrawal`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingpartialwithdrawal) object from the CL Electra spec.", + "required": [ + "index", + "amount", + "withdrawable_epoch" + ], + "properties": { + "index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + }, + "withdrawable_epoch": { + "description": "The epoch when the amount is withdrawable.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 134217728 + }, + "pending_consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`PendingConsolidation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingconsolidation) object from the CL Electra spec.", + "required": [ + "source_index", + "target_index" + ], + "properties": { + "source_index": { + "description": "Index of validator to consolidate from.", + "type": "string", + "example": "1" + }, + "target_index": { + "description": "Index of validator to consolidate to.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 262144 + } + } + }, + "Electra.BlockContents": { + "type": "object", + "description": "The required object for block production according to the Electra CL spec.", + "required": [ + "block", + "kzg_proofs", + "blobs" + ], + "properties": { + "block": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + "Electra.SignedBeaconBlock": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Electra.SignedBlockContents": { + "type": "object", + "description": "The required signed components of block production according to the Electra CL spec.", + "required": [ + "signed_block", + "kzg_proofs", + "blobs" + ], + "properties": { + "signed_block": { + "type": "object", + "description": "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload", + "execution_requests" + ], + "properties": { + "execution_payload": { + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions", + "withdrawals" + ], + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "description": "A transaction on the execution (Ethereum 1) network.", + "example": "0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86", + "pattern": "^0x[a-fA-F0-9]{0,2147483648}$" + }, + "maxItems": 1048576 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "required": [ + "index", + "validator_index", + "address", + "amount" + ], + "properties": { + "index": { + "description": "The index of the withdrawal.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "The index of the withdrawing validator.", + "type": "string", + "example": "1" + }, + "address": { + "description": "The address to which the withdrawal is credited.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "description": "The value withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + } + } + } + ] + }, + "execution_requests": { + "type": "object", + "description": "The [`ExecutionRequests`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.6/specs/electra/beacon-chain.md#executionrequests) object from the CL Electra spec.", + "required": [ + "deposits", + "withdrawals", + "consolidations" + ], + "properties": { + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature", + "index" + ], + "properties": { + "pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "The value to be deposited (gwei).", + "type": "string", + "example": "1" + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "index": { + "description": "The index of the deposit request.", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 8192 + }, + "withdrawals": { + "type": "array", + "items": { + "type": "object", + "description": "The [`WithdrawalRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#withdrawalrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "validator_pubkey", + "amount" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "validator_pubkey": { + "description": "BLS public key of validator.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "amount": { + "description": "The value to be withdrawn (gwei).", + "type": "string", + "example": "1" + } + } + }, + "maxItems": 16 + }, + "consolidations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec.", + "required": [ + "source_address", + "source_pubkey", + "target_pubkey" + ], + "properties": { + "source_address": { + "description": "Execution address which sent the request.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "source_pubkey": { + "description": "BLS public key of validator to consolidate from.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "target_pubkey": { + "description": "BLS public key of validator to consolidate to.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "maxItems": 1 + } + } + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "kzg_proofs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Used for verifying that the `KZGCommitment` for a given `Blob` is correct." + }, + "minItems": 0, + "maxItems": 4096 + }, + "blobs": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{262144}$", + "description": "A blob is `FIELD_ELEMENTS_PER_BLOB * size_of(BLSFieldElement) = 4096 * 32 = 131072` bytes (`DATA`) representing a Blob as defined in Deneb" + }, + "minItems": 0, + "maxItems": 4096 + } + } + }, + "Electra.BlindedBeaconBlock": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + }, + "Electra.SignedBlindedBeaconBlock": { + "type": "object", + "description": "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/phase0/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing Merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash Merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body" + ], + "properties": { + "body": { + "description": "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list.", + "allOf": [ + { + "type": "object", + "description": "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec.", + "required": [ + "randao_reveal", + "eth1_data", + "graffiti", + "proposer_slashings", + "attester_slashings", + "attestations", + "deposits", + "voluntary_exits", + "sync_aggregate", + "bls_to_execution_changes", + "blob_kzg_commitments" + ], + "properties": { + "randao_reveal": { + "allOf": [ + { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + { + "description": "The RANDAO reveal value provided by the validator." + } + ] + }, + "eth1_data": { + "type": "object", + "description": "The [`Eth1Data`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#eth1data) object from the CL spec.", + "required": [ + "deposit_root", + "deposit_count", + "block_hash" + ], + "properties": { + "deposit_root": { + "description": "Root of the deposit tree.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "deposit_count": { + "description": "Total number of deposits.", + "type": "string", + "example": "1" + }, + "block_hash": { + "description": "Ethereum 1.x block hash.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "graffiti": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "proposer_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`ProposerSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#proposerslashing) object from the CL spec.", + "required": [ + "signed_header_1", + "signed_header_2" + ], + "properties": { + "signed_header_1": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signed_header_2": { + "type": "object", + "description": "The [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedbeaconblockheader) object envelope from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attester_slashings": { + "type": "array", + "items": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "attestations": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + }, + "deposits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`Deposit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#deposit) object from the CL spec.", + "required": [ + "proof", + "data" + ], + "properties": { + "proof": { + "type": "array", + "description": "Branch in the deposit tree.", + "items": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 32, + "maxItems": 32 + }, + "data": { + "type": "object", + "description": "The [`DepositData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#depositdata) object from the CL spec.", + "required": [ + "pubkey", + "withdrawal_credentials", + "amount", + "signature" + ], + "properties": { + "pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "withdrawal_credentials": { + "description": "The withdrawal credentials.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "amount": { + "description": "Amount in Gwei.", + "type": "string", + "example": "1" + }, + "signature": { + "description": "Container self-signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + } + }, + "voluntary_exits": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedVoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#signedvoluntaryexit) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`VoluntaryExit`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#voluntaryexit) object from the CL spec.", + "required": [ + "epoch", + "validator_index" + ], + "properties": { + "epoch": { + "description": "Minimum epoch for processing exit.", + "type": "string", + "example": "1" + }, + "validator_index": { + "description": "Index of the exiting validator.", + "type": "string", + "example": "1" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "bls_to_execution_changes": { + "type": "array", + "items": { + "type": "object", + "description": "The [`SignedBLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#signedblstoexecutionchange) object from the CL spec.", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "type": "object", + "description": "The [`BLSToExecutionChange`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/beacon-chain.md#blstoexecutionchange) object from the CL spec.", + "required": [ + "validator_index", + "from_bls_pubkey", + "to_execution_address" + ], + "properties": { + "validator_index": { + "description": "Index of the validator for which credentials will be changed.", + "type": "string", + "example": "1" + }, + "from_bls_pubkey": { + "description": "Public key of existing credentials.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "to_execution_address": { + "description": "Execution address to which the credentials will be changed.", + "type": "string", + "format": "hex", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + } + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + }, + "blob_kzg_commitments": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "A G1 curve point. Same as BLS standard \"is valid pubkey\" check but also allows `0x00..00` for point-at-infinity", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + } + }, + { + "type": "object", + "required": [ + "execution_payload_header", + "execution_requests_root" + ], + "properties": { + "execution_payload_header": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_requests_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Electra.Attestation": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + }, + "Electra.AttesterSlashing": { + "type": "object", + "description": "The [`AttesterSlashing`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attesterslashing) object from the CL spec.", + "required": [ + "attestation_1", + "attestation_2" + ], + "properties": { + "attestation_1": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "attestation_2": { + "type": "object", + "description": "The [`IndexedAttestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#indexedattestation) object from the CL spec.", + "required": [ + "attesting_indices", + "data", + "signature" + ], + "properties": { + "attesting_indices": { + "type": "array", + "maxItems": 131072, + "description": "Attesting validator indices", + "items": { + "type": "string", + "example": "1" + } + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "The BLS signature of the `IndexedAttestation`, created by the validator of the attestation.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + } + }, + "Electra.SignedAggregateAndProof": { + "type": "object", + "description": "The [`SignedAggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/validator.md#signedaggregateandproof) object", + "required": [ + "message", + "signature" + ], + "properties": { + "message": { + "allOf": [ + { + "type": "object", + "description": "The [`AggregateAndProof`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/validator.md#aggregateandproof) without selection_proof", + "required": [ + "aggregator_index", + "aggregate" + ], + "properties": { + "aggregator_index": { + "type": "string", + "example": "1" + }, + "aggregate": { + "type": "object", + "description": "The [`Attestation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/specs/electra/beacon-chain.md#attestation) object from the CL spec.", + "required": [ + "aggregation_bits", + "data", + "signature", + "committee_bits" + ], + "properties": { + "aggregation_bits": { + "description": "Attester aggregation bits.", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "data": { + "type": "object", + "description": "The [`AttestationData`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#attestationdata) object from the CL spec.", + "required": [ + "slot", + "index", + "beacon_block_root", + "source", + "target" + ], + "properties": { + "slot": { + "type": "string", + "example": "1" + }, + "index": { + "type": "string", + "example": "1" + }, + "beacon_block_root": { + "description": "LMD GHOST vote.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "source": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + "target": { + "type": "object", + "description": "The [`Checkpoint`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#checkpoint", + "required": [ + "epoch", + "root" + ], + "properties": { + "epoch": { + "type": "string", + "example": "1" + }, + "root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + } + }, + "signature": { + "description": "BLS aggregate signature.", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + }, + "committee_bits": { + "description": "Committee bits.", + "example": "0x0000000000000001", + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{2,}$" + } + } + } + } + }, + { + "type": "object", + "required": [ + "selection_proof" + ], + "properties": { + "selection_proof": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + } + ] + }, + "signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "Electra.LightClientBootstrap": { + "type": "object", + "required": [ + "header", + "current_sync_committee", + "current_sync_committee_branch" + ], + "properties": { + "header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "current_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "current_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + } + } + }, + "Electra.LightClientUpdate": { + "type": "object", + "required": [ + "attested_header", + "next_sync_committee", + "next_sync_committee_branch", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "next_sync_committee": { + "type": "object", + "required": [ + "pubkeys", + "aggregate_pubkey" + ], + "properties": { + "pubkeys": { + "type": "array", + "items": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + }, + "minItems": 512, + "maxItems": 512 + }, + "aggregate_pubkey": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{96}$", + "description": "The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._", + "example": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + } + } + }, + "next_sync_committee_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 6, + "maxItems": 6 + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 7, + "maxItems": 7 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Electra.LightClientFinalityUpdate": { + "type": "object", + "required": [ + "attested_header", + "finalized_header", + "finality_branch", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finalized_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "finality_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(FINALIZED_ROOT_GINDEX_ELECTRA])`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.4/specs/electra/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 7, + "maxItems": 7 + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Electra.LightClientOptimisticUpdate": { + "type": "object", + "required": [ + "attested_header", + "sync_aggregate", + "signature_slot" + ], + "properties": { + "attested_header": { + "type": "object", + "required": [ + "beacon", + "execution", + "execution_branch" + ], + "properties": { + "beacon": { + "description": "The [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/beacon-chain.md#beaconblockheader) object from the CL spec.", + "allOf": [ + { + "type": "object", + "required": [ + "slot", + "proposer_index", + "parent_root", + "state_root" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "proposer_index": { + "description": "Index of validator in validator registry.", + "type": "string", + "example": "1" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "state_root": { + "description": "The tree hash merkle root of the `BeaconState` for the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "body_root" + ], + "properties": { + "body_root": { + "description": "The tree hash merkle root of the `BeaconBlockBody` for the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution": { + "description": "The [`ExecutionPayloadHeader`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayloadheader) object from the CL Deneb spec.", + "allOf": [ + { + "type": "object", + "description": "The [`ExecutionPayload`](https://github.com/ethereum/consensus-specs/blob/master/specs/deneb/beacon-chain.md#executionpayload) object from the CL Deneb spec.", + "required": [ + "parent_hash", + "fee_recipient", + "state_root", + "receipts_root", + "logs_bloom", + "prev_randao", + "block_number", + "gas_limit", + "gas_used", + "timestamp", + "extra_data", + "base_fee_per_gas", + "excess_blob_gas", + "block_hash" + ], + "properties": { + "parent_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "fee_recipient": { + "type": "string", + "format": "hex", + "description": "An address on the execution (Ethereum 1) network.", + "example": "0xAbcF8e0d4e9587369b2301D0790347320302cc09", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "state_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "receipts_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "logs_bloom": { + "type": "string", + "format": "hex", + "example": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "pattern": "^0x[a-fA-F0-9]{512}$" + }, + "prev_randao": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "block_number": { + "type": "string", + "example": "1" + }, + "gas_limit": { + "type": "string", + "example": "1" + }, + "gas_used": { + "type": "string", + "example": "1" + }, + "timestamp": { + "type": "string", + "example": "1" + }, + "extra_data": { + "type": "string", + "format": "hex", + "description": "Extra data on the execution (Ethereum 1) network.", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{0,64}$" + }, + "base_fee_per_gas": { + "type": "string", + "example": "1" + }, + "excess_blob_gas": { + "type": "string", + "example": "1" + }, + "block_hash": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + }, + { + "type": "object", + "required": [ + "transactions_root", + "withdrawals_root" + ], + "properties": { + "transactions_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "withdrawals_root": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + } + } + } + ] + }, + "execution_branch": { + "type": "array", + "items": { + "description": "Merkle proof consisting of [`log2trunc(EXECUTION_PAYLOAD_INDEX])`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/capella/light-client/sync-protocol.md#constants) roots", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "minItems": 4, + "maxItems": 4 + } + } + }, + "sync_aggregate": { + "type": "object", + "description": "The [`SyncAggregate`](https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/beacon-chain.md#syncaggregate) object from the CL Altair spec.", + "required": [ + "sync_committee_bits", + "sync_committee_signature" + ], + "properties": { + "sync_committee_bits": { + "description": "Aggregation bits of sync", + "type": "string", + "format": "hex", + "example": "0x01", + "pattern": "^0x[a-fA-F0-9]{2,}$" + }, + "sync_committee_signature": { + "type": "string", + "format": "hex", + "pattern": "^0x[a-fA-F0-9]{192}$", + "example": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505" + } + } + }, + "signature_slot": { + "type": "string", + "example": "1" + } + } + }, + "Node": { + "type": "object", + "description": "fork choice node attributes", + "required": [ + "slot", + "block_root", + "parent_root", + "justified_epoch", + "finalized_epoch", + "weight", + "validity", + "execution_block_hash" + ], + "properties": { + "slot": { + "description": "The slot to which this block corresponds.", + "type": "string", + "example": "1" + }, + "block_root": { + "description": "The signing merkle root of the `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "parent_root": { + "description": "The signing merkle root of the parent `BeaconBlock`.", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "justified_epoch": { + "type": "string", + "example": "1" + }, + "finalized_epoch": { + "type": "string", + "example": "1" + }, + "weight": { + "type": "string", + "example": "1" + }, + "validity": { + "type": "string", + "enum": [ + "valid", + "invalid", + "optimistic" + ] + }, + "execution_block_hash": { + "description": "The `block_hash` from the `execution_payload` of the `BeaconBlock`", + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "extra_data": { + "type": "object", + "description": "Optional extra data that clients may provide, which could differ from client to client." + } + } + }, + "ExtraData": { + "type": "object", + "description": "Optional extra data that clients may provide, which could differ from client to client." + }, + "SyncCommitteeRewards": { + "description": "Rewards info for sync committee members", + "type": "array", + "items": { + "type": "object", + "description": "Rewards info for a single sync committee member", + "required": [ + "validator_index", + "reward" + ], + "properties": { + "validator_index": { + "example": "0", + "description": "one entry for every validator participating in the sync committee", + "type": "string" + }, + "reward": { + "example": "2000", + "description": "sync committee reward in gwei for the validator", + "type": "string" + } + } + } + }, + "BlockRewards": { + "type": "object", + "description": "Rewards info for a single block", + "required": [ + "proposer_index", + "total", + "attestations", + "sync_aggregate", + "proposer_slashings", + "attester_slashings" + ], + "properties": { + "proposer_index": { + "example": "123", + "description": "proposer of the block, the proposer index who receives these rewards", + "type": "string" + }, + "total": { + "example": "123", + "description": "total block reward in gwei, equal to attestations + sync_aggregate + proposer_slashings + attester_slashings", + "type": "string" + }, + "attestations": { + "example": "123", + "description": "block reward component due to included attestations in gwei", + "type": "string" + }, + "sync_aggregate": { + "example": "123", + "description": "block reward component due to included sync_aggregate in gwei", + "type": "string" + }, + "proposer_slashings": { + "example": "123", + "description": "block reward component due to included proposer_slashings in gwei", + "type": "string" + }, + "attester_slashings": { + "example": "123", + "description": "block reward component due to included attester_slashings in gwei", + "type": "string" + } + } + }, + "AttestationsRewards": { + "type": "object", + "description": "Rewards info for attestations", + "required": [ + "ideal_rewards", + "total_rewards" + ], + "properties": { + "ideal_rewards": { + "type": "array", + "items": { + "type": "object", + "description": "Ideal rewards info for a single attestation", + "required": [ + "effective_balance", + "head", + "target", + "source", + "inactivity" + ], + "properties": { + "effective_balance": { + "example": "1000000000", + "description": "validator's effective balance in gwei", + "type": "string" + }, + "head": { + "example": "2500", + "description": "Ideal attester's reward for head vote in gwei", + "type": "string" + }, + "target": { + "example": "5000", + "description": "Ideal attester's reward for target vote in gwei", + "type": "string" + }, + "source": { + "example": "5000", + "description": "Ideal attester's reward for source vote in gwei", + "type": "string" + }, + "inclusion_delay": { + "example": "5000", + "description": "Ideal attester's inclusion_delay reward in gwei (phase0 only)", + "type": "string" + }, + "inactivity": { + "example": "5000", + "description": "Ideal attester's inactivity penalty in gwei", + "type": "string" + } + } + } + }, + "total_rewards": { + "type": "array", + "items": { + "type": "object", + "description": "Rewards info for a single attestation", + "required": [ + "validator_index", + "head", + "target", + "source", + "inactivity" + ], + "properties": { + "validator_index": { + "example": "0", + "description": "one entry for every validator based on their attestations in the epoch", + "type": "string" + }, + "head": { + "example": "2000", + "description": "attester's reward for head vote in gwei", + "type": "string" + }, + "target": { + "example": "2000", + "description": "attester's reward for target vote in gwei", + "type": "string" + }, + "source": { + "example": "4000", + "description": "attester's reward for source vote in gwei", + "type": "string" + }, + "inclusion_delay": { + "example": "2000", + "description": "attester's inclusion_delay reward in gwei (phase0 only)", + "type": "string" + }, + "inactivity": { + "example": "2000", + "description": "attester's inactivity penalty in gwei", + "type": "string" + } + } + } + } + } + } + }, + "parameters": { + "StateId": { + "required": true, + "name": "state_id", + "in": "path", + "example": "head", + "schema": { + "type": "string" + }, + "description": "State identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \"justified\", \\, \\.\n" + }, + "BlockId": { + "required": true, + "name": "block_id", + "in": "path", + "example": "head", + "schema": { + "type": "string" + }, + "description": "Block identifier.\nCan be one of: \"head\" (canonical head in node's view), \"genesis\", \"finalized\", \\, \\.\n" + }, + "BlockRoot": { + "required": true, + "name": "block_root", + "in": "path", + "schema": { + "type": "string", + "format": "hex", + "example": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", + "pattern": "^0x[a-fA-F0-9]{64}$" + }, + "description": "Block root.\n\\.\n" + }, + "SkipRandaoVerification": { + "name": "skip_randao_verification", + "in": "query", + "required": false, + "description": "Skip verification of the `randao_reveal` value. If this flag is set then the\n`randao_reveal` must be set to the point at infinity (`0xc0..00`). \n", + "schema": { + "type": "string", + "minLength": 0, + "maxLength": 0 + }, + "allowEmptyValue": true + } + }, + "responses": { + "InvalidRequest": { + "description": "Invalid request syntax.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 400 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "NotFound": { + "description": "Not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 404, + "message": "Requested item not found" + } + } + } + }, + "NotAcceptable": { + "description": "Accepted media type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Accept\" header is unsupported, and the request has been rejected. This occurs when the server cannot produce a response in the format accepted by the client.", + "type": "number", + "example": 406 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 406, + "message": "Accepted media type not supported" + } + } + } + }, + "UnsupportedMediaType": { + "description": "Supplied content-type is not supported.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "The media type in \"Content-Type\" header is unsupported, and the request has been rejected. This occurs when a HTTP request supplies a payload in a content-type that the server is not able to handle.", + "type": "number", + "example": 415 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 415, + "message": "Cannot read the supplied content type." + } + } + } + }, + "InternalError": { + "description": "Beacon node internal error.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 500, + "message": "Internal server error" + } + } + } + }, + "NotImplementedError": { + "description": "Endpoint not implemented.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 501 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 501, + "message": "Endpoint not implemented" + } + } + } + }, + "CurrentlySyncing": { + "description": "Beacon node is currently syncing, try again later.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "description": "Either specific error code in case of invalid request or http status code", + "type": "number", + "example": 404 + }, + "message": { + "description": "Message describing error", + "type": "string" + }, + "stacktraces": { + "description": "Optional stacktraces, sent when node is in debug mode", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "code": 503, + "message": "Beacon node is currently syncing and not serving request on that endpoint" + } + } + } + } + }, + "headers": { + "Eth-Consensus-Version": { + "description": "The active consensus version to which the data belongs. Required in response so client can deserialize returned json or ssz data \nmore effectively.\n", + "required": true, + "schema": { + "type": "string", + "enum": [ + "phase0", + "altair", + "bellatrix", + "capella", + "deneb", + "electra" + ], + "example": "phase0" + } + }, + "Eth-Execution-Payload-Blinded": { + "description": "Required in response so client can deserialize returned json or ssz data to the correct object.", + "required": true, + "schema": { + "type": "boolean" + } + }, + "Eth-Execution-Payload-Value": { + "description": "Execution payload value in Wei. Required in response so client can determine relative value\nof execution payloads.\n", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + }, + "Eth-Consensus-Block-Value": { + "description": "Consensus rewards paid to the proposer for this block, in Wei. Required in response so\nclient can determine relative value of consensus blocks.\n", + "required": true, + "schema": { + "type": "string", + "example": "1" + } + } + } + } +}