{"domain":"api.teardrop.dev","count":2,"changes":[{"captured_at":"2026-06-19T06:02:07","card_hash":"57b2357d1e70ee9a6d461449adbc3bb0b0c34751b68ce633370827da2cc500eb","previous_card_hash":"6a512cc1956d7d463b53f7f60c7dcc46575980aed34aeaf5462844eb3f5e4314","diff":{"skills_added":[],"skills_removed":[],"skills_changed":[],"fields_changed":[{"field":"version","before":"1.1.0","after":"1.2.0"}],"other_changed":true,"is_empty":false,"human_summary":"version 1.1.0 → 1.2.0"}},{"captured_at":"2026-06-18T23:49:00","card_hash":"6a512cc1956d7d463b53f7f60c7dcc46575980aed34aeaf5462844eb3f5e4314","previous_card_hash":null,"diff":{"skills_added":[{"id":"a2ui_rendering","name":"a2ui_rendering","description":"Declarative UI component generation (table, form, text, button, etc.).","tags":null,"inputModes":null,"outputModes":null},{"id":"calculate","name":"calculate","description":"Evaluate a safe arithmetic expression. Supports +,-,*,/,**,%,sqrt,abs,round,floor,ceil,log,sin,cos,tan,pi,e.","tags":["math","arithmetic","calculation"],"inputModes":null,"outputModes":null},{"id":"convert_currency","name":"convert_currency","description":"Convert between fiat currencies (USD, EUR, GBP, etc.) and crypto assets (BTC, ETH, USDC, SOL, etc.). Returns the converted amount and exchange rate.","tags":["finance","currency","crypto","conversion"],"inputModes":null,"outputModes":null},{"id":"count_text_stats","name":"count_text_stats","description":"Return word count, character count, sentence count, and paragraph statistics for a given text.","tags":["text","analysis","statistics"],"inputModes":null,"outputModes":null},{"id":"decode_transaction","name":"decode_transaction","description":"Decode a transaction's calldata into a human-readable function name and arguments. Also returns transaction status (1=success, 0=revert), gas used, and block number. Optionally provide an ABI for precise decoding; otherwise uses 4byte.directory. Supports Ethereum mainnet and Base.","tags":["web3","ethereum","transaction","decode","calldata"],"inputModes":null,"outputModes":null},{"id":"delegate_to_agent","name":"delegate_to_agent","description":"Delegate a task to a remote A2A-compliant agent. Discovers the agent's capabilities via its agent card, sends it a message, and returns the result. Use when a task requires specialist capabilities beyond your own tools.","tags":["a2a","delegation","agent"],"inputModes":null,"outputModes":null},{"id":"get_block","name":"get_block","description":"Get details for an Ethereum or Base block by number, hash, or 'latest'.","tags":["web3","ethereum","block"],"inputModes":null,"outputModes":null},{"id":"get_datetime","name":"get_datetime","description":"Return the current UTC date and time. Optional strftime format parameter.","tags":["datetime","utility"],"inputModes":null,"outputModes":null},{"id":"get_defi_positions","name":"get_defi_positions","description":"Aggregate DeFi positions for a wallet across Aave v3, Compound v3, and Uniswap v3 LP on Ethereum (chain_id=1) or Base (chain_id=8453). Returns Aave aggregate account health (collateral, debt, health factor, LTV) with per-reserve breakdown for major assets, Compound v3 Comet market positions (supply, borrow, per-asset collateral, liquidation flag), and Uniswap v3 LP positions by token ID (token pair, fee tier, tick range, liquidity, uncollected fees). Per-protocol failures are isolated — other protocols still return.","tags":["web3","defi","aave","compound","uniswap","portfolio"],"inputModes":null,"outputModes":null},{"id":"get_dex_quote","name":"get_dex_quote","description":"Get the best Uniswap v3 swap quote on Ethereum (chain_id=1) or Base (chain_id=8453) via direct on-chain QuoterV2 calls. Queries all four fee tiers (100/500/3000/10000 bps) in parallel and returns the tier with the highest output amount, along with per-tier breakdown. Inputs are raw uint256 amounts and EIP-55 checksummed addresses; native ETH is not quoted directly — pass the WETH address. Returns no_liquidity=true when no pool exists for the pair. Point-in-time quote at the returned block_number; do not cache.","tags":["web3","defi","uniswap","dex","quote","trading"],"inputModes":null,"outputModes":null},{"id":"get_erc20_balance","name":"get_erc20_balance","description":"Get the ERC-20 token balance of a wallet, including symbol and decimals.","tags":["web3","ethereum","erc20","token","balance"],"inputModes":null,"outputModes":null},{"id":"get_eth_balance","name":"get_eth_balance","description":"Get the native ETH balance of an Ethereum or Base address. NOTE: get_wallet_portfolio already includes the native ETH balance in its holdings list — only call get_eth_balance when you need a standalone ETH balance without a full portfolio scan.","tags":["web3","ethereum","balance"],"inputModes":null,"outputModes":null},{"id":"get_gas_price","name":"get_gas_price","description":"Get current EIP-1559 gas fees on Ethereum or Base. Returns base fee, priority fee, and next-block base fee estimate (useful for timing transactions). gas_used_ratio indicates network congestion (>0.5 = busy, >0.9 = very congested). Optional USD estimates include ETH spot price and rough transfer/swap costs. Results cached 10 seconds per chain.","tags":["web3","ethereum","gas","fees","eip1559"],"inputModes":null,"outputModes":null},{"id":"get_lending_rates","name":"get_lending_rates","description":"Get current on-chain lending supply/borrow rates for Aave v3 and Compound v3 on Ethereum or Base. Returns per-asset APY snapshots and Compound utilization where available. Useful for protocol-specific stablecoin yield comparisons (e.g., USDC on Aave vs Compound).","tags":["web3","defi","lending","aave","compound","yield"],"inputModes":null,"outputModes":null},{"id":"get_liquidation_risk","name":"get_liquidation_risk","description":"Assess DeFi liquidation risk for up to 50 wallets across Aave v3 and Compound v3 on Ethereum (chain_id=1) or Base (chain_id=8453). Returns per-wallet health factor and tiered risk classification (liquidatable, critical, warning, caution, healthy, no_debt) plus an overall_tier aggregate across protocols, and a summary count for alert dashboards. Per-protocol failures are isolated — a Compound RPC error does not blank the Aave result (and vice versa). View-only (eth_call) against hardcoded protocol addresses; duplicate wallet addresses are silently removed.","tags":["web3","ethereum","base","defi","risk","liquidation","aave","compound"],"inputModes":null,"outputModes":null},{"id":"get_protocol_tvl","name":"get_protocol_tvl","description":"Get Total Value Locked (TVL) data for a DeFi protocol from DeFiLlama. Returns current TVL in USD, 7-day and 30-day percentage change, and a per-chain breakdown. Set include_historical=True to also retrieve a daily TVL series for trend analysis. You can also batch multiple protocols via protocols=[...]. Supports 3,000+ protocols including Aave, Uniswap, Curve, Compound, Lido, MakerDAO, and more. Use the DeFiLlama slug format: 'aave-v3', 'uniswap-v3', 'curve-dex'. Common aliases such as 'spark-protocol' and 'compound' are auto-corrected.","tags":["defi","tvl","finance","protocol","defillama"],"inputModes":null,"outputModes":null},{"id":"get_token_approvals","name":"get_token_approvals","description":"Audit ERC-20 token allowances for a wallet address. Returns all non-zero approvals across curated DeFi protocol spenders (Uniswap, Aave, Compound, 1inch, 0x, OpenSea). Flags unlimited approvals with risk levels: high=unknown spender, medium=trusted protocol, low=bounded amount. Use before swaps to verify approval state, or after security incidents to detect active exploit vectors. Ethereum mainnet and Base only.","tags":["web3","ethereum","security","erc20","approvals","defi"],"inputModes":null,"outputModes":null},{"id":"get_token_price","name":"get_token_price","description":"Get current price, 24h change, market cap, and volume for one or more crypto tokens. Accepts ticker symbols (BTC, ETH, LQTY), full token names (Bitcoin, Liquity, Chainlink), or CoinGecko IDs. Unknown symbols are resolved automatically against the full CoinGecko coin list. Supports batch queries up to 50 tokens. Bare 0x contract addresses are not resolvable by CoinGecko and should be treated as unknown. If get_wallet_portfolio already returned price_usd/value_usd for a held token, reuse that value instead of calling get_token_price again.","tags":["finance","crypto","price","market"],"inputModes":null,"outputModes":null},{"id":"get_token_price_historical","name":"get_token_price_historical","description":"Get historical price data for crypto tokens over a specified time window (1–365 days). Returns period statistics (start, end, % change, high, low) plus a downsampled daily price series. Use for period comparisons (month-over-month, YTD), trend analysis, and price charts. Prefer over web_search for any time-comparative financial query. Pass stats_only=true when the daily series is unnecessary. price_change_pct is pre-computed and should not be re-derived with calculate.","tags":["finance","crypto","price","history","market"],"inputModes":null,"outputModes":null},{"id":"get_transaction","name":"get_transaction","description":"Get details and receipt for an Ethereum or Base transaction by hash.","tags":["web3","ethereum","transaction"],"inputModes":null,"outputModes":null},{"id":"get_wallet_portfolio","name":"get_wallet_portfolio","description":"Get aggregated token holdings with USD values for a wallet address. Tracks 15+ major tokens on Ethereum (USDC, USDT, DAI, WETH, WBTC, LINK, UNI, AAVE, ARB, OP, LDO, stETH, CRV, SUSHI, MKR) and 9+ on Base. Sorted by USD value. Returns up to 20 holdings. Includes native ETH balance in the holdings list — calling get_eth_balance separately after this is redundant.","tags":["web3","ethereum","portfolio","balance","defi"],"inputModes":null,"outputModes":null},{"id":"get_yield_rates","name":"get_yield_rates","description":"Get DeFi yield pool rates from DeFiLlama, covering 1,000+ protocols across all chains. Returns pools sorted by APY with TVL, base rate, reward APY, and 7d/30d mean APY context. Filter by protocol (e.g. 'aave-v3', 'compound-v3'), chain (e.g. 'Ethereum', 'Base'), minimum TVL, and minimum APY. Use this to answer questions like 'Where can I get the best USDC yield?', 'What is Aave's current APY on Ethereum?', or 'Compare Aave vs Compound yields'. Returns up to 50 pools. IMPORTANT: Call ONCE per query. The returned `symbol` field contains the underlying tokens (e.g. 'USDC', 'ETH-USDC', 'WBTC'); filter on the client side by inspecting `symbol` rather than re-calling with different arguments. Use `min_apy`, `min_tvl_usd`, and `symbols_any` to prune noise in a single call. Set stable_only=true when you need consistent stablecoin yield screening; this ranks by 30d mean APY first and still returns spot/base/reward components.","tags":["defi","yield","apy","finance","defillama"],"inputModes":null,"outputModes":null},{"id":"http_fetch","name":"http_fetch","description":"Fetch a web page and extract its main text content. Useful for reading articles, documentation, and web resources. Returns cleaned text, not raw HTML.","tags":["web","http","fetch","content"],"inputModes":null,"outputModes":null},{"id":"read_contract","name":"read_contract","description":"Call any view/pure function on a smart contract and return the result. Provide the ABI fragment (JSON array) and function name. State-changing functions (payable/nonpayable) are rejected for safety. Supports historical queries via block_identifier (block number or 'latest').","tags":["web3","ethereum","contract","abi","defi"],"inputModes":null,"outputModes":null},{"id":"resolve_ens","name":"resolve_ens","description":"Resolve an ENS name (e.g. 'vitalik.eth') to an Ethereum address, or pass an Ethereum address for reverse lookup to its primary ENS name. Also returns the avatar text record when available. Mainnet only.","tags":["web3","ethereum","ens","identity"],"inputModes":null,"outputModes":null},{"id":"task_planning","name":"task_planning","description":"Break complex tasks into actionable steps.","tags":null,"inputModes":null,"outputModes":null},{"id":"web_search","name":"web_search","description":"Real-time web search via Tavily. Use for current events, fact-checking, and research. Set search_depth='advanced' for complex research queries (higher quality, higher cost). Set topic='news' for recent headlines or 'finance' for market information.","tags":["search","web","realtime"],"inputModes":null,"outputModes":null}],"skills_removed":[],"skills_changed":[],"fields_changed":[{"field":"name","before":null,"after":"Teardrop"},{"field":"description","before":null,"after":"Intelligence beyond the browser. A task-manager agent with LangGraph, AG-UI streaming, and A2UI rendering."},{"field":"version","before":null,"after":"1.1.0"},{"field":"protocolVersion","before":null,"after":"1.0"},{"field":"url","before":null,"after":"https://api.teardrop.dev"},{"field":"documentationUrl","before":null,"after":"https://api.teardrop.dev/docs"},{"field":"iconUrl","before":null,"after":"https://teardrop.dev/teardrop.png"}],"other_changed":true,"is_empty":false,"human_summary":"added 27 skills · name ∅ → Teardrop · description ∅ → Intelligence beyond the browser. A task- · version ∅ → 1.1.0 · protocolVersion ∅ → 1.0 · url ∅ → https://api.teardrop.dev · documentationUrl ∅ → https://api.teardrop.dev/docs · iconUrl ∅ → https://teardrop.dev/teardrop.png"}}]}