The network¶
The Polkadot Products Devnet runs on the community-operated Paseo network: a Paseo relay chain plus a set of system parachains. Apps are built against three of those chains: Asset Hub, People and Bulletin. This page shows what each chain does, and how they work together when a Product is deployed and opened.
Paseo Next v2
This page covers the PCF Products Devnet (devnet preset). For Paseo Next v2 (paseo preset), see Networks.
Topology¶
The relay chain is the root of trust. Product flows mostly touch three system parachains: Asset Hub for contracts and assets, People for identity and money flows, and Bulletin for web-app bundle storage.
graph TD
Relay["Paseo relay chain"]
AH["Asset Hub (para 1000)<br/>contracts / assets / DotNS"]
People["People (para 1004)<br/>identity + proof-of-personhood"]
Bulletin["Bulletin (para 1010)<br/>transaction storage (web bundles)"]
Relay --> AH
Relay --> People
Relay --> Bulletin
People -->|identity and CASH signals| AH
AH -.->|contenthash points to bundle CID| Bulletin
%% Per-chain colour — palette lives in diagrams.css (.relayNode etc.)
classDef relayNode stroke-width:1px;
classDef assethubNode stroke-width:1px;
classDef peopleNode stroke-width:1px;
classDef bulletinNode stroke-width:1px;
class Relay relayNode
class AH assethubNode
class People peopleNode
class Bulletin bulletinNode | Chain | Para ID | Role |
|---|---|---|
| Relay | — | Root of trust; anchors the system parachains |
| Asset Hub | 1000 | Contracts (PolkaVM/EVM), assets, DotNS gateway |
| People | 1004 | Identity and proof-of-personhood |
| Bulletin | 1010 | Web-app content storage |
Asset Hub para 1000¶
Asset Hub is the main chain for Product developers. It runs the contracts, assets and naming that deployed apps use.
pallet-revive The PolkaVM smart-contract environment. DotNS and application contracts run here.
Assets + ERC-20 precompiles On-chain assets available to contracts through ERC-20-style precompiles, so contracts can read and transfer supported assets without dealing with Substrate storage.
DotNS gateway Connects .dot domains to the contract environment. See Naming for how names resolve to app bundles.
Personhood precompile Contracts read a user's personhood tier through a precompile, without calling the identity backend.
People para 1004¶
The People chain holds identity, proof-of-personhood and Coinage state. Usernames are attested here, personhood status is recorded here, and CASH is held and sent here through Coinage.
Bulletin para 1010¶
The Bulletin chain stores published web-app bundles that the gateway serves.
Bulletin uploads work by authorization, not by fees. Instead of charging tokens per upload, an authorizer (Root, sibling parachains, or registered authorizers) decides who can store data. That is why publishing an app bundle does not cost devnet tokens.
The deployments register¶
Addresses, endpoints and CIDs are network-specific. They change when a network is redeployed, so nothing in the platform hard-codes them. Instead, each command-line tool selects a network preset (--env devnet for pad and dotns), and the preset carries the endpoints and address book for that network.
The addresses themselves are in Addresses & registries.
Deploy and serve flow¶
Here is how the three chains work together over an app's life:
graph LR
Dev["App developer"]
Revive["pallet-revive on Asset Hub<br/>(PolkaVM/EVM contract)"]
DotNS["DotNS<br/>.dot domain + resolver"]
Store["Bulletin transaction storage<br/>(auth-gated, CID)"]
GW["Gateway dev-dot.li"]
User["Polkadot app / web user"]
Dev -->|deploy contract| Revive
Dev -->|reserve name| DotNS
Dev -->|upload web bundle| Store
DotNS -->|contenthash = CID| Store
GW -->|resolve .dot -> CID| DotNS
User -->|https://label.dev-dot.li| GW
User -->|contract calls| Revive
%% Per-chain colour — palette lives in diagrams.css (.relayNode etc.)
classDef developerNode stroke-width:1px;
classDef assethubNode stroke-width:1px;
classDef dotnsNode stroke-width:1px;
classDef bulletinNode stroke-width:1px;
classDef gatewayNode stroke-width:1px;
classDef userNode stroke-width:1px;
class Dev developerNode
class Revive assethubNode
class DotNS dotnsNode
class Store bulletinNode
class GW gatewayNode
class User userNode A developer deploys contracts to Asset Hub through pallet-revive, reserves a .dot name through the DotNS gateway and uploads the web bundle to Bulletin. The name's contenthash resolver is bound to the bundle's CID, and the gateway at https://dev-dot.li serves the app at https://<label>.dev-dot.li. The contracts and naming pages, and the developer guides, go into more detail.
Learn more¶
- paseo-network/runtimes: the chain runtimes
- pallet-revive: the PolkaVM contract environment
| Created: July 16, 2026