Skip to main content
GET
/
contract-protocol
Contract Protocol
curl --request GET \
  --url https://api.octav.fi/v1/contract-protocol \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.octav.fi/v1/contract-protocol"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.octav.fi/v1/contract-protocol', 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.octav.fi/v1/contract-protocol",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <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.octav.fi/v1/contract-protocol"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <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.octav.fi/v1/contract-protocol")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.octav.fi/v1/contract-protocol")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "protocol": {
    "name": "Uniswap V3",
    "key": "uniswap-v3",
    "imgSmall": "<string>",
    "imgLarge": "<string>"
  }
}
{
"message": "Unauthorized"
}
{
"message": "<string>",
"creditsNeeded": 123
}
{
"message": "No protocol found for contract <contract> [on <chain>]"
}
{
"message": "<string>",
"retryAfter": 123
}
{
"message": "Error while searching for contract protocol"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

contract
string
required

The contract address to look up (EVM 0x… or Solana base58).

chain
string

Chain key (e.g. ethereum, arbitrum, base, polygon, solana). If omitted, the endpoint returns every chain the address is known on.

Response

Protocol match. Returns a single { protocol } object when chain is provided, or a { protocols } array (each entry tagged with its chainKey) when chain is omitted. The array is unordered.

Returned when chain is provided (single match)

protocol
object