Integrate with Octav API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics across 50+ blockchain networks.

MITAuto-check passedBusiness, Finance & HR

Install Octav API

skills CLI
$ npx skills add internet-court/internet-court-skill --skill octav-api -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install internet-court/internet-court-skill octav-api --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/internet-court/internet-court-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/vendored/octav/octav-api .claude/skills/octav-api && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
octav-api
GitHub stars
6.6k
Token cost
~3.8k tokens
SKILL.md length
935 words
Files
3
Skills in repo
80
Repo updated
First seen
Licence
MIT

At a glance

Integrate with Octav API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics across 50+ blockchain networks.

  • Works in 5 steps: Batch addresses: comma-separate them in… → Use free endpoints: /v1/status,… → Filter on server: Use networks, txTypes… → …
  • Building applications that need to:
  • SKILL.md covers Quick Reference, Authentication, Access methods and Endpoints Overview, plus 9 more sections
  • Calls curl; reaches api.octav.fi; needs OCTAV_API_KEY

What it does

Octav API is an agent skill from internet-court/internet-court-skill. Integrate with Octav API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics across 50+ blockchain networks. Use when building applications that need to: (1) Track wallet balances and net worth across multiple chains, (2) Query transaction history with filtering and search, (3) Monitor DeFi protocol positions (Aave, Uniswap, etc.), (4) Access historical portfolio snapshots, (5) Analyze token distribution and holdings, (6) Pay per request as an autonomous agent via x402. Triggers on…

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `README.md`).

It sits in Business, Finance & HR, covering Crypto and DeFi analysis. It works with x402 and Uniswap. The repository describes itself as: The trust layer for agent-to-agent commerce — natural-language mandates, ERC-7710 delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all… The licence is MIT.

