Skip to content

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

Last update: November 4, 2026
| Created: July 16, 2026