---
title: Allium API Integration on Truto
slug: allium
category: Analytics
canonical: "https://truto.one/integrations/detail/allium/"
---

# Allium API Integration on Truto



**Category:** Analytics  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 90 tools for Allium that AI agents can call directly.

- **create_a_allium_querie_run** — Execute a saved allium query by its query_id and return the results. The request body is a free-form JSON object that maps query parameter names to string values; the required keys depend on the saved query's parameter definitions. Returns query execution results as a dynamic payload whose schema depends on the query's column definitions. Required: query_id.
- **create_a_allium_querie_run_async** — Execute an Allium Explorer query asynchronously and receive a run identifier for polling results. Returns: run_id. Required: query_id.
- **list_all_allium_explorer_query_runs** — Get the latest query run for a given query in allium. Returns: run_id, query_id, query_config, creator_id, created_at, completed_at, status, stats, error, results, zed_token. Required: query_id.
- **allium_explorer_query_runs_cancel** — Cancel a running query run in allium by run_id. Returns a 200 response on success; the response body structure is not enumerated by the source. Required: run_id.
- **list_all_allium_query_run_status** — Get the current execution status of an Allium Explorer query run. Returns a status string indicating the run's progress — one of: created, queued, running, success, failed, or canceled. Required: run_id.
- **list_all_allium_query_run_results** — List results of a completed Allium Explorer query run. Returns: sql, data, meta, queried_at, run_id. Required: run_id.
- **list_all_allium_polygon_nfts** — List NFTs on the Polygon blockchain via Allium. Returns: id, created_at, updated_at.
- **list_all_allium_pings** — List pings in allium. Returns: id, name, created_at, updated_at.
- **create_a_allium_token_price** — Fetch the latest price and OHLC values for a list of tokens in allium. Returns an items array with each token's timestamp, chain, address, price, open, high, close, low, and decimals, plus a cursor and message. Required: a request body array of token_address and chain pairs (up to 200 tokens).
- **get_single_allium_token_price_by_id** — Get token prices at or before a specific timestamp in allium, falling back to the closest prior price when no exact match exists. Returns an items array with input_timestamp, price_timestamp, mint, chain, and price per token, plus a cursor and message. Required: addresses, timestamp, time_granularity.
- **create_a_allium_token_price_history** — Fetch historical OHLC price data in allium for up to 50 token/chain pairs over a specified time window. Returns items containing mint, chain, decimals, and a prices array with timestamp, price, open, high, close, and low values; also returns cursor and message. Required: addresses, start_timestamp, end_timestamp, time_granularity.
- **create_a_allium_token_price_stat** — Fetch token price statistics for up to 200 tokens in allium based on on-chain DEX activity. Returns: filter. Required: a request body array with token_address and chain per token entry. Maximum 200 tokens per request.
- **list_all_allium_tokens** — List the top allium tokens ordered by a specified metric. Returns: chain, address, object, price, decimals, info, attributes. Supports optional filtering by chain and minimum volume thresholds.
- **allium_tokens_search** — Search allium tokens by keyword matched case-insensitively against token name and symbol. Returns: chain, address, object, price, decimals, info, attributes. Required: q.
- **get_single_allium_token_by_id** — Fetch detailed token data in allium for one or more specific token addresses by supplying an array of chain/address pairs. Returns: object, allocation_amounts, consumed_amounts. Required: token_address, chain (per array item). Accepts 1–200 pairs per request.
- **list_all_allium_token_transfers** — List token transfers in allium for a given blockchain chain. Returns records including block_slot, block_height, block_timestamp, txn_id, from_account, to_account, from_token_account, to_token_account, mint, value, decimals, and signer. Required: chain. transfer_type filter can only be used when address is also specified.
- **list_all_allium_assets** — List assets in Allium. Returns a paginated collection of asset records; each item includes id, slug, source, name, symbol, image_url, circulating_supply, chain_specific_data, and token_creation_time. No required parameters.
- **get_single_allium_asset_by_id** — Get a batch of assets in Allium by ID, slug, or chain and address. Returns an array of asset records each with id, slug, source, name, symbol, image_url, circulating_supply, chain_specific_data, and token_creation_time. Supply at least one lookup field per item in the request body.
- **create_a_allium_wallet_balance** — Fetch the latest fungible token balances for one or more wallet addresses across supported chains in Allium. Returns: address, block_hash, block_number, block_timestamp, chain, raw_balance, raw_balance_str, token. Required: array body with chain and address per entry. Accepts 1–100 wallet entries per request.
- **create_a_allium_wallet_balance_history** — Fetch historical fungible token balances for up to 5 wallet addresses in allium. Returns balance records including address, block_hash, block_slot, block_timestamp, chain, raw_balance, raw_balance_str, token, txn_id, and txn_index. Required: addresses, start_timestamp, end_timestamp.
- **create_a_allium_wallet_transaction** — Fetch wallet transactions in allium for one or more wallet address and chain pairs, supporting up to 20 wallets per request. Returns items containing each transaction's id, hash, chain, block_timestamp, fee, from_address, to_address, asset_transfers, and activities, plus a cursor for pagination. Required: request body array with chain and address per wallet.
- **create_a_allium_wallet_holdings_history** — Fetch historical USD holdings value for wallet addresses in allium, returning aggregated snapshots at regular time intervals sorted by timestamp descending. Returns: filter. Required: addresses, start_timestamp, end_timestamp, granularity. Accepts 1–15 address/chain pairs per request; the finest allowed granularity depends on the requested time range.
- **create_a_allium_wallet_pnl** — Fetch current PnL metrics for one or more wallet addresses in allium. Returns: filter. Accepts 1–20 wallet/chain pairs per request. Required: array body with chain and address for each entry.
- **create_a_allium_wallet_pnl_history** — Fetch historical realized and unrealized PnL for wallet addresses in Allium over a specified time range and granularity. Returns: filter. Required: addresses, start_timestamp, end_timestamp, granularity. Addresses array is limited to 1–20 entries; allowed granularity depends on the requested time range.
- **create_a_allium_wallet_pnl_by_token** — Fetch current PnL metrics for specific wallet and token address combinations in allium. Returns data and items each containing chain, address, token_address, current_tokens, current_balance, current_price, unrealized_pnl, realized_pnl, average_cost, unrealized_pnl_ratio_change, attributes, and historical_breakdown per token. Required: chain, address, token_address per item. Accepts an array of…
- **create_a_allium_wallet_pnl_by_token_history** — Fetch historical PnL breakdown by token for one or more wallets in allium. Returns data and items arrays each containing chain, address, token_address, and a pnl array of timestamped unrealized_pnl and realized_pnl entries, plus error and cursor. Required: addresses (1–20 wallet/chain/token triples), start_timestamp, end_timestamp, granularity.
- **create_a_allium_wallet_position** — Fetch DeFi wallet positions in allium for up to 5 address/chain pairs in a single request. Returns items (a list of positions with position_id, position_type, protocol, address, chain, total_value_usd, token0, token1, and unclaimed_fees_usd), cursor, and total. Required: chain and address for each entry in the request array.
- **create_a_allium_hyperliquid_fill** — Fetch fill data for a Hyperliquid user address in Allium. Returns an array of fill records including closedPnl, coin, hash, oid, px, side, sz, time, fee, feeToken, tid, liquidation, builderFee, builderAddress, and twapId. Required: type, user. Note: startTime is required when type is userFillsByTime.
- **create_a_allium_hyperliquid_order_history** — Fetch historical order data for a Hyperliquid user address via Allium. Returns an array of order records each containing order (with coin, side, limitPx, sz, oid, orderType, tif, cloid, and more), status, and statusTimestamp. Required: type, user. The interval between startTime and endTime cannot exceed 30 days; omit both to retrieve the most recent orders.
- **create_a_allium_hyperliquid_order_status** — Get order status information for a Hyperliquid user address. Returns the order object (including coin, side, limitPx, sz, oid, orderType, tif, and cloid), along with status and statusTimestamp. Required: type, user, oid.
- **list_all_allium_hyperliquid_orderbook** — List all Hyperliquid orderbook snapshots across every trading pair with approximately 5-second data freshness. Returns an array of per-pair snapshots; each snapshot includes pair (trading pair identifier) and book_orders (two-element array of bids at index 0 and asks at index 1), where every order entry contains coin, side, limitPx, sz, oid, timestamp, orderType, tif, reduceOnly, origSz,…
- **create_a_allium_hyperliquid_event** — Retrieve Hyperliquid user event history from Allium, returning funding payments or non-funding ledger updates for a given wallet address. Returns an array of event objects each containing time (Unix ms timestamp), hash (transaction hash), and a delta payload with type-specific fields such as coin, usdc, szi, and fundingRate. Required: type, user.
- **list_all_allium_markets** — List allium markets with optional filters by venue, instrument type, base/quote asset, and active status. Returns: market_id, venue, base_asset, quote_asset, settlement, active, tick_size, contract_size, perp.
- **allium_markets_search** — Search allium markets by free-text query for ticker lookups and symbol disambiguation across venues and instrument types. Returns: market_id, venue, match_type. Required: q (max 1024 characters).
- **get_single_allium_market_by_id** — Get a single allium market by id. Returns `data`, the full market reference object, including market_id, venue, base_asset, quote_asset, settlement, active, tick_size, contract_size, and perp funding metadata. Required: id.
- **list_all_allium_market_prices** — Get the latest price snapshot for a market in allium. Returns: market_id, as_of, mark, index, mid. Required: market_id, instrument (either `perps` or `spot`, consistent with the market_id). Snapshots are cached for ~60 seconds.
- **list_all_allium_market_ohlcv** — List historical OHLCV candles for a market in allium. Returns: market_id, open_time, close_time, open, high, low, close, volume, trade_count. Required: market_id, interval, start_timestamp, end_timestamp. Query window is capped at 7 days per request.
- **list_all_allium_market_funding** — List historical funding rates for a perpetual market in allium, collapsed into hourly buckets. Returns: market_id, ts, funding_rate, premium_index, interval_seconds. Required: market_id, start_timestamp, end_timestamp. Query window is capped at 7 days per request.
- **list_all_allium_market_open_interest** — List open interest timeseries for a perpetual market in allium. Returns: market_id, ts, oi_base, oi_quote_usd. Required: market_id, interval, start_timestamp, end_timestamp. Query window is capped at 7 days per request.
- **list_all_allium_market_liquidations** — List historical liquidation events for a perpetual market in allium, returned newest first. Returns: market_id, ts, size_base, price, notional_usd, side. Required: market_id, start_timestamp, end_timestamp. Query window is capped at 7 days per request.
- **list_all_allium_organization_usage** — Get your Allium organization's current unit usage for the active billing and allocation period. Returns: billing_period_start, billing_period_end, allocation_period_start, allocation_period_end, allocation_cadence, allocation_amounts, consumed_amounts.
- **list_all_allium_beam_configs** — List all allium Beam pipeline configurations accessible to the authenticated user. Returns an array of BeamConfig objects, each including id, name, description, pipeline_config, owner_org_team_user_id, organization_id, tags, static_egress_ip, pod_size, created_at, and updated_at.
- **create_a_allium_beam_config** — Create a new allium Beam pipeline configuration. Returns the created BeamConfig including id, name, description, owner_org_team_user_id, pipeline_config, organization_id, created_at, updated_at, tags, static_egress_ip, and pod_size. Required: name, description, pipeline_config.
- **get_single_allium_beam_config_by_id** — Get a single allium Beam pipeline configuration by id. Returns the full BeamConfig object including id, name, description, pipeline_config, owner_org_team_user_id, organization_id, created_at, updated_at, tags, static_egress_ip, and pod_size. Required: id.
- **update_a_allium_beam_config_by_id** — Update an existing allium Beam pipeline configuration by id. Returns the updated BeamConfig including id, name, description, owner_org_team_user_id, pipeline_config, organization_id, created_at, updated_at, tags, static_egress_ip, and pod_size. Required: id, name, description, owner_org_team_user_id, pipeline_config.
- **delete_a_allium_beam_config_by_id** — Delete an allium Beam pipeline configuration by id, permanently removing the config and tearing down all active deployment resources including Kafka topics, workers, and subscriptions. Returns: message. Required: id.
- **list_all_allium_beam_sources** — List all available Allium Beam pipeline sources — the catalog of chain/entity combinations that can be used as a Beam pipeline input. Returns: chain, entity, is_zerolag. Optionally filter by chain, entity, or zerolag.
- **create_a_allium_beam_deployment** — Deploy an Allium Beam pipeline config, creating Kafka topics, provisioning credentials, and spinning up workers. Deployment is idempotent — safe to call again after updating a config to apply changes with zero downtime. Returns: message. Required: config_id.
- **delete_a_allium_beam_deployment_by_id** — Tear down a deployed Allium Beam pipeline, removing workers, Kafka topics, and subscriptions while preserving the pipeline config for future redeployment. Returns: message. Required: config_id.
- **list_all_allium_beam_deployment_stats** — Get deployment stats for an Allium Beam pipeline configuration. Returns workers_health containing total_workers, healthy_workers, unhealthy_workers, crashing_workers, oom_killed_workers, and a workers array with per-worker fields including name, status, is_ready, is_crash_looping, is_oom_killed, restart_count, and start_time. Required: config_id.
- **list_all_allium_beam_deployment_metrics** — List Allium Beam pipeline deployment metrics. Aggregated mode returns pipeline_id, messages_received_per_min, messages_sent_per_min, total_latency, processing_latency, processor_error_rate, output_error_rate, and data_freshness_ms. Time-series mode returns config_id and a metrics array with timestamped data points. Required: config_id.
- **update_a_allium_beam_transform_by_id** — Update a single transform in an allium Beam pipeline by id. The pipeline is automatically redeployed after the update. Returns: script, uid. Required: config_id, id.
- **allium_beam_transforms_replace** — Get a single allium Beam transform by id within a pipeline config. Returns: script, uid. Required: config_id, id.
- **allium_beam_transforms_partial_update** — List all transforms configured for an allium Beam pipeline. Returns an array of transform objects each containing script, uid, and type. Required: config_id.
- **allium_beam_transforms_bulk_update** — Replace all transforms for an allium Beam pipeline in a single call, handling add, remove, update, and reorder. The pipeline is automatically redeployed. Returns: added. Required: config_id. The transforms list cannot be empty; omit uid on new transforms to auto-generate one.
- **create_a_allium_beam_filter_value** — Add values to an Allium Beam set filter transform. Duplicates are silently ignored and changes take effect immediately without redeploying. Returns: added. Required: config_id, transform_uid, values.
- **list_all_allium_beam_filter_values** — List all values in an Allium Beam set filter transform, returned as a paginated collection. Returns: values, total_count, cursor. Required: config_id, transform_uid.
- **delete_a_allium_beam_filter_value_by_id** — Remove specific values from an Allium Beam set filter transform. Changes take effect immediately without redeploying. Returns: removed. Required: config_id, transform_uid, values.
- **update_a_allium_beam_filter_value_by_id** — Atomically replace all values in an Allium Beam set filter transform. An empty list clears the filter entirely. Changes take effect immediately without redeploying. Returns: count. Required: config_id, transform_uid, values.
- **list_all_allium_beam_filter_value_count** — Count the total number of filter values for a specific transform in Allium Beam. Returns the scalar aggregate count of values currently held in the filter. Required: config_id, transform_uid.
- **list_all_allium_beam_filter_value_check** — Check whether a specific value exists in a Beam set filter transform in Allium. Returns the checked value and its membership status: value, is_member. Required: config_id, transform_uid, value.
- **list_all_allium_beam_backfills** — List all allium backfill jobs for the authenticated organization, ordered by creation time. Returns: job_id, workflow_id.
- **create_a_allium_beam_backfill** — Create an allium backfill job that stages data from a Snowflake table for a given time window and streams it to one or more destinations. The job progresses through staging → transporting → completed (or failed/cancelled). Returns: job_id, workflow_id. Required: job_name, table, backfill_window, destinations. Currently only Base tables are supported.
- **allium_beam_backfills_cancel** — Cancel a running allium backfill job by job_id. Sends a cancellation signal; the job stops at the next phase boundary and transitions to cancelled, with associated resources torn down automatically. Returns an empty 204 response on success. Required: job_id.
- **create_a_allium_beam_dataset** — Create a new dataset in Allium Beam. Dataset names must be unique per user. Returns: id, name, created_at, updated_at. Required: name.
- **list_all_allium_beam_datasets** — List all datasets belonging to the authenticated user in Allium Beam. Returns: id, name, created_at, updated_at, count. Optionally filter results to specific datasets by name.
- **delete_a_allium_beam_dataset_by_id** — Permanently delete a dataset and all its entries in Allium Beam by id. This action is irreversible. Returns an empty 204 response on success. Required: id.
- **create_a_allium_beam_dataset_entry** — Add string values to an Allium Beam dataset. Duplicates are silently ignored and changes are reflected immediately in lookups without requiring a redeploy. Returns: count. Required: dataset_id, values. Maximum 250,000 values per request.
- **list_all_allium_beam_dataset_entries** — List all entries in an Allium Beam dataset, sorted alphabetically. Returns: values, cursor, total_count. Required: dataset_id.
- **delete_a_allium_beam_dataset_entry_by_id** — Remove string values from an Allium Beam dataset. Non-existent values are silently ignored and changes take effect immediately without requiring a redeploy. Returns: count. Required: dataset_id, values.
- **get_single_allium_beam_dataset_entry_by_id** — Check whether a specific value exists as an entry in an Allium Beam dataset. Returns a single boolean field: exists, indicating whether the looked-up value was found in the dataset. Required: dataset_id, entry.
- **create_a_allium_beam_dataset_entries_by_name** — Add string values to an Allium Beam dataset identified by name. Duplicates are ignored and changes are reflected immediately in beam.contains() lookups. Returns: count. Required: name, values. Each request supports up to 250,000 values.
- **create_a_allium_stream_data_source** — Create a new filter data source in allium for use in stream transformations. Returns: message, result_id. Required: name, type, description. The type field accepts string_array, int_array, or float_array.
- **list_all_allium_stream_data_sources** — List all filter data sources in allium. Returns: id, name, description, message, result_id.
- **get_single_allium_stream_data_source_by_id** — Get a single allium filter data source by id. Returns: id, name, description. Required: id.
- **delete_a_allium_stream_data_source_by_id** — Delete an allium filter data source by id. Returns: message, result_id. Required: id.
- **update_a_allium_stream_data_source_value_by_id** — Add or remove string values from a filter data source in allium. Returns: message. Required: data_source_id, operation, values.
- **list_all_allium_stream_data_source_values** — List the string values stored in a filter data source in allium. Returns: message. Required: data_source_id.
- **create_a_allium_stream_filter** — Create a new stream filter in allium for use in data stream transformations. Supports comparison operators (=, !=, >, >=, <, <=), the `in` operator for arrays or data sources, the `exists` operator for field-presence checks, and compound AND/OR logic. Returns: message, result_id, filter. Required: filter.
- **list_all_allium_stream_filters** — List all allium stream filters. Optionally narrow results to a specific filter using the id query parameter. Returns: id, filter. The filter object contains the filter definition and may include field, operator, and value (simple filter), op and conditions (compound filter), or type and data_source_id (data-source filter).
- **get_single_allium_stream_filter_by_id** — Get a single allium stream filter by id. Returns: id, filter. The filter object contains the filter definition and may include field, operator, and value (simple filter), op and conditions (compound filter), or type and data_source_id (data-source filter). Required: id.
- **update_a_allium_stream_filter_by_id** — Update an existing allium stream filter by id, replacing its filter definition. Returns: message, result_id. Required: id, filter.
- **delete_a_allium_stream_filter_by_id** — Delete an allium stream filter by id. Returns: message, result_id. Required: id.
- **create_a_allium_stream_workflow** — Create a new allium workflow that connects a data source, filter, and destination for stream processing. Returns: id, filter_id, data_source_config, data_destination_config, description, external_workflow_id. Required: filter_id, data_source_config, data_destination_config. For PUSH delivery, webhook_url must also be provided inside data_destination_config.
- **list_all_allium_stream_workflows** — List all allium workflows. Returns an array of workflow objects each including id, filter_id, data_source_config, data_destination_config, description, and external_workflow_id.
- **get_single_allium_stream_workflow_by_id** — Get a single allium workflow by id. Returns: id, filter_id, data_source_config, data_destination_config, description, external_workflow_id. Required: id.
- **update_a_allium_stream_workflow_by_id** — Update an existing allium workflow by id. Only filter_id and description can be modified. Returns: id, filter_id, data_source_config, data_destination_config, description, external_workflow_id. Required: id, filter_id.
- **delete_a_allium_stream_workflow_by_id** — Delete an allium workflow by id. Returns: message. Required: id.
- **create_a_allium_explorer_query** — Create a new saved Explorer query in Allium programmatically without using the Allium App interface. Returns: filter. Required: title, config. Maximum exportable rows is 250,000; this limit can be increased on request.
- **update_a_allium_explorer_query_by_id** — Update an existing saved Explorer query in Allium by id. Modify the SQL, row limit, parameters, or compute profile of a previously created query. Returns: run_id. Required: id.

