← Back to Skills Marketplace
metobom

Api3 Data Feed Explorer

by metobom · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
29
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install api3-data-feed-explorer
Description
Explore and analyze Api3 data feeds using public data. Lists which providers support which feeds, shows aggregation composition, fetches latest prices, compa...
README (SKILL.md)

Api3 Data Feed Explorer

Analyze Api3 data feeds using only public data sources: Signed API endpoints, on-chain dAPI reads, and public exchange APIs.

Scripts

All scripts live in {baseDir}/scripts/.

explore-data-feeds.ts

Fetches per-provider off-chain data for a feed from Signed API:

ts-node {baseDir}/scripts/explore-data-feeds.ts \x3CFEED_NAME>

Example: ts-node {baseDir}/scripts/explore-data-feeds.ts BTC/USD

Output starts with a config freshness note, then two summary lists, then one block per provider:

Note that this dAPI configuration is updated at 2026-06-11T12:00:00.000Z and may not reflect the latest changes.

Providers that support this feed:
[ '- blocksize', '- coingecko' ]
Providers that are used in the aggregation of this feed:
[ '- blocksize', '- coingecko' ]
**************************************************
- API Alias: blocksize
- Data Feed ID: 0x3502633779071a82a8a6a17e9ade05e97aa45dfc390b934cd360bef2e983edd7
- Signed API URL: https://signed-api.api3.org/public/0xBA910Eb2867977A0a651FE3D2607237ff4116B1C
- Homepage: https://www.blocksize.info
- Value: 62883.522017606105
- Timestamp: 2026-06-11T14:10:03.000Z
**************************************************
...

The config freshness timestamp is the last-modified date of the feed configuration, not the data itself.

get-chains.ts

Lists all chains supported by Api3, with their name, alias, and numeric id:

ts-node {baseDir}/scripts/get-chains.ts

Use this to discover valid chain aliases before calling read-data-feed.ts.

get-dapis.ts

Lists all currently active dAPI names:

ts-node {baseDir}/scripts/get-dapis.ts

Use this to enumerate available feeds or verify a feed name before passing it to other scripts.

read-data-feed.ts

Reads the on-chain value and timestamp for a feed on a specific chain:

ts-node {baseDir}/scripts/read-data-feed.ts \x3CFEED_NAME> \x3CCHAIN_ALIAS>

Example: ts-node {baseDir}/scripts/read-data-feed.ts BTC/USD ethereum

Output:

Proxy address: 0x...
value     : 62901.234567890123
timestamp : 2026-06-11T14:08:00.000Z

The script derives the Api3ReaderProxyV1 proxy address from the feed name and chain, then reads it via the chain's default public RPC. Use get-chains.ts to find valid chain aliases.

Capabilities

1. List which providers support which feeds

Run explore-data-feeds.ts for the requested feed(s). The "Providers that support this feed" list in the output are the ones supporting that feed. To answer "which feeds does provider X support", run the script across the relevant feeds and collect where the provider's alias appears.

2. Show which providers are used in a feed's aggregation

Run explore-data-feeds.ts for the feed. The "Providers that are used in the aggregation" list shows the aggregation participants. Report the provider aliases and count. Note feeds with few providers (≤3) as concentration risk.

3. Fetch latest prices for any feed

Run explore-data-feeds.ts and report:

  • The median of all provider values (this approximates the served price)
  • Each provider's value and timestamp
  • Flag any provider whose timestamp is older than 5 minutes as stale

4. Per-provider price comparison (spread, outliers, live)

From the explore-data-feeds.ts output, compute:

  • Median of all provider values
  • Spread: (max - min) / median, as a percentage
  • Per-provider deviation: (value - median) / median, as a percentage
  • Outliers: any provider deviating more than 0.5% from the median (adjust threshold for volatile or low-liquidity assets)
  • Freshness: age of each provider's timestamp relative to now

Present results as a table: provider | value | deviation % | timestamp age. Call out outliers and stale providers explicitly.

5. On-chain vs. off-chain gap (staleness check)

  1. Compute the live off-chain median from the script output (capability 4).
  2. If the user has not specified a chain, ask which chain to check (run get-chains.ts to list valid aliases).
  3. Read the on-chain value with read-data-feed.ts \x3CFEED_NAME> \x3CCHAIN_ALIAS>.
  4. Report:
    • On-chain value and its timestamp
    • Live off-chain median
    • Gap percentage: (off-chain median - on-chain value) / on-chain value
    • Time since last on-chain update

