# Platform API

Vilna Platform API. Monitor blockchain addresses, track transactions, manage invoices, and receive notifications across multiple chains.

**Quick Links**

- [Security Guide](/apis/platform/security) - Authentication and webhook verification
- [CAIP Standards](/apis/platform/caip-standards) - Asset identification standards
- [Quick Start Guide](/guides/quickstart) - Step-by-step integration tutorial

**Endpoints**

Activity & Balances

- **[Activity](#tag/activity)** - Balance changes across tracked addresses
- **[Balances](#tag/balance)** - Current balances and historical snapshots for charts

Address Operations

- **[Addresses](#tag/address)** - List, import, update, and delete tracked addresses
- **[Extended Public Keys](#tag/public_key)** - HD wallet management

Transactions

- **[Transactions](#tag/transaction)** - Transaction listing and detailed inspection with events

Payments

- **[Invoices](#tag/invoice)** - Create and manage payment invoices

Monitoring & Notifications

- **[Notification Channels](#tag/channel)** - Configure alert delivery via webhooks, Telegram, etc.
- **[Notification Subscriptions](#tag/subscription)** - Bind channels to event types for targeted alert routing

Asset Management

- **[Tokens](#tag/token)** - Token metadata for supported asset types

Infrastructure

- **[Blockchains](#tag/blockchain)** - Supported blockchains and their metadata
- **[Simulate](#tag/simulate)** - Transaction simulation
- **[Version](#tag/version)** - Service version info

**Need Help?**

Visit our [documentation portal](/apis/platform/) for detailed guides and examples.


Version: 0.23.9
License: Apache 2.0

## Servers

Vilna API.
```
https://api.vilna.io/v1
```

## Security

### Auth

API key for authenticating requests. Include your key in the `X-Api-Key` header. Keys can be created in the Vilna Dashboard or via the Management API. The scopes listed per operation indicate which permissions the key must have.


Type: apiKey
In: header
Name: X-Api-Key

## Download OpenAPI description

[Platform API](https://docs.vilna.io/_bundle/apis/platform/api.yaml)

## Activity

Balance changes across tracked addresses, filterable by chain and asset.

### List activity

 - [GET /activity](https://docs.vilna.io/apis/platform/api/activity/list-activity.md): List balance changes across tracked addresses with filtering and pagination.

## Balances

Current balances for tracked addresses, filterable by chain and asset.

### List balances

 - [GET /balances](https://docs.vilna.io/apis/platform/api/balance/list-balances.md): List current balances for tracked addresses with filtering and pagination.

## Extended Public Keys

Register extended public keys (BIP44/49/84) and derive HD addresses.

### List public key addresses

 - [GET /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/address/list-public-key-addresses.md): List addresses derived from the public key.

### Generate public key addresses

 - [POST /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/address/generate-public-key-addresses.md): Generate one or more addresses for the public key by indexes or range.

### Generate next address from public key

 - [POST /public_keys/{public_key_id}/addresses/next](https://docs.vilna.io/apis/platform/api/address/generate-next-public-key-address.md): Generate the next sequential address for the public key.

### List public keys

 - [GET /public_keys](https://docs.vilna.io/apis/platform/api/public_key/list-public-keys.md): List registered extended public keys with filtering and pagination.

### Create public key

 - [POST /public_keys](https://docs.vilna.io/apis/platform/api/public_key/create-public-key.md): Register an extended public key for HD address derivation.

### Delete public key

 - [DELETE /public_keys/{public_key_id}](https://docs.vilna.io/apis/platform/api/public_key/delete-public-key.md): Delete a registered public key by ID.

### Get public key

 - [GET /public_keys/{public_key_id}](https://docs.vilna.io/apis/platform/api/public_key/get-public-key.md): Get public key details by ID.

### Update public key

 - [PATCH /public_keys/{public_key_id}](https://docs.vilna.io/apis/platform/api/public_key/patch-public-key.md): Update public key metadata.

### Create child public key

 - [POST /public_keys/{public_key_id}/children](https://docs.vilna.io/apis/platform/api/public_key/create-public-key-child.md): Derive and register a child key from an account-level public key.
The server derives the child extended public key using BIP-32 derivation — no cryptography
needed on the client side.

If a standalone key with the same derived value already exists in the project, it is adopted
as a child of this account key.

Only applicable to account-level keys (depth-3).

### List public key addresses

 - [GET /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/public_key/list-public-key-addresses.md): List addresses derived from the public key.

### Generate public key addresses

 - [POST /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/public_key/generate-public-key-addresses.md): Generate one or more addresses for the public key by indexes or range.

### Generate next address from public key

 - [POST /public_keys/{public_key_id}/addresses/next](https://docs.vilna.io/apis/platform/api/public_key/generate-next-public-key-address.md): Generate the next sequential address for the public key.

## Addresses

List, import, update, and delete tracked blockchain addresses.

### List public key addresses

 - [GET /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/address/list-public-key-addresses.md): List addresses derived from the public key.

### Generate public key addresses

 - [POST /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/address/generate-public-key-addresses.md): Generate one or more addresses for the public key by indexes or range.

### Generate next address from public key

 - [POST /public_keys/{public_key_id}/addresses/next](https://docs.vilna.io/apis/platform/api/address/generate-next-public-key-address.md): Generate the next sequential address for the public key.

### List addresses

 - [GET /addresses](https://docs.vilna.io/apis/platform/api/address/list-addresses.md): List tracked addresses (HD and external) with filtering and pagination.

### Create external address

 - [POST /addresses/external](https://docs.vilna.io/apis/platform/api/address/create-external-address.md): Import an externally managed address for tracking.

### Resolve external address from public key

 - [POST /addresses/external/resolve](https://docs.vilna.io/apis/platform/api/address/resolve-external-address.md): Compute a blockchain address from a raw public key and create an external address. The public key is used only for address computation and is not stored. If an address with the computed value already exists, returns the existing one.

### List HD addresses

 - [GET /addresses/hd](https://docs.vilna.io/apis/platform/api/address/list-hd-addresses.md): List only HD-derived addresses (excludes external). Use GET /addresses for all types.

### Delete address

 - [DELETE /addresses/{address}](https://docs.vilna.io/apis/platform/api/address/delete-address.md): Delete a tracked address. This operation is irreversible.

### Get address

 - [GET /addresses/{address}](https://docs.vilna.io/apis/platform/api/address/get-address.md): Get tracked address details by address value.

### Update address

 - [PATCH /addresses/{address}](https://docs.vilna.io/apis/platform/api/address/patch-address.md): Update tracked address metadata.

### List address balances

 - [GET /addresses/{address}/balances](https://docs.vilna.io/apis/platform/api/address/list-address-balances.md): List current balances for active assets on the address.

### List address UTXOs

 - [GET /addresses/{address}/utxos](https://docs.vilna.io/apis/platform/api/address/list-address-utxos.md): List unspent Bitcoin outputs held by the address.

### List public key addresses

 - [GET /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/public_key/list-public-key-addresses.md): List addresses derived from the public key.

### Generate public key addresses

 - [POST /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/platform/api/public_key/generate-public-key-addresses.md): Generate one or more addresses for the public key by indexes or range.

### Generate next address from public key

 - [POST /public_keys/{public_key_id}/addresses/next](https://docs.vilna.io/apis/platform/api/public_key/generate-next-public-key-address.md): Generate the next sequential address for the public key.

## Address Groups

Named collections of addresses for batch filtering across balances, activity, and other endpoints.

### List address groups

 - [GET /address_groups](https://docs.vilna.io/apis/platform/api/address_group/list-address-groups.md): List address groups with pagination.

### Create address group

 - [POST /address_groups](https://docs.vilna.io/apis/platform/api/address_group/create-address-group.md): Create a new named collection of addresses within a project.

### Get address group

 - [GET /address_groups/{address_group_id}](https://docs.vilna.io/apis/platform/api/address_group/get-address-group.md): Get address group details by ID.

### Update address group

 - [PATCH /address_groups/{address_group_id}](https://docs.vilna.io/apis/platform/api/address_group/update-address-group.md): Update address group metadata.

### Delete address group

 - [DELETE /address_groups/{address_group_id}](https://docs.vilna.io/apis/platform/api/address_group/delete-address-group.md): Delete an address group by ID.

### Add addresses to address group

 - [POST /address_groups/{address_group_id}/actions/add](https://docs.vilna.io/apis/platform/api/address_group/add-address-group-addresses.md): Add addresses to an address group by address value.

### Remove addresses from address group

 - [POST /address_groups/{address_group_id}/actions/remove](https://docs.vilna.io/apis/platform/api/address_group/remove-address-group-addresses.md): Remove addresses from an address group by address value.

## Transactions

Transaction listing and details with canonical events and balance deltas.

### List transactions

 - [GET /transactions](https://docs.vilna.io/apis/platform/api/transaction/list-transactions.md): List blockchain transactions with filtering, sorting, and pagination.

### Get transaction

 - [GET /transactions/{chain_gid}/{hash}](https://docs.vilna.io/apis/platform/api/transaction/get-transaction.md): Get transaction details with events and balance changes.

## Invoices

Create and track crypto payment invoices.

### List invoices

 - [GET /invoices](https://docs.vilna.io/apis/platform/api/invoice/list-invoices.md): List invoices with filtering and pagination.

### Create invoice

 - [POST /invoices](https://docs.vilna.io/apis/platform/api/invoice/create-invoice.md): Create a payment invoice for a specific address and token.
The address must belong to the current project and must not have an active invoice.

### Get invoice

 - [GET /invoices/{invoice_id}](https://docs.vilna.io/apis/platform/api/invoice/get-invoice.md): Get full invoice details including merchant notes and metadata.

### Delete invoice

 - [DELETE /invoices/{invoice_id}](https://docs.vilna.io/apis/platform/api/invoice/delete-invoice.md): Delete an invoice once it's in a terminal status: confirmed, cancelled, or expired.

Active invoices (pending, underpaid) must be cancelled first. paid and overpaid
are in-between states — wait until the invoice settles to confirmed, or reverts on a reorg,
before deleting it.

The invoice's status history and ledger entries are deleted with it. On-chain records are untouched.

### Cancel invoice

 - [POST /invoices/{invoice_id}/actions/cancel](https://docs.vilna.io/apis/platform/api/invoice/cancel-invoice.md): Cancel an active invoice. Only invoices in pending or underpaid status can be cancelled.
Cancelling frees the address for new invoices.

This operation is idempotent: cancelling an already-cancelled invoice returns 204.

### Get public invoice

 - [GET /public/invoices/{invoice_id}](https://docs.vilna.io/apis/platform/api/invoice/get-public-invoice.md): Public endpoint for payers. Returns invoice details needed for payment.
No authentication required — the invoice UUID is the access token.

## Notification Channels

Configure alert delivery via webhooks, Telegram, and other channels.

### List channels

 - [GET /channels](https://docs.vilna.io/apis/platform/api/channel/list-channels.md): List channels with filtering and pagination.

### Create channel

 - [POST /channels](https://docs.vilna.io/apis/platform/api/channel/create-channel.md): Create a channel. Channel schema is selected by config.kind.

### Get channel

 - [GET /channels/{channel_id}](https://docs.vilna.io/apis/platform/api/channel/get-channel.md): Get channel details by ID.

### Delete channel

 - [DELETE /channels/{channel_id}](https://docs.vilna.io/apis/platform/api/channel/delete-channel.md): Delete a channel by ID.

### Update channel

 - [PATCH /channels/{channel_id}](https://docs.vilna.io/apis/platform/api/channel/patch-channel.md): Update channel metadata or configuration.

### Test channel

 - [POST /channels/{channel_id}/actions/test](https://docs.vilna.io/apis/platform/api/channel/test-channel.md): Sends a test event through the channel and returns the log entry ID. Check the channel logs endpoint to see whether delivery succeeded.

### List channel delivery logs

 - [GET /channels/{channel_id}/logs](https://docs.vilna.io/apis/platform/api/channel/list-channel-logs.md): List delivery logs for a channel with filtering and pagination.

## Notification Subscriptions

Bind channels to event types for targeted alert routing.

### List subscriptions

 - [GET /subscriptions](https://docs.vilna.io/apis/platform/api/subscription/list-subscriptions.md): List subscriptions with filtering and pagination.

### Create subscription

 - [POST /subscriptions](https://docs.vilna.io/apis/platform/api/subscription/create-subscription.md): Create a subscription binding a channel to an event type.

### Get subscription

 - [GET /subscriptions/{subscription_id}](https://docs.vilna.io/apis/platform/api/subscription/get-subscription.md): Get subscription details by ID.

### Delete subscription

 - [DELETE /subscriptions/{subscription_id}](https://docs.vilna.io/apis/platform/api/subscription/delete-subscription.md): Delete a subscription by ID.

### Update subscription

 - [PATCH /subscriptions/{subscription_id}](https://docs.vilna.io/apis/platform/api/subscription/patch-subscription.md): Update subscription name or enabled status.

## Blockchains

Supported blockchains and their metadata.

### List blockchains

 - [GET /blockchains](https://docs.vilna.io/apis/platform/api/blockchain/list-blockchains.md): List supported blockchains with filtering and pagination.

### Get blockchain

 - [GET /blockchains/{chain_gid}](https://docs.vilna.io/apis/platform/api/blockchain/get-blockchain.md): Get blockchain details by chain GID.

## Tokens

Token metadata (symbols, decimals, names) for supported asset types.

### List tokens

 - [GET /tokens](https://docs.vilna.io/apis/platform/api/token/list-tokens.md): List tracked tokens with filtering and pagination.

### Create token

 - [POST /tokens/{chain_gid}/{asset_path}](https://docs.vilna.io/apis/platform/api/token/create-token.md): Create a token by chain GID and asset path. Metadata is resolved from chain data.

### Get token

 - [GET /tokens/{chain_gid}/{asset_path}](https://docs.vilna.io/apis/platform/api/token/get-token.md): Get token details by chain GID and asset path.

## Token Groups

Named collections of tokens for batch filtering across balances, activity, and other endpoints.

### List token groups

 - [GET /token_groups](https://docs.vilna.io/apis/platform/api/token_group/list-token-groups.md): List token groups with pagination.

### Create token group

 - [POST /token_groups](https://docs.vilna.io/apis/platform/api/token_group/create-token-group.md): Create a new named collection of tokens within a project.

### Get token group

 - [GET /token_groups/{token_group_id}](https://docs.vilna.io/apis/platform/api/token_group/get-token-group.md): Get token group details by ID.

### Update token group

 - [PATCH /token_groups/{token_group_id}](https://docs.vilna.io/apis/platform/api/token_group/update-token-group.md): Update token group metadata.

### Delete token group

 - [DELETE /token_groups/{token_group_id}](https://docs.vilna.io/apis/platform/api/token_group/delete-token-group.md): Delete a token group by ID.

### Add assets to token group

 - [POST /token_groups/{token_group_id}/actions/add](https://docs.vilna.io/apis/platform/api/token_group/add-token-group-assets.md): Add tokens to a token group by asset GID.

### Remove assets from token group

 - [POST /token_groups/{token_group_id}/actions/remove](https://docs.vilna.io/apis/platform/api/token_group/remove-token-group-assets.md): Remove tokens from a token group by asset GID.

## Simulation

Simulate EVM transactions before sending.

### Simulate EVM transactions

 - [POST /simulate/evm/{chain_gid}](https://docs.vilna.io/apis/platform/api/simulate/simulate-evm.md): Simulate one or more EVM transactions and return execution results.

## Version

Service version information.

### Get service version

 - [GET /version](https://docs.vilna.io/apis/platform/api/version/get-version.md): Get the current API version.

