/v1/project
One rollup in full — TVS, Stage, risks
Pruébalo en vivo
10 llamadas gratis al día — sin registro, sin clave API. Pasa por el gateway de oanor.
Funciona. Consigue una clave API y úsala en tu proyecto.
Obtener una clave APIFragmentos de código
curl "https://api.oanor.com/l2beat-api/v1/project" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/l2beat-api/v1/project", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/l2beat-api/v1/project");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/l2beat-api/v1/project",
headers={"x-oanor-key": "oanor_test_..."}
)
Respuesta de ejemplo
Una respuesta real de este endpoint, capturada en la última comprobación de estado.
{
"data": {
"id": "arbitrum",
"tvs": {
"btc_usd": 543245265.78,
"ether_usd": 1724807716.23,
"other_usd": 9699862828.34,
"total_usd": 16442469376,
"native_usd": 9084722611.21,
"external_usd": 4732677168.14,
"canonical_usd": 2625076754.37,
"change_7d_pct": -12.1689,
"stablecoin_usd": 4387955141.48
},
"name": "Arbitrum One",
"slug": "arbitrum",
"type": "layer2",
"risks": [
{
"name": "Sequencer Failure",
"value": "Self sequence",
"sentiment": "good",
"description": "In the event of a sequencer failure, users can force transactions to be included in the project's chain by sending them to L1. There can be up to a 1d delay on this operation."
},
{
"name": "State Validation",
"value": "Fraud proofs (INT)",
"sentiment": "good",
"description": "Fraud proofs allow actors watching the chain to prove that the state is incorrect. Interactive proofs (INT) require multiple transactions over time to resolve."
},
{
"name": "Data Availability",
"value": "Onchain",
"sentiment": "good",
"description": "All of the data needed for proof construction is published on Ethereum L1."
},
{
"name": "Exit Window",
"value": "None",
"sentiment": "bad",
"description": "There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable."
},
{
"name": "Proposer Failure",
"value": "Self propose",
"sentiment": "good",
"description": "Anyone can be a Proposer and propose new roots to the L1 bridge."
}
],
"stage": "Stage 1",
"source": "L2BEAT",
"category": "Optimistic Rollup",
"purposes": [
"Universal"
],
"providers": [
"Arbitrum"
],
"host_chain": "Ethereum",
"under_review": false
},
"meta": {
"timestamp": "2026-06-12T01:42:43.603Z",
"request_id": "7c7d4c17-5ea8-4bac-b5ab-e3b9aef2dcd7"
},
"status": "ok",
"message": "Project retrieved successfully",
"success": true
}