Guides
Dash CoreDash PlatformDash.orgDash User DocsLog In
These docs are for v0.17.0. Click to read the latest docs for v0.25-redirect.


# Introduction

The Dash Platform Protocol (DPP) defines a protocol for the data objects (e.g. [idenitities](🔗), data contracts, documents, state transitions) that can be stored on [Dash's layer 2 platform](🔗). All data stored on Dash Platform is governed by DPP to ensure data consistency and integrity is maintained.

Dash Platform data objects consist of JSON and are validated using the JSON Schema specification via pre-defined JSON Schemas and meta-schemas described in these sections. The meta-schemas allow for creation of DPP-compliant schemas which define fields for third-party Dash Platform applications.

In addition to ensuring data complies with predefined JSON Schemas, DPP also defines rules for hashing and serialization of these objects.

# Reference Implementation

The current reference implementation is the (JavaScript) [js-dpp](🔗) library. The schemas and meta-schemas referred to in this specification can be found here in the reference implementation: https://github.com/dashevo/js-dpp/tree/master/schema.

# Topics

[Identities](🔗)

  • [Create](🔗)

  • [TopUp](🔗)

[Data Contracts](🔗)

  • [Documents](🔗)

    • [Properties](🔗)

    • [Indices](🔗)

  • [Definitions](🔗)

[Document](🔗)

[State Transitions](🔗)

  • [Overview / general structure](🔗)

  • Types

    • [Identity Create ST](🔗)

    • [Data Contract ST](🔗)

    • [Document Batch ST](🔗)

      • Document Transitions

        • [Document Transition Base](🔗)

        • [Document Create Transition](🔗)

        • [Document Replace Transition](🔗)

        • [Document Delete Transition](🔗)

  • [Signing](🔗)

[Data Triggers](🔗)