  The greatest advantage that Web3 applications offer over Web 2.0 is the
evolution of the data access layer. Opaque, centralized services that compelled
trust from users are replaced by trustless, decentralized systems of smart
contracts. However, the public nature of blockchain-based databases, on which
smart contracts transact, has typically presented a challenge for applications
that depend on data privacy or that rely on participants having incomplete
information. This has changed with the introduction of confidential smart
contract networks that encrypt the memory state of active contracts as well as
their databases stored on-chain. With confidentiality, contracts can more
readily implement novel interaction mechanisms that were previously infeasible.
Meanwhile, in both Web 2.0 and Web3 applications the user interface continues
to play a crucial role in translating user intent into actionable requests. In
many cases, developers have shifted intelligence and autonomy into the
client-side, leveraging Web technologies for compute, graphics, and networking.
Web3's reliance on such frontends has revealed a pain point though, namely that
decentralized applications are not accessible to end users without a persistent
host serving the application. Here we introduce the Non-Fungible Program (NFP)
model for developing self-contained frontend applications that are distributed
via blockchain, powered by Web technology, and backed by private databases
persisted in encrypted smart contracts. Access to frontend code, as well as
backend services, is controlled and guaranteed by smart contracts according to
the NFT ownership model, eliminating the need for a separate host. By
extension, NFP applications bring interactivity to token owners and enable new
functionalities, such as authorization mechanisms for oracles, supplementary
Web services, and overlay networks in a secure manner. In addition...