## How it works

1. **Link your customer's Allium account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Allium.** The Proxy API is a 1-to-1 mapping of the Allium API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Power crypto portfolio and PnL dashboards** — Give your users instant, multi-chain portfolio views with realized and unrealized PnL without building blockchain infrastructure. Truto handles the Allium connection so your SaaS can focus on the UX layer.
- **Automate crypto accounting and tax workflows** — Let accounting and treasury SaaS platforms reconstruct historical wallet activity, cost basis, and holdings across chains. Allium provides the standardized ledger and pricing data; Truto keeps the integration maintained.
- **Stream on-chain events into compliance and monitoring tools** — Compliance and risk SaaS products can provision real-time Allium Beam pipelines per customer to watch flagged wallets and trigger alerts. Truto abstracts the config, deployment, and dataset management calls.
- **Enable Web3 audience segmentation for marketing SaaS** — Marketing and CRM platforms can run parameterized SQL queries against Allium Explorer to build wallet segments based on holdings, NFT ownership, or trading volume. Truto standardizes query execution and result polling.
- **Deliver institutional trading terminals with perps and Hyperliquid data** — Trading SaaS products can layer funding rates, open interest, liquidations, and Hyperliquid orderbook data into their dashboards. Truto provides a single interface to Allium's market and derivatives endpoints.

