---
title: "Create Asset"
method: POST
path: "/v0/platform/assets/"
tags: ["Asset Management"]
---

# Create Asset

`POST /v0/platform/assets/`

Create an asset for the given address or domain. The new asset will be onboarded to the platform's inventory and monitored according to your monitoring policy.

## Request body

- union
  - AddressRequest
    - `identifier_type` 'address'
    - `identifier` string, required — The contract or wallet address for this asset.
    - `tags` string[] — Group your assets by tags to filter by them.
    - `alias` string — A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address or domain.
    - `runtime` 'evm' | 'sui' | 'solana' | 'stellar' | 'hedera' | 'bitcoin' | 'hyperliquid' | 'polymarket' | 'aster' | 'lighter' | 'tron' — The runtime name
    - `chain_name` 'abstract' | 'apechain' | 'arbitrum' | 'avalanche' | 'avalanche-fuji' | 'base' | 'berachain' | 'bitcoin' | 'blast' | 'bsc' | 'degen' | 'ethereum' | 'ethereum-sepolia' | 'gnosis' | 'hedera' | 'hyperevm' | 'hyperliquid' | 'aster' | 'lighter' | 'ink' | 'kaia' | 'katana' | 'kite-ai' | 'linea' | 'monad' | 'optimism' | 'plume' | 'polymarket' | 'polygon' | 'ronin' | 'scroll' | 'sei' | 'solana' | 'soneium' | 'soneium-minato' | 'stellar' | 'sui' | 'unichain' | 'worldchain' | 'zksync' | 'mainnet' | 'kaia' | 'tron' | 'robinhood' | 'arc' | 'flare' | 'xlayer' | 'tempo', required — The chain name
    - `contract_interface` ContractInterface[] — The contract interfaces for the asset (for evm the ABI file). If the asset is a proxy, include the implementation contract interface as well. Will be auto-fetched if not provided.
      - `address` string, required — The address of the contract.
      - `abi_json` union[], required — The ABI of the contract.
        - union
          - ABIFunction
            - `type` 'function', required
            - `name` string, required
            - `inputs` ABIParameter[]
              - …
            - `outputs` ABIParameter[]
              - …
            - `stateMutability` 'pure' | 'view' | 'nonpayable' | 'payable', required
            - `constant` boolean
            - `payable` boolean
          - ABIConstructor
            - `type` 'constructor', required
            - `inputs` ABIParameter[]
              - …
            - `stateMutability` 'nonpayable' | 'payable'
          - ABIFallback
            - `type` 'fallback', required
            - `stateMutability` 'nonpayable' | 'payable'
          - ABIReceive
            - `type` 'receive', required
            - `stateMutability` 'payable', required
          - ABIEvent
            - `type` 'event', required
            - `name` string, required
            - `inputs` ABIParameter[]
              - …
            - `anonymous` boolean
          - ABIError
            - `type` 'error', required
            - `name` string, required
            - `inputs` ABIParameter[]
              - …
  - DomainRequest
    - `identifier_type` 'domain'
    - `identifier` string, required — The domain name for this asset.
    - `tags` string[] — Group your assets by tags to filter by them.
    - `alias` string — A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address or domain.
  - PerpRequest
    - `identifier_type` 'perp'
    - `identifier` string, required — The perp identifier.
    - `chain_name` 'hyperliquid' | 'aster' | 'lighter', required — The perpetuals protocol. Supported values: "hyperliquid", "aster", "lighter".
    - `tags` string[] — Group your assets by tags to filter by them.
    - `alias` string — A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address.
  - MarketRequest
    - `identifier_type` 'market'
    - `identifier` string, required — The market slug for this asset.
    - `chain_name` 'polymarket', required — Must be "polymarket" for prediction market assets.
    - `tags` string[] — Group your assets by tags to filter by them.
    - `alias` string — A friendly name for this asset so you can spot it quickly; the UI shows this instead of the raw address.

## Other responses

- `400` — Bad Request
- `409` — Asset already exists
- `422` — Validation Error

---

[API](https://skmtc.net/blockaid-official/apis/blockaid-api.md) · [All operations](https://skmtc.net/blockaid-official/apis/blockaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/blockaid-official/blockaid-api/revisions/17c41f337b2e/schema)
