SatoshiQaziMuhammed 306c65532e Name each wallet step on the root signing page (#82)
The wallet answers DApp requests one at a time and waits without limit for each, so a
tap that reaches a stalled wallet showed nothing. The page now names the step it is
waiting on, says after 45 s that the wallet is not answering and how to reset it, and
disables the button while a request is pending so repeated taps do not queue more.
2026-11-05 03:21:41 +04:00
2026-01-23 00:29:48 +03:00

Pezkuwi Wallet Utils

Configuration repository for Pezkuwi Wallet - next generation mobile wallet for Pezkuwichain and the Polkadot ecosystem.

Overview

This repository contains chain configurations, staking metadata, dApp listings, and other utility files used by Pezkuwi Wallet applications.

Structure

pezkuwi-wallet-utils/
├── chains/           # Chain configurations for all supported networks
│   ├── pezkuwichain/ # Pezkuwichain (Relay + Asset Hub + People Chain)
│   ├── polkadot/     # Polkadot ecosystem chains
│   ├── kusama/       # Kusama ecosystem chains
│   └── ...           # Other ecosystem chains
├── staking/          # Staking metadata (validators, pools, etc.)
├── dapps/            # DApp configurations and metadata
├── xcm/              # XCM (Cross-Chain Messaging) configurations
├── governance/       # Governance dApps and proposals
├── banners/          # Promotional banners and announcements
├── migrations/       # Chain migration configurations
├── assets/           # Asset metadata and icons
├── icons/            # Chain and network icons
└── global/           # Global configuration files

Native Tokens

Token Network Description
HEZ Pezkuwi Relay Chain Native token for fees and staking
PEZ Asset Hub Governance token
USDT Asset Hub Tether USD stablecoin

Supported Networks

Pezkuwichain Ecosystem

  • Pezkuwi Relay Chain - Main relay chain with HEZ token
  • Asset Hub - System teyrchain for assets (PEZ, USDT, wHEZ)
  • People Chain - Identity and people management

Polkadot Ecosystem

Full support for Polkadot and all major parachains.

Kusama Ecosystem

Full support for Kusama and all major parachains.

Usage

These configurations are fetched by Pezkuwi Wallet at runtime from GitHub raw URLs:

https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/master/chains/{network}/chains.json

Signed config

signed/targets.json gives the sha256 of every JSON file the wallet may fetch, signed with the targets key; signed/root.json names that key and the three root keys, two of which can replace it. The wallet carries the first root and refuses a file whose hash the signed list does not give, so a change to any served JSON file is re-signed in the same pull request:

python3 scripts/signed_config.py sign --key <targets seed>

The light client specifications in light-client/ carry a relay chain checkpoint. Wallets fetch them through the signed config and keep a later checkpoint than their APK's, so refresh them before signing:

python3 scripts/light_client_specs.py --relay-rpc <zagros rpc> --people-rpc <people rpc> --people-spec <full People spec>

Code Quality fails once the checkpoint is more than 60 days old.

Code Quality refuses a tree whose files do not match the signed list, and its weekly run fails a month before a signature expires.

Replacing the root keys

A new root is drafted where the wallet never looks, then signed by the holders in their wallets:

python3 scripts/signed_config.py root --version N --expires-days 1825 --root-threshold 2 --root ADDR ADDR ADDR

This writes docs/root-signing/proposals/root.N.json, keeping the current targets key. Each holder of the current root and of the new one opens the root signing page (docs/root-signing/, served by GitHub Pages) in the Pezkuwi Wallet DApp browser, compares the fingerprint with the others by phone, signs, and sends the signature code to whoever collects them. Once two current and two new holders have signed, the page offers root.N.json; it goes to signed/root.N.json in a pull request. Code Quality checks every published root as installed wallets do (wallet 1.3.0 accepts sr25519 only under the substrate signing context) and fails before a root they would refuse reaches master: such a root stops their config refresh.

Contributing

  1. Fork this repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

Apache 2.0

Resources


Based on Nova Utils - Extended with Pezkuwichain support

© Dijital Kurdistan Tech Institute 2026

S
Description
No description provided
Readme
22 MiB
1 Watchers 0 Forks
Languages
Python 86.8%
JavaScript 10.4%
Shell 2.8%