When your agent uses it

  • Building applications that need to:
  • Track wallet balances and net worth across multiple chains
  • Query transaction history with filtering and search
  • Monitor DeFi protocol positions (Aave

Example prompts

  • “Octav API”
  • “crypto portfolio API”
  • “blockchain portfolio tracking”
  • “/octav-api”

Requirements

  • A credential in YOUR_API_KEY
  • A credential in OCTAV_API_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Batch addresses: comma-separate them in one request — ?addresses=0x123,0x456,0x789 — to save credits versus one call each
  2. Use free endpoints: /v1/status, /v1/credits, /v1/chains, and /v1/chains/{chainKey}/protocols cost nothing
  3. Filter on server: Use networks, txTypes params vs client filtering
  4. Cache results: Portfolio cached 1 minute, transactions 10 minutes
  5. Check status first: Avoid unnecessary syncs

What it can do on your machine

Read from SKILL.md and the folder at commit fa89195. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.octav.fi

    Also links to:

    • docs.octav.fi
    • data.octav.fi
    • discord.com
    • protocols.octav.fi

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OCTAV_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Octav API loads about 3.8k tokens when it runs. Until then it costs about 176 tokens; SKILL.md has 935 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~176
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from internet-court/internet-court-skill at commit fa89195, republished under its MIT licence (© internet-court). 935 words, ~3,769 tokens.

Download SKILL.mdSave it as .claude/skills/octav-api/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
octav-api
description
Integrate with Octav API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics across 50+ blockchain networks. Use when building applications that need to: (1) Track wallet balances and net worth across multiple chains, (2) Query transaction history with filtering and search, (3) Monitor DeFi protocol positions (Aave, Uniswap, etc.), (4) Access historical portfolio snapshots, (5) Analyze token distribution and holdings, (6) Pay per request as an autonomous agent via x402. Triggers on: "Octav API", "crypto portfolio API", "blockchain portfolio tracking", "DeFi analytics API", "wallet balance API", "transaction history API", "multi-chain portfolio", "Octav x402".
license
MIT
metadata.author
Octav-Labs
metadata.version
1.1
metadata.website
https://octav.fi

Octav API Integration

API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics.

Quick Reference

Base URL: https://api.octav.fi Auth: Bearer token in Authorization header Rate Limit: 360 requests/minute/key Pricing: Credit-based ($0.02-0.025/credit) Dev Portal: https://data.octav.fi

Authentication

bash
curl -X GET "https://api.octav.fi/v1/credits" \
  -H "Authorization: Bearer YOUR_API_KEY"

Store API key in environment variable OCTAV_API_KEY. Never hardcode.

Access methods

Default to the API-key REST API documented below. It covers all 25 endpoints.

Octav also exposes 5 endpoints over the x402 payment protocol at /v1/agent/{portfolio,wallet,nav,status,chains} — 0.025 USDC per call on Base, no API key. Use x402 only when:

  • the user explicitly asked for x402 or pay-per-call access, or
  • the agent has its own funded wallet and no API key is available.

Otherwise use /v1/* with a Bearer token, and mention x402 exists if one of those cases applies. Do not start from x402 by default.

There is no /v1/agent/transactions — transaction history requires an API key.

Endpoints Overview

EndpointMethodCostDescription
/v1/portfolioGET1 creditPortfolio holdings across chains/protocols
/v1/portfolio/at-blockGETAdd-on + 1 creditPortfolio valued at a historical block (Ethereum)
/v1/virtual-usersGET1 creditList virtual users (Pro)
/v1/virtual-users/portfolioGET1 credit/addressVirtual user holdings (Pro)
/v1/navGET1 creditNet Asset Value — {nav, currency, conversionPrice}
/v1/walletGET1 creditWallet token balances, excludes DeFi positions
/v1/transactionsGET1 creditTransaction history with filtering
/v1/approvals/{chain}GET1 creditERC-20 token approval records
/v1/token-overviewGET1 creditToken breakdown by protocol (PRO only)
/v1/airdropGET1 creditClaimable airdrops (Solana only)
/v1/historicalGET1 creditHistorical portfolio snapshots
/v1/sync-transactionsPOST1+ creditsTrigger transaction sync
/v1/contract-protocolGET5 creditsResolve contract address to DeFi protocol (refunded on 404)
/v1/beacon/validators/*GETAdd-onETH validator details, rewards, withdrawals, deposits
/v1/chainsGETFreeList supported blockchain networks
/v1/chains/{chainKey}/protocolsGETFreeList protocols on a chain
/v1/statusGETFreeCheck sync status
/v1/creditsGETFreeCheck credit balance

Subscribe Snapshot (POST, 1200 credits) enables daily portfolio snapshots for an address, which /v1/historical then reads.

x402 endpoints (no API key — see Access methods above)
EndpointMethodCostDescription
/v1/agent/portfolioGET0.025 USDCWallet and protocol holdings
/v1/agent/walletGET0.025 USDCWallet holdings only
/v1/agent/navGET0.025 USDCNet Asset Value — {nav, currency, conversionPrice}
/v1/agent/statusGET0.025 USDCSync status
/v1/agent/chainsGET0.025 USDCSupported chains

An unpaid request returns HTTP 402 with a base64 payment-required header containing the payment challenge (USDC on Base, eip155:8453). An x402-capable HTTP client settles it and retries automatically.

Core Endpoints

Portfolio

Get holdings across wallets and DeFi protocols.

javascript
const response = await fetch(
  `https://api.octav.fi/v1/portfolio?addresses=${address}`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const portfolio = await response.json();
// portfolio.networth, portfolio.assetByProtocols, portfolio.chains

Parameters:

  • addresses (required): EVM or Solana address. Comma-separate multiple addresses in one request to save credits.
  • includeImages: Include asset/protocol image URLs (default: false)
  • includeExplorerUrls: Include block explorer URLs (default: false)
  • waitForSync: Wait for fresh data if stale (default: false)

Response structure:

json
{
  "address": "0x...",
  "networth": "45231.89",
  "assetByProtocols": {
    "wallet": { "key": "wallet", "name": "Wallet", "value": "12453.20", "assets": [...] },
    "aave_v3": { "key": "aave_v3", "name": "Aave V3", "value": "8934.12", "assets": [...] }
  },
  "chains": {
    "ethereum": { "value": "25123.45", "protocols": [...] },
    "arbitrum": { "value": "20108.44", "protocols": [...] }
  }
}
Nav (Net Asset Value)

Get net worth as a single value, optionally converted to another currency.

javascript
const response = await fetch(
  `https://api.octav.fi/v1/nav?addresses=${address}&currency=USD`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const { nav, currency, conversionPrice } = await response.json();
// { "nav": 1235564.43, "currency": "USD", "conversionPrice": 1 }

Parameters:

  • addresses (required): EVM or Solana address
  • currency: Fiat USD (default), EUR, CAD, AED, CHF, SGD; crypto ETH, SOL, cbBTC, EURC, BNB
  • waitForSync: Wait for fresh data if stale (default: false)

conversionPrice is the rate used — for fiat, the exchange rate from USD; for crypto, the weighted average USD price across the queried wallets.

Show full SKILL.md (420 more words)Show less
Transactions

Query transaction history with filtering.

javascript
const params = new URLSearchParams({
  addresses: '0x...',
  limit: '50',
  offset: '0',
  sort: 'DESC',
  hideSpam: 'true'
});

const response = await fetch(
  `https://api.octav.fi/v1/transactions?${params}`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);

Required parameters:

  • addresses: Wallet address(es)
  • limit: Results per page (1-250)
  • offset: Pagination offset

Optional filters:

  • sort: DESC (newest) or ASC (oldest)
  • networks: Chain filter (e.g., ethereum,arbitrum,base)
  • txTypes: Transaction type filter (e.g., SWAP,DEPOSIT)
  • protocols: Protocol filter (e.g., uniswap_v3,aave_v3)
  • hideSpam: Exclude spam (default: false)
  • hideDust: Exclude dust transactions (default: false)
  • startDate/endDate: ISO 8601 date range, UTC, both inclusive. endDate rounds up to the end of its calendar day (23:59:59Z), so for a single day set both to the same date; never set endDate to the next day's midnight (duplicates the boundary tx)
  • interactingAddresses: Filter by interacting addresses (comma-separated)
  • tokenId: Filter by NFT token ID
  • initialSearchText: Full-text search in assets

Response (array of transactions):

json
[{
  "hash": "0xa1b2c3...",
  "timestamp": "1699012800",
  "chain": { "key": "ethereum", "name": "Ethereum" },
  "type": "SWAP",
  "protocol": { "key": "uniswap_v3", "name": "Uniswap V3" },
  "fees": "0.002134",
  "feesFiat": "7.12",
  "assetsIn": [{ "symbol": "WETH", "amount": "1.5", "value": "4800.00" }],
  "assetsOut": [{ "symbol": "USDC", "amount": "4795.23", "value": "4795.23" }]
}]
Sync Transactions

Trigger manual sync for fresh transaction data.

javascript
const response = await fetch('https://api.octav.fi/v1/sync-transactions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ addresses: ['0x...'] })
});
// Returns: "Address is syncing" or "Address already syncing"

Cost: 1 credit + 1 credit per 250 transactions indexed (first-time only).

Status (Free)

Check sync status before expensive operations.

javascript
const response = await fetch(
  `https://api.octav.fi/v1/status?addresses=${address}`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const [status] = await response.json();
// status.portfolioLastSync, status.transactionsLastSync, status.syncInProgress
Credits (Free)

Check remaining credit balance.

javascript
const credits = await fetch('https://api.octav.fi/v1/credits', {
  headers: { 'Authorization': `Bearer ${apiKey}` }
}).then(r => r.json());
// Returns: 19033 (number)
Historical Portfolio

Get portfolio snapshot for a specific date. Requires subscription.

javascript
const response = await fetch(
  `https://api.octav.fi/v1/historical?addresses=${address}&date=2024-11-01`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);
Token Overview (PRO Only)

Detailed token breakdown by protocol.

javascript
const response = await fetch(
  `https://api.octav.fi/v1/token-overview?addresses=${address}&date=2024-11-01`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);

Transaction Types

Common types for filtering:

TypeDescription
TRANSFERINReceived tokens
TRANSFEROUTSent tokens
SWAPToken exchange
DEPOSITDeFi deposit
WITHDRAWDeFi withdrawal
STAKEStaking tokens
UNSTAKEUnstaking tokens
CLAIMReward claims
ADDLIQUIDITYLP deposit
REMOVELIQUIDITYLP withdrawal
BORROWLending protocol borrow
LENDLending protocol supply
BRIDGEIN / BRIDGEOUTCross-chain bridge
APPROVALToken approval
MINTNFT/token minting

Supported Chains

Full support (portfolio + transactions): ethereum, arbitrum, base, polygon, optimism, avalanche, binance, solana, blast, linea, gnosis, sonic, starknet, fraxtal, unichain

Portfolio only: scroll, zksync (era), mantle, manta, fantom, cronos, celo, and 40+ more

Use chain keys in networks filter: ?networks=ethereum,arbitrum,base

Error Handling

javascript
async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const response = await fetch(url, options);

    if (response.status === 429) {
      const retryAfter = response.headers.get('Retry-After') || 60;
      await new Promise(r => setTimeout(r, retryAfter * 1000));
      continue;
    }

    if (!response.ok) {
      const error = await response.json();
      throw new Error(`API Error ${response.status}: ${error.message}`);
    }

    return response;
  }
  throw new Error('Max retries exceeded');
}

Common errors:

  • 401: Invalid/missing API key
  • 402: Insufficient credits
  • 403: Endpoint requires PRO subscription
  • 429: Rate limit exceeded (wait and retry)
  • 404: Address not indexed (>100k transactions)

Cost Optimization

  1. Batch addresses: comma-separate them in one request — ?addresses=0x123,0x456,0x789 — to save credits versus one call each
  2. Use free endpoints: /v1/status, /v1/credits, /v1/chains, and /v1/chains/{chainKey}/protocols cost nothing
  3. Filter on server: Use networks, txTypes params vs client filtering
  4. Cache results: Portfolio cached 1 minute, transactions 10 minutes
  5. Check status first: Avoid unnecessary syncs

Common Patterns

Multi-wallet portfolio
javascript
const addresses = ['0x123...', '0x456...', '0x789...'];
const response = await fetch(
  `https://api.octav.fi/v1/portfolio?addresses=${addresses.join(',')}`,
  { headers: { 'Authorization': `Bearer ${apiKey}` } }
);
Paginated transaction fetch
javascript
async function getAllTransactions(address) {
  const transactions = [];
  let offset = 0;
  const limit = 250;

  while (true) {
    const response = await fetch(
      `https://api.octav.fi/v1/transactions?addresses=${address}&limit=${limit}&offset=${offset}&sort=DESC`,
      { headers: { 'Authorization': `Bearer ${apiKey}` } }
    );
    const batch = await response.json();
    if (batch.length === 0) break;
    transactions.push(...batch);
    offset += batch.length;
    if (batch.length < limit) break;
  }

  return transactions;
}
Smart sync workflow
javascript
async function smartSync(address) {
  // Check status first (free)
  const [status] = await fetch(
    `https://api.octav.fi/v1/status?addresses=${address}`,
    { headers: { 'Authorization': `Bearer ${apiKey}` } }
  ).then(r => r.json());

  const lastSync = new Date(status.transactionsLastSync);
  const minutesSinceSync = (Date.now() - lastSync) / 1000 / 60;

  if (minutesSinceSync > 10 && !status.syncInProgress) {
    await fetch('https://api.octav.fi/v1/sync-transactions', {
      method: 'POST',
      headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' },
      body: JSON.stringify({ addresses: [address] })
    });
  }
}

TypeScript Interfaces

typescript
interface Portfolio {
  address: string;
  networth: string;
  cashBalance: string;
  dailyIncome: string;
  dailyExpense: string;
  fees: string;
  feesFiat: string;
  lastUpdated: string;
  assetByProtocols: Record<string, Protocol>;
  chains: Record<string, Chain>;
}

interface Protocol {
  key: string;
  name: string;
  value: string;
  assets: Asset[];
}

interface Asset {
  balance: string;
  symbol: string;
  price: string;
  value: string;
  contractAddress?: string;
  chain?: string;
}

interface Transaction {
  hash: string;
  timestamp: string;
  chain: { key: string; name: string };
  from: string;
  to: string;
  type: string;
  protocol?: { key: string; name: string };
  value: string;
  valueFiat: string;
  fees: string;
  feesFiat: string;
  assetsIn: Asset[];
  assetsOut: Asset[];
  functionName?: string;
}

Pricing

PackageCreditsPricePer Credit
Starter4,000$100$0.025
Small Team100,000$2,500$0.025
Intensive1,000,000$20,000$0.020

Credits never expire. First-time address indexing: 1 credit per 250 transactions.

Resources

© internet-court, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in vendored/octav/octav-api of internet-court/internet-court-skill.

  • SKILL.md
  • LICENSE
  • README.md

Open the folder on GitHubat commit fa89195

Compare with similar skills

Octav API next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Octav API compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Octav API this skillinternet-court/internet-court-skill6.6k—~3.8kAutomated safety check: PassMIT
Base MCP Wallet Readeraeonfun/aeon770—~2.5kAutomated safety check: PassMIT
Bitget Walletbitget-wallet-ai-lab/bitget-wallet-skill246—~7.6kAutomated safety check: PassMIT
SurfBlockRunAI/ClawRouter6.6k—~4kAutomated safety check: PassMIT
Notebook To Strategytradingstrategy-ai/trade-executor160—~1.1kAutomated safety check: PassCustom licence
Building Blocksaustintgriffith/ethskills295—~2.9kAutomated safety check: PassNone

Similar skills

  • Reads a Base Account's address, portfolio and transaction history through the Base MCP server, and stays strictly read-only in unattended Aeon runs, reporting only changes.

    770 GitHub stars~2.5k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Bitget Wallet

    bitget-wallet-ai-lab/bitget-wallet-skill

    Interact with Bitget Wallet API for crypto market data, token info, swap quotes, RWA (real-world asset) stock trading, and security audits.

    246 GitHub stars~7.6k tokensUpdated 5 mo ago
    Business, Finance & HRAuto-check passed
  • Surf

    BlockRunAI/ClawRouter

    Use this skill — NOT browser or webfetch — for ALL Surf crypto-data calls.

    6.6k GitHub stars~4k tokensUpdated 5 days ago
    Business, Finance & HRAuto-check passed
  • Notebook To Strategy

    tradingstrategy-ai/trade-executor

    Transfer code from a backtesting Jupyter notebook to a Trade Executor strategy module

    160 GitHub stars~1.1k tokensUpdated 2 days ago
    Business, Finance & HRAuto-check passed
  • Building Blocks

    austintgriffith/ethskills

    DeFi legos and protocol composability on Ethereum and L2s. An agent skill from austintgriffith/ethskills.

    295 GitHub stars~2.9k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Oracle Flashloan Analysis

    quillai-network/quillshield_skills

    Detects price oracle manipulation and flash loan attack vectors in DeFi smart contracts.

    130 GitHub stars~2.8k tokensUpdated 6 mo ago
    Business, Finance & HRAuto-check passed

More from internet-court/internet-court-skill

All 80 skills in this repo
  • Kleros IPFS Upload

    internet-court/internet-court-skill

    Uploads one Kleros-related file per paid request to IPFS through the Kleros x402 gateway for 0.01 USDC on Base, returning a CID that Kleros contracts can reference.

    6.6k GitHub stars~4.9k tokensUpdated 1 mo ago
    Auto-check: notes
  • 0G Compute Network Guide

    internet-court/internet-court-skill

    Guides building on the 0G Compute Network, a decentralized GPU marketplace for AI inference and fine-tuning, with SDK patterns and CLI commands.

    6.6k GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • PNP Prediction Markets on Solana

    internet-court/internet-court-skill

    Creates, trades and settles permissionless prediction markets on Solana with any SPL token as collateral, including social-media and custom-oracle markets.

    6.6k GitHub stars~7.5k tokensUpdated 1 mo ago
    Auto-check: notes
  • BNB Chain MCP Server

    internet-court/internet-court-skill

    Connects an agent to the BNB Chain MCP server to read blocks and contracts, move tokens and NFTs, register ERC-8004 agents and use Greenfield storage.

    6.6k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • GenLayer ERC-7710 Connector

    internet-court/internet-court-skill

    Specifies how a GenLayer Intelligent Contract decision about an agent's performance becomes an ERC-7710 revocation or policy change, through a relayer or bridge and an EVM controller.

    6.6k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • GenLayer Agent Supervision Adapter

    internet-court/internet-court-skill

    Specifies how a GenLayer Intelligent Contract should supervise an AI agent, with review rubrics, evidence schemas and continue, warn, constrain or revoke decisions.

    6.6k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed

Works with

Questions about Octav API

What does Octav API do?

Integrate with Octav API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics across 50+ blockchain networks. Octav API is an agent skill from internet-court/internet-court-skill. Integrate with Octav API for cryptocurrency portfolio tracking, transaction history, and DeFi analytics across 50+ blockchain networks.

When should I use Octav API?

Octav API fits situations like: building applications that need to:; track wallet balances and net worth across multiple chains; query transaction history with filtering and search; monitor DeFi protocol positions (Aave.

How do I install Octav API in Claude Code?

Run `npx skills add internet-court/internet-court-skill --skill octav-api -a claude-code`. Or copy the skill folder (vendored/octav/octav-api in internet-court/internet-court-skill) into .claude/skills/octav-api in your project. Claude Code loads it when a task matches its description.

How do I install Octav API in Codex?

Run `npx skills add internet-court/internet-court-skill --skill octav-api -a codex`. Or copy the skill folder (vendored/octav/octav-api in internet-court/internet-court-skill) into .agents/skills/octav-api in your project. Codex loads it when a task matches its description.

Can I use Octav API in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add internet-court/internet-court-skill --skill octav-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/octav-api, .gemini/skills/octav-api, .github/skills/octav-api and .opencode/skills/octav-api in your project.

What does Octav API need to run?

Going by SKILL.md and its folder, Octav API needs the command-line tools its instructions call (curl) and credentials named OCTAV_API_KEY. Our summary lists: A credential in YOUR_API_KEY; A credential in OCTAV_API_KEY.

Does Octav API access the network?

SKILL.md names 5 domains. In commands or code: api.octav.fi; the agent is likely to contact it when it follows the instructions. As links in the text: docs.octav.fi, data.octav.fi, discord.com and protocols.octav.fi. This is read from the text; nothing was executed.

Is Octav API safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Octav API use?

Octav API is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Octav API use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Octav API?

Skills that share tags, products or a category with Octav API: Base MCP Wallet Reader (aeonfun/aeon, 770 stars), Bitget Wallet (bitget-wallet-ai-lab/bitget-wallet-skill, 246 stars), Surf (BlockRunAI/ClawRouter, 6.6k stars) and Notebook To Strategy (tradingstrategy-ai/trade-executor, 160 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Octav API?

internet-court (a GitHub organization) maintains it in internet-court/internet-court-skill, which has 6,551 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on August 19, 2026.

Source: internet-court/internet-court-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.