Interpretation: on-chain data is updated on a 24h heartbeat or whenever the off-chain median deviates from the current on-chain value beyond the feed's deviation threshold. A gap within that threshold with an on-chain timestamp under 24h is healthy. A gap exceeding the threshold, or an on-chain timestamp older than 24h, indicates the update mechanism may be stalled.

6. List supported chains

Run get-chains.ts and report the chain names, aliases, and ids. Use this to answer "what chains does Api3 support?" or to look up a chain alias before calling read-data-feed.ts.

7. List active dAPIs

Run get-dapis.ts and report the names. Use this to answer "what feeds are available?" or to confirm a feed name exists before running other scripts.

8. Feed vs. exchange spot composite (divergence check)

  1. Compute the off-chain median from the script output.
  2. Fetch spot prices for the same pair from public exchange APIs (no keys required), e.g.:
    • Binance: https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT
    • Coinbase: https://api.coinbase.com/v2/prices/BTC-USD/spot
    • Kraken: https://api.kraken.com/0/public/Ticker?pair=XBTUSD
  3. Compute the exchange composite as the median of fetched spot prices.
  4. Report: feed median, exchange composite, divergence percentage.
  5. Flag divergence above 0.5% as notable, above 1% as significant.

Note: stablecoin-quoted pairs (USDT) vs USD pairs can legitimately differ slightly; mention this when comparing.

Workflow guidance

  • Always run the script fresh for each question; do not reuse stale output across questions.
  • When asked a general health question ("is BTC/USD healthy?"), run capabilities 4, 5, and 8 together and give a one-paragraph verdict followed by the numbers.
  • Report timestamps in UTC and include data age in human-readable form ("23s ago").
  • Never invent provider names, values, or feed IDs. Only report what the script and public APIs return. If a feed name is not found, say so.
  • All data used by this skill is public. Do not attempt to access internal alerting, dashboards, or private infrastructure.

Limitations

  • Provider list reflects the current feed configuration; historical composition is not available.
  • The off-chain median computed here approximates but may not exactly match the on-chain aggregation logic.
  • Exchange composite is an external sanity reference, not the feed's source of truth.
Usage Guidance
This appears safe for users who want public Api3 feed analysis. Before installing, be aware it will make outbound requests to public Api3, blockchain RPC, and exchange endpoints, and results depend on live third-party data and package dependency behavior at install time.
Capability Tags
crypto
Capability Assessment
Purpose & Capability
The stated purpose is exploring Api3 dAPI/feed health, and the artifacts implement that through read-only scripts that list feeds/chains, fetch public Signed API data, and read on-chain feed values.
Instruction Scope
Runtime instructions are narrowly scoped to user-directed feed and chain queries, with explicit guidance to use public data and not access private infrastructure.
Install Mechanism
The package has normal npm dependencies and no lifecycle scripts; it uses a latest dependency for @api3/dapi-management, which is a reproducibility consideration but not evidence of unsafe behavior.
Credentials
Network access to public Api3, blockchain RPC, and exchange APIs is expected for the skill's price-feed analysis purpose; no local file, credential, or private data access was found.
Persistence & Privilege
No persistence, privilege escalation, background workers, shell execution, local auth/session access, or data mutation behavior appears in the artifacts.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install api3-data-feed-explorer
  3. After installation, invoke the skill by name or use /api3-data-feed-explorer
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release of the Api3 Data Feed Explorer skill. - Explore and analyze Api3 dAPIs using public data: lists provider coverage, shows aggregation makeup, latest prices, and outliers. - Fetch on-chain vs off-chain prices, check staleness, and compare feed values against public exchange spot prices. - Provides scripts for: listing supported chains, active feeds, provider-feed mapping, and per-provider metrics. - Helps answer questions about Api3 dAPI health, provider composition, price deviations, and data freshness.
Metadata
Slug api3-data-feed-explorer
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Api3 Data Feed Explorer?

Explore and analyze Api3 data feeds using public data. Lists which providers support which feeds, shows aggregation composition, fetches latest prices, compa... It is an AI Agent Skill for Claude Code / OpenClaw, with 29 downloads so far.

How do I install Api3 Data Feed Explorer?

Run "/install api3-data-feed-explorer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Api3 Data Feed Explorer free?

Yes, Api3 Data Feed Explorer is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Api3 Data Feed Explorer support?

Api3 Data Feed Explorer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Api3 Data Feed Explorer?

It is built and maintained by metobom (@metobom); the current version is v0.1.0.

💬 Comments