Delivery versus Payment means an asset and its payment settle together. On Rayls, this happens across separate Sovereign ledgers while keeping sensitive information private.
1. Asset locked
For an ERC721 tokenized asset, the seller uses:
depositIntoDvp(tokenId)
The asset is locked, then the seller starts the swap with:
swapWithDvpForEnygma(...)
This includes the payment amount, destination chain, shared swap ID and validity period.
2. Payment locked
The buyer's Enygma payment is locked on the destination Sovereign ledger.
Now both sides are committed:
Seller → asset locked
Buyer → payment locked
3. Cross chain coordination
The message travels through:
Sovereign A → Relayer → Private Network Hub → Relayer → Sovereign B
For Enygma DvP, this process also uses encrypted data, Merkle proofs and zero knowledge proofs.
4. Settlement
When the required conditions are met:
dvpSwapCompleted()
For the ERC721 flow, the asset is burned on the seller's ledger and minted on the buyer's ledger, while the Enygma payment is released to the seller.
5. If the trade fails
Rayls also provides an expiry and cancellation path through:
cancelSwap()
The payment can be released, while the asset follows the withdrawal and unlock process.
Where privacy fits
DvP handles the settlement logic. Enygma provides the confidential payment layer using cryptographic commitments, zero knowledge proofs, encrypted data and separate viewing and spending authority.
That's what makes the design interesting: private institutional ledgers, cross chain coordination and contract enforced settlement working together.