There’s no such feature in DAML the smart contract language. The problem is data availability:
Imagine a DAML ledger with full sub-transaction privacy. There is no central place where all data is stored. If Alice
creates a contract visible to “all”, and later a new node joins the network, there is no place for that node to “pick up” that data.
We therefore decided to handle “public” data through parties. There’s a discussion on the solution in Query and Create Exercise as multiple parties. That feature should be rolled out in one of the releases early next year.
TL;DR: You’ll be able to use more than one party at a time during submission. So you can model public
as a party and issue everyone tokens that allow them to read as that party. You still have the data availability problem, meaning the public
party has to be hosted on every node where you want that data to be available. If you are on a multi-node network that means hosting the public
party on all participants. If that’s not possible, the workaround is to have a public party per node, and then essentially make each node an observer on “public” contracts.