From dash-platform
Dash Platform development — data contracts, Rust SDK (dash-sdk, dpp), JS SDK (@dashevo/evo-sdk, wasm-dpp), gRPC, identities, documents. Use when working with Dash Platform in any language.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dash-platform:dash-platformThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Assist with Dash Platform development: data contracts, Rust SDK, JS/TS SDK, identities, documents, and queries.
Assist with Dash Platform development: data contracts, Rust SDK, JS/TS SDK, identities, documents, and queries.
In dashpay/platform repo: bash scripts/setup-ai-agent-environment.sh
Rust — not on crates.io, use git dep:
[dependencies]
dash-sdk = { git = "https://github.com/dashpay/platform", branch = "master" }
dpp = { git = "https://github.com/dashpay/platform", branch = "master" }
JS/TS:
npm install @dashevo/evo-sdk
lexicon/ contains keyword lookup tables for Dash Platform APIs. To answer questions:
lexicon/*.md file for keywords matching the user's querySrc or Docs column link in matching rows| File | Content |
|---|---|
lexicon/rust.md | Rust SDK types, functions, patterns (2700+ entries, includes dapi-grpc bindings) |
lexicon/js.md | JS SDK types, functions, patterns |
lexicon/contract.md | data contract types, JSON Schema, DPP, document types |
lexicon/grpc.md | gRPC services, messages, endpoints |
lexicon/explorers.md | Insight API + Platform Explorer endpoints, instances |
lexicon/changelog/platform/*.md | per-release public-API diffs + migration guidance (breaking changes, added/removed symbols) |
When the user asks "what changed in <version>", "is X a breaking change", "how do I migrate from A to B", or mentions upgrading SDK versions:
lexicon/changelog/platform/*.md for the symbol/RPC keyword (same grep-first flow as the lexicon).Ref link (PR: → https://github.com/dashpay/platform/pull/, C: → https://github.com/dashpay/platform/commit/) and WebFetch for the full rationale.Stable files are permanent; only the single most-recent prerelease file is kept.
Link prefixes:
| Pre | URL |
|---|---|
P: | https://github.com/dashpay/platform/blob/master/packages/ |
R: | https://dashpay.github.io/platform/api/rust/ |
G: | https://dashpay.github.io/platform/api/grpc/ |
B: | https://dashpay.github.io/platform/ |
T: | https://github.com/dashpay/dash-evo-tool/blob/master/ |
Y: | https://github.com/PastaPastaPasta/yappr/blob/master/ |
D: | https://github.com/PastaPastaPasta/dash-bridge/blob/master/ |
E: | https://github.com/dashpay/evo-sdk-website/blob/master/ |
PR: | https://github.com/dashpay/platform/pull/ |
C: | https://github.com/dashpay/platform/commit/ |
Each type defines:
type: "object" + properties (JSON Schema)indices — index definitions for Platform queriesrequired — required fieldsadditionalProperties: false, $comment, transient, documentsKeepHistoryContractDefaultname + properties array (each: name + asc/desc)unique: true for uniqueness constraints$ownerId, $createdAt, $updatedAtMaps names → identities:
domain type: label, normalizedLabel, normalizedParentDomainName, recordspreorder type: commit-reveal registrationadditionalProperties: false| Type | Crate | Purpose |
|---|---|---|
Sdk / SdkBuilder | dash-sdk | Entrypoint, builder pattern |
Identity | dpp | Platform identity with keys |
DataContract | dpp | JSON Schema contract def |
Document | dpp | Data instance in contract |
Identifier | dpp | 32-byte platform object ID |
AddressList | dash-sdk | DAPI masternode addresses |
use dash_sdk::platform::{Fetch, FetchMany, Identifier};
let identity = Identity::fetch(&sdk, id).await?; // Ok(None) if missing
let docs = Document::fetch_many(&sdk, query).await?;
DriveQuery → where clauses, order, limit → convert to DocumentQuerytokiodash_sdk::Error — connection, proof failure, broadcast failure, query errorsdash-evo-tool demonstrates: identity registration, DPNS names, contract CRUD, document CRUD, tokens, multi-network support.
Deprecated: js-dash-sdk /
dashnpm package — Thejs-dash-sdk(npm:dash) is deprecated and unsupported, replaced byjs-evo-sdk(npm:@dashevo/evo-sdk). If you encounterrequire('dash'),new Dash.Client(), orjs-dash-sdkimports: alert the user, recommend migrating to@dashevo/evo-sdk, and do NOT generate new code using the legacy package.
import { EvoSDK } from '@dashevo/evo-sdk';
const client = new EvoSDK({
network: 'testnet',
wallet: { mnemonic: '...' },
});
await client.connect();
// Identity
const identity = await client.platform.identities.register();
await client.platform.identities.get(identityId);
// Contract
const contract = await client.platform.contracts.create({
note: { type: 'object', properties: { message: { type: 'string', maxLength: 256 } }, additionalProperties: false }
}, identity);
await client.platform.contracts.publish(contract, identity);
// Document
const doc = await client.platform.documents.create('contractId.note', identity, { message: 'Hello' });
await client.platform.documents.broadcast({ create: [doc] }, identity);
const docs = await client.platform.documents.get('contractId.note', {
where: [['$ownerId', '==', identity.getId()]], orderBy: [['$createdAt', 'desc']]
});
// DPNS
await client.platform.names.register('alice.dash', { dashUniqueIdentityId: identity.getId() }, identity);
const name = await client.platform.names.resolve('alice.dash');
import { DashPlatformProtocol } from '@dashevo/wasm-dpp';
const dpp = new DashPlatformProtocol();
Provides: contract/document validation, state transition creation/signing, identity key management.
Pure JS SDK has NO client-side proof verification. For security-critical apps use wasm-sdk (has proofs) or validate server-side with Rust SDK.
Built-in: HD derivation from mnemonic, UTXO management, tx creation/broadcasting, balance queries.
PastaPastaPasta/yappr — social app, document CRUDPastaPastaPasta/dash-bridge — bridge applicationdashpay/evo-sdk-website — SDK docs with examplesnpx claudepluginhub lklimek/agents --plugin claudashProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.