#dusk $DUSK @Dusk The "public vs private blockchain" debate assumes you pick one lane for the whole chain. #dusk $DUSK doesn't work that way — but digging into @Dusk's docs, the split isn't as clean as "choose per transaction" either.
The Transfer Contract sits underneath both transaction models. It accepts Phoenix-style and Moonlight-style payloads and routes each to its own verification logic, so a single workflow can genuinely mix public and shielded legs at the contract level, not just the application level. That part matches the pitch.
What changed for me was reading the contract-interaction docs, using staking as the example. Regardless of which model a contract call is built from, gas gets paid in phoenix notes — the docs state this plainly, flagged with "for now." No branch, no user choice at that layer.
So the public/private split isn't symmetric across the whole workflow. The transaction body can be public or shielded by design. The fee that makes it happen currently can't.
That's a narrower claim than "programmable privacy," and it's the kind of detail that's easy to miss reading the marketing page instead of the contract docs.
Worth checking: whether that phoenix-only gas requirement for contract calls still holds in the current Rusk implementation, or whether it's been generalized since the docs were last updated.