# Issuing an asset

You issue an asset with the four-step Issue asset wizard. It ends in a deployment the administering vault's quorum signs, followed by an initialisation that sets the asset's parameters on-chain.

> Part of the SQRL documentation, section "SQRL Enterprise".
> Rendered page: https://docs.sqrl.tech/enterprise/assets/issuing-an-asset

**Required permissions:** Manage tokens (`MANAGE_TOKENS`).

**Prerequisites:** The administering vault exists, its signers have signing profiles, and it holds Bitcoin for network fees.

## Step 1: Asset

1. Open **Issuance** › **Assets** and select **Issue asset**.
2. Enter the **Token name** and **Ticker**, for example "Acme USD" and `USDX`.
3. Enter a **Description**.
4. Select the administering vault. The asset takes the vault's network.
5. Set **Decimals**, from 0 to 8.

## Step 2: Roles and limits

1. Confirm the **admin quorum**. It is the administering vault's threshold, for example 2 of 3 signing keys.
2. Assign the **asset roles**: minter, burner, pauser and compliance officer. Each is separated from the others, and every action is maker-checker.
3. Set the **hard supply cap**. It can never be raised after issue.

## Step 3: Whitelist policy

Choose whether the asset **enforces its whitelist** from the start, and add the first approved addresses. Regulated stablecoins usually enforce it. See [Asset whitelist](/enterprise/assets/whitelist).

## Step 4: Review and deploy

Review every parameter, then submit. SQRL Enterprise builds the deployment transaction and the vault's signers sign it in the usual [signing workflow](/enterprise/movements/the-signing-workflow).

  The supply cap and decimals are fixed for the life of the asset, and a deployed contract cannot be changed. Check them before you sign.

## Initialisation

Once the deployment is confirmed, the asset shows **Not initialised**. Select **Initialise** to create the initialisation call, which sets the name, ticker, decimals, cap and whitelist policy and credits any initial supply to the vault. It is signed by the same quorum. Only the vault that deployed the asset can initialise it.

When initialisation is confirmed, the asset is **Live**.

## If something fails

* **Deploy failed**: review the error on the asset page and resubmit. Network conditions are the usual cause.
* **Init refused**: the contract rejected the initialisation, for example because it was not signed by the deploying vault. Review and resubmit.
