Deploy a Token

Deploy a created token to the Solana blockchain.

After creating a token, deploy it onchain. Deployment creates the mint account on Solana and assigns authorities to your configured wallets.

You can deploy from the dashboard or through the API. In the dashboard, open the pending token and use Deploy from the token header or fund management panel.

Prerequisites

Execute mode (SDP signs)

curl -X POST https://api.solana.com/v1/issuance/tokens/tok_abc123/deploy \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: deploy-acme-001"
const response = await fetch(
  "https://api.solana.com/v1/issuance/tokens/tok_abc123/deploy",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer sk_test_...",
      "Idempotency-Key": "deploy-acme-001",
    },
  }
);
const { data } = await response.json();
// data.token.mintAddress — the onchain address
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.solana.com/v1/issuance/tokens/tok_abc123/deploy"))
    .header("Authorization", "Bearer sk_test_...")
    .header("Idempotency-Key", "deploy-acme-001")
    .POST(HttpRequest.BodyPublishers.noBody())
    .build();

The token status changes from pending to active, and mintAddress is populated with the onchain address. No request body is required for the public deploy endpoint.

Prepare mode (you sign)

curl -X POST https://api.solana.com/v1/issuance/tokens/tok_abc123/deploy/prepare \
  -H "Authorization: Bearer sk_test_..."
const response = await fetch(
  "https://api.solana.com/v1/issuance/tokens/tok_abc123/deploy/prepare",
  {
    method: "POST",
    headers: { "Authorization": "Bearer sk_test_..." },
  }
);
const { data } = await response.json();
// data.transaction.serialized — base64 transaction to sign
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.solana.com/v1/issuance/tokens/tok_abc123/deploy/prepare"))
    .header("Authorization", "Bearer sk_test_...")
    .POST(HttpRequest.BodyPublishers.noBody())
    .build();

The response contains a base64-encoded unsigned transaction. Sign it with your private key, then submit to Solana. See Prepare vs Execute for details.

Idempotency

Always include an Idempotency-Key header on deploy requests. If a network error occurs mid-flight, retrying with the same key prevents double-deployment.