Learn Moralis
Behavior
If the user invokes /learn-moralis with no question (or just says "learn moralis"), respond with a friendly platform overview. Walk them through:
- What Moralis is (enterprise Web3 data platform)
- The two skills available and when to use each:
- @moralis-data-api (116 endpoints) — query wallet balances, tokens, NFTs, DeFi positions, prices, transactions, analytics, Bitcoin address/xpub data, and Universal API data. Use for "what is the current/historical state?"
- @moralis-streams-api (47 endpoints across EVM, Solana, Bitcoin, and historical jobs) — real-time webhook delivery for contracts, wallets, programs, mints, addresses, and Bitcoin xpubs. Use for "notify me when something happens"
- Supported chains: 30+ chains across the product surface, with product-specific coverage for EVM, Solana, Bitcoin, Datashare, RPC Nodes, and Auth API
- How to get started: set
MORALIS_API_KEYin.env, then use the skill that fits their need
Keep it conversational and concise — think "onboarding tour", not "dump the docs". End by asking what they'd like to build so you can point them to the right skill.
If the user invokes /learn-moralis with a specific question, answer that question directly using the knowledge below, then route them to the appropriate technical skill.
What is Moralis?
Moralis is an enterprise-grade Web3 data infrastructure platform providing:
- Data APIs - Query wallet balances, tokens, NFTs, DeFi positions, prices, transactions
- Streams - Real-time webhook monitoring across EVM, Solana, and Bitcoin
- Datashare - Export historical data to Snowflake, BigQuery, S3
- Data Indexer - Custom enterprise indexing pipelines
- RPC Nodes - Direct blockchain node access
- Auth API - Wallet signature authentication for EVM and Solana
Key Stats: Powers 100M+ end users, 2B+ monthly API requests, and 30+ supported chains across the core platform. Product-specific coverage differs: Data Indexer docs describe 50+ chain enterprise coverage, while RPC Nodes currently cover 20+ networks.
Routing to Technical Skills
After answering a general question, route users to the appropriate skill:
| User Need | Route To |
|---|---|
| Query wallet data (balances, tokens, NFTs, history) | @moralis-data-api |
| Query Bitcoin address or xpub balances/history | @moralis-data-api |
| Get token prices, metadata, analytics | @moralis-data-api |
| Query NFT metadata, traits, floor prices | @moralis-data-api |
| Get DeFi positions, protocol data | @moralis-data-api |
| Query blocks, transactions | @moralis-data-api |
| Real-time wallet monitoring (EVM, Solana, Bitcoin) | @moralis-streams-api |
| Real-time contract or program events | @moralis-streams-api |
| Webhooks for on-chain events | @moralis-streams-api |
| Track transfers as they happen | @moralis-streams-api |
| Monitor Bitcoin xpubs | @moralis-streams-api |
| Authenticate users with wallet signatures | Auth API product docs |
| Submit signed transactions or use raw JSON-RPC | RPC Nodes product docs |
| Export bulk historical datasets | Datashare product docs |
| Build custom managed indexing pipelines | Data Indexer product docs |
Rule of thumb:
- Data API = "What is the current/historical state?"
- Streams = "Notify me when something happens"
Quick Capability Reference
Can Moralis Do This?
| Question | Answer | Skill |
|---|---|---|
| Get wallet token balances? | Yes, with USD prices | @moralis-data-api |
| Get wallet NFTs? | Yes, with metadata | @moralis-data-api |
| Get wallet transaction history? | Yes, decoded | @moralis-data-api |
| Get Bitcoin wallet or xpub history? | Yes, via Universal / Bitcoin endpoints | @moralis-data-api |
| Get token prices? | Yes, real-time + OHLCV | @moralis-data-api |
| Get NFT floor prices? | Yes on supported mainnet chains including ETH, Polygon, BSC, Arbitrum, Base, Optimism, Avalanche, Ronin, Sei, and Monad | @moralis-data-api |
| Get DeFi positions? | Yes (major chains) | @moralis-data-api |
| Monitor wallets in real-time? | Yes (EVM, Solana, Bitcoin) | @moralis-streams-api |
| Track contract events live? | Yes (EVM contracts, Solana programs) | @moralis-streams-api |
| Monitor Bitcoin xpubs in real time? | Yes | @moralis-streams-api |
| Derive Bitcoin xpub addresses? | Yes | @moralis-data-api |
| Get historical events? | Use Data API queries | @moralis-data-api |
| ENS/Unstoppable domain lookup? | Yes | @moralis-data-api |
| Token security scores? | Yes | @moralis-data-api |
| Detect snipers/bots with the retired sniper endpoint? | No; the endpoint was removed | - |
| Get trending tokens? | Yes | @moralis-data-api |
| Get a global top-tokens-by-market-cap leaderboard? | No direct replacement; trending tokens use different ranking semantics | @moralis-data-api |
| Search tokens by name/symbol? | Yes | @moralis-data-api |
| Authenticate users by wallet signature? | Yes, Auth API | Product docs |
| Run raw RPC calls? | Yes, RPC Nodes | Product docs |
| Export raw historical datasets to object storage? | Yes, Datashare | Product docs |
What Moralis Cannot Do
- Execute transactions (read-only APIs)
- Provide private node access (use RPC Nodes product separately)
- Index custom smart contracts (use Data Indexer product)
- Store user data (you handle storage)
- Provide testnet price data (only mainnet prices)
- Authenticate smart contract wallets through Auth API EIP-1271 signatures (EOA wallets only)
Supported Chains
Full API Support
| Chain | Chain ID | Notes |
|---|---|---|
| Ethereum | 0x1 | All APIs including floor prices |
| Base | 0x2105 | All APIs including floor prices |
| Polygon | 0x89 | Full listed Data API coverage |
| BSC | 0x38 | Universal PnL supported |
| Arbitrum | 0xa4b1 | No profitability |
| Optimism | 0xa | Universal PnL supported |
| Avalanche | 0xa86a | Universal PnL supported |
| Sei | 0x531 | Nearly full (no profitability), includes floor prices |
| Monad | 0x8f | Nearly full (no profitability), includes floor prices |
Also Supported
Linea, Cronos, Gnosis, Chiliz, Moonbeam, Moonriver, Flow, Ronin, Lisk, and Pulse. Universal PnL also supports Pulse.
Fantom support has been removed. Moonbeam, Moonriver, and Lisk are deprecated and scheduled for removal on September 25, 2026; direct new integrations to Base or Ethereum as documented in the changelog.
Solana
Solana Data API and Solana Streams support Mainnet only. Token Score and holder/discovery endpoints have been removed for Solana. Use @moralis-streams-api for real-time Solana webhook delivery and @moralis-data-api for state or history queries.
Bitcoin
Bitcoin is supported in two ways:
- @moralis-data-api for current and historical Bitcoin data: address or xpub balances, wallet history, blocks, transactions, prices, sparklines, and xpub-derived addresses.
- @moralis-streams-api for real-time Bitcoin address and xpub monitoring.
Other Product Surfaces
Auth API
Use Auth API for wallet-based login flows. It creates a challenge message, verifies the user's wallet signature, and returns a stable profileId across sessions. It supports EVM chains and Solana, multi-wallet profiles, and EIP-4361 style wallet authentication. It does not support EIP-1271 smart contract wallet signatures; Safe/Argent-style contract wallets cannot authenticate through Auth API today.
RPC Nodes
Use RPC Nodes when the user needs direct JSON-RPC access, raw blockchain reads, archive state, WebSocket subscriptions, or signed transaction submission. RPC usage is billed by method-specific CU weights; archive reads often cost more, and JSON-RPC batches reduce HTTP overhead but do not reduce total CU cost.
Datashare
Use Datashare for large historical or ongoing dataset exports into object storage or warehouse workflows. Exports are raw on-chain data, not enriched Data API responses: token names, symbols, logos, spam labels, and metadata enrichment are not included. Recommended format is Parquet for analytics; CSV and JSON are also supported. Estimates are free and credits are based on uncompressed export volume.
Data Indexer
Use Data Indexer for enterprise custom indexing pipelines that need custom schemas, real-time indexing plus historical backfills, custom filters/transforms, and delivery into warehouses, object storage, or databases. It is an early-access product for managed custom pipelines rather than the general request/response Data API.
Pricing Overview
Moralis uses Compute Units (CUs) across Data API, Streams, Datashare, and RPC Nodes.
- Data API: charged per endpoint. Use
@moralis-data-apipricing reference material for known costs and verify current docs for exact endpoint pricing when cost matters. - Streams: charged per confirmed record; each record costs 10 CUs. Unconfirmed webhooks are free.
- Dynamic endpoints: some endpoints charge per chain, wallet, or address rather than one flat request cost.
The Free plan was removed on September 1, 2026. Do not offer a Free plan or free API allowance. For Starter, Pro, and Business monthly prices, included CUs, and throughput, read references/FAQ.md. Verify current pricing and overage terms at Moralis pricing when cost matters.
Getting Started
- Sign up and select a paid plan: https://admin.moralis.com/register
- Get API key: Dashboard → API Keys
- Set up
.env: AddMORALIS_API_KEY=your_keyto your.envfile (the skill will help you create it) - Use skill: Ask what you want to build — the skill will check for your key and guide you
Common Use Cases
Wallet/Portfolio Tracker
Need: Display user's tokens, NFTs, balances, and transaction history.
Solution: @moralis-data-api endpoints:
getWalletTokenBalancesPrice- Token balances with pricesgetWalletNFTs- NFT holdingsgetWalletHistory- Decoded transaction historygetWalletNetWorth- Total portfolio value
Crypto Tax/Compliance
Need: Export transaction history with cost basis.
Solution: @moralis-data-api endpoints:
getWalletHistory- All transactions decodedgetWalletProfitability- Realized gains/losses
NFT Marketplace
Need: Display NFT metadata, traits, prices, and ownership.
Solution: @moralis-data-api endpoints:
getNFTMetadata- Full metadata + traitsgetNFTFloorPriceByContract- Floor pricegetNFTOwners- Current holdersgetNFTTrades- Sale history
DeFi Dashboard
Need: Show user's DeFi positions across protocols.
Solution: @moralis-data-api endpoints:
getDefiPositionsSummary- All positionsgetDefiPositionsByProtocol- Protocol-specific data
Trading Bot / Alerts
Need: React to on-chain events in real-time.
Solution: @moralis-streams-api:
- Create stream with
topic0for target events - Receive webhook when event occurs
- Process and act on data
Token Analytics Platform
Need: Token prices, holders, trading volume, security scores.
Solution: @moralis-data-api endpoints:
getTokenPrice- Current pricegetTokenAnalytics- Volume, liquiditygetTokenHolders- Holder distributiongetTokenScore- Security analysis
Data API vs Streams: When to Use
| Scenario | Use |
|---|---|
| Display current wallet balance | Data API |
| Alert when balance changes | Streams |
| Show transaction history | Data API |
| Log every new transaction | Streams |
| Get NFT metadata | Data API |
| Notify on NFT transfer | Streams |
| Query token price | Data API |
| Track DEX swaps live | Streams |
Performance Expectations
Most Data API endpoints respond quickly. However, response times can vary based on:
- Query complexity: Simple lookups (balance, price) are fastest. Decoded endpoints (wallet history, DeFi positions) do more processing.
- Wallet size: Wallets with large transaction histories take longer. Use pagination with smaller limits for whale/power-user wallets.
- Chain: Response times vary across chains. Some chains are inherently slower than others.
Recommended Timeouts
For production applications, set client-side timeouts to 30s to handle edge cases. Most requests return much faster, but large wallets or slower chains can occasionally take longer.
For detailed optimization guidance, see @moralis-data-api → references/PerformanceAndLatency.md.
Reference Documentation
For detailed information:
- references/FAQ.md - Common questions and answers
- references/ProductComparison.md - Detailed feature comparison
- references/UseCaseGuide.md - Implementation patterns by use case
Support Resources
- Docs: https://docs.moralis.com
- Discord: Community support
- Forum: https://forum.moralis.io
- Stack Overflow: Tag
moralis
Next Steps
After answering a question, always suggest the next action:
If user needs to query data: "Use @moralis-data-api — make sure your
MORALIS_API_KEYis set in your.envfile, then I can help you fetch the data."If user needs real-time events: "Use @moralis-streams-api — make sure your
MORALIS_API_KEYis set in your.envfile and have your webhook URL ready, then I can help set up the stream."If user is exploring: Suggest specific endpoints based on their use case.