Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Query Web3 blockchain data from Moralis API. Use when user asks about wallet data (balances, tokens, NFTs, transaction history, profitability, net worth), to...
Query Web3 blockchain data from Moralis API. Use when user asks about wallet data (balances, tokens, NFTs, transaction history, profitability, net worth), to...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
The #1 cause of bugs is not reading the endpoint rule file before writing code. For EVERY endpoint: Read rules/{EndpointName}.md Find "Example Response" section Copy the EXACT JSON structure Note field names (snake_case), data types, HTTP method, path, wrapper structure Reading Order: This SKILL.md (core patterns) Endpoint rule file in rules/ Pattern references in references/ (for edge cases only)
Never ask the user to paste their API key into the chat. Instead: Check if MORALIS_API_KEY is set in the environment (try running [ -n "$MORALIS_API_KEY" ] && echo "API key is set" || echo "API key is NOT set"). If not set, offer to create the .env file with an empty placeholder: MORALIS_API_KEY= Tell the user to open the .env file and paste their key there themselves. Let them know: without the key, you won't be able to test or call the Moralis API on their behalf. If they don't have a key yet, point them to admin.moralis.com/register (free, no credit card).
The .env file location depends on how skills are installed: Create the .env file in the project root (same directory the user runs Claude Code from). Make sure .env is in .gitignore.
curl "https://deep-index.moralis.io/api/v2.2/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/balance?chain=0x1" \ -H "X-API-Key: $MORALIS_API_KEY"
APIBase URLEVMhttps://deep-index.moralis.io/api/v2.2Solanahttps://solana-gateway.moralis.io
All requests require: X-API-Key: $MORALIS_API_KEY
FieldRealityNOTblock_numberDecimal 12386788Hex 0xf2b5a4timestampISO "2021-05-07T11:08:35.000Z"Unix 1620394115balanceString "1000000000000000000"NumberdecimalsString or numberAlways number
block_number: 12386788; // number - use directly block_number: "12386788"; // string - parseInt(block_number, 10)
"2021-05-07T11:08:35.000Z"; // โ new Date(timestamp).getTime()
balance: "1000000000000000000"; // โ (Number(BigInt(balance)) / 1e18).toFixed(6)
PatternExample EndpointsDirect array [...]getWalletTokenBalancesPrice, getTokenMetadataWrapped { result: [] }getWalletNFTs, getWalletTransactionsPaginated { page, cursor, result }getWalletHistory, getNFTTransfers // Safe extraction const data = Array.isArray(response) ? response : response.result || [];
token_address โ tokenAddress from_address_label โ fromAddressLabel block_number โ blockNumber receipt_status: "1" โ success, "0" โ failed possible_spam: "true"/"false" โ boolean check
Block numbers are decimal, not hex - Use parseInt(x, 10), not parseInt(x, 16) Timestamps are ISO strings - Use new Date(timestamp).getTime() Balances are strings - Use BigInt(balance) for math Response may be wrapped - Check for .result before .map() Path inconsistencies - Some use /wallets/{address}/..., others /{address}/... See references/CommonPitfalls.md for complete reference.
Many endpoints use cursor-based pagination: # First request curl "...?limit=100" -H "X-API-Key: $KEY" # Next page curl "...?limit=100&cursor=<cursor_from_response>" -H "X-API-Key: $KEY" See references/Pagination.md for details.
ADDRESS="0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" CHAIN="0x1" # Wallet Balance curl "https://deep-index.moralis.io/api/v2.2/${ADDRESS}/balance?chain=${CHAIN}" \ -H "X-API-Key: $MORALIS_API_KEY" # Token Price curl "https://deep-index.moralis.io/api/v2.2/erc20/0x6B175474E89094C44Da98b954EedeAC495271d0F/price?chain=${CHAIN}" \ -H "X-API-Key: $MORALIS_API_KEY" # Wallet Transactions (note result wrapper) curl "https://deep-index.moralis.io/api/v2.2/${ADDRESS}?chain=${CHAIN}&limit=5" \ -H "X-API-Key: $MORALIS_API_KEY" | jq '.result'
IssueCauseSolution"Property does not exist"Field name mismatchCheck snake_case in rule file"Cannot read undefined"Missing optional fieldUse ?. optional chaining"blockNumber is NaN"Parsing decimal as hexUse radix 10: parseInt(x, 10)"Wrong timestamp"Parsing ISO as numberUse new Date(timestamp).getTime()"404 Not Found"Wrong endpoint pathVerify path in rule file
Most endpoints respond quickly under normal conditions. Response times can vary based on wallet activity volume, chain, and query complexity. Recommended client timeouts: Simple queries (balance, price, metadata): 10s Complex queries (wallet history, DeFi positions): 30s Large wallets with extensive transaction histories may take longer โ use pagination with reasonable limit values. See references/PerformanceAndLatency.md for optimization tips.
EVM addresses (0x...): Default to Ethereum (chain=0x1) unless specified. Solana addresses (base58): Auto-detected and routed to Solana API.
EVM (40+ chains): Ethereum (0x1), Polygon (0x89), BSC (0x38), Arbitrum (0xa4b1), Optimism (0xa), Base (0x2105), Avalanche (0xa86a), and more. Solana: Mainnet, Devnet See references/SupportedApisAndChains.md for full list.
Complete list of all 136 endpoints (102 EVM + 34 Solana) organized by category.
Balances, tokens, NFTs, transaction history, profitability, and net worth data. EndpointDescriptiongetNativeBalanceGet native balance by walletgetNativeBalancesForAddressesGet native balance for a set of walletsgetWalletActiveChainsGet active chains by wallet addressgetWalletApprovalsGet ERC20 approvals by walletgetWalletHistoryGet the complete decoded transaction history of a walletgetWalletInsightGet wallet insight metricsgetWalletNetWorthGet wallet net worthgetWalletNFTCollectionsGet NFT collections by wallet addressgetWalletNFTsGet NFTs by wallet addressgetWalletNFTTransfersGet NFT Transfers by wallet addressgetWalletProfitabilityGet detailed profit and loss by wallet addressgetWalletProfitabilitySummaryGet profit and loss summary by wallet addressgetWalletStatsGet summary stats by wallet addressgetWalletTokenBalancesPriceGet token balances with prices by wallet addressgetWalletTokenTransfersGet ERC20 token transfers by wallet addressgetWalletTransactionsGet native transactions by walletgetWalletTransactionsVerboseGet decoded transactions by wallet
Token prices, metadata, pairs, DEX swaps, analytics, security scores, and sniper detection. EndpointDescriptiongetAggregatedTokenPairStatsGet aggregated token pair statistics by addressgetHistoricalTokenScoreGet historical token score by token addressgetMultipleTokenAnalyticsGet token analytics for a list of token addressesgetPairAddressGet DEX token pair addressgetPairReservesGet DEX token pair reservesgetPairStatsGet stats by pair addressgetSnipersByPairAddressGet snipers by pair addressgetSwapsByPairAddressGet swap transactions by pair addressgetSwapsByTokenAddressGet swap transactions by token addressgetSwapsByWalletAddressGet swap transactions by wallet addressgetTimeSeriesTokenAnalyticsRetrieve timeseries trading stats by token addressesgetTokenAnalyticsGet token analytics by token addressgetTokenBondingStatusGet the token bonding statusgetTokenCategoriesGet ERC20 token categoriesgetTokenHoldersGet a holders summary by token addressgetTokenMetadataGet ERC20 token metadata by contractgetTokenMetadataBySymbolGet ERC20 token metadata by symbolsgetTokenOwnersGet ERC20 token owners by contractgetTokenPairsGet token pairs by addressgetTokenScoreGet token score by token addressgetTokenStatsGet ERC20 token statsgetTokenTransfersGet ERC20 token transfers by contract address
NFT metadata, transfers, traits, rarity, floor prices, and trades. EndpointDescriptiongetContractNFTsGet NFTs by contract addressgetMultipleNFTsGet Metadata for NFTsgetNFTBulkContractMetadataGet metadata for multiple NFT contractsgetNFTByContractTraitsGet NFTs by traitsgetNFTCollectionStatsGet summary stats by NFT collectiongetNFTContractMetadataGet NFT collection metadatagetNFTContractSalePricesGet NFT sale prices by collectiongetNFTContractTransfersGet NFT transfers by contract addressgetNFTFloorPriceByContractGet NFT floor price by contractgetNFTFloorPriceByTokenGet NFT floor price by tokengetNFTHistoricalFloorPriceByContractGet historical NFT floor price by contractgetNFTMetadataGet NFT metadatagetNFTOwnersGet NFT owners by contract addressgetNFTSalePricesGet NFT sale prices by tokengetNFTTokenIdOwnersGet NFT owners by token IDgetNFTTradesGet NFT trades by collectiongetNFTTradesByTokenGet NFT trades by tokengetNFTTradesByWalletGet NFT trades by wallet addressgetNFTTraitsByCollectionGet NFT traits by collectiongetNFTTraitsByCollectionPaginateGet NFT traits by collection paginategetNFTTransfersGet NFT transfers by token IDgetTopNFTCollectionsByMarketCapGet top NFT collections by market cap
DeFi protocol positions, liquidity, and exposure data. EndpointDescriptiongetDefiPositionsByProtocolGet detailed DeFi positions by protocol for a walletgetDefiPositionsSummaryGet DeFi positions of a walletgetDefiSummaryGet the DeFi summary of a wallet
Labeled addresses including exchanges, funds, protocols, and whales. EndpointDescriptiongetEntityGet Entity Details By IdgetEntityCategoriesGet Entity Categories
Token and NFT prices, OHLCV candlestick data. EndpointDescriptiongetMultipleTokenPricesGet Multiple ERC20 token pricesgetPairCandlesticksGet OHLCV by pair addressgetPairPriceGet DEX token pair pricegetTokenPriceGet ERC20 token price
Blocks, transactions, date-to-block conversion, and contract functions. EndpointDescriptiongetBlockGet block by hashgetDateToBlockGet block by dategetLatestBlockNumberGet latest block numbergetTransactionGet transaction by hashgetTransactionVerboseGet decoded transaction by hash
Trending tokens, blue chips, market movers, and token discovery. EndpointDescriptiongetDiscoveryTokenGet token detailsgetTimeSeriesVolumeRetrieve timeseries trading stats by chaingetTimeSeriesVolumeByCategoryRetrieve timeseries trading stats by categorygetTopCryptoCurrenciesByMarketCapGet top crypto currencies by market capgetTopCryptoCurrenciesByTradingVolumeGet top crypto currencies by trading volumegetTopERC20TokensByMarketCapGet top ERC20 tokens by market capgetTopERC20TokensByPriceMoversGet top ERC20 tokens by price movements (winners and losers)getTopGainersTokensGet tokens with top gainersgetTopLosersTokensGet tokens with top losersgetTopProfitableWalletPerTokenGet top traders for a given ERC20 tokengetTrendingTokensGet trending tokensgetVolumeStatsByCategoryGet trading stats by categoriesgetVolumeStatsByChainGet trading stats by chain
Utility endpoints including API version, endpoint weights, and address resolution. EndpointDescriptiongetBondingTokensByExchangeGet bonding tokens by exchangegetEntitiesByCategoryGet Entities By CategorygetFilteredTokensReturns a list of tokens that match the specified filters and criteriagetGraduatedTokensByExchangeGet graduated tokens by exchangegetHistoricalTokenHoldersGet timeseries holders datagetNewTokensByExchangeGet new tokens by exchangegetUniqueOwnersByCollectionGet unique wallet addresses owning NFTs from a contract.resolveAddressENS lookup by addressresolveAddressToDomainResolve Address to Unstoppable domainresolveDomainResolve Unstoppable domainresolveENSDomainENS lookup by domainreSyncMetadataResync NFT metadatasearchEntitiesSearch Entities, Organizations or WalletssearchTokensSearch for tokens based on contract address, pair address, token name or token symbol.
Solana-specific endpoints (24 native + 10 EVM variants that support Solana chain = 34 total). EndpointDescriptionbalanceGets native balance owned by the given addressgetAggregatedTokenPairStatsGet aggregated token pair statistics by addressgetBondingTokensByExchangeGet bonding tokens by exchangegetCandleSticksGet candlesticks for a pair addressgetGraduatedTokensByExchangeGet graduated tokens by exchangegetHistoricalTokenHoldersGet token holders overtime for a given tokensgetMultipleTokenMetadataGet multiple token metadatagetMultipleTokenPricesGet token pricegetNFTMetadataGet the global metadata for a given contractgetNFTsGets NFTs owned by the given addressgetNewTokensByExchangeGet new tokens by exchangegetPairStatsGet stats for a pair addressgetPortfolioGets the portfolio of the given addressgetSPLGets token balances owned by the given addressgetSnipersByPairAddressGet snipers by pair address.getSwapsByPairAddressGet all swap related transactions (buy, sell, add liquidity & remove liquidity)getSwapsByTokenAddressGet all swap related transactions (buy, sell)getSwapsByWalletAddressGet all swap related transactions (buy, sell) for a specific wallet address.getTokenBondingStatusGet Token Bonding StatusgetTokenHoldersGet the summary of holders for a given token token.getTokenMetadataGet Token metadatagetTokenPairsGet token pairs by addressgetTokenPriceGet token pricegetTopHoldersGet paginated top holders for a given token.getDiscoveryTokenSolana variant: Get token detailsgetHistoricalTokenScoreSolana variant: Get historical token score by token addressgetTimeSeriesVolumeSolana variant: Retrieve timeseries trading stats by chaingetTimeSeriesVolumeByCategorySolana variant: Retrieve timeseries trading stats by categorygetTokenAnalyticsSolana variant: Get token analytics by token addressgetTokenScoreSolana variant: Get token score by token addressgetTopGainersTokensSolana variant: Get tokens with top gainersgetTopLosersTokensSolana variant: Get tokens with top losersgetTrendingTokensSolana variant: Get trending tokensgetVolumeStatsByCategorySolana variant: Get trading stats by categories
references/CommonPitfalls.md - Complete pitfalls reference references/DataTransformations.md - Type conversion reference references/FilteredTokens.md - Token discovery metrics, timeframes, filters, and examples references/PerformanceAndLatency.md - Response time guidance, timeout recommendations, caching references/ResponsePatterns.md - Pagination patterns references/SupportedApisAndChains.md - Chains and APIs
Endpoint rules: rules/*.md files Streams API: @moralis-streams-api for real-time events
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.