> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xentfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools Reference

> Every xentfi_* MCP tool exposed by @xentfi/mcp-server — arguments, behavior, and what it returns.

All tools are prefixed `xentfi_` so they don't collide with tools from other MCP servers. They map directly onto the [`/v1/agent-self/*`](/api-reference/introduction) and [`/v1/assets/*`](/api-reference/introduction) routes — each tool's description below notes the underlying endpoint.

<Note>
  `xentfi_list_blockchains`, `xentfi_get_blockchain`, `xentfi_list_tokens`, `xentfi_get_token`, `xentfi_get_token_price`, and `xentfi_get_token_prices` require an **`orgId`** in addition to the agent API key. Set `XENTFI_ORG_ID` when configuring the MCP server if you plan to use them.
</Note>

## Agent & wallets

### `xentfi_get_agent_info`

Identity and status (`ACTIVE` / `SUSPENDED` / `REVOKED`) for the authenticated agent. Call this first to confirm the API key is valid.

* **Maps to:** `GET /v1/agent-self`
* **Arguments:** none
* **Returns:** `{ id, organizationId, name, status }`

### `xentfi_list_wallets`

List wallets linked to this agent.

* **Maps to:** `GET /v1/agent-self/wallets`
* **Arguments:** `addressId?`, `isActive?`, `from?`, `to?`, `offset?`, `limit?`, `order?`
* **Returns:** paginated `{ data: AgentWallet[], total, hasMore }`

### `xentfi_create_wallet`

Generate a brand-new on-chain wallet on a given blockchain and link it to this agent automatically.

* **Maps to:** `POST /v1/agent-self/wallets/create`
* **Arguments:** `blockchainId` (required — use `xentfi_list_blockchains` to find valid values), `label?`
* **Returns:** the created `AgentWallet`

### `xentfi_link_wallet`

Link an *existing* XentFi child wallet (deposit address) to this agent by its `addressId`.

* **Maps to:** `POST /v1/agent-self/wallets`
* **Arguments:** `addressId` (required), `label?`
* **Returns:** the created `AgentWallet`

### `xentfi_get_wallet_balance`

Token balances and live USD value for one of this agent's wallets.

* **Maps to:** `GET /v1/agent-self/wallets/{agentWalletId}/balance`
* **Arguments:** `agentWalletId` (required)
* **Returns:** `{ asset, balance, usdValue }[]`

## Policy

### `xentfi_get_policy`

The agent's effective spend policy and current spend counters. Call this before a large or unusual payment, and after any `POLICY_DENIED` result.

* **Maps to:** `GET /v1/agent-self/policy`
* **Arguments:** none
* **Returns:** `{ policy, currentSpend: { spentTodayUsd, spentThisWeekUsd, spentThisMonthUsd } }`

## Payments

### `xentfi_create_payment`

Move funds from one of this agent's wallets to a recipient (`TRANSFER`) or settle a checkout (`CHECKOUT`). Evaluated against the agent's active Policy server-side.

* **Maps to:** `POST /v1/agent-self/payments`
* **Arguments:** `agentWalletId`, `assetId`, `recipient`, `amount` (all required), `kind?` (`TRANSFER` | `CHECKOUT`, default `TRANSFER`), `idempotencyKey?`, **`confirm`** (required boolean)
* **Returns:** the created `AgentTransaction`, or `{ submitted: false, wouldSend }` if `confirm` was `false`

<Warning>
  `confirm` must be explicitly `true` for the payment to actually submit. This gives the calling agent (and any human-in-the-loop layer above it) a deliberate checkpoint before funds move. It does not replace XentFi's own server-side Policy enforcement — a payment with `confirm: true` can still come back `POLICY_DENIED`.
</Warning>

### `xentfi_list_payments`

List past and pending payment transactions.

* **Maps to:** `GET /v1/agent-self/payments`
* **Arguments:** `agentWalletId?`, `status?` (`PENDING` | `POLICY_DENIED` | `APPROVED` | `SUBMITTED` | `EXECUTED` | `FAILED`), `from?`, `to?`, `offset?`, `limit?`, `order?`
* **Returns:** paginated `{ data: AgentTransaction[], total, hasMore }`

### `xentfi_get_payment`

Full detail for a single payment, including policy evaluation trace and denial reason if applicable.

* **Maps to:** `GET /v1/agent-self/payments/{id}`
* **Arguments:** `id` (required)
* **Returns:** the `AgentTransaction`

## Market data

### `xentfi_list_blockchains`

Supported blockchains, filterable by mainnet/testnet, token standard, and name/slug. Use this to find a valid `blockchainId` before creating a wallet.

* **Maps to:** `GET /v1/assets/blockchains`
* **Arguments:** `isActive?` (default `true`), `includeAssets?`, `slug?`, `tokenStandard?`, `name?`, `mainnet?`, `offset?`, `limit?`

### `xentfi_get_blockchain`

Detail for a single blockchain by ID or slug.

* **Maps to:** `GET /v1/assets/blockchains/{id}`
* **Arguments:** `id` (required), `includeAssets?`

### `xentfi_list_tokens`

Supported tokens, filterable by blockchain, network, or symbol. Use this to find a valid `assetId` before sending a payment.

* **Maps to:** `GET /v1/assets/tokens`
* **Arguments:** `blockchainId?`, `blockchainSlug?`, `network?` (`mainnet` | `testnet`), `isActive?` (default `true`), `isNative?`, `symbol?`, `name?`, `offset?`, `limit?`

### `xentfi_get_token`

Detail for a single token by ID or symbol.

* **Maps to:** `GET /v1/assets/tokens/{id}`
* **Arguments:** `id` (required)

## Next steps

<CardGroup cols={2}>
  <Card title="Error Handling" icon="alert-triangle" href="/agent/errors">
    How policy denials and API failures come back to the agent.
  </Card>

  <Card title="Client Integrations" icon="puzzle" href="/agent/claude-desktop">
    Wire these tools into Claude, Cursor, VS Code, ChatGPT, and more.
  </Card>
</CardGroup>
