diff --git a/24.12.0/eth1/web3signer.yaml b/24.12.0/eth1/web3signer.yaml new file mode 100644 index 000000000..0208deb0d --- /dev/null +++ b/24.12.0/eth1/web3signer.yaml @@ -0,0 +1,158 @@ +openapi: 3.0.0 +info: + title: 'Web3Signer ETH1 API' + description: 'Sign ETH1 Artifacts' + version: '24.12.0' + license: + name: 'Apache 2.0' + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' + +servers: + - url: / + - url: http://localhost:9000/ + +paths: + /api/v1/eth1/sign/{identifier}: + post: + tags: + - 'Signing' + summary: 'Signs data for ETH1 SECP256K1 public key' + description: 'Signs data for the ETH1 SECP256K1 public key specified as part of the URL and returns the signature' + operationId: 'ETH1_SIGN' + parameters: + - name: 'identifier' + in: 'path' + required: true + description: 'Key for which data to sign' + schema: + type: 'string' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + data: + type: string + required: + - data + additionalProperties: + type: string + example: + data: 0x48656c6c6f2c20776f726c6421 + + responses: + '200': + description: 'hex encoded string of signature' + content: + text/plain; charset=utf-8: + schema: + type: string + example: '0xb3baa751d0a9132cfe93e4e3d5ff9075111100e3789dca219ade5a24d27e19d16b3353149da1833e9b691bb38634e8dc04469be7032132906c927d7e1a49b414730612877bc6b2810c8f202daf793d1ab0d6b5cb21d52f9e52e883859887a5d9' + '404': + description: 'Public Key not found' + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' + + /api/v1/eth1/publicKeys: + get: + tags: + - 'Public Key' + summary: 'List of available ETH1 SECP256K1 Public Keys' + description: 'Returns the ETH1 SECP256K1 public keys for the private keys that have been loaded into Web3Signer' + operationId: 'ETH1_LIST' + responses: + '200': + description: 'list of public keys' + content: + application/json: + schema: + type: array + items: + type: string + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' + + /reload: + post: + tags: + - 'Reload Signer Keys' + summary: 'Reload signer keys asynchronously' + description: 'Reload signer keys asynchronously' + operationId: 'RELOAD' + responses: + '200': + description: 'Call is successful' + '500': + description: 'Internal Web3Signer server error' + + /upcheck: + get: + tags: + - 'Server Status' + summary: 'Server Status' + description: 'Web3Signer server status' + operationId: 'UPCHECK' + responses: + '200': + description: 'OK' + content: + text/plain; charset=utf-8: + schema: + type: string + example: 'OK' + '500': + description: 'Internal Web3Signer server error' + + /healthcheck: + get: + tags: + - 'Server Health Status' + summary: 'Server Health Status' + description: 'Web3Signer server health status' + operationId: 'HEALTHCHECK' + responses: + '200': + description: 'System is healthy' + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthCheck" + '503': + description: 'At least one procedure is unhealthy' + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthCheck" + +components: + schemas: + HealthCheck: + type: object + properties: + status: + type: string + description: 'health status' + checks: + type: array + description: 'list of status checks' + items: + properties: + id: + type: string + description: 'status id' + status: + type: string + description: 'health status' + outcome: + type: string + description: 'the overall outcome of health check' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/24.12.0/eth2/keymanager/paths/keystores.yaml b/24.12.0/eth2/keymanager/paths/keystores.yaml new file mode 100644 index 000000000..eb1959ef0 --- /dev/null +++ b/24.12.0/eth2/keymanager/paths/keystores.yaml @@ -0,0 +1,187 @@ +get: + operationId: KEYMANAGER_LIST + summary: List Keys. + description: | + List all validating pubkeys known to and decrypted by this keymanager binary + security: + - bearerAuth: [] + tags: + - Keymanager + responses: + "200": + description: Success response + content: + application/json: + schema: + title: ListKeysResponse + type: object + required: [data] + properties: + data: + type: array + items: + type: object + required: [validating_pubkey] + properties: + validating_pubkey: + $ref: "../schemas.yaml#/components/schemas/Pubkey" + derivation_path: + type: string + description: The derivation path (if present in the imported keystore). + example: "m/12381/3600/0/0/0" + readonly: + type: boolean + description: The key associated with this pubkey cannot be deleted from the API + "401": + $ref: "../schemas.yaml#/components/responses/Unauthorized" + "403": + $ref: "../schemas.yaml#/components/responses/Forbidden" + "500": + $ref: "../schemas.yaml#/components/responses/InternalError" + +post: + operationId: KEYMANAGER_IMPORT + summary: Import Keystores. + description: | + Import keystores generated by the Eth2.0 deposit CLI tooling. `passwords[i]` must unlock `keystores[i]`. + + Users SHOULD send slashing_protection data associated with the imported pubkeys. MUST follow the format defined in + EIP-3076: Slashing Protection Interchange Format. + security: + - bearerAuth: [] + tags: + - Keymanager + requestBody: + content: + application/json: + schema: + type: object + required: [keystores, passwords] + properties: + keystores: + type: array + description: JSON-encoded keystore files generated with the Launchpad. + items: + $ref: "../schemas.yaml#/components/schemas/Keystore" + passwords: + type: array + description: Passwords to unlock imported keystore files. `passwords[i]` must unlock `keystores[i]`. + items: + type: string + example: "ABCDEFGH01234567ABCDEFGH01234567" + slashing_protection: + $ref: "../schemas.yaml#/components/schemas/SlashingProtectionData" + responses: + "200": + description: Success response + content: + application/json: + schema: + title: ImportKeystoresResponse + type: object + required: [data] + properties: + data: + type: array + description: Status result of each `request.keystores` with same length and order of `request.keystores` + items: + type: object + required: [status] + properties: + status: + type: string + description: | + - imported: Keystore successfully decrypted and imported to keymanager permanent storage + - duplicate: Keystore's pubkey is already known to the keymanager + - error: Any other status different to the above: decrypting error, I/O errors, etc. + enum: + - imported + - duplicate + - error + example: imported + message: + type: string + description: error message if status == error + "400": + $ref: "../schemas.yaml#/components/responses/BadRequest" + "401": + $ref: "../schemas.yaml#/components/responses/Unauthorized" + "403": + $ref: "../schemas.yaml#/components/responses/Forbidden" + "500": + $ref: "../schemas.yaml#/components/responses/InternalError" + +delete: + operationId: KEYMANAGER_DELETE + summary: Delete Keys. + description: | + DELETE must delete all keys from `request.pubkeys` that are known to the keymanager and exist in its + persistent storage. Additionally, DELETE must fetch the slashing protection data for the requested keys from + persistent storage, which must be retained (and not deleted) after the response has been sent. Therefore in the + case of two identical delete requests being made, both will have access to slashing protection data. + + In a single atomic sequential operation the keymanager must: + 1. Guarantee that key(s) can not produce any more signature; only then + 2. Delete key(s) and serialize its associated slashing protection data + + DELETE should never return a 404 response, even if all pubkeys from request.pubkeys have no extant keystores + nor slashing protection data. + security: + - bearerAuth: [] + tags: + - Keymanager + requestBody: + content: + application/json: + schema: + type: object + required: [pubkeys] + properties: + pubkeys: + type: array + description: List of public keys to delete. + items: + $ref: "../schemas.yaml#/components/schemas/Pubkey" + responses: + "200": + description: Success response + content: + application/json: + schema: + title: DeleteKeysResponse + type: object + required: [data, slashing_protection] + properties: + data: + type: array + description: Deletion status of all keys in `request.pubkeys` in the same order. + items: + type: object + required: [status] + properties: + status: + type: string + description: | + - deleted: key was active and removed + - not_active: slashing protection data returned but key was not active + - not_found: key was not found to be removed, and no slashing data can be returned + - error: unexpected condition meant the key could not be removed (the key was actually found, but we couldn't stop using it) - this would be a sign that making it active elsewhere would almost certainly cause you headaches / slashing conditions etc. + enum: + - deleted + - not_active + - not_found + - error + example: deleted + message: + type: string + description: error message if status == error + slashing_protection: + $ref: "../schemas.yaml#/components/schemas/SlashingProtectionData" + "400": + $ref: "../schemas.yaml#/components/responses/BadRequest" + "401": + $ref: "../schemas.yaml#/components/responses/Unauthorized" + "403": + $ref: "../schemas.yaml#/components/responses/Forbidden" + "500": + $ref: "../schemas.yaml#/components/responses/InternalError" diff --git a/24.12.0/eth2/keymanager/schemas.yaml b/24.12.0/eth2/keymanager/schemas.yaml new file mode 100644 index 000000000..43d4f083b --- /dev/null +++ b/24.12.0/eth2/keymanager/schemas.yaml @@ -0,0 +1,65 @@ +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + + schemas: + Pubkey: + type: string + 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" + + Keystore: + type: string + description: | + JSON serialized representation of a single keystore in EIP-2335: BLS12-381 Keystore format. + example: '{"version":4,"uuid":"9f75a3fa-1e5a-49f9-be3d-f5a19779c6fa","path":"m/12381/3600/0/0/0","pubkey":"0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a","crypto":{"kdf":{"function":"pbkdf2","params":{"dklen":32,"c":262144,"prf":"hmac-sha256","salt":"8ff8f22ef522a40f99c6ce07fdcfc1db489d54dfbc6ec35613edf5d836fa1407"},"message":""},"checksum":{"function":"sha256","params":{},"message":"9678a69833d2576e3461dd5fa80f6ac73935ae30d69d07659a709b3cd3eddbe3"},"cipher":{"function":"aes-128-ctr","params":{"iv":"31b69f0ac97261e44141b26aa0da693f"},"message":"e8228bafec4fcbaca3b827e586daad381d53339155b034e5eaae676b715ab05e"}}}' + + SlashingProtectionData: + type: string + description: | + JSON serialized representation of the slash protection data in format defined in EIP-3076: Slashing Protection Interchange Format. + example: '{"metadata":{"interchange_format_version":"5","genesis_validators_root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"},"data":[{"pubkey":"0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a","signed_blocks":[],"signed_attestations":[]}]}' + + ErrorResponse: + type: object + required: [message] + properties: + message: + description: "Detailed error message" + type: string + example: "description of the error that occurred" + + responses: + BadRequest: + description: "Bad request. Request was malformed and could not be processed" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + + Unauthorized: + description: "Unauthorized, no token is found" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + + Forbidden: + description: "Forbidden, a token is found but is invalid" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + + InternalError: + description: "Internal server error. The server encountered an unexpected error indicative of + a serious fault in the system, or a bug." + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" \ No newline at end of file diff --git a/24.12.0/eth2/signing/paths/healthcheck.yaml b/24.12.0/eth2/signing/paths/healthcheck.yaml new file mode 100644 index 000000000..ca90d2b95 --- /dev/null +++ b/24.12.0/eth2/signing/paths/healthcheck.yaml @@ -0,0 +1,20 @@ +get: + tags: + - 'Server Health Status' + summary: 'Server Health Status' + description: | + Checks the Web3Signer server health status. Confirms if Web3Signer is healthy. Not used by validator clients. + operationId: 'HEALTHCHECK' + responses: + '200': + description: 'System is healthy' + content: + application/json: + schema: + "$ref": "../schemas.yaml#/components/schemas/HealthCheck" + '503': + description: 'At least one procedure is unhealthy' + content: + application/json: + schema: + "$ref": "../schemas.yaml#/components/schemas/HealthCheck" \ No newline at end of file diff --git a/24.12.0/eth2/signing/paths/high_watermark.yaml b/24.12.0/eth2/signing/paths/high_watermark.yaml new file mode 100644 index 000000000..dba0d1311 --- /dev/null +++ b/24.12.0/eth2/signing/paths/high_watermark.yaml @@ -0,0 +1,24 @@ +get: + tags: + - 'High Watermark' + summary: 'The High Watermark epoch and slot applicable to all validators' + description: 'Returns the uint64 epoch and slot of the high watermark. Signing of attestations or blocks are only allowed when they are lower than this high watermark. If no high watermark is set, an empty JSON object will be returned.' + operationId: 'HIGH_WATERMARK' + responses: + '200': + description: 'high watermark' + content: + application/json: + schema: + type: "object" + properties: + epoch: + type: "string" + format: "uint64" + slot: + type: "string" + format: "uint64" + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/24.12.0/eth2/signing/paths/public_keys.yaml b/24.12.0/eth2/signing/paths/public_keys.yaml new file mode 100644 index 000000000..965a400d1 --- /dev/null +++ b/24.12.0/eth2/signing/paths/public_keys.yaml @@ -0,0 +1,20 @@ +get: + tags: + - 'Public Key' + summary: 'List of available ETH2 BLS Public Keys' + description: 'Returns a hex-encoded list of ETH2 BLS public keys for the private keys that have been loaded into Web3Signer.' + operationId: 'ETH2_LIST' + responses: + '200': + description: 'list of public keys' + content: + application/json: + schema: + type: array + items: + type: string + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/24.12.0/eth2/signing/paths/reload.yaml b/24.12.0/eth2/signing/paths/reload.yaml new file mode 100644 index 000000000..f8a3c1815 --- /dev/null +++ b/24.12.0/eth2/signing/paths/reload.yaml @@ -0,0 +1,13 @@ +post: + tags: + - 'Reload Signer Keys' + summary: 'Reload signer keys asynchronously' + description: | + Reloads signer keys asynchronously. This is used after adding new keys to a current set of validators. + The call reloads the keys and makes Web3signer aware of the change. Not used by validator clients. + operationId: 'RELOAD' + responses: + '200': + description: 'Call is successful' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/24.12.0/eth2/signing/paths/sign.yaml b/24.12.0/eth2/signing/paths/sign.yaml new file mode 100644 index 000000000..48f24da35 --- /dev/null +++ b/24.12.0/eth2/signing/paths/sign.yaml @@ -0,0 +1,600 @@ +post: + tags: + - 'Signing' + summary: 'Signs data for ETH2 BLS public key' + description: 'Signs data for the ETH2 BLS public key specified as part of the URL and returns the signature' + operationId: 'ETH2_SIGN' + parameters: + - name: 'identifier' + in: 'path' + required: true + description: 'BLS public key in hex format for which data to sign' + schema: + type: 'string' + example: '0x989d34725a2bfc3f15105f3f5fc8741f436c25ee1ee4f948e425d6bcb8c56bce6e06c269635b7e985a7ffa639e2409bf' + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '../schemas.yaml#/components/schemas/AggregationSlotSigning' + - $ref: '../schemas.yaml#/components/schemas/AggregateAndProofSigning' + - $ref: '../schemas.yaml#/components/schemas/AttestationSigning' + - $ref: '../schemas.yaml#/components/schemas/BlockSigning' + - $ref: '../schemas.yaml#/components/schemas/BeaconBlockSigning' + - $ref: '../schemas.yaml#/components/schemas/DepositSigning' + - $ref: '../schemas.yaml#/components/schemas/RandaoRevealSigning' + - $ref: '../schemas.yaml#/components/schemas/VoluntaryExitSigning' + - $ref: '../schemas.yaml#/components/schemas/SyncCommitteeMessageSigning' + - $ref: '../schemas.yaml#/components/schemas/SyncCommitteeSelectionProofSigning' + - $ref: '../schemas.yaml#/components/schemas/SyncCommitteeContributionAndProofSigning' + - $ref: '../schemas.yaml#/components/schemas/ValidatorRegistrationSigning' + discriminator: + propertyName: type + mapping: + AGGREGATION_SLOT: '../schemas.yaml#/components/schemas/AggregationSlotSigning' + AGGREGATE_AND_PROOF: '../schemas.yaml#/components/schemas/AggregateAndProofSigning' + ATTESTATION: '../schemas.yaml#/components/schemas/AttestationSigning' + BLOCK: '../schemas.yaml#/components/schemas/BlockSigning' + BLOCK_V2: '../schemas.yaml#/components/schemas/BeaconBlockSigning' + DEPOSIT: '../schemas.yaml#/components/schemas/DepositSigning' + RANDAO_REVEAL: '../schemas.yaml#/components/schemas/RandaoRevealSigning' + VOLUNTARY_EXIT: '../schemas.yaml#/components/schemas/VoluntaryExitSigning' + SYNC_COMMITTEE_MESSAGE: '../schemas.yaml#/components/schemas/SyncCommitteeMessageSigning' + SYNC_COMMITTEE_SELECTION_PROOF: '../schemas.yaml#/components/schemas/SyncCommitteeSelectionProofSigning' + SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF: '../schemas.yaml#/components/schemas/SyncCommitteeContributionAndProofSigning' + VALIDATOR_REGISTRATION: '../schemas.yaml#/components/schemas/ValidatorRegistrationSigning' + examples: + BLOCK_V2 (CAPELLA): + value: + type: "BLOCK_V2" + signingRoot: "0xaa2e0c465c1a45d7b6637fcce4ad6ceb71fc12064b548078d619a411f0de8adc" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "CAPELLA" + block_header: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body_root: "0xa759d8029a69d4fdd8b3996086e9722983977e4efc1f12f4098ea3d93e868a6b" + BLOCK_V2 (BELLATRIX): + value: + type: "BLOCK_V2" + signingRoot: "0x26d0ee0b6c2261cd6010112a024de4f3d2e1e9844d11d60b057fac344c745464" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "BELLATRIX" + block_header: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body_root: "0xe74b0fc13f19ae2077403afa03fdc155484f22d05d93eb084473951bb3a8d1ae" + BLOCK_V2 (ALTAIR): + value: + type: "BLOCK_V2" + signingRoot: "0xcd9b9a5884d4ba2a42d19570421f0625e9841e905fcca363c371ea311dd923bc" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "ALTAIR" + block: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body: + randao_reveal: "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71" + eth1_data: + deposit_root: "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f" + deposit_count: "4658411424342975020" + block_hash: "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + graffiti: "0x0000000000000000000000000000000000000000000000000000000000000000" + proposer_slashings: + - signed_header_1: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b" + state_root: "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" + body_root: "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + signature: "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + signed_header_2: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6" + state_root: "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26" + body_root: "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + signature: "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + attester_slashings: + - attestation_1: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4580744678799082634" + index: "4579092195582398506" + beacon_block_root: "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c" + source: + epoch: "533461240" + root: "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + target: + epoch: "538462976" + root: "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + signature: "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + attestation_2: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4620404293179370891" + index: "4618751809962686763" + beacon_block_root: "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + source: + epoch: "538078227" + root: "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + target: + epoch: "536923980" + root: "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + signature: "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + attestations: + - aggregation_bits: "0xfa79cdb89d0d51c5cdd001b7425c6d726750a9d5f89ade6ed9890ce3a706140c399a5e10c90a819094b65322dac7501f7c75471e69d4567358d8ca75f7c1b3133ebecf006b369a1f36efc5f2b706d5922ff98c58a1825a53a864376658f816600cf021cea843d4396502bb9c74d1510afe26036f89f783b4f5c7bacb6649c46f217a6af835f312d6fa253d2bbc83c07993f4f10de2ed2d952689379dbe4f794c1a1055a6b364d68e038deec9667f576b3b9eca5fcadd6298f181e1edb876efc3d0975ae14ae9a0ad2f1836d4c3f1080a96d8ab7c43b34bb2eda895ff66be698b363cfa4be33da3ec94a1a7a90672fd12c4a59916bb937e78476e4f08e4f4031001" + data: + slot: "4605531939934246443" + index: "4610489389584298827" + beacon_block_root: "0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765b" + source: + epoch: "529421377" + root: "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2" + target: + epoch: "529806126" + root: "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" + signature: "0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc" + - aggregation_bits: "0x4ac567b296efbf7cf3209e87096a7a1a50fd523400113f917f6584a5a306f06b2d8da9ae858d47ff2594010089838efe41f19a78d9aae27c2ffde26f278b8681db9d091eb72e7cab3e449dfccd46a270693e1f88f197324e57bfd45573315cf9fb60d770937b32f7c0c6ce1581ec51e6b60f71acfde304dc917f2e0aa7872038b7d9140d15f7927c23a0490a74c2b0aca2773fed9217067e4444f9ca93874e4ff8407111c3efdb138b97c6d4957b6a70ec1debb283e3d0eb1cfef068adcffbf057d20fdc339eae03f0fa2613abdde8158a7fc40c3cfd1117eb6f8c4ae21d6b2ab4b57ae9a8653a34451aee6418c0c3609dc937293f5f5b346a7ab1a0d144185101" + data: + slot: "4544390030852162633" + index: "4542737547635478505" + beacon_block_root: "0x1bb1ed3e09ca0083285797d894e275ebd7548c015a7d158b66ce053068d7b2bd" + source: + epoch: "527690007" + root: "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8" + target: + epoch: "528074756" + root: "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + signature: "0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120" + - aggregation_bits: "0xe8c9759f0840f980ae956b15fc383d992e7d4420d12ba5bf32f669f446ac6fa388e20e5ce96e9266dd98840179d2cde3cabd9a8bafab5dec9c2e89f7f78c989e690548603984803b80c82d7b76443194576a1ce49da5cfe56f56e83b745fb01b5f18ccc86d88f5a22d927e64ff0b8e880893abcddec45b268531c4a0697537dae643a24b1a36432f37d42962553bd39af71f37e0429b81470c11316aa39db074aa3f1df4124e7cb203debed60b885ffb9b27e46a1434e81bbd56566632d0729c0822ac415cbb67f25973667d88e58df9c2f058a0ae7f118c98cc448453b6fbe590363bd17ed62c2f808df61f2a9e593235eeb56db74b9dd15980189a5271468301" + data: + slot: "4529517677607038185" + index: "4574134745932346122" + beacon_block_root: "0x64b8743faafef0521f5350f290979d7e470fa3e3f8746bd14933f531ca233947" + source: + epoch: "532884117" + root: "0x3d76803f6a6732c935cd819be98574e43a09a5bf8ce3195ded306ea11562ca31" + target: + epoch: "531729870" + root: "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672" + signature: "0x8c40f51a99fce6ebb9a4db5e80d715fff319e7ae523e46afb5d03c000d427e23c7a39e77e2af53851706283c8ca91d680997cb459386fbdff52c4d0ecf498e173717a838a792b210bdffaf476538628584a133899bf30dd5ce7056463b8cd683" + deposits: + - proof: + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + data: + pubkey: "0xb1f8f6e731dbf6b4e3265fb857c7190adbfc7e6cc95ce2e8bda72be8b6ea3459f862310a2484c3b0ee33b30920f18c1d" + withdrawal_credentials: "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" + amount: "32000000000" + signature: "0xb594382214f5bdd375de66c45e1c61a526c7b73fb166c72433bbd9c2a7ad6881244e61cc6427e0206a50b762a129d8830e8708c55761d61ce9e3b19c1bee13bc55daa13bdb07118efdbf57a588b8a64e6392d14f935e53b68933e3355b35acdb" + voluntary_exits: + - message: + epoch: "4562567354825622634" + validator_index: "4564219838042306762" + signature: "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e" + sync_aggregate: + sync_committee_bits: "0x01000000" + sync_committee_signature: "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + BLOCK_V2 (PHASE 0): + value: + type: "BLOCK_V2" + signingRoot: "0x23181cd23aa0ce5aed8628d4efc404e173ac4b72943ddb0e60129b4884aa8a4f" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "PHASE0" + block: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body: + randao_reveal: "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71" + eth1_data: + deposit_root: "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f" + deposit_count: "4658411424342975020" + block_hash: "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + graffiti: "0x0000000000000000000000000000000000000000000000000000000000000000" + proposer_slashings: + - signed_header_1: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b" + state_root: "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" + body_root: "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + signature: "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + signed_header_2: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6" + state_root: "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26" + body_root: "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + signature: "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + attester_slashings: + - attestation_1: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4580744678799082634" + index: "4579092195582398506" + beacon_block_root: "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c" + source: + epoch: "533461240" + root: "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + target: + epoch: "538462976" + root: "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + signature: "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + attestation_2: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4620404293179370891" + index: "4618751809962686763" + beacon_block_root: "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + source: + epoch: "538078227" + root: "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + target: + epoch: "536923980" + root: "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + signature: "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + attestations: + - aggregation_bits: "0xfa79cdb89d0d51c5cdd001b7425c6d726750a9d5f89ade6ed9890ce3a706140c399a5e10c90a819094b65322dac7501f7c75471e69d4567358d8ca75f7c1b3133ebecf006b369a1f36efc5f2b706d5922ff98c58a1825a53a864376658f816600cf021cea843d4396502bb9c74d1510afe26036f89f783b4f5c7bacb6649c46f217a6af835f312d6fa253d2bbc83c07993f4f10de2ed2d952689379dbe4f794c1a1055a6b364d68e038deec9667f576b3b9eca5fcadd6298f181e1edb876efc3d0975ae14ae9a0ad2f1836d4c3f1080a96d8ab7c43b34bb2eda895ff66be698b363cfa4be33da3ec94a1a7a90672fd12c4a59916bb937e78476e4f08e4f4031001" + data: + slot: "4605531939934246443" + index: "4610489389584298827" + beacon_block_root: "0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765b" + source: + epoch: "529421377" + root: "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2" + target: + epoch: "529806126" + root: "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" + signature: "0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc" + - aggregation_bits: "0x4ac567b296efbf7cf3209e87096a7a1a50fd523400113f917f6584a5a306f06b2d8da9ae858d47ff2594010089838efe41f19a78d9aae27c2ffde26f278b8681db9d091eb72e7cab3e449dfccd46a270693e1f88f197324e57bfd45573315cf9fb60d770937b32f7c0c6ce1581ec51e6b60f71acfde304dc917f2e0aa7872038b7d9140d15f7927c23a0490a74c2b0aca2773fed9217067e4444f9ca93874e4ff8407111c3efdb138b97c6d4957b6a70ec1debb283e3d0eb1cfef068adcffbf057d20fdc339eae03f0fa2613abdde8158a7fc40c3cfd1117eb6f8c4ae21d6b2ab4b57ae9a8653a34451aee6418c0c3609dc937293f5f5b346a7ab1a0d144185101" + data: + slot: "4544390030852162633" + index: "4542737547635478505" + beacon_block_root: "0x1bb1ed3e09ca0083285797d894e275ebd7548c015a7d158b66ce053068d7b2bd" + source: + epoch: "527690007" + root: "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8" + target: + epoch: "528074756" + root: "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + signature: "0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120" + - aggregation_bits: "0xe8c9759f0840f980ae956b15fc383d992e7d4420d12ba5bf32f669f446ac6fa388e20e5ce96e9266dd98840179d2cde3cabd9a8bafab5dec9c2e89f7f78c989e690548603984803b80c82d7b76443194576a1ce49da5cfe56f56e83b745fb01b5f18ccc86d88f5a22d927e64ff0b8e880893abcddec45b268531c4a0697537dae643a24b1a36432f37d42962553bd39af71f37e0429b81470c11316aa39db074aa3f1df4124e7cb203debed60b885ffb9b27e46a1434e81bbd56566632d0729c0822ac415cbb67f25973667d88e58df9c2f058a0ae7f118c98cc448453b6fbe590363bd17ed62c2f808df61f2a9e593235eeb56db74b9dd15980189a5271468301" + data: + slot: "4529517677607038185" + index: "4574134745932346122" + beacon_block_root: "0x64b8743faafef0521f5350f290979d7e470fa3e3f8746bd14933f531ca233947" + source: + epoch: "532884117" + root: "0x3d76803f6a6732c935cd819be98574e43a09a5bf8ce3195ded306ea11562ca31" + target: + epoch: "531729870" + root: "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672" + signature: "0x8c40f51a99fce6ebb9a4db5e80d715fff319e7ae523e46afb5d03c000d427e23c7a39e77e2af53851706283c8ca91d680997cb459386fbdff52c4d0ecf498e173717a838a792b210bdffaf476538628584a133899bf30dd5ce7056463b8cd683" + deposits: + - proof: + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + data: + pubkey: "0xb1f8f6e731dbf6b4e3265fb857c7190adbfc7e6cc95ce2e8bda72be8b6ea3459f862310a2484c3b0ee33b30920f18c1d" + withdrawal_credentials: "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" + amount: "32000000000" + signature: "0xb594382214f5bdd375de66c45e1c61a526c7b73fb166c72433bbd9c2a7ad6881244e61cc6427e0206a50b762a129d8830e8708c55761d61ce9e3b19c1bee13bc55daa13bdb07118efdbf57a588b8a64e6392d14f935e53b68933e3355b35acdb" + voluntary_exits: + - message: + epoch: "4562567354825622634" + validator_index: "4564219838042306762" + signature: "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e" + BLOCK (DEPRECATED): + value: + type: BLOCK + signingRoot: '0xf6ab1a0a4a712f544f99b53cb8c2c2625859a134fb5c9f1b2cb96e13dd88bd62' + forkInfo: + fork: + previousVersion: '0x00000001' + currentVersion: '0x00000001' + epoch: 1 + genesisValidatorsRoot: '0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673' + block: + slot: 0 + proposerIndex: 5 + parentRoot: '0xb2eedb01adbd02c828d5eec09b4c70cbba12ffffba525ebf48aca33028e8ad89' + stateRoot: '0x0000000000000000000000000000000000000000000000000000000000000000' + body: + randaoReveal: '0xa686652aed2617da83adebb8a0eceea24bb0d2ccec9cd691a902087f90db16aa5c7b03172a35e874e07e3b60c5b2435c0586b72b08dfe5aee0ed6e5a2922b956aa88ad0235b36dfaa4d2255dfeb7bed60578d982061a72c7549becab19b3c12f' + eth1Data: + depositRoot: '0x6a0f9d6cb0868daa22c365563bb113b05f7568ef9ee65fdfeb49a319eaf708cf' + depositCount: 8 + blockHash: '0x4242424242424242424242424242424242424242424242424242424242424242' + graffiti: '0x74656b752f76302e31322e31302d6465762d6338316361363235000000000000' + proposerSlashings: [ ] + attesterSlashings: [ ] + attestations: [ ] + deposits: [ ] + voluntaryExits: [ ] + ATTESTATION: + value: + type: "ATTESTATION" + signingRoot: "0x548c9a015f4c96cb8b1ddbbdfca85846f85bf9f344a434c140f378cdfb5341f0" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + attestation: + slot: "32" + index: "0" + beacon_block_root: "0xb2eedb01adbd02c828d5eec09b4c70cbba12ffffba525ebf48aca33028e8ad89" + source: + epoch: "0" + root: "0x0000000000000000000000000000000000000000000000000000000000000000" + target: + epoch: "0" + root: "0xb2eedb01adbd02c828d5eec09b4c70cbba12ffffba525ebf48aca33028e8ad89" + + AGGREGATION_SLOT: + value: + type: 'AGGREGATION_SLOT' + signingRoot: '0x1fb90dd6e8b2670e6949347bc4eaacd37f9b6cc6e42c559973e362c800e853b9' + forkInfo: + fork: + previousVersion: '0x00000001' + currentVersion: '0x00000001' + epoch: 1 + genesisValidatorsRoot: '0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673' + aggregationSlot: + slot: 119 + AGGREGATE_AND_PROOF: + value: + type: "AGGREGATE_AND_PROOF" + signingRoot: "0x8d777156899cb02e0e66217afd832886239752a59a393218f6c603bcf615b4f8" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + aggregate_and_proof: + aggregator_index: "1" + aggregate: + aggregation_bits: "0x00000101" + data: + slot: "0" + index: "0" + beacon_block_root: "0x100814c335d0ced5014cfa9d2e375e6d9b4e197381f8ce8af0473200fdc917fd" + source: + epoch: "0" + root: "0x0000000000000000000000000000000000000000000000000000000000000000" + target: + epoch: "0" + root: "0x100814c335d0ced5014cfa9d2e375e6d9b4e197381f8ce8af0473200fdc917fd" + signature: "0xa627242e4a5853708f4ebf923960fb8192f93f2233cd347e05239d86dd9fb66b721ceec1baeae6647f498c9126074f1101a87854d674b6eebc220fd8c3d8405bdfd8e286b707975d9e00a56ec6cbbf762f23607d490f0bbb16c3e0e483d51875" + selection_proof: "0xa63f73a03f1f42b1fd0a988b614d511eb346d0a91c809694ef76df5ae021f0f144d64e612d735bc8820950cf6f7f84cd0ae194bfe3d4242fe79688f83462e3f69d9d33de71aab0721b7dab9d6960875e5fdfd26b171a75fb51af822043820c47" + + RANDAO_REVEAL: + value: + type: "RANDAO_REVEAL" + signingRoot: "0x3d047c51a8b03630781dc4c5519c17f7de87174246ff2deed0f195c6c775f91e" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + randao_reveal: + epoch: "3" + + VOLUNTARY_EXIT: + value: + type: "VOLUNTARY_EXIT" + signingRoot: "0x38e9f1cfe7926ce5366b633b7fc7113129025737394002d2637faaeefc56913d" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + voluntary_exit: + epoch: "119" + validator_index: "0" + + SYNC_COMMITTEE_MESSAGE: + value: + type: "SYNC_COMMITTEE_MESSAGE" + signingRoot: "0xa6f60df2817ea5b52eed1fefebbad746ef64c6249fc05c90c9e0f520cc75bb95" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + sync_committee_message: + beacon_block_root: "0x235bc3400c2839fd856a524871200bd5e362db615fc4565e1870ed9a2a936464" + slot: "0" + + SYNC_COMMITTEE_SELECTION_PROOF: + value: + type: "SYNC_COMMITTEE_SELECTION_PROOF" + signingRoot: "0x50d85c783ab27c1eb3f3efa914b91cb93ffd677137b15c27ba5bb548306e6963" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + sync_aggregator_selection_data: + slot: "0" + subcommittee_index: "0" + + SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF: + value: + type: "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF" + signingRoot: "0xae94702468b584a3b1c422bc1b39cc523d9175ba3b9ac1cccb699c00507cc1a5" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + contribution_and_proof: + aggregator_index: "11" + selection_proof: "0x8f5c34de9e22ceaa7e8d165fc0553b32f02188539e89e2cc91e2eb9077645986550d872ee3403204ae5d554eae3cac12124e18d2324bccc814775316aaef352abc0450812b3ca9fde96ecafa911b3b8bfddca8db4027f08e29c22a9c370ad933" + contribution: + slot: "0" + beacon_block_root: "0x235bc3400c2839fd856a524871200bd5e362db615fc4565e1870ed9a2a936464" + subcommittee_index: "1" + aggregation_bits: "0x24" + signature: "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71" + + VALIDATOR_REGISTRATION: + value: + type: "VALIDATOR_REGISTRATION" + signingRoot: "0xe4d2b3dd1e23807b90af0b1768cc7de12d4353320adb486f1bdaeed6b67009ea" + validator_registration: + fee_recipient: "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a9" + gas_limit: "4658411424342975020" + timestamp: "4663368873993027404" + pubkey: "0x8f82597c919c056571a05dfe83e6a7d32acf9ad8931be04d11384e95468cd68b40129864ae12745f774654bbac09b057" + + DEPOSIT: + value: + type: "DEPOSIT" + signingRoot: "0x3a49cdd70862ee95fed10e7494a8caa16af1be2f53612fc74dad27260bb2d711" + deposit: + pubkey: "0x8f82597c919c056571a05dfe83e6a7d32acf9ad8931be04d11384e95468cd68b40129864ae12745f774654bbac09b057" + withdrawal_credentials: "0x39722cbbf8b91a4b9045c5e6175f1001eac32f7fcd5eccda5c6e62fc4e638508" + amount: "32" + genesis_fork_version: "0x00000001" + + responses: + '200': + description: 'hex encoded string of signature' + content: + application/json: + schema: + $ref: '../schemas.yaml#/components/schemas/SigningResponse' + text/plain: + schema: + type: string + example: '0xb3baa751d0a9132cfe93e4e3d5ff9075111100e3789dca219ade5a24d27e19d16b3353149da1833e9b691bb38634e8dc04469be7032132906c927d7e1a49b414730612877bc6b2810c8f202daf793d1ab0d6b5cb21d52f9e52e883859887a5d9' + '412': + description: 'Signing operation failed due to slashing protection rules' + '404': + description: 'Public Key not found' + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/24.12.0/eth2/signing/paths/upcheck.yaml b/24.12.0/eth2/signing/paths/upcheck.yaml new file mode 100644 index 000000000..4cfeb0860 --- /dev/null +++ b/24.12.0/eth2/signing/paths/upcheck.yaml @@ -0,0 +1,17 @@ +get: + tags: + - 'Server Status' + summary: 'Server Status' + description: | + Checks the Web3Signer server status. Confirms if Web3Signer is connected and running. Not used by validator clients. + operationId: 'UPCHECK' + responses: + '200': + description: 'OK' + content: + text/plain; charset=utf-8: + schema: + type: string + example: 'OK' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/24.12.0/eth2/signing/schemas.yaml b/24.12.0/eth2/signing/schemas.yaml new file mode 100644 index 000000000..6cb8b97ca --- /dev/null +++ b/24.12.0/eth2/signing/schemas.yaml @@ -0,0 +1,622 @@ +components: + schemas: + Signing: + type: "object" + properties: + fork_info: + type: object + properties: + fork: + $ref: '#/components/schemas/Fork' + description: Fork information + genesis_validators_root: + type: "string" + description: Genesis Validators Root in hex string format. + example: '0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673' + required: + - fork + - genesis_validators_root + signingRoot: + type: "string" + description: 'signing root for optional verification if field present' + example: '0xaa2e0c465c1a45d7b6637fcce4ad6ceb71fc12064b548078d619a411f0de8adc' + required: + - fork_info + SigningResponse: + type: "object" + properties: + signature: + type: "string" + description: "Hex encoded string of signature" + example: '0xb3baa751d0a9132cfe93e4e3d5ff9075111100e3789dca219ade5a24d27e19d16b3353149da1833e9b691bb38634e8dc04469be7032132906c927d7e1a49b414730612877bc6b2810c8f202daf793d1ab0d6b5cb21d52f9e52e883859887a5d9' + AggregationSlotSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: "object" + properties: + type: + type: "string" + description: Signing Request type + example: 'AGGREGATION_SLOT' + aggregation_slot: + type: "object" + properties: + slot: + type: string + format: "uint64" + required: + - type + - aggregation_slot + AggregateAndProofSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'AGGREGATE_AND_PROOF' + aggregate_and_proof: + $ref: "#/components/schemas/AggregateAndProof" + required: + - type + - aggregate_and_proof + AttestationSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'ATTESTATION' + attestation: + $ref: "#/components/schemas/AttestationData" + required: + - type + - attestation + BlockSigning: + description: '** DEPRECATED ** See BeaconBlockSigning.' + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'BLOCK' + block: + $ref: "#/components/schemas/BeaconBlock" + required: + - type + - block + DepositSigning: + type: object + properties: + type: + type: "string" + description: 'Signing Request type' + example: 'DEPOSIT' + signingRoot: + description: 'signing root for optional verification if field present' + type: "string" + deposit: + type: object + properties: + pubkey: + type: "string" + withdrawal_credentials: + type: "string" + amount: + type: "string" + genesis_fork_version: + type: "string" + description: Bytes4 hexadecimal + required: + - type + - deposit + RandaoRevealSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'RANDAO_REVEAL' + randao_reveal: + $ref: "#/components/schemas/RandaoReveal" + required: + - type + - randao_reveal + VoluntaryExitSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'VOLUNTARY_EXIT' + voluntary_exit: + $ref: "#/components/schemas/VoluntaryExit" + required: + - type + - voluntary_exit + SyncCommitteeMessageSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'SYNC_COMMITTEE_MESSAGE' + sync_committee_message: + $ref: "#/components/schemas/SyncCommitteeMessage" + required: + - type + - sync_committee_message + SyncCommitteeSelectionProofSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'SYNC_COMMITTEE_SELECTION_PROOF' + sync_aggregator_selection_data: + $ref: "#/components/schemas/SyncAggregatorSelectionData" + required: + - type + - sync_aggregator_selection_data + SyncCommitteeContributionAndProofSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF' + contribution_and_proof: + $ref: "#/components/schemas/ContributionAndProof" + required: + - type + - contribution_and_proof + ValidatorRegistrationSigning: + allOf: + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'VALIDATOR_REGISTRATION' + signingRoot: + description: 'signing root for optional verification if field present' + type: "string" + validator_registration: + "$ref": "#/components/schemas/ValidatorRegistration" + required: + - type + - validator_registration + RandaoReveal: + type: "object" + properties: + epoch: + type: string + format: "uint64" + AttestationData: + type: "object" + properties: + slot: + type: "string" + format: "uint64" + index: + type: "string" + format: "uint64" + beacon_block_root: + type: "string" + source: + $ref: "#/components/schemas/Checkpoint" + target: + $ref: "#/components/schemas/Checkpoint" + Checkpoint: + type: "object" + properties: + epoch: + type: "string" + root: + type: "string" + Fork: + type: "object" + properties: + previous_version: + pattern: "^0x[a-fA-F0-9]{8}$" + type: "string" + description: 'Previous version of fork' + example: '0x00000001' + current_version: + pattern: "^0x[a-fA-F0-9]{8}$" + type: "string" + description: 'Current version of fork' + example: '0x00000001' + epoch: + type: "string" + description: 'Epoch value in String format' + format: "uint64" + example: '1' + BeaconBlock: + type: "object" + properties: + slot: + type: "string" + format: "uint64" + proposer_index: + type: "string" + format: "uint64" + parent_root: + type: "string" + state_root: + type: "string" + body: + $ref: "#/components/schemas/BeaconBlockBody" + BeaconBlockBody: + type: "object" + properties: + randao_reveal: + type: "string" + eth1_data: + "$ref": "#/components/schemas/Eth1Data" + graffiti: + type: "string" + description: "Bytes32 hexadecimal" + proposer_slashings: + type: "array" + items: + $ref: "#/components/schemas/ProposerSlashing" + attester_slashings: + type: "array" + items: + $ref: "#/components/schemas/AttesterSlashing" + attestations: + type: "array" + items: + $ref: "#/components/schemas/Attestation" + deposits: + type: "array" + items: + $ref: "#/components/schemas/Deposit" + voluntary_exits: + type: "array" + items: + $ref: "#/components/schemas/SignedVoluntaryExit" + Eth1Data: + type: "object" + properties: + deposit_root: + type: "string" + deposit_count: + type: "string" + format: "uint64" + block_hash: + type: "string" + ProposerSlashing: + type: "object" + properties: + signed_header_1: + "$ref": "#/components/schemas/SignedBeaconBlockHeader" + signed_header_2: + "$ref": "#/components/schemas/SignedBeaconBlockHeader" + AttesterSlashing: + type: "object" + properties: + attestation_1: + "$ref": "#/components/schemas/IndexedAttestation" + attestation_2: + "$ref": "#/components/schemas/IndexedAttestation" + Attestation: + type: "object" + properties: + aggregation_bits: + type: "string" + data: + $ref: "#/components/schemas/AttestationData" + signature: + type: "string" + Deposit: + type: "object" + properties: + proof: + type: "array" + items: + type: "string" + data: + $ref: "#/components/schemas/DepositData" + SignedVoluntaryExit: + type: "object" + properties: + message: + $ref: "#/components/schemas/VoluntaryExit" + signature: + type: "string" + SignedBeaconBlockHeader: + type: "object" + properties: + message: + $ref: "#/components/schemas/BeaconBlockHeader" + signature: + type: "string" + IndexedAttestation: + type: object + properties: + attesting_indices: + type: array + items: + type: string + format: uint64 + data: + "$ref": "#/components/schemas/AttestationData" + signature: + type: string + DepositData: + type: "object" + properties: + pubkey: + type: "string" + withdrawal_credentials: + type: "string" + amount: + type: "string" + signature: + type: "string" + VoluntaryExit: + type: object + properties: + epoch: + type: string + format: uint64 + validator_index: + type: string + format: uint64 + BeaconBlockHeader: + type: object + properties: + slot: + type: string + format: uint64 + proposer_index: + type: string + format: uint64 + parent_root: + type: string + description: Bytes32 hexadecimal + state_root: + type: string + description: Bytes32 hexadecimal + body_root: + type: string + description: Bytes32 hexadecimal + AggregateAndProof: + type: object + properties: + aggregator_index: + type: string + format: uint64 + aggregate: + "$ref": "#/components/schemas/Attestation" + selection_proof: + type: string + description: Bytes96 hexadecimal + SyncCommitteeMessage: + type: object + properties: + beacon_block_root: + type: string + description: Bytes32 hexadecimal + slot: + type: string + format: uint64 + SyncAggregatorSelectionData: + type: object + properties: + slot: + type: string + format: uint64 + subcommittee_index: + type: string + format: uint64 + ContributionAndProof: + type: object + properties: + aggregator_index: + type: string + format: uint64 + selection_proof: + type: string + description: Bytes96 hexadecimal + contribution: + "$ref": "#/components/schemas/SyncCommitteeContribution" + SyncCommitteeContribution: + type: object + properties: + slot: + type: string + format: uint64 + beacon_block_root: + type: string + description: Bytes32 hexadecimal + subcommittee_index: + type: string + format: uint64 + aggregation_bits: + type: string + description: SSZ hexadecimal + signature: + type: string + description: Bytes96 hexadecimal + ValidatorRegistration: + type: object + properties: + fee_recipient: + type: string + description: Bytes20 hexadecimal + gas_limit: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + pubkey: + type: string + BeaconBlockSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - $ref: '#/components/schemas/BeaconBlockRequest' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'BLOCK_V2' + BeaconBlockRequest: + type: object + properties: + beacon_block: + oneOf: + - $ref: '#/components/schemas/BlockRequestPhase0' + - $ref: '#/components/schemas/BlockRequestAltair' + - $ref: '#/components/schemas/BlockRequestBellatrix' + - $ref: '#/components/schemas/BlockRequestCapella' + - $ref: '#/components/schemas/BlockRequestDeneb' + discriminator: + propertyName: version + mapping: + PHASE0: '#/components/schemas/BlockRequestPhase0' + ALTAIR: '#/components/schemas/BlockRequestAltair' + BELLATRIX: '#/components/schemas/BlockRequestBellatrix' + CAPELLA: '#/components/schemas/BlockRequestCapella' + DENEB: '#/components/schemas/BlockRequestDeneb' + required: + - beacon_block + BlockRequestPhase0: + type: object + properties: + version: + type: string + enum: + - PHASE0 + description: 'version to identify block request type.' + block: + $ref: "#/components/schemas/BeaconBlock" + required: + - version + - block + BlockRequestAltair: + type: object + properties: + version: + type: string + enum: + - ALTAIR + description: 'version to identify block request type.' + block: + $ref: "#/components/schemas/BeaconBlockAltair" + required: + - version + - block + BlockRequestBellatrix: + type: object + properties: + version: + type: string + enum: + - BELLATRIX + description: 'version to identify block request type.' + block_header: + $ref: "#/components/schemas/BeaconBlockHeader" + required: + - version + - block_header + BlockRequestCapella: + type: object + properties: + version: + type: string + enum: + - CAPELLA + description: 'version to identify block request type.' + block_header: + $ref: "#/components/schemas/BeaconBlockHeader" + required: + - version + - block_header + BlockRequestDeneb: + type: object + properties: + version: + type: string + enum: + - DENEB + description: 'version to identify block request type.' + block_header: + $ref: "#/components/schemas/BeaconBlockHeader" + required: + - version + - block_header + BeaconBlockAltair: + type: "object" + properties: + slot: + type: "string" + format: "uint64" + proposer_index: + type: "string" + format: "uint64" + parent_root: + type: "string" + state_root: + type: "string" + body: + $ref: "#/components/schemas/BeaconBlockBodyAltair" + BeaconBlockBodyAltair: + allOf: + - $ref: "#/components/schemas/BeaconBlockBody" + - type: object + properties: + sync_aggregate: + $ref: "#/components/schemas/SyncAggregate" + SyncAggregate: + type: object + properties: + sync_committee_bits: + type: string + description: SSZ hexadecimal + sync_committee_signature: + type: string + description: Bytes96 hexadecimal + HealthCheck: + type: object + properties: + status: + type: string + description: 'health status' + checks: + type: array + description: 'list of status checks' + items: + properties: + id: + type: string + description: 'status id' + status: + type: string + description: 'health status' + outcome: + type: string + description: 'the overall outcome of health check' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/24.12.0/eth2/web3signer.yaml b/24.12.0/eth2/web3signer.yaml new file mode 100644 index 000000000..4af91a6d2 --- /dev/null +++ b/24.12.0/eth2/web3signer.yaml @@ -0,0 +1,32 @@ +openapi: 3.0.3 +info: + title: 'Web3Signer ETH2 Api' + description: 'Sign Eth2 Artifacts' + version: '24.12.0' + license: + name: 'Apache 2.0' + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' + +servers: + - url: / + - url: http://localhost:9000/ + +paths: + /api/v1/eth2/sign/{identifier}: + $ref: './signing/paths/sign.yaml' + /api/v1/eth2/publicKeys: + $ref: './signing/paths/public_keys.yaml' + /api/v1/eth2/highWatermark: + $ref: './signing/paths/high_watermark.yaml' + /reload: + $ref: './signing/paths/reload.yaml' + /upcheck: + $ref: './signing/paths/upcheck.yaml' + /healthcheck: + $ref: './signing/paths/healthcheck.yaml' + /eth/v1/keystores: + $ref: './keymanager/paths/keystores.yaml' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/latest/eth1/web3signer.yaml b/latest/eth1/web3signer.yaml index 712dabbf4..0208deb0d 100644 --- a/latest/eth1/web3signer.yaml +++ b/latest/eth1/web3signer.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: title: 'Web3Signer ETH1 API' description: 'Sign ETH1 Artifacts' - version: '24.12.0-RC1' + version: '24.12.0' license: name: 'Apache 2.0' url: 'http://www.apache.org/licenses/LICENSE-2.0.html' diff --git a/latest/eth2/web3signer.yaml b/latest/eth2/web3signer.yaml index 61f764036..4af91a6d2 100644 --- a/latest/eth2/web3signer.yaml +++ b/latest/eth2/web3signer.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: 'Web3Signer ETH2 Api' description: 'Sign Eth2 Artifacts' - version: '24.12.0-RC1' + version: '24.12.0' license: name: 'Apache 2.0' url: 'http://www.apache.org/licenses/LICENSE-2.0.html' diff --git a/versions.json b/versions.json index 9c45f7857..cd0fd04a8 100644 --- a/versions.json +++ b/versions.json @@ -4,8 +4,8 @@ "source": "master" }, "stable": { - "spec": "24.12.0-RC1", - "source": "24.12.0-RC1" + "spec": "24.12.0", + "source": "24.12.0" }, "0.1.0": { "spec": "0.1.0", @@ -206,5 +206,9 @@ "24.12.0-RC1": { "spec": "24.12.0-RC1", "source": "24.12.0-RC1" + }, + "24.12.0": { + "spec": "24.12.0", + "source": "24.12.0" } } \ No newline at end of file