Hey! These docs are for version 0.17.0, which is no longer officially supported. Click here for the latest version, 0.21.0!

Delete Documents

Delete data stored on Dash Platform


In this tutorial we will update delete data from Dash Platform. Data is stored in the form of documents which are encapsulated in a state transition before being submitted to DAPI.




Initializing the Client with a contract identity

The example below shows how access to contract documents via <contract name>.<contract document> syntax (e.g. tutorialContract.note) can be enabled by passing a contract identity to the constructor. Please refer to the Dash SDK documentation for details.


Wallet Operations

Currently, the JavaScript SDK does not cache wallet information, and therefore, it re-syncs the entire Core chain for some wallet operations (e.g. client.getWalletAccount()). This can result in wait times of 5+ minutes. An upcoming release will add a persistence feature to cache wallet information during initial sync so that subsequent access is much faster.

const Dash = require('dash');

const clientOpts = {
  wallet: {
    mnemonic: 'a Dash wallet mnemonic with funds goes here',
  apps: {
    tutorialContract: {
      contractId: '6Ti3c7nvD1gDf4gFi8a3FfZVhVLiRsGLnQ7nCAF74osi',
const client = new Dash.Client(clientOpts);

const deleteNoteDocument = async () => {
  const platform = client.platform;
  const identity = await platform.identities.get('an identity ID goes here');
  const documentId = 'an existing document ID goes here';

  // Retrieve the existing document
  const [document] = await client.platform.documents.get(
    { where: [['$id', '==', documentId]] },

  // Sign and submit the document delete transition
  return platform.documents.broadcast({ delete: [document] }, identity);

  .then((d) => console.log('Document deleted:\n', d))
  .catch((e) => console.error('Something went wrong:\n', e))
  .finally(() => client.disconnect());

What's happening

After we initialize the Client, we retrieve the document to be deleted via platform.documents.get using its id.

Once the document has been retrieved, we must submit it to DAPI. Documents are submitted in batches that may contain multiple documents to be created, replaced, or deleted. In this example, a single document is being deleted.

The platform.documents.broadcast method takes the document batch (e.g. {delete: [documents[0]]}) and an identity parameter. Internally, it creates a State Transition containing the previously created document, signs the state transition, and submits the signed state transition to DAPI.

Did this page help you?