# Verifying an ETH price response through API3's AirnodeHub

Canonical: https://forkbrief.com/news/32302bf9-7110-469c-a567-58325591c44f
Published: 2026-09-11T02:22:04.084Z
Publisher: Fork Brief

A documented CoinGecko example shows how developers can bind a signed API response to the request their agent actually made.

API3's AirnodeHub documents an MCP workflow for discovering APIs, requesting data and checking the returned signature. Connect an MCP client using Streamable HTTP, then use get-listing-details for the coingecko listing to inspect its operations and signing address. [airnodehub-docs.api3.org](https://airnodehub-docs.api3.org/api-consumers/mcp)

The documented ETH/USD example uses call-operation with listing coingecko, operation simplePrice and parameters ids set to ethereum and vs_currencies set to usd. Its response includes the data, signing address, request hash, timestamp and signature. This is a walkthrough of API3's example, rather than a reported live price. [airnodehub-docs.api3.org](https://airnodehub-docs.api3.org/api-consumers/mcp)

Pass that response to verify-attestation with the same listing, operation and parameters. Supplying the request lets the verifier recompute its hash; omitting it weakens the check to who signed. If the request included responseProjection, pass that too: a projection changes what the signature covers. [airnodehub-docs.api3.org](https://airnodehub-docs.api3.org/api-consumers/mcp)

Developers can also verify locally using the published EIP-191 signature procedure. Verification binds the response to an address, request and timestamp; it does not independently establish the market price's accuracy. A third-party listing identifies the relay signing the response, while a first-party listing is operated by the original data source. [airnodehub-docs.api3.org](https://airnodehub-docs.api3.org/airnode/attestation); [airnodehub-docs.api3.org](https://airnodehub-docs.api3.org/api-consumers/)

[Explore AirnodeHub](https://airnodehub.api3.org/) to browse the current API catalogue.

## Sources

- [MCP | AirnodeHub](https://airnodehub-docs.api3.org/api-consumers/mcp) — airnodehub-docs.api3.org
- [Attestation | AirnodeHub](https://airnodehub-docs.api3.org/airnode/attestation) — airnodehub-docs.api3.org
- [For API consumers | AirnodeHub](https://airnodehub-docs.api3.org/api-consumers/) — airnodehub-docs.api3.org

- [Editorial policy](https://forkbrief.com/editorial-policy)
- [Request a correction](https://forkbrief.com/corrections)
