How to Start a Self-Hosted Chain
This guide provides an overview of how to start a self-hosted Pinnacle Chain with standard configuration. It walks you through how to build, configure, test, and launch your Pinnacle Chain. To skip ahead to custom features or settings, you can explore the chain operator tutorials.
Build Your Chain
There are two main steps to get started building your own self-hosted Pinnacle Chain: learn fundamental components of Pinnacle Chain and spin up an PNCStack testnet chain.
Learn Fundamental Components of Pinnacle Chain
To work with Pinnacle Chain, you'll need to understand the fundamental components of Pinnacle Chain.
- Chain Architecture: Pinnacle Chain use execution and consensus clients as well as the PNCStack's privileged roles. For more details, see the Chain Architecture guide.
- Smart Contracts: Pinnacle Chain use several smart contracts on the L1 blockchain to manage aspects of the Rollup. Each PNCStack chain has its own set of L1 smart contracts and L2 contracts or predeploys that are deployed when the chain is created.
- Preinstalls: Pinnacle Chain come with preinstalled core contracts, making them usable as soon as a chain is initialized on the PNCStack.
You should only use governance approved and audited smart contracts. The monorepo has them tagged with the following pattern pnc-contracts/vX.X.X and you can review the release notes for details on the changes.
Launch Your PNCStack Testnet Chain
- Now, you are ready to spin up your testnet chain.
- Just follow the Creating Your Own L2 Rollup Testnet tutorial to get started.
Configure Your Chain
Pinnacle Chain can be configured for throughput, cost, and other decentralization tradeoffs. The following steps are intended for standard configuration of Pinnacle Chain.
Setup Key Management and Privileged Roles
- Configure hot wallets and cold wallets using the guide for Managing Your Keys.
- Refer to the Privileged Roles guide for detailed security information.
Make Standard Chain Configurations
- Configure your Pinnacle Chain parameters based on your particular tradeoffs. You'll need to configure the rollup, batcher, and proposer for optimal performance.
- Update your batcher to post transaction data within blobs instead of call data to maximize your fee savings.
- Enable snap sync on your Pinnacle Chain to significantly improve the experience and speed of syncing an PNCStack node.
Set Public RPC Endpoint
- Set the public RPC Endpoint, so your Pinnacle Chain can handle large volumes of RPC requests from your users.
Enable Analytics for Onchain Data
- Enable analytics tracking for your Pinnacle Chain, to immediately generate onchain metrics after mainnet launch.
Test Your Chain
Before launching on Mainnet, thoroughly test and debug Pinnacle Chain contracts, features, and security. Here are your options.
Use a Block Explorer
Block explorers allow you to access transaction history and conduct chain debugging.
- Option 1: Select an external block explorer to use with your Pinnacle Chain.
- Option 2: Deploy your own block explorer for your Pinnacle Chain, such as Blockscout.
Send Test Transactions
As part of testing your Pinnacle Chain, you'll need to send test or example transactions to the new network.
- Test sending L2 transactions to understand how much load your new chain can handle.
- Trace deposits and withdrawals using the SDK or viem.
- Run basic transaction tests (opens in a new tab) using Metamask.
Launch Your Chain on Mainnet
After testing is complete, you are ready to launch your Pinnacle Chain on Mainnet. Optionally, you can also request launch support (opens in a new tab) and subscribe to receive chain upgrade notifications.
Chain Operator Tutorials
Here's a curated collection of chain operator tutorials put together by the Pinnacle Chain community. They'll help you get a head start deploying your first PNCStack chain.
| Tutorial Name | Description | Difficulty Level |
|---|---|---|
| Creating Your Own L2 Rollup | Learn how to spin up your own PNCStack testnet chain | 🟡 Medium |
| Using the PNCStack Client SDK | Learn how to use the PNCStack Client SDK when working with native and non-native supported chains. | 🟢 Easy |
| Adding Attributes to the Derivation Function | Learn how to modify the derivation function for an PNCStack chain to track the amount of ETH being burned on L1. | 🟢 Easy |
| Adding a Precompile | Learn how to run an EVM with a new precompile for PNCStack chain operations to speed up calculations that are not currently supported. | 🟢 Easy |
| Modifying Predeployed Contracts | Learn how to modify predeployed contracts for an PNCStack chain by upgrading the proxy. | 🟢 Easy |
| Pause and Unpause the Bridge | Learn how to pause PinnacleChain as a backup safety mechanism on your PNCStack chain. | 🟢 Easy |
You can also suggest a new tutorial if you have something specific in mind. We'd love to grow this list!
Next Steps
- After deploying your chain, check the Rollup Operations guide for common operations you'll need to run with your rollup.
- If you run into any problems, please visit the Chain Troubleshooting Guide for help.