## What you can build

- **Multi-chain wallet PnL dashboards** — Use wallet PnL, PnL-by-token, and holdings history endpoints to show users per-token cost basis, realized and unrealized gains across their connected wallets.
- **Historical tax and cost-basis engine** — Combine wallet transaction history with point-in-time token prices to auto-generate cost basis, capital gains, and downloadable tax reports for end users.
- **Real-time on-chain event webhooks** — Create and deploy Allium Beam configs, filters, and workflows on behalf of your users so their app receives streamed events for specific wallets, tokens, or contracts.
- **Dynamic wallet watchlists for compliance alerts** — Programmatically add or remove wallet addresses from Beam datasets so customers can maintain live monitoring lists that update streaming filters without redeployment.
- **Parameterized SQL-powered audience builder** — Trigger async Allium Explorer query runs from your UI, poll status, and pull results to let non-technical users build on-chain segments (holders, NFT owners, high-volume traders).
- **Perpetuals and Hyperliquid trading cockpit** — Combine Hyperliquid fills, order history, orderbook, market OHLCV, funding, open interest, and liquidations endpoints to power an institutional trading terminal.

## FAQs

### How does authentication to Allium work through Truto?

Allium uses API key authentication. Your end users (or your team, if you're the account holder) provide an Allium API key, and Truto stores and injects it into every request so you never handle credentials directly.

### Can we run long-running Allium Explorer SQL queries without blocking our app?

Yes. Truto exposes both synchronous and asynchronous query run endpoints. For heavy workloads, submit an async run, poll the query run status endpoint, and fetch results once completed. You can also cancel in-flight runs.

### How do we manage real-time streaming pipelines for each of our customers?

Truto exposes Allium Beam's full lifecycle: create and update Beam configs, list sources, deploy pipelines, monitor deployment stats and metrics, manage transforms and filter values, and run backfills. You can provision an isolated streaming setup per tenant.

### How do we handle large or changing lists of wallets in a live stream?

Use Allium Beam datasets. Truto supports creating datasets, adding entries individually or by name, listing entries, and deleting them. Updates propagate to running streams without requiring a redeploy.

### What blockchain data can we pull on demand versus streamed?

On-demand endpoints cover tokens, token prices and history, token transfers, assets, wallet balances and history, wallet transactions, wallet PnL (including per-token and historical), wallet positions, Polygon NFTs, and market data including OHLCV, funding, open interest, and liquidations. Streaming is handled via Beam and Stream workflows.

### Can we track usage and costs per customer?

Yes. The organization usage endpoint lets you pull Allium usage metrics so you can attribute consumption back to specific tenants for billing, quota enforcement, or internal reporting.

## Related reading

- [Connect Allium to Claude: Analyze Markets and Stream Real-Time Data](https://truto.one/blog/connect-allium-to-claude-analyze-markets-and-stream-real-time-data/) — Learn how to connect Allium to Claude using a managed MCP server. Automate blockchain analytics, asynchronous query execution, and DeFi trading workflows.
- [Connect Allium to ChatGPT: Run SQL Queries and Track Wallet Assets](https://truto.one/blog/connect-allium-to-chatgpt-run-sql-queries-and-track-wallet-assets/) — Learn how to connect Allium to ChatGPT using a managed MCP server. Automate on-chain SQL queries, track wallet PnL, and manage DeFi pipelines without writing custom integration code.
- [Connect Allium to AI Agents: Automate DeFi Analytics and Pipelines](https://truto.one/blog/connect-allium-to-ai-agents-automate-defi-analytics-and-pipelines/) — Learn how to connect Allium to AI agents using Truto's /tools endpoint. Build autonomous workflows to query blockchain data, track wallet PnL, and manage Beam pipelines.
