Skip to navigation
TOKEN ISSUANCE AND ASSET SERVICINGAssetV2

Update asset

Starts an asynchronous update-asset operation. Returns the operation in PENDING; poll GetAssetOperationV2 for terminal status. On-chain token properties are applied via an approved on-chain update; the off-chain label is applied on completion, and a non-empty price triggers a separate asynchronous admin price change that this operation does not wait for. GetAssetV2 reflects the new on-chain values once the operation completes.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

assetIDstringRequired

The v2 asset id (AssetView id) to update. Required; the asset must be ACTIVE.

Request

This endpoint expects an object.
fromAddressIDstringOptionalformat: "uint64"

The source address that submits and funds the on-chain update — an internal address holding this asset's token. Required.

labelstringOptional

New off-chain platform display label. Optional.

pricestringOptional

New price. Optional. If set, triggers a separate, asynchronous admin price-change request that this operation does not wait for.

paramsobjectOptional

UpdateAssetParamsV2 mirrors AssetParamsV2's shape so callers learn one pattern. Branches for chains that don't support update today are empty messages; populating them later is non-breaking. UpdateAssetParamsV2 is the per-chain on-chain update payload — the typed change applied to the token.

Response

A successful response.
idstringOptional
assetIDstringOptional
typeenumOptional
statusenumOptional

AssetOperationStatusV2 is the consumer-facing lifecycle status of an operation. Two non-terminal values:

  • PENDING: system is making progress automatically; consumer should wait.
  • PAUSED: action required from the operation initiator (or an operator) before progress can resume — see AssetOperationV2.blockingReason for the machine-readable cause. Three terminal values: COMPLETED, FAILED, CANCELED.
Allowed values:
createdAtdatetimeOptional
updatedAtdatetimeOptional
initiatedByAddressIDstringOptionalformat: "uint64"
Internal address that initiated this operation.
failureReasonenumOptional

AssetOperationFailureReasonV2 is the machine-readable cause when an operation reaches the FAILED terminal status. Free-form failure messages are not surfaced on the wire; consumers should switch on this enum. Two-tier: UNSPECIFIED means not failed; UNKNOWN is the catch-all for failed-with-no-typed-code; specific reasons grow as concrete cases are wired through from the underlying workflows.

  • ASSET_OPERATION_FAILURE_REASON_V2_UNKNOWN: Failed, but no typed code is available
  • ASSET_OPERATION_FAILURE_REASON_V2_INTERNAL_ERROR: Specific: a system/internal error occurred.
  • ASSET_OPERATION_FAILURE_REASON_V2_REQUEST_REJECTED: The underlying approval request was rejected by an approver.
  • ASSET_OPERATION_FAILURE_REASON_V2_REQUEST_FAILED: The underlying request terminated in failure for some non-rejection reason (expired, timed out, on-chain failure, ...).
  • ASSET_OPERATION_FAILURE_REASON_V2_SOURCE_ADDRESS_ON_INVALID_CURRENCY: The source address passed to the operation is registered for a different currency than the asset. One must retry with the address tied to the asset's currency.
  • ASSET_OPERATION_FAILURE_REASON_V2_SOURCE_ADDRESS_NOT_ASSET_ISSUER: The source address isn't the asset's on-chain issuer (the per-chain name varies. Only the issuer can mint or burn the asset.
  • ASSET_OPERATION_FAILURE_REASON_V2_DESTINATION_ADDRESS_ON_INVALID_CURRENCY: The destination is an internal address registered for a different currency than the asset. Symmetric with the source variant — retry with the address tied to the asset's currency.
  • ASSET_OPERATION_FAILURE_REASON_V2_DESTINATION_ADDRESS_INVALID: The destination is otherwise unusable: a WLA on the wrong chain or network, malformed on-chain address, no destination provided, or a chain-specific invariant violated. Retry with a destination that matches the asset's chain and the operation's constraints.
  • ASSET_OPERATION_FAILURE_REASON_V2_NOT_ENOUGH_FUNDS: The source address doesn't hold enough of the asset itself for the operation (e.g. trying to burn more than the source holds).
  • ASSET_OPERATION_FAILURE_REASON_V2_NOT_ENOUGH_FUNDS_FOR_FEES: The source has enough of the asset but not enough of the chain's native fee currency to broadcast. Top up the fee currency.
  • ASSET_OPERATION_FAILURE_REASON_V2_FORBIDDEN_BY_BUSINESS_RULE: A governance/business rule forbade the request (amount over a limit, currency disabled, outside business hours/days, ...). The request is well-formed but policy forbids it.
  • ASSET_OPERATION_FAILURE_REASON_V2_INVALID_PARAMETERS: Request parameters were rejected at creation (zero amount, a currency that doesn't support the operation, malformed source/destination selection, ...). A general parameter validation failure.
blockingReasonenumOptional

AssetOperationBlockingReasonV2 is the machine-readable cause when an operation is in the PAUSED non-terminal status. Distinct from FailureReason: a paused operation is alive and resumable once the blocker is cleared. Two-tier same as FailureReason: UNSPECIFIED means not paused; UNKNOWN is the catch-all for paused-with-no-typed-code; specific reasons grow as concrete cases land.

  • ASSET_OPERATION_BLOCKING_REASON_V2_UNKNOWN: Paused, but no typed code is available.
  • ASSET_OPERATION_BLOCKING_REASON_V2_MISSING_GOVERNANCE_RULE: Governance rule missing to complete the operations.
  • ASSET_OPERATION_BLOCKING_REASON_V2_MANUAL_PAUSE: Operation has been manually paused.
  • ASSET_OPERATION_BLOCKING_REASON_V2_AWAITING_REQUEST_APPROVAL: Awaiting human approval on a deployment / mint / burn / etc. request (the HandleRequestWorkflow's PENDING state).
  • ASSET_OPERATION_BLOCKING_REASON_V2_AWAITING_WHITELIST_APPROVAL: Awaiting approval of a whitelisted-address record for the asset.
  • ASSET_OPERATION_BLOCKING_REASON_V2_AWAITING_CURRENCY_PRICE: Operation blocked because no price is set for the asset's currency.
  • ASSET_OPERATION_BLOCKING_REASON_V2_AWAITING_MANUAL_WHITELIST: The auto-generated whitelist proposal was rejected by an approver; the asset is on-chain but the workflow waits for someone to manually create + approve a whitelist (which resumes the flow).
  • ASSET_OPERATION_BLOCKING_REASON_V2_WHITELIST_PARAMS_CONFLICT: The automatic whitelist was rejected for invalid parameters (most commonly the name/symbol is already whitelisted for another token) while the asset is on-chain. An operator must whitelist the token manually with different parameters (e.g. a different symbol), which then resumes the flow.
createobjectOptional
updateobjectOptional

UpdateOperationDetailsV2 records what an update operation requested — the off-chain label/price and the on-chain params. This is the immutable audit of the requested change, distinct from the asset's realized state on the AssetView (which reflects the on-chain result once the operation completes).

importobjectOptional
mintobjectOptional
burnobjectOptional
pauseobjectOptional
unpauseobjectOptional
pauseAccountobjectOptional
unpauseAccountobjectOptional
setKycobjectOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error
503
Service Unavailable Error