Build on Dusk
Dusk has a modular architecture with:
- DuskDS – the settlement and data layer (consensus, data availability, native transaction models, protocol contracts, DuskVM).
- DuskEVM – the EVM execution layer where most smart contracts and dApps live.
As a builder you usually:
- write and deploy contracts on DuskEVM, and
- rely on DuskDS for finality, privacy and settlement under the hood.
Choose your path
Smart Contracts on DuskEVM (recommended) Deploy Solidity or Vyper contracts on DuskEVM using familiar EVM tooling.
Smart Contracts on DuskDS (advanced) Write Rust/WASM contracts directly on the DuskDS settlement layer.
Integrate with DuskDS Use HTTP APIs, W3sper, and events to integrate wallets, exchanges, and backends.
Dusk Improvement Proposals Contribute to the core protocol and standards.
When to use DuskEVM
Use DuskEVM for almost all application‑level use cases:
- DeFi protocols, AMMs, lending, RWAs
- NFTs and gaming
- Apps that expect an EVM environment (tooling, libraries, infra)
You get:
- Familiar languages and tooling (Solidity/Vyper, Hardhat/Foundry, etc.)
- DUSK as the native gas token
- Privacy & compliance features via the underlying DuskDS architecture and Hedger.
See: Smart Contracts on DuskEVM.
When to use DuskDS contracts
Use DuskDS smart contracts only when you need:
- protocol‑level control on the settlement layer,
- direct interaction with the DuskDS transaction models, or
- specialised contracts that must run “next to” consensus.
Typical examples include:
- genesis / protocol contracts (transfers, staking),
- low‑level infrastructure contracts,
- experiments that need direct access to the DuskDS VM and its unique features.
If that’s you, start with:
Smart Contracts on DuskDS.
Examples
You can explore existing contracts and examples in the Dusk repos:
- Protocol contracts in
rusk/contracts - The DuskDS example
my-first-contract - DuskEVM examples in the DuskEVM docs