Smart contracts serve the web
The Internet Computer is the only blockchain that can host an entire dapp – frontend, backend, and data. This enables dapps to be, for instance, entirely controlled by a DAO, without reliance on a centralized organization for any part of their infrastructure, and to inherit the security and decentralization of blockchain end-to-end. Using dapps hosted on the Internet Computer is as seamless as using Web2 apps. In fact, this very site is hosted 100% on-chain on the Internet Computer and there are many more dapps hosted entirely on the Internet Computer.
The HTTP gateway protocol
Canisters that serve content for web browsers implement the HTTP gateway protocol. In this protocol, a client—like a web browser running on a user’s device—connects to a gateway using the standard HTTP(S) protocol. The gateway then fetches the data from the canister using the HTTP gateway protocol and forwards the data to the client.
Gateways can be implemented in several ways; anyone can run an HTTP gateway for the Internet Computer. The boundary nodes that route traffic to the ICP nodes also run an HTTP gateway for the domains ic0.app
and icp0.io
as well as for many custom domains used by canisters. Some projects building on ICP also decided to run their own boundary nodes. Security-aware users can run the ICP HTTP Proxy on their own computer. Initially, the HTTP gateway protocol was also implemented in a service worker, a piece of software running directly in the user’s browser. For reasons of compatibility, however, support for the service worker has been deprecated.
Internet Identity
Users can access dapps on ICP using a plain web browser and without the need to install any wallet or browser extension. They authenticate to the dapps using Internet Identity, a blockchain authentication system that builds on open standards like web authentication that are supported by all major web browsers today.