---
title: "Update asset profile"
method: PATCH
path: "/v1/issuance/asset-profiles/{profileId}"
tags: ["Asset Profiles"]
---

# Update asset profile

`PATCH /v1/issuance/asset-profiles/{profileId}`

Updates an asset profile. At least one field must be provided. The resulting category/type pair must be supported. Public metadata is recomputed when metadata or the asset type changes; set issuanceMetadata.visibility.public to control which fields are exposed (asset.* and chain.decimals only).

## Path parameters

- `profileId` string, required — Asset profile identifier.

## Headers

- `x-project-id` string — Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.

## Request body

- object — Update asset profile request body. At least one field must be provided.
  - `assetCategory` 'generic' | 'stablecoin' | 'tokenized_security' — Updated asset category. Must remain consistent with the asset type.
  - `assetType` string — Updated asset type. Must be supported for the (resulting) category.
  - `issuanceMetadata` object — Updated issuance metadata. Replaces the existing object; public metadata is recomputed.
    - `asset` object
    - `compliance` object
    - `chain` object
    - `custom` object
      - `customer` object
      - `integration` object
    - `visibility` object
      - `public` string[]
    - `settings` object
      - `version` integer
      - `selected` object, required

## Response `200`

Asset profile updated

- object — Standard success response envelope.
  - `data` object, required — Asset profile response payload.
    - `assetProfile` object, required — Asset profile record: SDP-owned description of what an issued token represents.
      - `id` string, required — Asset profile identifier.
      - `organizationId` string, required — Organization identifier.
      - `projectId` string, required — Project identifier.
      - `tokenId` string, required — Identifier of the issued token this profile describes.
      - `assetCategory` 'generic' | 'stablecoin' | 'tokenized_security', required — Broad product/regulatory grouping for an issued asset.
      - `assetType` string, required — Concrete asset type within the category.
      - `assetTypeVersion` integer, required — Version of the asset type registry contract this profile was validated against.
      - `issuanceMetadata` object, required — Canonical, private master metadata for the asset. SDP-owned namespaces (asset, compliance, chain) plus a namespaced custom bucket (customer, integration). The optional `visibility.public` array holds the issuance_metadata dot-paths the issuer chose to expose publicly; when omitted, the asset type's registry default is used. Only asset.* and chain.decimals paths can ever be projected publicly — compliance and custom fields are private by default and can never be exposed, even if listed in visibility.public. The optional `settings` namespace holds the selected advanced (Token-2022) settings; `version` is server-stamped and each selected key is validated against the asset type's capability.
        - `asset` object
        - `compliance` object
        - `chain` object
        - `custom` object
          - `customer` object
          - `integration` object
        - `visibility` object
          - `public` string[]
        - `settings` object
          - `version` integer
          - `selected` object, required
      - `publicMetadata` object, required — Safe public subset of the issuance metadata, derived via the asset type's projection rules. Served by the public token metadata URI.
      - `status` 'active' | 'archived', required — Asset profile status.
      - `createdBy` string, nullable, required — User who created the profile. Null when created via API key.
      - `createdAt` string, date-time, required — Creation timestamp.
      - `updatedAt` string, date-time, required — Last update timestamp.
  - `meta` object, required — Response metadata.
    - `requestId` string, required — Request identifier for tracing.
    - `timestamp` string, date-time, required — ISO 8601 timestamp.

## Other responses

- `400` — Error
- `401` — Error
- `403` — Error
- `404` — Error
- `500` — Error

---

[API](https://skmtc.net/solana/apis/solana-developer-platform-api.md) · [All operations](https://skmtc.net/solana/apis/solana-developer-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/solana/solana-developer-platform-api/revisions/672b1916ba61/schema)
