Attester slashings for a slot
curl --request GET \
--url 'https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey='import requests
url = "https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "OK",
"data": [
{
"attestation1_beaconblockroot": "0x4b50f7112f30b4fe9ff61324d9282308b8104874991f796f181cd58511fc67d5",
"attestation1_index": 0,
"attestation1_indices": [
0,
1,
2,
3
],
"attestation1_signature": "0xaa",
"attestation1_slot": 12571716,
"attestation1_source_epoch": 392865,
"attestation1_source_root": "0x1b3891944d7c2fdac53dff9410f18992487e31b1f68d995c1429548effa47268",
"attestation1_target_epoch": 392866,
"attestation1_target_root": "0x1898ff52ee440f1ac1ed328becaaa2672c6c50976203d42f672beb5c495c8116",
"attestation2_beaconblockroot": "0x2c262c5cdbddd4b4a673c3a112b8a0d1ca539c15cac2a95e0094c0d28a008e88",
"attestation2_index": 0,
"attestation2_indices": [
0,
1,
2,
3
],
"attestation2_signature": "0xaa",
"attestation2_slot": 12571716,
"attestation2_source_epoch": 392865,
"attestation2_source_root": "0x1b3891944d7c2fdac53dff9410f18992487e31b1f68d995c1429548effa47268",
"attestation2_target_epoch": 392866,
"attestation2_target_root": "0x1898ff52ee440f1ac1ed328becaaa2672c6c50976203d42f672beb5c495c8116",
"block_index": 0,
"block_root": "0x3381dd071cb6a020144bb980758a3a844129a62d74146b0fcdd82c4125cc8d66",
"block_slot": 12571718
}
]
}Slots
Attester slashings for a slot
Retrieve all attester slashing operations included in the beacon block for a specific slot. You can provide a slot number or the keyword latest to fetch from the most recently processed slot. Each item contains the two conflicting attestations that triggered the slashing and the block inclusion metadata.
GET
/
api
/
v1
/
slot
/
{slot}
/
attesterslashings
Attester slashings for a slot
curl --request GET \
--url 'https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey='import requests
url = "https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://beaconcha.in/api/v1/slot/{slot}/attesterslashings?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "OK",
"data": [
{
"attestation1_beaconblockroot": "0x4b50f7112f30b4fe9ff61324d9282308b8104874991f796f181cd58511fc67d5",
"attestation1_index": 0,
"attestation1_indices": [
0,
1,
2,
3
],
"attestation1_signature": "0xaa",
"attestation1_slot": 12571716,
"attestation1_source_epoch": 392865,
"attestation1_source_root": "0x1b3891944d7c2fdac53dff9410f18992487e31b1f68d995c1429548effa47268",
"attestation1_target_epoch": 392866,
"attestation1_target_root": "0x1898ff52ee440f1ac1ed328becaaa2672c6c50976203d42f672beb5c495c8116",
"attestation2_beaconblockroot": "0x2c262c5cdbddd4b4a673c3a112b8a0d1ca539c15cac2a95e0094c0d28a008e88",
"attestation2_index": 0,
"attestation2_indices": [
0,
1,
2,
3
],
"attestation2_signature": "0xaa",
"attestation2_slot": 12571716,
"attestation2_source_epoch": 392865,
"attestation2_source_root": "0x1b3891944d7c2fdac53dff9410f18992487e31b1f68d995c1429548effa47268",
"attestation2_target_epoch": 392866,
"attestation2_target_root": "0x1898ff52ee440f1ac1ed328becaaa2672c6c50976203d42f672beb5c495c8116",
"block_index": 0,
"block_root": "0x3381dd071cb6a020144bb980758a3a844129a62d74146b0fcdd82c4125cc8d66",
"block_slot": 12571718
}
]
}Path Parameters
Response
The slot was found and its attester slashings are returned in the data array. If the slot has no attester slashings, the array is empty.

