# token.destroy() [[Source]](https://github.com/ripple/simpleXRPL/blob/95b977b15f8950c5bc076b25165217869c0b06d3/src/verticals/token.ts#L230) Destroy an MPT issuance. Only succeeds when no tokens are outstanding. ## Signature ```ts token.destroy( params: TokenDestroyParams, options?: TokenWriteOptions, ): Promise`. Every simpleXRPL write resolves to a `SubmissionResult` — a union tagged by `source`, with the backend's raw response preserved verbatim. Its common fields are: | Field | Type | Description | | --- | --- | --- | | `intent` | `T` | The operation-specific output — see the operation's own return fields. | | `source` | `'xrpld' | 'custody' | 'palisade'` | Which backend produced the result; discriminates `response`. | | `response` | `TxResponse` | custody record | Palisade record | The backend's raw response, preserved verbatim. | | `txHash` | `string` *(optional)* | The XRPL transaction hash, once the transaction is on-ledger. | | `intentId` | `string` *(optional)* | The custodian intent id, when the path produced one. Hold onto this to resume via `client.intent`. | | `idempotencyKey` | `string` *(optional)* | The UUIDv7 this submission carried. Pass it back as a later call's `idempotencyKey` to retry to the same intent rather than creating a duplicate. | ### Return fields For `Token.destroy`, the `intent` echoes: | Field | Type | Description | | --- | --- | --- | | `mptIssuanceId` | `string` | The MPT issuance id that was destroyed. | ## Underlying XRPL transactor Builds and submits a single [MPTokenIssuanceDestroy](https://xrpl.org/docs/references/protocol/transactions/types/mptokenissuancedestroy) transaction. ## Example ```ts await client.token.destroy({ mptIssuanceId: '005C...', }) ```