# Formo Docs > Guides and API documentation for the Formo data platform. ## Docs - [Start here](https://docs.formo.so/intro.md): Get started with Formo, the data platform for onchain apps. - [Install Formo](https://docs.formo.so/install.md): Step-by-step guide to installing the Formo SDK. - [Core concepts](https://docs.formo.so/data/concepts.md): Understand the three core concepts in analytics: events that capture key touchpoints, users behind those events, and properties that add context. - [Overview](https://docs.formo.so/features/product-analytics/overview.md): Track the full user journey from acquisition to activation and retention with unified analytics designed for crypto apps. - [Key metrics](https://docs.formo.so/features/product-analytics/key-metrics.md): Track key growth metrics like visitors, wallets, transactions, sessions, page views, volume, and revenue to understand your product performance. - [Ad Attribution](https://docs.formo.so/features/product-analytics/ads.md): Measure which ads acquire visitors, wallets, and conversions. Formo attributes traffic from Google, Meta, X, TikTok, LinkedIn, Reddit, and Microsoft ads automatically using click IDs. - [Activity feed](https://docs.formo.so/features/product-analytics/activity.md): View a real-time event stream of everything users do on your app, from page views to onchain transactions. - [Live view](https://docs.formo.so/features/product-analytics/live-view.md): See a realtime activity feed of your current visitors on a rotating globe. Perfect for launch day monitoring or a mission control dashboard. - [Custom events](https://docs.formo.so/features/product-analytics/custom-events.md): Define and track custom events like swaps, deposits, and quests with structured properties using the Formo SDK Track API. - [Contract events](https://docs.formo.so/features/product-analytics/contract-events.md): Add contracts to ingest and decode onchain events like swaps, transfers, and mints in real time across supported EVM chains. - [Charts](https://docs.formo.so/features/product-analytics/charts.md): Build custom dashboards with line, bar, pie, and funnel charts to visualize your data. - [Explorer](https://docs.formo.so/features/product-analytics/explore.md): Run custom SQL queries against your analytics data warehouse to build reports, export results, and answer questions beyond dashboards. - [Funnels](https://docs.formo.so/features/product-analytics/funnels.md): Build multi-step conversion funnels that track user journeys from page view to wallet connect to onchain transaction, with drop-off rates at each step. - [Flows](https://docs.formo.so/features/product-analytics/flows.md): Visualize user navigation paths with Sankey diagrams to identify the most common flows leading to or from any event, and find drop-off points. - [Alerts](https://docs.formo.so/features/product-analytics/alerts.md): Set up real-time alerts for high-value users, high-value transactions, and key user events, delivered via webhook or Slack. - [Retention](https://docs.formo.so/features/product-analytics/retention.md): Measure user retention with cohort analysis to identify which user groups return over time, track stickiness, and spot churn patterns in your onchain app. - [Insights](https://docs.formo.so/features/product-analytics/insights.md): Receive AI-powered insights that surface acquisition quality, revenue trends, and churn signals from your analytics data. - [Ask AI](https://docs.formo.so/features/product-analytics/ai.md): Ask questions about your analytics data in natural language and get AI-generated SQL queries, charts, and growth insights without writing code. - [Wallet intelligence overview](https://docs.formo.so/features/wallet-intelligence/overview.md): Explore wallet intelligence features including wallet profiles, audience insights, user segmentation, labels, and scoring for onchain user targeting. - [Wallet profiles](https://docs.formo.so/features/wallet-intelligence/wallet-profiles.md): View unified wallet profiles that combine offchain and onchain data including DeFi positions, token balances, session history, and user properties. - [Wallet labels](https://docs.formo.so/features/wallet-intelligence/wallet-labels.md): Understand user interests and behavior with automatically generated wallet labels based on onchain activity, reputation, and user properties. - [Wallet search](https://docs.formo.so/features/wallet-intelligence/search.md): Look up any wallet address to generate a full profile on demand, even for wallets that haven't visited your app. - [Audience insights](https://docs.formo.so/features/wallet-intelligence/audience-insights.md): Analyze your audience with breakdowns of lifecycle, sessions, transactions, net worth, and lifetime volume, revenue, and points, plus filters by apps, tokens, and chains. - [User segmentation](https://docs.formo.so/features/wallet-intelligence/segments.md): Create audience segments by grouping users based on wallet properties, onchain behavior, demographics, and lifecycle stage for targeted campaigns. - [Form builder](https://docs.formo.so/features/token-gated-forms/form-builder.md): Build and customize token-gated forms, waitlists, and surveys for your web3 community with drag-and-drop fields and wallet-connected responses. - [Token gating](https://docs.formo.so/features/token-gated-forms/token-gating.md): Restrict form access by requiring responders to hold specific ERC-20 tokens, NFTs, or SPL tokens, be on an uploaded allowlist, or complete identity verification before submitting responses. - [World ID](https://docs.formo.so/features/token-gated-forms/world-id.md): Add World ID verification to your Formo forms to ensure submissions come from real, unique humans. Prevent bots and duplicate entries with proof of personhood. - [Webhooks](https://docs.formo.so/features/token-gated-forms/webhooks.md): Send each new form response to other tools as it arrives: Zapier, Make, n8n, or Slack. - [Overview](https://docs.formo.so/integrations/overview.md): Browse supported wallet providers, developer tools, and blockchain networks that integrate with Formo for analytics and event tracking. - [Dune](https://docs.formo.so/integrations/dune.md): Query on-chain data from Dune directly in your Formo dashboards and SQL Explorer, alongside your Formo analytics data. - [Chains](https://docs.formo.so/chains/overview.md): View all EVM and non-EVM blockchain networks supported by Formo, including Ethereum, Arbitrum, Optimism, Polygon, Base, Solana, and more. - [How to Set Up Attribution](https://docs.formo.so/guides/onchain-attribution.md): Capture the complete user journey from first touch to onchain conversion with multi-touch attribution for crypto marketing campaigns. - [How to Track DAU, WAU, and MAU](https://docs.formo.so/guides/dau-tracking.md): Measure daily, weekly, and monthly active users for your onchain app with wallet-based analytics. Build DAU, WAU, and MAU dashboards and charts. - [How to Track Smart Contract Events in Real Time](https://docs.formo.so/guides/contract-events.md): Monitor smart contract activity by adding contract addresses, tracking events like swaps and transfers, and using onchain data in funnels and dashboards. - [How to Build Conversion Funnels](https://docs.formo.so/guides/funnels.md): Build multi-step conversion funnels to track user journeys from first page view to wallet connect to onchain transaction, and identify where users drop off. - [How to Analyze User Onboarding with Flows](https://docs.formo.so/guides/flows.md): Visualize how new users navigate your crypto app with Sankey flow diagrams, identify drop-off points, and optimize the path to first wallet transaction. - [How to Build a Custom Dashboard](https://docs.formo.so/guides/custom-dashboard.md): Create a custom dashboard with charts for users, transactions, revenue, retention, and acquisition channels using Formo's dashboard builder. - [How to Query Your Data with the SQL Explorer](https://docs.formo.so/guides/sql-explorer.md): Write custom ClickHouse SQL queries against your Formo analytics data to build reports, export results, and connect external BI tools like Metabase and Grafana. - [How to Use Ask AI](https://docs.formo.so/guides/ask-ai.md): Use Formo's AI assistant to explore analytics data with natural language questions and generate SQL queries automatically. - [How to Segment and Export Wallets for Targeted Campaigns](https://docs.formo.so/guides/wallet-segmentation.md): Build targeted user segments using wallet properties, onchain behavior, and lifecycle data, then export them as CSV for marketing campaigns on X and Farcaster. - [How to Track and Improve User Retention](https://docs.formo.so/guides/retention.md): Measure Week 1, 4, and 12 retention rates for your crypto app with cohort analysis, identify churn patterns, and build segments to re-engage at-risk users. - [What we collect](https://docs.formo.so/data/what-we-collect.md): Understand exactly what data the Formo SDK collects, how it flows through the system, and how privacy is maintained with no cookies or fingerprinting. - [How attribution works](https://docs.formo.so/data/attribution.md): Learn why onchain attribution matters for sustainable growth and how Formo attributes conversions from first click to wallet transaction. - [Metrics](https://docs.formo.so/data/metrics.md): Complete reference of all Formo metrics including visitors, wallets connected, transactions, revenue, retention rates, and acquisition channel breakdowns. - [Events overview](https://docs.formo.so/data/events/overview.md): Learn how to send event data to Formo's APIs and the correct format for capturing events with SDKs, including identify, track, connect, and transaction calls. - [Identify event](https://docs.formo.so/data/events/identify.md): Reference for the identify event that ties users to their actions and records traits like wallet name and RDNS for cross-session user recognition. - [Detect event](https://docs.formo.so/data/events/detect.md): Reference for the detect event that identifies a visitor's installed wallet provider, capturing the wallet name and RDNS before a connection is made. - [Custom events](https://docs.formo.so/data/events/track.md): Reference for the custom events used to record custom user actions and in-app behaviour. - [Page event](https://docs.formo.so/data/events/page.md): Reference for the page view event that records web and mobile screen visits, with auto-collected browser properties and unified cross-platform tracking. - [Connect event](https://docs.formo.so/data/events/connect.md): Reference for the connect event emitted when a user connects their wallet, including the newly connected chain ID and wallet address fields. - [Disconnect event](https://docs.formo.so/data/events/disconnect.md): Reference for the disconnect event emitted when a user disconnects their wallet, including the chain ID and wallet address payload fields. - [Chain event](https://docs.formo.so/data/events/chain.md): Reference for the chain event emitted when a user switches blockchain networks, capturing the new chain ID and wallet address in the payload. - [Signature event](https://docs.formo.so/data/events/signature.md): Reference for the signature event that tracks wallet message signing, including requested, rejected, and confirmed statuses with message and chain data. - [Transaction event](https://docs.formo.so/data/events/transaction.md): Reference for the transaction event, including status tracking for started, broadcasted, confirmed, reverted, and rejected wallet transactions with chain and hash data. - [Common fields](https://docs.formo.so/data/events/common.md): Reference for the common and contextual fields shared across all Formo events, including event type, timestamps, device context, and session identifiers. - [Data catalog](https://docs.formo.so/data/catalog.md): Full data catalog for the Formo warehouse covering events, users, sessions, revenue, and wallet profiles queryable with ClickHouse SQL. - [BI integration](https://docs.formo.so/data/bi.md): Connect Metabase, Grafana, Tableau, and other BI tools to your Formo data warehouse using the HTTP interface for custom SQL queries and dashboards. - [Data sync](https://docs.formo.so/data/data-sync.md): Configure data pipelines to export events, users, wallet profiles, and query results to Google Cloud Storage or Amazon S3 on a schedule or on-demand. - [Web](https://docs.formo.so/sdks/web.md): Install and configure the Formo Web SDK to track page views, wallet connects, transactions, and custom events in your website or web app. - [Mobile](https://docs.formo.so/sdks/mobile.md): Track user events in your mobile apps with the Formo React Native SDK. Measure what matters onchain with full device context and wallet event tracking. - [Server](https://docs.formo.so/sdks/server.md): Send events and identify users from your backend with Formo server-side SDKs for Node.js, Python, and other languages. Stateless and wallet-native. - [API overview](https://docs.formo.so/api/overview.md): Explore the Formo API suite including the Events API for data ingestion, Query API for SQL analytics, and Profiles API for wallet data and personalization. - [Authentication](https://docs.formo.so/api/authentication.md): Learn how to authenticate your Formo API requests. Use your API Key to call to the Formo Events API, Query API, BI integration, and more. - [x402 / MPP](https://docs.formo.so/api/x402.md): Let AI agents call the Formo API and pay per request, with no API key required, using the x402 and MPP payment protocols. - [Idempotency](https://docs.formo.so/api/idempotency.md): Use the Idempotency-Key header to safely retry POST/PUT/PATCH/DELETE requests on the Formo Public API without double-creating or double-charging. - [Errors](https://docs.formo.so/api/errors.md): Stable error codes returned by the Formo Public API. Branch on error.code for reliable client behavior; doc_url in every response anchors back to this page. - [Track Event](https://docs.formo.so/api/events/track.md): Send individual or batched events to Formo from any source via the Events API at events.formo.so. Supports custom events and all standard event types. - [Get Profile](https://docs.formo.so/api/profiles/get.md): Retrieve a comprehensive wallet profile by address, including onchain labels, token holdings, DeFi positions, web demographics, and lifecycle data. - [Search Profiles](https://docs.formo.so/api/profiles/search.md): Search and filter wallet profiles by address, socials, labels, net worth, chain activity, and more. Returns paginated results with full profile data. - [Update Properties](https://docs.formo.so/api/profiles/update-properties.md): Merge-update profile properties for a wallet. Set display name, email, socials, avatar, location, and other identity fields, or send null to delete a property, via a single PUT request. - [Batch Update Properties](https://docs.formo.so/api/profiles/batch-update-properties.md): Set or unset first-party profile properties for up to 100 wallets in a single request. Each item is a flat object with a required address; null values delete properties, unknown keys are ignored, and invalid rows are quarantined rather than failing the whole batch. - [Add Labels](https://docs.formo.so/api/profiles/add-labels.md): Add or update one or more labels on a wallet profile. Labels tag wallets with custom attributes like VIP tier, airdrop eligibility, or verification status. - [Delete Label](https://docs.formo.so/api/profiles/delete-label.md): Delete a label from a wallet profile by tag_id, optionally scoped to a specific chain. - [Batch Add Labels](https://docs.formo.so/api/profiles/batch-add-labels.md): Add or update up to 100 labels across many wallets in a single request. Each item carries its own address; rows with an invalid address are quarantined and reported rather than failing the whole batch. - [Import Wallets](https://docs.formo.so/api/profiles/import.md): Bulk import wallet addresses into your Formo project via the API. Enrich imported wallets with onchain data, labels, and profile information automatically. - [Send Query](https://docs.formo.so/api/query.md): Execute read-only SQL queries against your Formo analytics data warehouse via the API. Returns structured results for events, users, and sessions. - [Get KPIs](https://docs.formo.so/api/query/kpis.md): Time-series traffic KPIs (visitors, pageviews, bounce rate, session duration), with optional dimension breakdown and previous-period comparison. - [Get Top Pages](https://docs.formo.so/api/query/top-pages.md): Top pages by visits and users over the selected window. - [Get Top Sources](https://docs.formo.so/api/query/top-sources.md): Top traffic sources by referrer or UTM dimension over the selected window. - [Get Top Locations](https://docs.formo.so/api/query/top-locations.md): Top countries by visits. - [Get Top Wallets](https://docs.formo.so/api/query/top-wallets.md): Top wallet types (e.g. MetaMask, Coinbase Wallet) by connections. - [Get Top Chains](https://docs.formo.so/api/query/top-chains.md): Top blockchain chains by activity. - [Get Top Events](https://docs.formo.so/api/query/top-events.md): Top events by frequency over the selected window. - [Get Revenue by Metric](https://docs.formo.so/api/query/revenue-by-metric.md): Revenue grouped by a chosen column (e.g. pathname, referrer). - [Get Volume by Metric](https://docs.formo.so/api/query/volume-by-metric.md): Transaction volume grouped by a chosen column (e.g. pathname, referrer). - [Get Revenue Overview](https://docs.formo.so/api/query/revenue-overview.md): Revenue and transaction volume time-series with optional grouping and previous-period comparison. - [Get Revenue Timeseries](https://docs.formo.so/api/query/revenue-timeseries.md): Per-event revenue and volume trend for a single wallet. - [Get Event Timeseries](https://docs.formo.so/api/query/event-timeseries.md): Daily event count over the selected window. - [Get User Lifecycle](https://docs.formo.so/api/query/user-lifecycle.md): Wallet user counts by lifecycle stage (New, Returning, Power user, Resurrected, At Risk, Churned). - [Get User Frequency](https://docs.formo.so/api/query/user-frequency.md): Distribution of users by visit count over the selected window. - [Get Retention](https://docs.formo.so/api/query/retention.md): User retention cohorts by signup week. - [Get Funnel](https://docs.formo.so/api/query/funnel.md): Multi-step conversion funnel with per-step user counts, conversion ratios, and median time-to-convert. - [Get Flow](https://docs.formo.so/api/query/flow.md): Session-scoped user-flow transitions for Sankey-style charts. - [List Alerts](https://docs.formo.so/api/alerts/list.md): Retrieve all alerts configured for your project. Returns alert names, trigger conditions, notification channels, and enabled or disabled status. - [Get Alert](https://docs.formo.so/api/alerts/get.md): Retrieve a single alert by ID. Returns the alert name, trigger conditions, notification channel, and status. - [Create Alert](https://docs.formo.so/api/alerts/create.md): Create a new alert for your project. Define trigger conditions and configure webhook notification delivery (including Slack). - [Update Alert](https://docs.formo.so/api/alerts/update.md): Modify an existing alert by ID. Update the alert name, conditions, and webhook notification configuration through the Formo API. - [Delete Alert](https://docs.formo.so/api/alerts/delete.md): Permanently delete an alert by ID. Removes the alert configuration and stops all future notifications. - [Toggle Alert](https://docs.formo.so/api/alerts/toggle.md): Enable or disable an alert by ID. Toggling an alert pauses or resumes notifications without deleting the alert configuration. - [List Boards](https://docs.formo.so/api/boards/list.md): Retrieve all dashboard boards for your project. Returns board IDs, titles, and descriptions for each analytics dashboard. - [Get Board](https://docs.formo.so/api/boards/get.md): Retrieve a single dashboard board by ID. Returns the board title, description, and associated chart metadata. - [Create Board](https://docs.formo.so/api/boards/create.md): Create a new dashboard board for your project. Specify a title and optional description to organize your analytics charts and visualizations. - [Update Board](https://docs.formo.so/api/boards/update.md): Update a dashboard board by ID. Modify the board title or description for your analytics dashboards via the Formo API. - [Delete Board](https://docs.formo.so/api/boards/delete.md): Permanently remove a dashboard board and all associated charts by board ID. This action cannot be undone once the board is deleted. - [List Charts](https://docs.formo.so/api/boards/list-charts.md): Retrieve the charts attached to a dashboard board. Returns lightweight chart summaries by default; pass include=results to execute each chart query and receive full charts with results. - [Get Chart](https://docs.formo.so/api/boards/get-chart.md): Retrieve a single chart by board and chart ID. Returns the chart type, SQL query, visualization settings, and display configuration. - [Create Chart](https://docs.formo.so/api/boards/create-chart.md): Add a new chart to a dashboard board with a SQL query and chart type. Supports line, bar, pie, funnel, and other visualization types. - [Update Chart](https://docs.formo.so/api/boards/update-chart.md): Update an existing chart on a dashboard board. Modify the chart query, type, title, or visualization settings through the Formo API. - [Delete Chart](https://docs.formo.so/api/boards/delete-chart.md): Permanently delete a chart from a dashboard board by board and chart ID. The chart and its visualization settings are removed from the layout. - [Execute Saved Chart Query](https://docs.formo.so/api/boards/query-chart.md): Run a saved chart's query with a date range substituted for its {{date_from}} and {{date_to}} template variables. Dune-backed charts run against the project's configured Dune API key. - [Duplicate Chart](https://docs.formo.so/api/boards/duplicate-chart.md): Create a copy of a chart on the same board. Returns the ID of the newly created chart. - [Move Chart](https://docs.formo.so/api/boards/move-chart.md): Move a chart to a different board in the same project. The target board must differ from the current one. - [Reorder Charts](https://docs.formo.so/api/boards/reorder-charts.md): Set the display order of a board's charts. Charts omitted from the list keep their relative order after the listed ones. - [List Contracts](https://docs.formo.so/api/contracts/list.md): Retrieve all tracked smart contracts for your project. Returns contract addresses, chain IDs, ABIs, and event tracking configurations. - [Get Contract](https://docs.formo.so/api/contracts/get.md): Fetch a single monitored smart contract by chain ID and address. Returns the contract address, chain ID, ABI, and event tracking configuration. - [Add Contract](https://docs.formo.so/api/contracts/create.md): Register a new smart contract for event tracking by providing a chain ID, contract address, and an ABI for automatic event decoding. - [Update Contract](https://docs.formo.so/api/contracts/update.md): Update a tracked smart contract by chain and address. Modify the contract ABI, display name, or event tracking configuration through the Formo API. - [Delete Contract](https://docs.formo.so/api/contracts/delete.md): Remove a tracked smart contract by chain and address. Stops event ingestion for the contract and removes it from your project configuration. - [List Segments](https://docs.formo.so/api/segments/list.md): Retrieve all audience segments for your project using the Formo API. Returns segment names and filters. - [Create Segment](https://docs.formo.so/api/segments/create.md): Create a new audience segment by defining filter rules based on wallet properties, onchain behavior, and user demographics via the Formo API. - [Delete Segment](https://docs.formo.so/api/segments/delete.md): Permanently remove an audience segment from your project by segment ID. Deleted segments can no longer be used in filters or exports. - [MCP overview](https://docs.formo.so/mcp/overview.md): Connect AI agents, coding tools, and third-party apps to Formo with MCP. - [MCP OAuth](https://docs.formo.so/mcp/oauth.md): Connect OAuth-capable MCP clients to Formo. - [MCP API key](https://docs.formo.so/mcp/api-key.md): Connect MCP clients to Formo with a Workspace API Key. - [CLI overview](https://docs.formo.so/cli/overview.md): Query wallet profiles, run SQL analytics, manage dashboards, alerts, contracts, segments, and more - directly from your terminal or via AI agents. - [Profiles](https://docs.formo.so/cli/profiles.md): Look up wallet profiles, search your user base, update identity properties, and manage labels using the Formo CLI profiles commands. - [Query](https://docs.formo.so/cli/query.md): Run ClickHouse SQL queries against your Formo analytics data warehouse directly from the terminal, with results in TOON, JSON, or other output formats. - [Analytics](https://docs.formo.so/cli/analytics.md): Run Formo's pre-built analytics pipes (KPIs, funnels, retention, revenue, and top-N breakdowns) directly from the terminal, without writing SQL. - [Events](https://docs.formo.so/cli/events.md): Send raw analytics events to Formo from the CLI using a project SDK write key. - [Boards](https://docs.formo.so/cli/boards.md): Manage analytics dashboard boards from the terminal with the Formo CLI. Create, list, update, and delete boards that organize your charts and reports. - [Charts](https://docs.formo.so/cli/charts.md): Create, list, query, move, duplicate, reorder, update, and delete charts within dashboard boards using the Formo CLI. - [Alerts](https://docs.formo.so/cli/alerts.md): Manage project alerts from the terminal with the Formo CLI. Create, list, update, test, delete, and toggle alerts that notify your team about matching events or users. - [Contracts](https://docs.formo.so/cli/contracts.md): Register, list, inspect, update, and remove tracked smart contracts from the terminal. Manage ABIs, monitored events, and pipeline inclusion. - [Segments](https://docs.formo.so/cli/segments.md): Manage audience segments from the terminal with the Formo CLI. Create segments with filter rules, list existing segments, and delete segments by ID. - [Import](https://docs.formo.so/cli/import.md): Bulk import wallet addresses into your Formo project from the CLI. Imported wallets are enriched with onchain data and may include first-party profile properties. - [Security Best Practices](https://docs.formo.so/security/overview.md): Learn how Formo protects your data with privacy-first design, encryption, RBAC, MFA, SSO, CSP, and Subresource Integrity security practices. - [Single Sign-On (SSO)](https://docs.formo.so/security/sso.md): Configure SAML-based Single Sign-On for your Formo organization to centralize team access, enforce identity provider policies, and streamline sign-in. - [Multi-Factor Authentication (MFA)](https://docs.formo.so/security/mfa.md): Enable multi-factor authentication on your Formo account using time-based one-time passwords from an authenticator app for stronger sign-in security. - [Role Based Access Control (RBAC)](https://docs.formo.so/security/roles.md): Manage team permissions with role-based access control. Assign Owner, Admin, Editor, or Viewer roles to enforce least-privilege access across your workspace. - [Subresource Integrity (SRI)](https://docs.formo.so/security/sri.md): Learn how Formo uses Subresource Integrity to verify fetched resources and protect against XSS, NPM hijacking, and man-in-the-middle attacks. - [Content Security Policy (CSP)](https://docs.formo.so/security/csp.md): Configure Content Security Policy headers to protect your site from XSS, data injection, and man-in-the-middle attacks when using Formo. ## OpenAPI Specs - [openapi](https://docs.formo.so/api/openapi.json) ## Optional - [Changelog](https://formo.so/changelog) - [Support](https://formo.so/support) - [Status](https://status.formo.so)