push-chain-node

module
v0.0.41 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2026 License: MIT

README ΒΆ

Push protocol is evolving to Push Chain, a shared-state L1 designed to deliver universal app experiences (Any Chain. Any User. Any App). πŸš€

discord twitter youtube license

Push Chain Node

Push Chain Node is the core implementation of Push Chain, a next-generation, shared-state Layer 1 blockchain. It powers universal app experiences by enabling seamless interoperability, universal execution, and a frictionless developer experience. The node software allows anyone to participate in the Push Chain network - running core validators, universal validators, or full nodes to help secure and operate the chain. Built for extensibility and performance, Push Chain Node is designed to connect any chain, any user, and any app, making cross-chain and cross-ecosystem applications possible out of the box.

Table of Contents

Prerequisites

Before you begin, ensure you have the following installed:

Running Localnet

Locknet is the local testnet environment for Push Chain. To spin up Locknet, use the following command:

git clone https://github.com/pushchain/push-chain-node.git
cd push-chain-node
make sh-testnet

Directory Structure

  • app/ – Core validator application wiring (pchaind). See app/README.md for what Push Chain adds on top of cosmos-evm.
  • x/ – Push Chain custom Cosmos SDK modules:
    • uexecutor – Universal transaction execution layer
    • uregistry – Chain & token registry
    • uvalidator – Universal validator set, ballot voting & UV reward boost
    • utss – Threshold signature scheme coordination
  • precompiles/ – Custom EVM precompiles (usigverifier β€” Ed25519 signature verification)
  • universalClient/ – The Universal Validator binary (puniversald). See universalClient/README.md.
  • proto/ – Protobuf definitions for the four custom modules
  • cmd/ – CLI entrypoints (pchaind, puniversald)
  • config/ – Per-chain JSON registry configs (mainnet, testnet)
  • testnet/ – Validator setup scripts (core + universal)
  • interchaintest/ – E2E and integration tests
  • utils/ – Shared utility functions

Contributing

We welcome contributions from the community! To get started:

  • Fork this repository and create a new branch for your feature or bugfix.
  • Make your changes and ensure all tests pass (go test ./... -v).
  • Open a pull request with a clear description of your changes.
  • For major changes, please open an issue first to discuss what you would like to change.

Directories ΒΆ

Path Synopsis
api
uexecutor/module/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uexecutor/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uexecutor/v1/old
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uexecutor/v2
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uregistry/module/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uregistry/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
utss/module/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
utss/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uvalidator/module/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
uvalidator/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
app
params
Package params defines the simulation parameters in the gaia.
Package params defines the simulation parameters in the gaia.
upgrades/evm-params-migration
Package evmparamsmigration contains the upgrade handler that migrates the x/vm module's on-chain Params from the v0.2.x proto layout to the v0.3.x layout.
Package evmparamsmigration contains the upgrade handler that migrates the x/vm module's on-chain Params from the v0.2.x proto layout to the v0.3.x layout.
cmd
pchaind command
puniversald command
precompiles
test
universalClient
api
chains/push
Package push provides a client for listening to Push Chain events.
Package push provides a client for listening to Push Chain events.
chains/svm
Package svm implements the Solana transaction builder for Push Chain cross-chain outbounds.
Package svm implements the Solana transaction builder for Push Chain cross-chain outbounds.
config
Package config provides configuration loading, validation, and persistence for the Push Universal Validator.
Package config provides configuration loading, validation, and persistence for the Push Universal Validator.
core
Package core provides the top-level orchestrator for the Push Universal Validator.
Package core provides the top-level orchestrator for the Push Universal Validator.
db
Package db provides a lightweight GORM-based SQLite wrapper for persisting state required by the Push Universal Validator (UV), such as block tracking, processed cross-chain messages, and transaction receipts.
Package db provides a lightweight GORM-based SQLite wrapper for persisting state required by the Push Universal Validator (UV), such as block tracking, processed cross-chain messages, and transaction receipts.
pushcore
Package pushcore provides a client for interacting with Push Chain gRPC endpoints.
Package pushcore provides a client for interacting with Push Chain gRPC endpoints.
pushsigner/keys
Package keys provides keyring management for the Push Universal Validator.
Package keys provides keyring management for the Push Universal Validator.
store
Package store contains data models and enum constants for the Universal Validator.
Package store contains data models and enum constants for the Universal Validator.
tss
tss/txflow
Package txflow holds the shared types and helpers used by both the transaction broadcaster and the resolver.
Package txflow holds the shared types and helpers used by both the transaction broadcaster and the resolver.
x
uexecutor/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
uexecutor/types
Package types is a reverse proxy.
Package types is a reverse proxy.
uexecutor/typesv2
Package typesv2 is a reverse proxy.
Package typesv2 is a reverse proxy.
uregistry/types
Package types is a reverse proxy.
Package types is a reverse proxy.
utss/types
Package types is a reverse proxy.
Package types is a reverse proxy.
uvalidator/types
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL