curl --request GET \
--url https://api.eigenexplorer.com/avs/{address} \
--header 'X-API-Token: <x-api-token>'import requests
url = "https://api.eigenexplorer.com/avs/{address}"
headers = {"X-API-Token": "<x-api-token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Token': '<x-api-token>'}};
fetch('https://api.eigenexplorer.com/avs/{address}', 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://api.eigenexplorer.com/avs/{address}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Token: <x-api-token>"
],
]);
$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://api.eigenexplorer.com/avs/{address}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Token", "<x-api-token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eigenexplorer.com/avs/{address}")
.header("X-API-Token", "<x-api-token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eigenexplorer.com/avs/{address}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Token"] = '<x-api-token>'
response = http.request(request)
puts response.read_body{
"address": "0x35f4f28a8d3ff20eed10e087e8f96ea2641e6aa1",
"metadataName": "Example AVS",
"metadataDescription": "This is an example AVS",
"metadataDiscord": "https://discord.com/invite/abcdefghij",
"metadataLogo": "<string>",
"metadataTelegram": "https://t.me/acme",
"metadataWebsite": "https://acme.com",
"metadataX": "https://twitter.com/acme",
"totalStakers": 10,
"totalOperators": 10,
"maxApy": "1.0",
"createdAtBlock": "19631203",
"updatedAtBlock": "19631203",
"createdAt": "2024-04-11T08:31:11.000Z",
"updatedAt": "2024-04-11T08:31:11.000Z",
"shares": [
{
"strategyAddress": "0x93c4b944d05dfe6df7645a86cd2206016c51564d",
"shares": "1000000000000000000000"
},
{
"strategyAddress": "0x54945180db7943c0ed0fee7edab2bd24620256bc",
"shares": "1000000000000000000000"
}
],
"rewards": {
"strategyApys": [
{
"strategyAddress": "0xbeac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0",
"apy": 0.1,
"tokens": [
{
"tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"apy": 0.1
}
]
}
]
},
"curatedMetadata": {
"avsAddress": "0x2344c0fe02ccd2b32155ca0ffcb1978a6d96a552",
"metadataName": "Example AVS",
"metadataDescription": "This is an example AVS",
"metadataDiscord": "https://discord.com/invite/example",
"metadataLogo": "The URL of the AVS's logo",
"metadataTelegram": "The URL of the AVS's Telegram channel",
"metadataWebsite": "https://example.com",
"metadataX": "https://twitter.com/example",
"metadataGithub": "https://github.com/example",
"metadataTokenAddress": "0x2344c0fe02ccd2b32155ca0ffcb1978a6d96a552",
"tags": [
"Example tag 1",
"Example tag 2"
],
"isVisible": true,
"isVerified": true
},
"tvl": {
"tvl": 1000000,
"tvlBeaconChain": 1000000,
"tvlWETH": 1000000,
"tvlRestaking": 1000000,
"tvlStrategies": {
"Eigen": 1000000,
"cbETH": 2000000
},
"tvlStrategiesEth": {
"stETH": 1000000,
"cbETH": 2000000
}
}
}{
"error": {
"code": "bad_request",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#bad_request"
}
}{
"error": {
"code": "unauthorized",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#forbidden"
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#not_found"
}
}{
"error": {
"code": "unprocessable_entity",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#unprocessable_entity"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#rate_limit_exceeded"
}
}{
"error": {
"code": "internal_server_error",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#internal_server_error"
}
}Retrieve an AVS by address
Returns a single AVS record by address.
curl --request GET \
--url https://api.eigenexplorer.com/avs/{address} \
--header 'X-API-Token: <x-api-token>'import requests
url = "https://api.eigenexplorer.com/avs/{address}"
headers = {"X-API-Token": "<x-api-token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Token': '<x-api-token>'}};
fetch('https://api.eigenexplorer.com/avs/{address}', 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://api.eigenexplorer.com/avs/{address}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Token: <x-api-token>"
],
]);
$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://api.eigenexplorer.com/avs/{address}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Token", "<x-api-token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eigenexplorer.com/avs/{address}")
.header("X-API-Token", "<x-api-token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eigenexplorer.com/avs/{address}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Token"] = '<x-api-token>'
response = http.request(request)
puts response.read_body{
"address": "0x35f4f28a8d3ff20eed10e087e8f96ea2641e6aa1",
"metadataName": "Example AVS",
"metadataDescription": "This is an example AVS",
"metadataDiscord": "https://discord.com/invite/abcdefghij",
"metadataLogo": "<string>",
"metadataTelegram": "https://t.me/acme",
"metadataWebsite": "https://acme.com",
"metadataX": "https://twitter.com/acme",
"totalStakers": 10,
"totalOperators": 10,
"maxApy": "1.0",
"createdAtBlock": "19631203",
"updatedAtBlock": "19631203",
"createdAt": "2024-04-11T08:31:11.000Z",
"updatedAt": "2024-04-11T08:31:11.000Z",
"shares": [
{
"strategyAddress": "0x93c4b944d05dfe6df7645a86cd2206016c51564d",
"shares": "1000000000000000000000"
},
{
"strategyAddress": "0x54945180db7943c0ed0fee7edab2bd24620256bc",
"shares": "1000000000000000000000"
}
],
"rewards": {
"strategyApys": [
{
"strategyAddress": "0xbeac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0",
"apy": 0.1,
"tokens": [
{
"tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"apy": 0.1
}
]
}
]
},
"curatedMetadata": {
"avsAddress": "0x2344c0fe02ccd2b32155ca0ffcb1978a6d96a552",
"metadataName": "Example AVS",
"metadataDescription": "This is an example AVS",
"metadataDiscord": "https://discord.com/invite/example",
"metadataLogo": "The URL of the AVS's logo",
"metadataTelegram": "The URL of the AVS's Telegram channel",
"metadataWebsite": "https://example.com",
"metadataX": "https://twitter.com/example",
"metadataGithub": "https://github.com/example",
"metadataTokenAddress": "0x2344c0fe02ccd2b32155ca0ffcb1978a6d96a552",
"tags": [
"Example tag 1",
"Example tag 2"
],
"isVisible": true,
"isVerified": true
},
"tvl": {
"tvl": 1000000,
"tvlBeaconChain": 1000000,
"tvlWETH": 1000000,
"tvlRestaking": 1000000,
"tvlStrategies": {
"Eigen": 1000000,
"cbETH": 2000000
},
"tvlStrategiesEth": {
"stETH": 1000000,
"cbETH": 2000000
}
}
}{
"error": {
"code": "bad_request",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#bad_request"
}
}{
"error": {
"code": "unauthorized",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#forbidden"
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#not_found"
}
}{
"error": {
"code": "unprocessable_entity",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#unprocessable_entity"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#rate_limit_exceeded"
}
}{
"error": {
"code": "internal_server_error",
"message": "The requested resource was not found.",
"doc_url": "https://docs.eigenexplorer.com/api-reference/errors#internal_server_error"
}
}Headers
API Token for authentication
Path Parameters
AVS service manager contract address
^0x[a-fA-F0-9]{40}$"0x870679e138bcdf293b7ff14dd44b70fc97e12fc0"
Query Parameters
Toggle whether the route should calculate the TVL from shares
true, false "false"
Toggle whether the route should send curated metadata
true, false "false"
Toggle whether the route should return Avs/Operator rewards APY data
true, false "false"
Response
The AVS record found.
AVS service manager contract address
^0x[a-fA-F0-9]{40}$"0x35f4f28a8d3ff20eed10e087e8f96ea2641e6aa1"
The name of the AVS
"Example AVS"
The description of the AVS
"This is an example AVS"
The URL of the AVS's Discord server
"https://discord.com/invite/abcdefghij"
The URL of the AVS's logo
The URL of the AVS's Telegram channel
"https://t.me/acme"
The URL of the AVS's website
"https://acme.com"
The URL of the AVS's X
"https://twitter.com/acme"
The total number of stakers staking in the AVS
10
The total number of operators operating the AVS
10
The max APY for the AVS across all the strategies
"1.0"
The block number at which the AVS was created
"19631203"
The block number at which the AVS was last updated
"19631203"
The time stamp at which the AVS was created
"2024-04-11T08:31:11.000Z"
The time stamp at which the AVS was last updated
"2024-04-11T08:31:11.000Z"
The strategy shares held in the AVS
Show child attributes
Show child attributes
[
{
"strategyAddress": "0x93c4b944d05dfe6df7645a86cd2206016c51564d",
"shares": "1000000000000000000000"
},
{
"strategyAddress": "0x54945180db7943c0ed0fee7edab2bd24620256bc",
"shares": "1000000000000000000000"
}
]
The reward details for the AVS, including strategies and APYs
Show child attributes
Show child attributes
To curate visibility and additional information of the AVS
Show child attributes
Show child attributes
{
"avsAddress": "0x2344c0fe02ccd2b32155ca0ffcb1978a6d96a552",
"metadataName": "Example AVS",
"metadataDescription": "This is an example AVS",
"metadataDiscord": "https://discord.com/invite/example",
"metadataLogo": "The URL of the AVS's logo",
"metadataTelegram": "The URL of the AVS's Telegram channel",
"metadataWebsite": "https://example.com",
"metadataX": "https://twitter.com/example",
"metadataGithub": "https://github.com/example",
"metadataTokenAddress": "0x2344c0fe02ccd2b32155ca0ffcb1978a6d96a552",
"tags": ["Example tag 1", "Example tag 2"],
"isVisible": true,
"isVerified": true
}
The total value locked (TVL) in the AVS
Show child attributes
Show child attributes
{
"tvl": 1000000,
"tvlBeaconChain": 1000000,
"tvlWETH": 1000000,
"tvlRestaking": 1000000,
"tvlStrategies": { "Eigen": 1000000, "cbETH": 2000000 },
"tvlStrategiesEth": { "stETH": 1000000, "cbETH": 2000000 }
}