Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,14 @@
templates_path = ['_templates']
exclude_patterns = [
'_build',
'.venv',
'venv',
'Thumbs.db',
'.DS_Store',
'README.md',
'CLAUDE.md',
'.devcontainer',
'.codex',
'.local',
'scripts',
'img/dev/gifs/README.md',
Expand Down
3 changes: 2 additions & 1 deletion docs/explanations/dpns.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ After voting ends, the name is either awarded to one of the identities or locked
Assuming masternodes do not vote to lock, the identity receiving the most votes takes ownership of the name. However, if the vote locks the name, no identity receives it. If only one identity requests the name, they will receive it even if no masternodes vote.

:::{note}
Locked names can no longer be requested or awarded in Dash Platform v1, but the plan is to change this in future updates.
Locked-name handling is part of the current DPNS ruleset, but the exact policy can evolve with
future Platform releases and governance decisions.
Comment thread
thephez marked this conversation as resolved.
Outdated
:::

### Implementation
Expand Down
10 changes: 6 additions & 4 deletions docs/explanations/fees.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ Fees on Dash Platform are divided into two main categories:
Storage fees cover the costs to store the various types of data throughout the network, while processing fees cover the computational costs incurred by the masternodes to process state transitions. For everyday use, processing fees are minuscule compared to storage fees. However, they are important in the prevention of attacks on the network, in which case they become prohibitively expensive.

:::{tip}
Comprehensive details regarding fees will be available in an upcoming *Dash Platform Fee System* DIP.
For the implementation-level constants and limits currently used by Platform, see the
[protocol constants reference](../protocol-ref/protocol-constants.md).
:::

## Costs
Expand Down Expand Up @@ -46,7 +47,7 @@ Given fluctuations of the Dash price, a variable *Fee Multiplier* provides a way
feePaid = initialFee * feeMultiplier
```

The Fee Multiplier is subject to change at any time at the discretion of the masternodes via a voting mechanism. Dash Core Group research indicates maintaining fees at approximately 2x the cost of hosting the network is optimal.
The Fee Multiplier is subject to change at any time via network governance and protocol updates.

<!-- Uncomment once link available
An in-depth look at the Fee Multiplier can be found at **link**
Expand All @@ -58,7 +59,8 @@ In an attempt to minimize Dash Platform's storage requirements, users are incent

## User Tip

Wallets will be enabled to give users the option to provide a tip to the block proposer in hopes of incentivizing them to include their state transition in the next block. This feature will be especially useful in times of high traffic.
Platform supports a user tip component that can be used to incentivize inclusion of a state
transition in the next block, especially during periods of high traffic.

## Formula

Expand All @@ -70,4 +72,4 @@ The high level formula for a state transition's fee is:

<!-- Uncomment once DIP available
See *DIPXX: Dash Platform Fee System* for a detailed breakdown of each component.
-->
-->
15 changes: 7 additions & 8 deletions docs/explanations/platform-protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,13 @@ For additional detail, see the [State Transition](../explanations/platform-proto

## Versions

| Version | Information |
| :------ | :---------- |
| 0.25 | See details in the [GitHub release](https://github.com/dashpay/platform/releases/tag/v0.25.0). |
| 0.24 | See details in the [GitHub release](https://github.com/dashpay/platform/releases/tag/v0.24.0). |
| 0.23 | See details in the [GitHub release](https://github.com/dashpay/platform/releases/tag/v0.23.0). |
| 0.22 | See details in the [GitHub release](https://github.com/dashpay/platform/releases/tag/v0.22.0). |
| 0.21 | See details in the [GitHub release](https://github.com/dashevo/js-dpp/releases/tag/v0.21.0). |
| 0.20 | This release updated to a newer version of JSON Schema (2020-12 spec) and also switched to a new regex module ([Re2](https://github.com/google/re2)) for improved security. See more details in the [GitHub release](https://github.com/dashevo/js-dpp/releases/tag/v0.20.0). |
Platform Protocol evolves together with the public Dash Platform codebase. For the latest
implementation details and release history, see the
[Dash Platform monorepo](https://github.com/dashpay/platform) and the project's release notes.
Comment thread
thephez marked this conversation as resolved.
Outdated

Older version-specific notes that referenced pre-mainnet releases have been removed from this page
because they no longer reflect the current public Platform state as clearly as the source
repositories do.

```{toctree}
:maxdepth: 2
Expand Down
17 changes: 13 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,15 @@
# Platform docs

Welcome to the Dash Platform developer documentation. You'll find guides and documentation to help
you start working with Dash Platform and building decentralized applications based on the Dash
cryptocurrency. Let's jump right in!
you start working with Dash Platform and building decentralized applications on Dash. This site
focuses on the developer-facing concepts, tutorials, and API references for working with Platform's
public network and open-source tooling.

:::{note}
Looking for the current source tree or lower-level implementation details? See the
[Dash Platform monorepo](https://github.com/dashpay/platform) and the
[Dash Platform Book](https://dashpay.github.io/platform/).
:::

```{eval-rst}
.. grid:: 1 2 3 3
Expand All @@ -26,8 +33,8 @@ cryptocurrency. Let's jump right in!
:link-type: ref
:link: tutorials-intro

Basics of building with Dash Platform
Hands-on guides for connecting to Platform and submitting data

+++
:ref:`Click to begin <tutorials-intro>`

Expand Down Expand Up @@ -157,6 +164,8 @@ protocol-ref/errors

resources/faq
resources/repository-overview
Dash Platform Monorepo <https://github.com/dashpay/platform>
Dash Platform Book <https://dashpay.github.io/platform/>
Platform Bridge <https://bridge.thepasta.org/>
Platform Explorer <https://platform-explorer.com/>
Testnet Block Explorer <https://insight.testnet.networks.dash.org/insight/>
Expand Down
41 changes: 31 additions & 10 deletions docs/intro/what-is-dash-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,21 @@

# What is Dash Platform

Dash Platform is a [Web3](https://en.wikipedia.org/wiki/Web3) technology stack for building decentralized applications on the Dash network. The two main architectural components, [Drive](../explanations/drive.md) and [DAPI](../explanations/dapi.md), turn the Dash P2P network into a cloud that developers can integrate with their applications.
Dash Platform is a [Web3](https://en.wikipedia.org/wiki/Web3) technology stack for building
decentralized applications on the Dash network. It is best understood as a decentralized data
storage and application layer on top of Dash: developers define schemas and submit structured state
transitions instead of deploying arbitrary user-written code on-chain.

Its core components, [Drive](../explanations/drive.md) and [DAPI](../explanations/dapi.md),
provide structured data storage, identity primitives, rich queries, and verifiable data access on
top of the Dash network.

:::{tip}
Dash Platform is developed in the open. For the current implementation details, package layout, and
build instructions, see the [Dash Platform monorepo](https://github.com/dashpay/platform). For a
broader architectural walkthrough of the Rust codebase, see the
[Dash Platform Book](https://dashpay.github.io/platform/).
:::

```{eval-rst}
.. raw:: html
Expand All @@ -18,19 +32,23 @@ Dash Platform is a [Web3](https://en.wikipedia.org/wiki/Web3) technology stack f

### Decentralized Cloud Storage

Store your application data in the safest place on the Internet. All data stored on the Dash network is protected by Dash's consensus algorithm, ensuring data integrity and availability.
Store structured application data on the Dash network with consensus-backed integrity and
availability.

### Reduced Data Silos

Because your application data is stored across many nodes on the Dash network, it is safe and always available for customers, business partners, and investors.
Because application data is stored across the Dash masternode network, it can be shared and queried
without relying on a single hosted backend.

### Client Libraries

Write code and integrate with Dash Platform using the languages that matter to your business. Don't worry about understanding blockchain infrastructure: a growing number of client libraries abstract away the complexity typically associated with working on blockchain-based networks.
Write code and integrate with Dash Platform using client libraries that abstract away much of the
underlying blockchain and networking complexity.
Comment thread
thephez marked this conversation as resolved.
Outdated

### Instant Data Confirmation

Unlike many blockchain-based networks, data stored on the platform is instantly confirmed by the Dash consensus algorithm to ensure the best user experience for users. With Dash Platform, you can gain the advantages of a blockchain-based storage network without the usual UX compromises.
Unlike many blockchain-based networks, Platform is designed for fast finality and proof-based data
verification, making it practical for light clients and user-facing applications.

```{eval-rst}
.. figure:: ../../img/join-community.svg
Expand All @@ -48,12 +66,15 @@ DAPI is a _decentralized_ HTTP API exposing [JSON-RPC](https://www.jsonrpc.org/)

DAPI provides developers the same access and security as running their own Dash node without the cost and maintenance overhead. Unlike traditional APIs which have a single point of failure, DAPI allows clients to connect to different instances depending on resource availability in the Dash network.

Developers can connect to DAPI directly or use a client library. This initial client library, dapi-client, is a relatively simple API wrapper developed by Dash Core Group to provide function calls to the DAPI endpoints.
Developers can connect to DAPI directly or use higher-level SDKs and client libraries maintained in
the Dash Platform monorepo. These libraries handle connection management, data serialization, and
common application workflows. A major design goal of Platform is that clients can verify responses
with proofs rather than trusting the node that served them.

The source for both DAPI and dapi-client are available on GitHub:
The source for these components is available on GitHub:

- DAPI: <https://github.com/dashpay/platform/tree/master/packages/dapi>
- DAPI-Client: <https://github.com/dashpay/platform/tree/master/packages/js-dapi-client>
- Platform monorepo: <https://github.com/dashpay/platform>
- Rust SDK docs in this site: [Rust SDK](../sdk-rs/overview.md)
Comment thread
thephez marked this conversation as resolved.
Outdated

### Drive - Decentralized Storage

Expand All @@ -63,4 +84,4 @@ Data created by users of the application is validated and verified against this

The source is available on GitHub:

- Drive: <https://github.com/dashpay/platform/tree/master/packages/rs-drive>
- Drive: <https://github.com/dashpay/platform>
Comment thread
thephez marked this conversation as resolved.
Outdated
13 changes: 7 additions & 6 deletions docs/reference/platform-proofs.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

# Platform Proofs

>❗️ Platform v0.22.0
>
> Note: As part of the transition from MongoDB to Dash's [GroveDB](https://github.com/dashpay/grovedb), proofs will be not be available for at least the initial version of Platform v0.22.
Platform proofs are an important part of Dash Platform's trust model. When a response is requested
with `prove: true`, Platform can return proof data that allows clients to verify that the response
matches consensus state.

Since data verification is a critical aspect of Dash Platform, all [Platform endpoints](../reference/dapi-endpoints-platform-endpoints.md) can provide an optional proof that the response is correct. Set the optional `prove` parameter (`"prove": true`) in the request to receive a proof that contains the requested data.

Expand Down Expand Up @@ -57,9 +57,10 @@ Dash Platform 0.21.0 introduced updates to support returning multiple store tree
- `documentsProof`
- `stateTransitionProof`

> 🚧
>
> Dash Platform 0.21.0 introduced a 4 byte [protocol version](https://github.com/dashevo/js-dpp/pull/325) that is prepended to the binary format and is not part of the CBOR-encoded data. When parsing proofs it is necessary to exclude these bytes before decoding the returned data with CBOR.
:::{note}
Some proof payloads include a 4-byte protocol version prefix that is not part of the CBOR-encoded
value. When decoding those values, strip the version prefix before CBOR decoding.
:::

#### Structure

Expand Down
22 changes: 11 additions & 11 deletions docs/resources/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ Dash Platform has numerous significant advantages, including:
API](../explanations/dapi.md).
- Verifiable data: Efficient [GroveDB proofs](https://www.grovedb.org/) for query responses provide
transparent data integrity.
- Open development: Core Platform components, SDKs, and tooling are developed in public repos and
can be inspected directly.

Although the current feature set covers many use cases, future versions will include features like
smart contracts to make it even more competitive and directly comparable with projects like
Ethereum, etc.
The current feature set already supports identities, names, structured application data, proofs,
and related developer tooling. New capabilities continue to ship in ongoing releases.

:::

Expand All @@ -31,8 +32,9 @@ It already is! Dash Platform [launched on
mainnet](https://www.dash.org/news/dash-evolution-v1-0-0-release-announcement/) in Q3 2024 and has
had multiple releases since then to add features such as [NFTs](../explanations/nft.md).

The next major release, v2.0, includes a flexible token system. Multiple teams are working to
improve the SDK experience so developers can more easily get to work building their applications.
To see the current code and implementation work, check the
[Dash Platform repository](https://github.com/dashpay/platform) and the
[Dash Platform Book](https://dashpay.github.io/platform/).
Comment thread
thephez marked this conversation as resolved.
Outdated

:::

Expand All @@ -45,13 +47,11 @@ Dash Platform Name Service (DPNS).

:::{dropdown} How can I register a name?

Currently, names can be registered using several technical tools; however, the upcoming [DashPay
Android](https://play.google.com/store/apps/details?id=hashengineering.darkcoin.wallet) update will
provide a much easier way to do this.

Currently, names can be registered using several technical tools and compatible applications.
Developers and other technical users may want to experiment with registering names using the [JS
SDK](https://docs.dash.org/projects/platform/en/stable/docs/tutorials/identities-and-names/register-a-name-for-an-identity.html)
or [Platform TUI](https://github.com/dashpay/platform-tui/).
SDK](https://docs.dash.org/projects/platform/en/stable/docs/tutorials/identities-and-names/register-a-name-for-an-identity.html),
[Platform TUI](https://github.com/dashpay/platform-tui/), or other tools built on the public
Platform APIs.
Comment thread
thephez marked this conversation as resolved.
Outdated
:::

::::{dropdown} Can I register multiple names?
Expand Down
41 changes: 28 additions & 13 deletions docs/resources/repository-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,45 @@
# Repository Overview

Dash Platform uses a [monorepo](https://en.wikipedia.org/wiki/Monorepo) structure containing most
packages that comprise Dash Platform. Packages are located in the
[packages](https://github.com/dashpay/platform/tree/master/packages) directory.
of the source code that powers the network, SDKs, and development tooling. The public source tree
is available in the [dashpay/platform](https://github.com/dashpay/platform) repository.

If you want a higher-level architectural walkthrough of the current Rust codebase, see the
[Dash Platform Book](https://dashpay.github.io/platform/).

## SDKs

These are the primary tools for developers building on Dash Platform.
These are the primary tools for developers building on Dash Platform. Package names and exact module
layout can change over time, so treat the monorepo as the source of truth.

| Component | Description |
| - | - |
| [js-evo-sdk](https://github.com/dashpay/platform/tree/master/packages/js-evo-sdk) | JavaScript SDK (`npm install @dashevo/evo-sdk`) |
| [rs-sdk](https://github.com/dashpay/platform/tree/master/packages/rs-sdk) | Rust SDK for building applications on Dash Platform |
| [rs-sdk-ffi](https://github.com/dashpay/platform/tree/master/packages/rs-sdk-ffi) / [swift-sdk](https://github.com/dashpay/platform/tree/master/packages/swift-sdk) | FFI layer and iOS/Swift SDK |
| [wasm-sdk](https://github.com/dashpay/platform/tree/master/packages/wasm-sdk) | WebAssembly bindings for browser-based applications |
| JavaScript SDK | JavaScript tooling for connecting to Platform, creating identities, and submitting state transitions |
| Rust SDK (`rs-sdk`) | Rust-first SDK for building applications and verifying Platform data |
| FFI / mobile SDK layers | Shared components used for Swift and other native integrations |
| WASM bindings | WebAssembly-oriented bindings for browser and hybrid environments |
Comment thread
thephez marked this conversation as resolved.
Outdated

## SDK Availability

The current Platform repository README presents SDK support as follows:

| SDK | Status |
| - | - |
| Rust (`rs-sdk`) | Available now |
| JavaScript (`js-evo-sdk`) | Available now |
| iOS / Swift | Planned in v3.1 |
| Android | Planned in v3.2 |
Comment thread
thephez marked this conversation as resolved.
Outdated

## Platform and Supporting Repositories

These run on the network and process data.

| Component | Description |
| - | - |
| [dapi](https://github.com/dashpay/platform/tree/master/packages/dapi) / [rs-dapi](https://github.com/dashpay/platform/tree/master/packages/rs-dapi) | Decentralized API server implementations |
| [rs-drive](https://github.com/dashpay/platform/tree/master/packages/rs-drive) | Drive query and indexing layer over GroveDB |
| [rs-dpp](https://github.com/dashpay/platform/tree/master/packages/rs-dpp) | Dash Platform Protocol (data contracts, documents, state transitions, identities) |
| [dashmate](https://github.com/dashpay/platform/tree/master/packages/dashmate) | Node management and local development tool |
| DAPI / rs-dapi | Decentralized API server implementations |
| rs-drive | Drive query and indexing layer over GroveDB |
| rs-dpp | Dash Platform Protocol (data contracts, documents, state transitions, identities) |
| dashmate | Node management and local development tool |
Comment thread
thephez marked this conversation as resolved.
Outdated
| [rs-tenderdash-abci](https://github.com/dashpay/rs-tenderdash-abci) | Tenderdash ABCI application |
| [grovedb](https://github.com/dashpay/grovedb) | Hierarchical authenticated data structure |
| [tenderdash](https://github.com/dashpay/tenderdash) | Byzantine fault-tolerant consensus engine |
Expand All @@ -40,8 +55,8 @@ Built-in data contracts used by the network.

| Component | Description |
| - | - |
| [dashpay-contract](https://github.com/dashpay/platform/tree/master/packages/dashpay-contract) | DashPay contract documents JSON Schema |
| [dpns-contract](https://github.com/dashpay/platform/tree/master/packages/dpns-contract) | DPNS contract documents JSON Schema |
| dashpay-contract | DashPay contract documents JSON Schema |
| dpns-contract | DPNS contract documents JSON Schema |
Comment thread
thephez marked this conversation as resolved.
Outdated

## Source Code Location

Expand Down
Loading
Loading