latestOpenAPI 3.0.32026-08-20146131.7 MB

672b1916ba61

Asset Profiles

Create token with asset profile

Creates an issued token and its asset profile atomically in a single transaction: if either write fails, both roll back, so a token is never persisted without a profile. Requires the Asset Profiles feature to be enabled.

post/v1/issuance/asset-profiles

Headers

x-project-idstring

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.

Example:prj_example

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

namestring required

Token name.

symbolstring required

Ticker symbol.

signingWalletIdstring

Preferred signer wallet for token deploy/admin/write actions — the walletId field returned by GET /v1/wallets. The wallet record id and the public key are not accepted.

decimalsinteger

Token decimals.

descriptionstring

Token description.

uristring uri

Metadata URI passed to on-chain token metadata (points to off-chain JSON).

imageUrlstring uri

Token image URL.

maxSupplystring

Maximum supply as a string (UI units).

template'stablecoin' | 'arcade' | 'tokenized-security' | 'custom'

Token template preset. Defaults to 'custom' if not specified.

requiresAllowlistboolean

Require allowlist checks for transfers.

isMintableboolean

Allow minting after creation.

isFreezableboolean

Allow freezing token accounts.

assetCategory'generic' | 'stablecoin' | 'tokenized_security'

Asset category for the token's profile. Defaults to generic.

assetTypestring

Asset type within the category. Must be supported for the category.

Example request

{
  "name": "Example Token",
  "symbol": "EXM",
  "signingWalletId": "privy_wallet_123",
  "decimals": 6,
  "description": "Example token description.",
  "uri": "https://example.com/metadata.json",
  "imageUrl": "https://example.com/token.png",
  "maxSupply": "1000000",
  "template": "stablecoin",
  "overrides": {
    "extensions": {
      "transferFee": {
        "basisPoints": 50,
        "maxFee": "0.5"
      }
    }
  },
  "requiresAllowlist": true,
  "isMintable": true,
  "isFreezable": true,
  "assetCategory": "stablecoin",
  "assetType": "fiat_backed",
  "issuanceMetadata": {
    "asset": {
      "name": "Acme USD",
      "issuerName": "Acme Financial Inc.",
      "pegCurrency": "USD"
    },
    "compliance": {
      "transferRestrictions": "reg_d"
    },
    "chain": {
      "decimals": 6
    },
    "custom": {
      "customer": {
        "internalDeskId": "FX-22"
      },
      "integration": {}
    }
  }
}

Response

Token and asset profile created

Example response

{
  "data": {
    "token": {
      "id": "tok_example",
      "projectId": "prj_example",
      "organizationId": "org_example",
      "signingWalletId": "privy_wallet_123",
      "mintAddress": "So11111111111111111111111111111111111111112",
      "mintAuthority": "So11111111111111111111111111111111111111112",
      "freezeAuthority": "So11111111111111111111111111111111111111112",
      "ablListAddress": "So11111111111111111111111111111111111111112",
      "name": "Example Token",
      "symbol": "EXM",
      "decimals": 9,
      "description": "Example token description.",
      "uri": "https://example.com/metadata.json",
      "imageUrl": "https://example.com/token.png",
      "template": "stablecoin",
      "extensions": {
        "transferFee": {
          "basisPoints": 25,
          "maxFee": "0.5",
          "transferFeeConfigAuthority": "So11111111111111111111111111111111111111112",
          "withdrawWithheldAuthority": "So11111111111111111111111111111111111111112"
        },
        "interestBearing": {
          "rate": 2.5,
          "rateAuthority": "So11111111111111111111111111111111111111112"
        },
        "permanentDelegate": "So11111111111111111111111111111111111111112",
        "pausable": {
          "authority": "So11111111111111111111111111111111111111112"
        },
        "defaultAccountState": "initialized",
        "scaledUiAmount": {
          "authority": "So11111111111111111111111111111111111111112",
          "multiplier": 1,
          "newMultiplier": 2,
          "newMultiplierEffectiveTimestamp": 1735689600
        },
        "transferHook": {
          "programId": "So11111111111111111111111111111111111111112",
          "authority": "So11111111111111111111111111111111111111112"
        }
      },
      "totalSupply": "1000000",
      "maxSupply": "10000000",
      "isMintable": true,
      "isFreezable": true,
      "status": "active",
      "deployedAt": "2025-01-05T00:00:00.000Z",
      "createdBy": "key_example",
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-02T00:00:00.000Z"
    },
    "assetProfile": {
      "id": "asset_profile_example",
      "organizationId": "org_example",
      "projectId": "prj_example",
      "tokenId": "tok_example",
      "assetCategory": "stablecoin",
      "assetType": "fiat_backed",
      "assetTypeVersion": 2,
      "issuanceMetadata": {
        "asset": {
          "name": "Acme USD",
          "issuerName": "Acme Financial Inc.",
          "pegCurrency": "USD",
          "website": "https://acme.example"
        },
        "compliance": {
          "transferRestrictions": "reg_d"
        },
        "chain": {
          "decimals": 6
        },
        "custom": {
          "customer": {
            "internalDeskId": "FX-22"
          },
          "integration": {}
        },
        "visibility": {
          "public": [
            "asset.name",
            "asset.issuerName",
            "asset.pegCurrency",
            "chain.decimals"
          ]
        },
        "settings": {
          "version": 1,
          "selected": {
            "pauseTransfers": {},
            "freezeAccounts": {},
            "transferFee": {
              "params": {
                "basisPoints": 50,
                "maxFee": "100"
              }
            }
          }
        }
      },
      "publicMetadata": {
        "asset": {
          "name": "Acme USD",
          "issuerName": "Acme Financial Inc.",
          "pegCurrency": "USD"
        },
        "chain": {
          "decimals": 6
        }
      },
      "status": "active",
      "createdBy": "usr_example",
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-02T00:00:00.000Z"
    }
  },
  "meta": {
    "requestId": "req_example",
    "timestamp": "2025-01-01T00:00:00.000Z"
  }
}