{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-bankless-onchain","slug":"bankless-onchain","name":"Bankless Onchain","type":"mcp","url":"https://github.com/bankless/onchain-mcp","page_url":"https://unfragile.ai/bankless-onchain","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-bankless-onchain__cap_0","uri":"capability://data.processing.analysis.erc20.token.balance.and.metadata.querying","name":"erc20 token balance and metadata querying","description":"Queries ERC20 token balances for specified addresses and retrieves token metadata (name, symbol, decimals, total supply) by integrating with blockchain RPC endpoints. Implements standardized ERC20 ABI calls to read contract state without requiring transaction execution, enabling fast metadata lookups and balance checks across multiple chains.","intents":["Check the token balance of a wallet address for a specific ERC20 token","Retrieve token metadata like symbol, decimals, and total supply for integration into applications","Build a portfolio tracker that aggregates balances across multiple ERC20 tokens","Verify token contract details before executing swaps or transfers"],"best_for":["DeFi developers building portfolio dashboards","Wallet applications needing token balance queries","AI agents that need to understand user token holdings before making recommendations"],"limitations":["Read-only capability — cannot modify token balances or execute transfers","Requires valid RPC endpoint with sufficient rate limits; public endpoints may throttle high-frequency queries","Token metadata is static per contract; does not track price or market data","No built-in caching — repeated queries for same token hit RPC endpoint each time"],"requires":["Active blockchain RPC endpoint (Infura, Alchemy, or self-hosted node)","Valid ERC20 contract address on target chain","Web3 library integration (ethers.js or web3.py equivalent)"],"input_types":["wallet address (0x format)","ERC20 contract address","chain identifier (mainnet, polygon, etc.)"],"output_types":["structured JSON with balance (as BigInt/string)","token metadata object (name, symbol, decimals, totalSupply)"],"categories":["data-processing-analysis","blockchain-querying"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_1","uri":"capability://data.processing.analysis.transaction.history.retrieval.and.filtering","name":"transaction history retrieval and filtering","description":"Fetches historical transactions for a given address from blockchain explorers or RPC providers, supporting filtering by token, date range, transaction type, and status. Implements pagination and result caching to handle large transaction histories efficiently without overwhelming RPC endpoints or explorer APIs.","intents":["Retrieve all transactions for an address to audit wallet activity","Filter transactions by ERC20 token to track trading history for a specific asset","Build transaction timelines for compliance or tax reporting","Analyze transaction patterns to detect suspicious activity or validate user behavior"],"best_for":["Compliance and audit tools needing transaction history","Tax reporting applications tracking user trades and transfers","AI agents analyzing wallet behavior for risk assessment","DeFi analytics platforms building user activity feeds"],"limitations":["Dependent on blockchain explorer API rate limits (Etherscan, BlockScout, etc.); high-volume queries may be throttled","Historical data is immutable but explorer indexing may lag by 1-2 blocks","Pagination required for addresses with thousands of transactions; full history retrieval is slow","No built-in transaction decoding — raw transaction data requires additional parsing for human-readable interpretation"],"requires":["Blockchain explorer API key (Etherscan, Polygonscan, etc.) or Alchemy/Infura with enhanced API tier","Valid wallet address (0x format)","Chain identifier to target correct explorer"],"input_types":["wallet address","optional: token contract address (to filter by token)","optional: date range (from/to timestamps)","optional: transaction type (sent, received, contract interaction)"],"output_types":["array of transaction objects with hash, from, to, value, gas, timestamp","optional: decoded transaction data (function calls, token transfers)"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_2","uri":"capability://data.processing.analysis.smart.contract.state.reading.and.abi.decoding","name":"smart contract state reading and abi decoding","description":"Reads arbitrary smart contract state variables and decodes function outputs using contract ABIs, enabling inspection of contract storage without executing transactions. Supports both standard ABIs and custom contract interfaces, with automatic type conversion for complex data structures like arrays, mappings, and structs.","intents":["Query the current state of a smart contract (e.g., total liquidity in a Uniswap pool)","Decode contract function return values to understand contract behavior","Inspect governance contract state (voting power, proposal details) for DAO analysis","Validate contract configuration before interacting with it"],"best_for":["DeFi protocol analyzers needing real-time contract state","DAO governance tools inspecting voting and proposal data","Smart contract auditors validating contract state during testing","AI agents that need to understand protocol parameters before making decisions"],"limitations":["Requires valid contract ABI; if ABI is incomplete or incorrect, decoding will fail or produce incorrect results","Cannot read private state variables or storage slots not exposed via public functions","Complex nested data structures (deeply nested arrays/mappings) may be slow to decode","No built-in caching — repeated state reads hit RPC endpoint each time, adding latency"],"requires":["Contract ABI in JSON format (from Etherscan, contract repo, or manual specification)","Smart contract address on target chain","RPC endpoint with eth_call support"],"input_types":["contract address","function name or signature","function parameters (if any)","contract ABI (JSON)"],"output_types":["decoded return values matching function signature","structured JSON for complex types (arrays, tuples, mappings)"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_3","uri":"capability://data.processing.analysis.multi.chain.address.resolution.and.normalization","name":"multi-chain address resolution and normalization","description":"Resolves Ethereum Name Service (ENS) names to addresses and vice versa, with support for cross-chain address lookups and normalization. Handles address validation, checksum verification, and chain-specific address formats (e.g., Solana addresses) to ensure consistent address handling across different blockchain ecosystems.","intents":["Convert human-readable ENS names (e.g., vitalik.eth) to wallet addresses for queries","Reverse-resolve addresses to ENS names for display in user interfaces","Validate and normalize addresses before executing blockchain operations","Support cross-chain address lookups for multi-chain applications"],"best_for":["User-facing applications needing human-readable address display","Multi-chain wallets supporting address resolution across networks","AI agents that need to interpret user input (ENS names) as blockchain addresses","Address validation pipelines in DeFi applications"],"limitations":["ENS resolution requires RPC access to Ethereum mainnet; cannot resolve ENS on other chains without additional infrastructure","Reverse resolution (address → ENS) is slower and may not find a name if address has no associated ENS record","Cross-chain address resolution requires external mapping services; not all chains have standardized naming systems","ENS names are mutable; cached resolution may become stale if name is reassigned"],"requires":["Ethereum mainnet RPC endpoint for ENS resolution","Valid address or ENS name as input","Optional: cross-chain address mapping service for multi-chain support"],"input_types":["ENS name (e.g., vitalik.eth)","wallet address (0x format or chain-specific)","chain identifier (for cross-chain lookups)"],"output_types":["normalized wallet address (0x format with checksum)","ENS name (if reverse resolution succeeds)","chain identifier and address format"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_4","uri":"capability://data.processing.analysis.gas.price.estimation.and.transaction.cost.calculation","name":"gas price estimation and transaction cost calculation","description":"Estimates current gas prices (base fee, priority fee) from blockchain state and calculates total transaction costs based on gas limit and current network conditions. Integrates with EIP-1559 fee markets to provide dynamic fee recommendations that balance transaction speed and cost.","intents":["Estimate transaction costs before executing swaps or transfers","Recommend gas prices for transactions to ensure timely inclusion in blocks","Calculate total cost of batch operations for budget planning","Monitor gas price trends to optimize transaction timing"],"best_for":["Wallet applications showing transaction cost previews to users","DeFi bots optimizing transaction costs for profitability","AI agents that need to estimate costs before recommending transactions","Gas price monitoring dashboards"],"limitations":["Gas price estimates are point-in-time snapshots; actual prices may change before transaction is mined","Accurate gas limit estimation requires contract simulation; simple estimates may be inaccurate for complex transactions","EIP-1559 fee markets are chain-specific; legacy chains may use different fee mechanisms","Does not account for MEV or priority fees from searchers; actual cost may be higher"],"requires":["RPC endpoint with eth_gasPrice and eth_feeHistory support","Transaction details (to, from, data, value) for cost calculation","Optional: contract ABI for accurate gas limit estimation"],"input_types":["transaction object (to, from, data, value)","optional: gas limit override","optional: priority fee preference (fast, standard, slow)"],"output_types":["estimated gas price (in wei or gwei)","estimated total transaction cost (in wei or native currency)","recommended priority fee for EIP-1559 transactions"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_5","uri":"capability://data.processing.analysis.token.transfer.and.approval.tracking","name":"token transfer and approval tracking","description":"Tracks ERC20 token transfers and approval events by parsing transaction logs and decoding Transfer/Approval events from contract ABIs. Enables filtering by token, sender, recipient, or amount to build comprehensive transfer histories and detect approval patterns.","intents":["Track all transfers of a specific token to understand token flow","Identify all addresses that have approved a spender (e.g., DEX router) for a token","Detect suspicious approval patterns or revoked approvals","Build token transfer timelines for compliance or forensics"],"best_for":["Security tools detecting malicious approvals or token drains","Compliance platforms tracking token movements for AML/KYC","DeFi analytics platforms building token flow visualizations","AI agents analyzing token approval risks"],"limitations":["Requires parsing transaction logs; dependent on RPC endpoint's log filtering capabilities and rate limits","Large token transfers (popular tokens like USDC) generate millions of events; filtering may be slow","Approval events do not include approval amount in some token implementations; must infer from Transfer events","No built-in caching — repeated queries for same token hit RPC endpoint each time"],"requires":["RPC endpoint with eth_getLogs support","ERC20 contract ABI with Transfer and Approval event signatures","Token contract address","Optional: block range for filtering (to limit query scope)"],"input_types":["token contract address","optional: sender address (to filter transfers from)","optional: recipient address (to filter transfers to)","optional: spender address (to filter approvals)","optional: block range (fromBlock, toBlock)"],"output_types":["array of Transfer events with from, to, value, blockNumber, transactionHash","array of Approval events with owner, spender, value, blockNumber, transactionHash"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_6","uri":"capability://planning.reasoning.wallet.activity.summarization.and.risk.assessment","name":"wallet activity summarization and risk assessment","description":"Analyzes wallet transaction history and on-chain behavior to generate activity summaries and risk scores, identifying patterns like frequent trading, large transfers, contract interactions, and approval grants. Uses heuristics and statistical analysis to flag suspicious activity or high-risk behaviors.","intents":["Generate a risk score for a wallet address to assess counterparty risk","Summarize wallet activity for compliance or KYC purposes","Detect suspicious patterns like sandwich attacks, MEV exploitation, or rug pulls","Provide AI agents with wallet context before recommending transactions"],"best_for":["Compliance and risk management platforms","DeFi protocols implementing wallet-based access controls","AI agents that need to assess counterparty risk before trading","Fraud detection systems monitoring for suspicious activity"],"limitations":["Risk assessment is heuristic-based and may produce false positives or false negatives","Requires full transaction history; wallets with thousands of transactions may be slow to analyze","Cannot detect off-chain behavior or private transactions; analysis is limited to public blockchain data","Risk scores are subjective and may not align with user's risk tolerance or regulatory requirements"],"requires":["Complete transaction history for wallet (from transaction history retrieval capability)","Token metadata for all tokens in wallet","Optional: contract ABI for decoding complex interactions"],"input_types":["wallet address","optional: time window (to analyze recent activity only)","optional: risk threshold (to customize sensitivity)"],"output_types":["risk score (0-100 or similar scale)","activity summary (transaction count, token count, contract interactions)","risk factors (list of suspicious patterns detected)","recommendations (e.g., 'high approval risk', 'frequent MEV victim')"],"categories":["planning-reasoning","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-bankless-onchain__cap_7","uri":"capability://data.processing.analysis.protocol.specific.data.querying.uniswap.aave.etc","name":"protocol-specific data querying (uniswap, aave, etc.)","description":"Provides specialized tools for querying protocol-specific data like Uniswap pool reserves and swap rates, Aave lending rates and collateral factors, or other DeFi protocol state. Implements protocol-specific ABIs and data structures to abstract away protocol complexity and expose high-level queries.","intents":["Query Uniswap pool reserves and calculate swap prices without executing transactions","Check Aave lending rates, collateral factors, and borrowing capacity for an address","Monitor protocol-specific metrics like total value locked (TVL) or utilization rates","Compare rates across protocols to find optimal lending or borrowing opportunities"],"best_for":["DeFi aggregators comparing rates across protocols","Yield farming bots optimizing capital allocation","AI agents recommending optimal DeFi strategies","Protocol analytics dashboards"],"limitations":["Protocol-specific tools are brittle; protocol upgrades or contract changes may break queries","Only supports protocols with public, queryable state; some protocols may require off-chain data","Swap price calculations assume no slippage; actual prices may differ due to MEV or large trades","TVL and other aggregate metrics may be stale if not updated frequently"],"requires":["Protocol contract addresses on target chain","Protocol-specific ABIs (Uniswap Router, Aave LendingPool, etc.)","RPC endpoint with eth_call support"],"input_types":["protocol identifier (e.g., 'uniswap-v3', 'aave-v3')","protocol-specific parameters (pool address, token pair, collateral address, etc.)"],"output_types":["protocol-specific data (pool reserves, swap rates, lending rates, collateral factors)","structured JSON matching protocol data model"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":26,"verified":false,"data_access_risk":"high","permissions":["Active blockchain RPC endpoint (Infura, Alchemy, or self-hosted node)","Valid ERC20 contract address on target chain","Web3 library integration (ethers.js or web3.py equivalent)","Blockchain explorer API key (Etherscan, Polygonscan, etc.) or Alchemy/Infura with enhanced API tier","Valid wallet address (0x format)","Chain identifier to target correct explorer","Contract ABI in JSON format (from Etherscan, contract repo, or manual specification)","Smart contract address on target chain","RPC endpoint with eth_call support","Ethereum mainnet RPC endpoint for ENS resolution"],"failure_modes":["Read-only capability — cannot modify token balances or execute transfers","Requires valid RPC endpoint with sufficient rate limits; public endpoints may throttle high-frequency queries","Token metadata is static per contract; does not track price or market data","No built-in caching — repeated queries for same token hit RPC endpoint each time","Dependent on blockchain explorer API rate limits (Etherscan, BlockScout, etc.); high-volume queries may be throttled","Historical data is immutable but explorer indexing may lag by 1-2 blocks","Pagination required for addresses with thousands of transactions; full history retrieval is slow","No built-in transaction decoding — raw transaction data requires additional parsing for human-readable interpretation","Requires valid contract ABI; if ABI is incomplete or incorrect, decoding will fail or produce incorrect results","Cannot read private state variables or storage slots not exposed via public functions","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.26,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:02.371Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=bankless-onchain","compare_url":"https://unfragile.ai/compare?artifact=bankless-onchain"}},"signature":"Jh4ZhvhmqW0l4EFrj6xm3RDHcJaMlhGxrZIzlnZvbral/LGEQmtTLe1GNgAWJugXZmr1XYLe8RUK2mrF/zmEBg==","signedAt":"2026-06-22T06:57:15.682Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/bankless-onchain","artifact":"https://unfragile.ai/bankless-onchain","verify":"https://unfragile.ai/api/v1/verify?slug=bankless-onchain","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}