Trustless payments with smart-contract escrow.
Each transaction deploys a fresh smart contract — isolated state, buyer protection, arbitration, and dispute resolution. One contract per deal, no shared risk.
Seven states, every path covered
The escrow contract tracks every possible resolution — release, refund, expiry, or arbitration.
Buyer protection, on-chain
Isolated contract per deal, backed by DERO’s blockchain.
On-Chain Security
Funds are locked in a DERO smart contract. No one moves them without meeting the contract conditions.
Arbitration
Designate a neutral arbitrator who resolves disputes. Buyer gets a refund or seller gets paid.
Platform Fees
Automatic fee deduction on successful transactions. Configurable percentage collected by the contract owner.
Block Expiration
Escrows expire after a configurable number of blocks. Seller can claim funds after the window.
Dispute Resolution
Buyers can dispute before confirming delivery. Disputes lock funds until the arbitrator resolves them.
DVM-BASIC Contracts
Open-source smart contracts in DERO’s native language. Auditable, immutable, transparent.
Deploy an escrow in code
The EscrowManager handles deployment, lifecycle polling, and event handling.
import { EscrowManager } from "dero-pay/escrow"; import { deroToAtomic } from "dero-pay"; const manager = new EscrowManager({ walletRpcUrl: "http://127.0.0.1:10103/json_rpc", }); const escrow = await manager.create({ seller: "dero1qy…seller", arbitrator: "dero1qy…arbitrator", amount: deroToAtomic("100.0"), feeBasisPoints: 200, // 2% expiryBlocks: 720, }); console.log("SCID:", escrow.scid); manager.on("funded", (e) => console.log("Deposited:", e.amount));
Escrow vs. Payment Router
Escrow deploys a fresh contract per transaction for buyer protection. The Payment Router deploys once and handles unlimited instant payments. Use both, or pick the one that fits.
Compare the twoShip trustless deals.
Deploy per-transaction escrow with arbitration and dispute resolution, backed by DERO.