Deploy a chain with Polkadot Deployment Portal
This guide explains how to deploy a chain using the Polkadot Deployment Portal.
Pop CLI integrates an external provider for chain deployment, streamlining the process with seamless automation. It handles registration, as detailed in Launch a Chain to Paseo, and once the chain is registered, Pop CLI completes the deployment by integrating with the provider. The provider manages collators and offers a portal UI for monitoring your chain’s status.
Accessing the Polkadot Deployment Portal (PDP)
Start by signing up to be a beta tester to request access to the Polkadot Deployment Portal.
Once accepted, you’ll receive an API key required to deploy through Pop CLI. Keep this key safe, you’ll need it during setup.
Note: Currently, the only supported deployment provider is the Polkadot Deployment Portal, which supports a limited set of templates, built-in collator management, and deployment tracking via its UI.
Important: For now, use the staging portal, this is the version integrated with Pop CLI during the beta phase.
Starting the Deployment Process
Once you have your API key and access to the Polkadot Deployment Portal, you're ready to deploy your chain.
Execute the following command to start the interactive deployment process:
pop up
Follow the interactive guide:

At the end of the process, Pop CLI will display the URL to the external provider's portal, where you can monitor the status of your deployment. For example, after a successful deployment, the Polkadot Development Portal provides a UI like the one shown below:

During the process, Pop CLI will prompt you for two important choices:
Whether to use a pure proxy for registration.
Whether to build the runtime deterministically.
What is a Pure Proxy?
A pure proxy is an account without private keys, controlled entirely by a designated proxy.
The proxy defines what kind of actions the controller account is allowed to perform on behalf of the pure proxy. There are different proxy types, each with a specific scope of permissions.
The ParaRegistration
proxy is designed to limit permissions strictly to paraID reservation and rollup registration, and is recommended for this use case.
Note:
ParaRegistration
is a newly introduced proxy type. Before its availability, the common approach was to use theAny
proxy as a more general alternative.
Why Use a Pure Proxy?
A pure proxy enhances security by keeping private keys hidden and delegating control to an any proxy. It simplifies multisig setups by allowing signatory changes without creating a new account. Highly recommended for parachain registration!
To create a pure proxy run:
pop call
┌ Pop CLI : Call a chain
│
◇ Which chain would you like to interact with?
│ wss://pas-rpc.stakeworld.io
│
◇ What would you like to do?
│ Create a pure proxy
│
◇ Select the value for the parameter: proxy_type
│ Any
│
◇ Enter the value for the parameter: delay
│ 0
│
◇ Enter the value for the parameter: index
│ 0
│
Once the pure proxy is created, retrieve the generated address from the event PureCreated
and fund it using the Paseo Faucet to enable transaction execution.

What is a Deterministic Runtime Build?
By default, the Rust compiler generates optimized Wasm binaries, but they aren't always deterministically reproducible. If the Wasm runtime isn't deterministic, each build might produce slightly different bytecode, This can be a problem for blockchain networks where every node must run the exact same runtime.
For a complete walkthrough on deterministic builds using Pop CLI, check out our dedicated guide: 👉 Build your runtime deterministically
This build requires Docker or Podman to be installed and running. Pop CLI automatically invokes the SRTool
image to generate a reproducible and verifiable runtime.
Resources
Learning Resources
🧑🏫 https://docs.polkadot.com/develop/parachains/deployment/
⭕ Learn more about deterministic runtimes here.
🧑🔧 Learn more about Pure Proxies Accounts.
Need help?
Ask on Polkadot Stack Exchange (tag it pop
) or drop by our Telegram. We're here to help!
Last updated
Was this helpful?