Skip to content

The network

The Polkadot Products Devnet is a public developer preview that runs on the community-operated Paseo network: a Paseo relay chain plus a set of system parachains. Applications are built against three of those chains — Asset Hub, People, and Bulletin. This page maps what each chain is responsible for and how they fit together when a Product is deployed and opened.

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 theme.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 primary chain for Product developers. It carries the contract, asset, and naming machinery used by deployed apps.

pallet-revive The PolkaVM smart-contract environment. CDM, DotNS, and application contracts run here.

Assets + ERC-20 precompiles On-chain assets exposed to contracts through ERC-20-style precompiles, so contracts read and transfer supported assets without Substrate storage details.

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. It is where usernames are attested, personhood status is recorded, and CASH is held and sent through Coinage.

Bulletin para 1010

The Bulletin chain stores published web-app bundles that the gateway serves.

Note

Bulletin uploads are authorization-based, not fee-based. Rather than charging tokens per upload, storage is gated by an authorizer (Root, sibling parachains, or registered authorizers). This is why publishing an app bundle does not consume devnet tokens.

The deployments register

Concrete 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, -n devnet for CDM — and the preset carries the endpoints and address book for that network.

For the addresses themselves, see Addresses & registries.

Deploy and serve flow

The three chains combine into a single application lifecycle:

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 theme.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 via 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. For how contracts and naming fit together, see the contracts and naming architecture pages, and the developer guides.

Learn more