{"name":"io.github.sandeep-antier/abstraxn","slug":"sandeep-antier-abstraxn","title":"Abstraxn Agent Layer","description":"Abstraxn: public Web3 MCP server for read-only chain data and pay-per-call relays.","url":"https://mcp.market/server/sandeep-antier-abstraxn","rating":null,"grade":"C","score":68,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":22,"stars":4,"forks":0,"downloads_week":null,"last_push_at":"2026-08-21T11:54:29.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T01:25:50.444Z","last_ok_at":"2026-11-04T01:25:50.444Z","latency_ms":486},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Abstraxn-Labs/abstraxn-agent-layer","website":null,"version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://mcp.abstraxn.com/mcp"}],"packages":[],"tools":[{"name":"market.crypto","description":"Crypto market-data lookups (CoinGecko-sourced pricing and market data), paid per call in USDC/USDm directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`:\n\n- search ($0.001): fuzzy-search coins by name/symbol. Requires `q`. Call this first to resolve a coin id before using price_feed or historical_data, both of which need an id (e.g. \"bitcoin\"), not a ticker.\n- price_feed ($0.001): current price (and optionally 24h change / market cap) for one or more coins. Requires `ids` (comma-separated coin ids). Optional `currencies` (comma-separated fiat codes, default \"usd\"), `include_24h` (default true), `include_mcap` (default false).\n- market_data ($0.002): coins ranked by market cap (or another order) — use for \"top N coins\" / market overview questions. Optional `currency` (default \"usd\"), `category`, `order` (default \"market_cap_desc\"), `limit` (1-250, default 100), `page` (default 1).\n- historical_data ($0.003): historical price/market cap/volume series for one coin. Requires `id`. Optional `currency` (default \"usd\"), `days` (lookback window or \"max\", default 30), `interval` (e.g. \"daily\").\n- trending ($0.001): currently trending coins by search interest. No extra parameters.\n- token_prices ($0.005): DEX-derived prices for up to 200 tokens in one call. Requires `tokens`, an array of `{chain, token_address}` objects.\n\nPrices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","enum":["search","price_feed","market_data","historical_data","trending","token_prices"],"description":"Which market-data operation to perform."},"q":{"description":"search: coin name or symbol to search for, e.g. \"btc\".","type":"string"},"ids":{"description":"price_feed: comma-separated coin IDs, e.g. \"bitcoin,ethereum\".","type":"string"},"currencies":{"description":"price_feed: comma-separated fiat currency codes, default \"usd\".","type":"string"},"include_24h":{"description":"price_feed: include 24h price change (default true).","type":"boolean"},"include_mcap":{"description":"price_feed: include market cap (default false).","type":"boolean"},"currency":{"description":"market_data / historical_data: currency code, default \"usd\".","type":"string"},"category":{"description":"market_data: category filter, e.g. \"decentralized-finance-defi\".","type":"string"},"order":{"description":"market_data: sort order, default \"market_cap_desc\".","type":"string"},"limit":{"description":"market_data: max results, default 100.","type":"integer","minimum":1,"maximum":250},"page":{"description":"market_data: page number, default 1.","type":"integer","minimum":1,"maximum":9007199254740991},"id":{"description":"historical_data: coin id, e.g. \"bitcoin\".","type":"string"},"days":{"description":"historical_data: lookback window in days, or \"max\". Default 30.","type":"string"},"interval":{"description":"historical_data: data granularity, e.g. \"daily\".","type":"string"},"tokens":{"description":"token_prices: array of {chain, token_address} pairs to price, max 200 entries.","maxItems":200,"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"token_address":{"type":"string"}},"required":["chain","token_address"]}},"paymentPayload":{"description":"x402 payment payload from a previous `paymentRequired` challenge. Omit on the first call.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["action"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"network.blocknumber","description":"Read the current chain head — EVM block number or Solana slot — for a supported network. Free, read-only, no wallet needed.\n\nUse this to confirm a network is progressing before submitting a transaction, correlate off-chain events with on-chain height, or choose a safe starting point when scanning logs.\n\nPass `chain` as one of: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia. Omit `chain` (or pass `all`) to query every resolvable chain in one call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"description":"Blockchain network, or \"all\" (default) for every supported chain. One of: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia, all","type":"string","enum":["solana","solana-devnet","ethereum","sepolia","polygon","amoy","bsc","bsc-testnet","base","base-sepolia","tempo","tempo-testnet","arbitrum-one","monad","skale-base-sepolia","all"]}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"network.gas_info","description":"Get the current gas price and EIP-1559 fee hints for an EVM chain. Free, read-only, no wallet needed.\n\nUse this to estimate transaction cost or explain fees to a user before they send a transaction. `chain` is required. Supported chains: ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","sepolia","polygon","amoy","bsc","bsc-testnet","base","base-sepolia","tempo","tempo-testnet","arbitrum-one","monad","skale-base-sepolia"],"description":"EVM network slug. One of: ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia"}},"required":["chain"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"network.prepare_transfer","description":"Build an **unsigned** native or token transfer transaction for a supported chain, from an explicit sender you provide. Free, read-only against the chain (nonce/gas/fees are read live) — this tool never signs, broadcasts, holds a key, or enforces any allowlist/spend limit. This server never binds a caller wallet, so `from` is always required.\n\nSupported chains: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.\n\nToken (`token` field):\n- Solana: 'SOL' (native, default) or 'USDC'.\n- EVM: native symbol (default), 'USDC', 'USDC.e' where configured for the chain, or a raw 0x contract address (decimals are read live from the contract; `token_decimals` is only a fallback if that read fails).\n\nGas: the sender pays gas in the chain's native token once they sign — this server never sponsors it.\n\nRaw calldata (EVM only): pass `data` (hex, 0x-prefixed) with `to` as the contract call target and `amount` as the native value to send (use \"0\" for a pure call).\n\nPrivacy (`private`, EVM only): requests SKALE BITE encryption, only supported on skale-base-sepolia, where it defaults to true — pass `private: false` there for a plaintext transfer. Rejected on every other chain.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["solana","solana-devnet","ethereum","sepolia","polygon","amoy","bsc","bsc-testnet","base","base-sepolia","tempo","tempo-testnet","arbitrum-one","monad","skale-base-sepolia"],"description":"Destination chain. One of: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia"},"from":{"type":"string","description":"Sender address (0x for EVM, base58 for Solana)."},"to":{"type":"string","description":"Recipient address (0x for EVM, base58 for Solana)."},"amount":{"type":"string","description":"Amount in human units (e.g. \"0.1\", \"100\"). Use \"0\" for a contract call that sends no native value."},"token":{"description":"Token symbol (native/USDC/USDC.e) or EVM contract address. Omit for the chain's native token.","type":"string"},"token_decimals":{"description":"Fallback decimals for an EVM ERC-20 if a live decimals() read fails (default 18).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"description":"Hex-encoded calldata for a raw EVM contract call (0x-prefixed). Requires `to` as the call target.","type":"string"},"private":{"description":"Request BITE privacy encryption. Only valid on skale-base-sepolia (defaults true there); rejected elsewhere.","type":"boolean"}},"required":["chain","from","to","amount"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"network.token_info","description":"Read ERC-20 token metadata — name, symbol, decimals, total supply — for a token contract on an EVM chain. Free, read-only.\n\nPass `token` as a contract address (0x…) or symbol `USDC` / `USDC.e` on chains where a lookup is configured. This server never holds a caller wallet, so no balance is ever returned — only public token metadata. Both `chain` and `token` are required. Supported chains: ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","sepolia","polygon","amoy","bsc","bsc-testnet","base","base-sepolia","tempo","tempo-testnet","arbitrum-one","monad","skale-base-sepolia"],"description":"EVM network for the token contract."},"token":{"type":"string","description":"ERC-20 contract address (0x…) or symbol USDC / USDC.e where configured for the chain."}},"required":["chain","token"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"network.token_price","description":"Get a spot token price from a public market API (CoinGecko). Free — no payment or wallet needed. Defaults to ETH/USD.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"description":"CoinGecko token id (e.g. \"ethereum\", \"bitcoin\", \"solana\"). Defaults to \"ethereum\".","type":"string"},"vsCurrency":{"description":"Quote currency code. Defaults to \"usd\".","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"network.transaction_status","description":"Check the status of a transaction. Supports both EVM (transaction hash) and Solana (signature). Free, read-only.\n\nUse this to confirm a transfer landed, debug a failed transaction, or report status to a user. Both `chain` and `transaction_hash` are required. Available chains: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["solana","solana-devnet","ethereum","sepolia","polygon","amoy","bsc","bsc-testnet","base","base-sepolia","tempo","tempo-testnet","arbitrum-one","monad","skale-base-sepolia"],"description":"Blockchain network. One of: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia"},"transaction_hash":{"type":"string","description":"Transaction hash (EVM, 0x + 64 hex) or Solana signature (base58)."}},"required":["chain","transaction_hash"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"places.lookup","description":"Places, solar, and aerial-view lookups, paid per call directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`:\n\n- text_search_full ($0.08): full-detail place text search. Requires `textQuery`. Optional `maxResultCount` (1-5, default 5), `excludeFields` (default [\"photos\"]), `pageToken`, `locationBias` ({circle:{center:{latitude,longitude},radius}}), `includedType`, `languageCode` (default \"en\"), `openNow`, `minRating` (0-5), `priceLevels`.\n- text_search_partial ($0.02): same as text_search_full but returns fewer fields per place — cheaper for quick lookups. Same parameters.\n- nearby_search_full ($0.08): full-detail search for places within a radius. Requires `locationRestriction` ({circle:{center:{latitude,longitude},radius (0-50000)}}) — do NOT send a bare top-level latitude/longitude/radius. Optional `includedTypes`/`excludedTypes` (max 50 each), `maxResultCount` (1-5, default 5), `excludeFields` (default [\"photos\"]), `languageCode` (default \"en\"), `rankPreference` (POPULARITY default, or DISTANCE).\n- nearby_search_partial ($0.02): same as nearby_search_full, fewer fields, cheaper. Same parameters.\n- place_details_full ($0.05): full details for one place. Requires `placeId` — the exact place id returned by an earlier text_search/nearby_search result; do not invent or guess it. Optional `excludeFields` (default [\"photos\"]), `languageCode` (default \"en\").\n- place_details_partial ($0.02): same as place_details_full, fewer fields, cheaper. Same parameters.\n- solar_building_insights ($0.02): rooftop solar potential for one location. Requires `latitude` (-90..90) and `longitude` (-180..180). Optional `requiredQuality` (LOW/MEDIUM/HIGH, default HIGH).\n- solar_data_layers ($0.08): raw solar data layers for an area. Requires `latitude`, `longitude`. Optional `radiusMeters` (0.1-175, default 50), `view` (default \"FULL_LAYERS\"), `requiredQuality` (default HIGH), `pixelSizeMeters` (default 0.25, documented as one of 0.1/0.25/0.5/1.0 but not schema-enforced), `exactQualityRequired` (default false).\n- solar_rgb_image ($0.05): renders one of the solar_data_layers assets as a viewable image. Either `id` (the exact asset id already returned by an earlier solar_data_layers call — \"Mode A\"; do not invent or guess it) OR both `latitude` and `longitude` (\"Mode B\") is required — provide exactly one mode, not both. Optional `radiusMeters` (0.1-100, default 30, Mode B only), `layer` (default \"rgb\"), `month` (1-12), `hour` (0-23), `format` (png/jpeg, default png), `scale` (1-2, default 1), `crop` (default false), `quality` (1-100, default 85).\n- aerial_view_lookup_video ($0.01): check whether a rendered aerial-view video already exists / poll its render status. Exactly one of `address` or `videoId` is required — `videoId` must be the exact value returned by an earlier aerial_view_render_video call; do not invent or guess it.\n- aerial_view_render_video ($0.01): kick off rendering a new aerial-view video for an address. Requires `address`. Poll aerial_view_lookup_video with the returned videoId until ready.\n\nPagination: text_search_full/partial and nearby_search_full/partial return `nextPageToken` when more results exist — repeat the ORIGINAL call (same textQuery / locationRestriction / etc.) with `pageToken` set to page further. `pageToken` must be the exact `nextPageToken` value from that earlier response — do not invent or guess it.\nexcludeFields: colon-separated nested-path syntax trims nested response fields, e.g. \"organization:technologies\" excludes just that sub-field. All place-search/details actions default-exclude `photos` if `excludeFields` is omitted — pass `excludeFields: []` to include photos.\n\nPrices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","enum":["text_search_full","text_search_partial","nearby_search_full","nearby_search_partial","place_details_full","place_details_partial","solar_building_insights","solar_data_layers","solar_rgb_image","aerial_view_lookup_video","aerial_view_render_video"],"description":"Which places/solar/aerial-view operation to perform."},"textQuery":{"description":"text_search_full / text_search_partial: free-text query, e.g. \"coffee shops in Brooklyn\".","type":"string"},"locationBias":{"description":"text_search_full / text_search_partial: soft location bias. Optional.","type":"object","properties":{"circle":{"type":"object","properties":{"center":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"]},"radius":{"type":"number"}},"required":["center"]}},"required":["circle"]},"includedType":{"description":"text_search_full / text_search_partial: restrict to one place type, e.g. \"restaurant\". Optional.","type":"string"},"openNow":{"description":"text_search_full / text_search_partial: only return places currently open. Optional.","type":"boolean"},"minRating":{"description":"text_search_full / text_search_partial: minimum average rating filter (0-5). Optional.","type":"number","minimum":0,"maximum":5},"priceLevels":{"description":"text_search_full / text_search_partial: filter by one or more price levels. Optional.","type":"array","items":{"type":"string","enum":["PRICE_LEVEL_FREE","PRICE_LEVEL_INEXPENSIVE","PRICE_LEVEL_MODERATE","PRICE_LEVEL_EXPENSIVE","PRICE_LEVEL_VERY_EXPENSIVE"]}},"locationRestriction":{"description":"nearby_search_full / nearby_search_partial: REQUIRED hard boundary — {circle:{center:{latitude,longitude}, radius (0-50000)}}.","type":"object","properties":{"circle":{"type":"object","properties":{"center":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"]},"radius":{"type":"number","minimum":0,"maximum":50000}},"required":["center","radius"]}},"required":["circle"]},"includedTypes":{"description":"nearby_search_full / nearby_search_partial: place types to include. Optional.","maxItems":50,"type":"array","items":{"type":"string"}},"excludedTypes":{"description":"nearby_search_full / nearby_search_partial: place types to exclude. Optional.","maxItems":50,"type":"array","items":{"type":"string"}},"rankPreference":{"description":"nearby_search_full / nearby_search_partial: result ranking, default POPULARITY. Optional.","type":"string","enum":["POPULARITY","DISTANCE"]},"maxResultCount":{"description":"text/nearby search: max results per page (1-5, default 5). Optional.","type":"integer","minimum":1,"maximum":5},"excludeFields":{"description":"Nested-path field names to exclude from the response (colon-separated for nested paths, e.g. \"organization:technologies\"). Defaults to [\"photos\"] on every place-search/details action if omitted — pass [] to include photos. Optional.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"string"}]},"pageToken":{"description":"text/nearby search: pagination token from a previous nextPageToken. Optional.","type":"string"},"languageCode":{"description":"text/nearby search, place details: response language, default \"en\". Optional.","type":"string"},"placeId":{"description":"place_details_full / place_details_partial: REQUIRED place id.","type":"string"},"latitude":{"description":"solar_building_insights / solar_data_layers / solar_rgb_image (Mode B): latitude.","type":"number","minimum":-90,"maximum":90},"longitude":{"description":"solar_building_insights / solar_data_layers / solar_rgb_image (Mode B): longitude.","type":"number","minimum":-180,"maximum":180},"requiredQuality":{"description":"solar_building_insights / solar_data_layers: minimum imagery quality, default HIGH. Optional.","type":"string","enum":["LOW","MEDIUM","HIGH"]},"view":{"description":"solar_data_layers: which layer set to return, default FULL_LAYERS. Optional.","type":"string","enum":["DSM_LAYER","IMAGERY_LAYERS","IMAGERY_AND_ANNUAL_FLUX_LAYERS","IMAGERY_AND_ALL_FLUX_LAYERS","FULL_LAYERS"]},"pixelSizeMeters":{"description":"solar_data_layers: pixel resolution in meters, default 0.25. One of 0.1/0.25/0.5/1.0 by convention but not schema-enforced. Optional.","type":"number"},"exactQualityRequired":{"description":"solar_data_layers: fail instead of falling back to lower quality, default false. Optional.","type":"boolean"},"radiusMeters":{"description":"solar_data_layers: radius in meters (0.1-175, default 50). solar_rgb_image (Mode B only): radius in meters (0.1-100, default 30). Optional.","type":"number"},"id":{"description":"solar_rgb_image (Mode A): asset id from a prior solar_data_layers call.","type":"string"},"layer":{"description":"solar_rgb_image: which layer to render, default \"rgb\". Optional.","type":"string","enum":["rgb","dsm","annualFlux","monthlyFlux","hourlyShade","mask"]},"month":{"description":"solar_rgb_image: month for monthlyFlux/hourlyShade layers. Optional.","type":"integer","minimum":1,"maximum":12},"hour":{"description":"solar_rgb_image: hour for hourlyShade layer. Optional.","type":"integer","minimum":0,"maximum":23},"format":{"description":"solar_rgb_image: output image format, default png. Optional.","type":"string","enum":["png","jpeg"]},"scale":{"description":"solar_rgb_image: image scale factor, default 1. Optional.","type":"integer","minimum":1,"maximum":2},"crop":{"description":"solar_rgb_image: crop to a circle, default false. Optional.","type":"boolean"},"quality":{"description":"solar_rgb_image: JPEG quality (1-100), default 85. Optional.","type":"integer","minimum":1,"maximum":100},"address":{"description":"aerial_view_render_video: REQUIRED address to render. aerial_view_lookup_video: exactly one of address/videoId is required.","type":"string"},"videoId":{"description":"aerial_view_lookup_video: exactly one of address/videoId is required.","type":"string"},"paymentPayload":{"description":"x402 payment payload from a previous `paymentRequired` challenge. Omit on the first call.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["action"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"social.profile_lookup","description":"Resolve person / social-profile identity for a batch of records, paid per call directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Supports two modes per record:\n\n- Fuzzy match: supply `first_name` and/or `last_name` plus `emails` and/or `phones`.\n- Reverse lookup: supply only `emails` and/or `phones`, no name required.\n\nEvery record needs a caller-chosen `record_id` (any string) to correlate it with its match in the response, plus at least one non-empty first_name/last_name, or at least one non-empty entry in emails, or at least one non-empty entry in phones — an empty array counts as not provided. Optional top-level `match_condition_fields` (e.g. `[\"linkedin_url\"]`) restricts results to matches that include ALL of the named fields.\n\nThe exact response shape (field names/nesting per match) is passed through unchanged from the upstream provider — read whatever comes back rather than assuming a fixed shape.\n\nCharges ~$0.02 per call — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"records":{"minItems":1,"type":"array","items":{"type":"object","properties":{"record_id":{"type":"string","description":"Caller-chosen id to correlate this record with its match in the response."},"first_name":{"type":"string"},"last_name":{"type":"string"},"emails":{"type":"array","items":{"type":"string"}},"phones":{"type":"array","items":{"type":"string"}}},"required":["record_id"]},"description":"Records to resolve. Each needs record_id plus at least one non-empty first_name/last_name, emails entry, or phones entry."},"match_condition_fields":{"description":"Optional filter — only return matches whose result includes ALL of these fields, e.g. [\"linkedin_url\"].","type":"array","items":{"type":"string"}},"paymentPayload":{"description":"x402 payment payload from a previous `paymentRequired` challenge. Omit on the first call.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["records"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"travel.search","description":"Flight and hotel search, paid per call in USDC/USDm directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`:\n\n- flight_search ($0.02): live flight fares via Google Flights. Requires `origin`, `destination`, `departureDate`. Optional `returnDate`, `adults`, `children`, `travelClass`, `stops`, `maxPrice`, `currency`.\n- hotel_search ($0.02): live hotel prices/ratings via Google Hotels. Requires `q` (city or hotel name), `checkInDate`, `checkOutDate`. Optional `adults`, `children`, `sortBy`, `minPrice`, `maxPrice`, `hotelClass`, `currency`.\n\nPrices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","enum":["flight_search","hotel_search"],"description":"Which travel operation to perform."},"q":{"description":"hotel_search: city or hotel name to search for, e.g. \"hotels in Paris\".","type":"string"},"origin":{"description":"flight_search: departure airport IATA code, e.g. \"JFK\".","type":"string"},"destination":{"description":"flight_search: arrival airport IATA code, e.g. \"LAX\".","type":"string"},"departureDate":{"description":"flight_search: departure date, YYYY-MM-DD.","type":"string"},"returnDate":{"description":"flight_search: return date for round trips, YYYY-MM-DD. Optional.","type":"string"},"adults":{"description":"flight_search / hotel_search: number of adult passengers/guests. Optional.","type":"string"},"children":{"description":"flight_search / hotel_search: number of children. Optional.","type":"string"},"travelClass":{"description":"flight_search: cabin class — 1=Economy, 2=Premium Economy, 3=Business, 4=First. Optional.","type":"string"},"stops":{"description":"flight_search: stop preference — 0=nonstop only, 1=up to 1 stop, 2=up to 2 stops. Optional.","type":"string"},"maxPrice":{"description":"flight_search / hotel_search: maximum price filter. Optional.","type":"string"},"currency":{"description":"flight_search / hotel_search: currency code, default \"USD\".","type":"string"},"checkInDate":{"description":"hotel_search: check-in date, YYYY-MM-DD.","type":"string"},"checkOutDate":{"description":"hotel_search: check-out date, YYYY-MM-DD.","type":"string"},"sortBy":{"description":"hotel_search: sort order — 3=lowest price, 8=highest rating, 13=most reviewed. Optional.","type":"string"},"minPrice":{"description":"hotel_search: minimum price per night filter. Optional.","type":"string"},"hotelClass":{"description":"hotel_search: star rating filter, 2-5. Optional.","type":"string"},"paymentPayload":{"description":"x402 payment payload from a previous `paymentRequired` challenge. Omit on the first call.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["action"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"weather.forecast","description":"Weather data from a global weather data provider — current conditions, short-range forecast, astronomy, historical, marine, and location search. Free, read-only, no wallet needed. Every action requires `q`, a location: a city name (e.g. \"Paris\"), \"lat,lon\" (e.g. \"48.85,2.35\"), a US/UK/Canadian postal code, or an IATA airport code. Pick one `action`:\n\n- current: current conditions for `q`. Optional `aqi` (default false) adds basic air quality data.\n- forecast: forecast for `q`. Optional `days` — this deployment runs on a data plan capped at 3 days, so only 1-3 is accepted; omit for the provider default. Optional `aqi`, `alerts` (default false, adds active weather alerts for the location where available).\n- astronomy: sunrise/sunset/moonrise/moonset/moon phase for `q` on `date` (required, YYYY-MM-DD).\n- search: resolve a fuzzy `q` into matching locations (name, region, country, lat/lon) — use this first if you only have an approximate place name and need to disambiguate.\n- history: past weather for `q` on `date` (required, YYYY-MM-DD, must be yesterday). This deployment enforces a free-tier data plan that only allows yesterday's date — any other date is rejected before a provider call is made.\n- marine: marine/sailing conditions for `q`. This deployment runs on a data plan limited to 1 day of data with no tide information.\n\nResults are for general informational purposes only — do not use them as the sole basis for decisions involving personal safety, aviation, marine navigation, or emergency planning.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","enum":["current","forecast","astronomy","search","history","marine"],"description":"Which weather operation to perform."},"q":{"type":"string","description":"Location: city name, \"lat,lon\", postal code, or airport code. Required for every action."},"days":{"description":"forecast: number of forecast days (1-3 on this deployment's plan). Omit for the provider default.","type":"integer","minimum":1,"maximum":3},"date":{"description":"astronomy / history: date in YYYY-MM-DD format. Required for both.","type":"string"},"aqi":{"description":"current / forecast / history: include basic air quality data (default false).","type":"boolean"},"alerts":{"description":"forecast: include active weather alerts for the location (default false).","type":"boolean"}},"required":["action","q"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"web3.lookup","description":"Multi-chain wallet, token, ENS, and transaction-simulation lookups, paid per call in USDC/USDm directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`:\n\n- wallet_balances ($0.005): token balances for a wallet across 20+ chains. Requires `chain` and `address`.\n- wallet_transactions ($0.005): transaction history with asset transfers for a wallet. Requires `address`. Optional `chain`, `limit`.\n- wallet_pnl ($0.01): realized and unrealized profit/loss per token for a wallet. Requires `chain` and `address`.\n- token_metadata ($0.002): name/symbol/decimals for a token contract. Requires `chain` and `address`.\n- ens_resolve ($0.001): resolve an ENS name to an Ethereum address. Requires `name`.\n- ens_reverse ($0.001): resolve an Ethereum address to its ENS name. Requires `address`.\n- tx_simulate ($0.01): simulate an EVM transaction before sending — gas estimate, execution trace, revert reason. Requires `network_id`, `from`, `to`. Optional `value`, `data`, `gas`.\n\nPrices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","enum":["wallet_balances","wallet_transactions","wallet_pnl","token_metadata","ens_resolve","ens_reverse","tx_simulate"],"description":"Which web3 operation to perform."},"chain":{"description":"wallet_balances / wallet_transactions / wallet_pnl / token_metadata: chain name, e.g. \"ethereum\", \"base\", \"solana\".","type":"string"},"address":{"description":"Address to look up — a wallet address for wallet_balances / wallet_transactions / wallet_pnl / ens_reverse, or a token contract address for token_metadata.","type":"string"},"limit":{"description":"wallet_transactions: max transactions to return, default 100.","type":"integer","minimum":1,"maximum":1000},"name":{"description":"ens_resolve: ENS name to resolve, e.g. \"vitalik.eth\".","type":"string"},"network_id":{"description":"tx_simulate: EVM chain id as a string, e.g. \"1\" or \"8453\".","type":"string"},"from":{"description":"tx_simulate: sender address for the simulated transaction.","type":"string"},"to":{"description":"tx_simulate: recipient/contract address for the simulated transaction.","type":"string"},"value":{"description":"tx_simulate: transaction value in wei, as a string. Optional, default \"0\".","type":"string"},"data":{"description":"tx_simulate: hex-encoded calldata. Optional.","type":"string"},"gas":{"description":"tx_simulate: gas limit override. Optional.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paymentPayload":{"description":"x402 payment payload from a previous `paymentRequired` challenge. Omit on the first call.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["action"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":68,"grade":"C","scanned_at":"2026-11-04T06:33:35.823Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-04T06:33:35.748Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2628ms"]},"poisoning":{"score":13,"max":15,"notes":["12 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 75 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool places.lookup: …Places, solar, and aerial-view lookups, paid per call directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`: - text_search_full ($0.08): full-detail place text search. Requires `textQuery`. Optional `maxResultCount` (1-5, default 5), `excludeFields` (default [\"photos\"]), `pageToken`, `locationBias` ({circle:{center:{latitude,longitude},radius}}), `includedType`, `languageCode` (default \"en\"), `openNow`, `minRating` (0-5), `priceLevels`. - text_search_partial ($0.02): same as text_search_full but returns fewer fields per place — cheaper for quick lookups. Same parameters. - nearby_search_full ($0.08): full-detail search for places within a radius. Requires `locationRestriction` ({circle:{center:{latitude,longitude},radius (0-50000)}}) — do NOT send a bare top-level latitude/longitude/radius. Optional `includedTypes`/`excludedTypes` (max 50 each), `maxResultCount` (1-5, default 5), `excludeFields` (default [\"photos\"]), `languageCode` (default \"en\"), `rankPreference` (POPULARITY default, or DISTANCE). - nearby_search_partial ($0.02): same as nearby_search_full, fewer fields, cheaper. Same parameters. - place_details_full ($0.05): full details for one place. Requires `placeId` — the exact place id returned by an earlier text_search/nearby_search result; do not invent or guess it. Optional `excludeFields` (default [\"photos\"]), `languageCode` (default \"en\"). - place_details_partial ($0.02): same as place_details_full, fewer fields, cheaper. Same parameters. - solar_building_insights ($0.02): rooftop solar potential for one location. Requires `latitude` (-90..90) and `longitude` (-180..180). Optional `requiredQuality` (LOW/MEDIUM/HIGH, default HIGH). - solar_data_layers ($0.08): raw solar data layers for an area. Requires `latitude`, `longitude`. Optional `radiusMeters` (0.1-175, default 50), `view` (default \"FULL_LAYERS\"), `requiredQuality` (default HIGH), `pixelSizeMeters` (default 0.25, documented as one of 0.1/0.25/0.5/1.0 but not schema-enforced), `exactQualityRequired` (default false). - solar_rgb_image ($0.05): renders one of the solar_data_layers assets as a viewable image. Either `id` (the exact asset id already returned by an earlier solar_data_layers call — \"Mode A\"; do not invent or guess it) OR both `latitude` and `longitude` (\"Mode B\") is required — provide exactly one mode, not both. Optional `radiusMeters` (0.1-100, default 30, Mode B only), `layer` (default \"rgb\"), `month` (1-12), `hour` (0-23), `format` (png/jpeg, default png), `scale` (1-2, default 1), `crop` (default false), `quality` (1-100, default 85). - aerial_view_lookup_video ($0.01): check whether a rendered aerial-view video already exists / poll its render status. Exactly one of `address` or `videoId` is required — `videoId` must be the exact value returned by an earlier aerial_view_render_video call; do not invent or guess it. - aerial_view_render_video ($0.01): kick off rendering a new aerial-view video for an address. Requires `address`. Poll aerial_view_lookup_video with the returned videoId until ready. Pagination: text_search_full/partial and nearby_search_full/partial return `nextPageToken` when more results exist — repeat the ORIGINAL call (same textQuery / locationRestriction / etc.) with `pageToken` set to page further. `pageToken` must be the exact `nextPageToken` value from that earlier response — do not invent or guess it. excludeFields: colon-separated nested-path syntax trims nested response fields, e.g. \"organization:technologies\" excludes just that sub-field. All place-search/details actions default-exclude `photos` if `excludeFields` is omitted — pass `excludeFields: []` to include photos. Prices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.…"}],"inputs":{"probes":[{"url":"https://mcp.abstraxn.com/mcp","reachable":true,"authRequired":false,"latencyMs":2628,"serverInfo":{"name":"abstraxn-web3-public-mcp","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"Abstraxn-Labs","repo":"abstraxn-agent-layer","archived":false,"pushedAt":"2026-08-21T11:54:29Z","stars":4,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/192862431?v=4","ownerCreatedAt":"2024-12-26T07:55:40Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/192862431?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":4,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-21T11:54:29.000Z","score":22}}}},"grade_history":[],"reviews":[]}