Skip to content

QEDProtocol/psyup

Repository files navigation

Psy Node CLI

A command-line interface for Psy Node operations.

Supported Platforms

  • Ubuntu 22.04 (x86_64, aarch64)
  • Ubuntu 24.04 (x86_64, aarch64)

Installation

Prerequisites

  • Ubuntu 22.04 or Ubuntu 24.04
  • curl (will be installed automatically if not present)
  • sudo privileges

Quick Installation

Run the following command to install Psy Node CLI:

curl -fsSL https://raw.githubusercontent.com/QEDProtocol/psyup/main/install.sh | bash

Manual Installation

  1. Clone this repository:
git clone https://github.com/QEDProtocol/psyup.git
cd psyup
  1. Make the install script executable:
chmod +x install.sh
  1. Run the installation script:
./install.sh

Installation Process

The installation script will:

  1. Detect your Ubuntu version - Only Ubuntu 22.04 and 24.04 are supported
  2. Detect your architecture - Supports x86_64 and aarch64/arm64
  3. Download the appropriate prebuilt binary from the latest release
  4. Install the binary to /usr/local/bin/
  5. Verify the installation and make it available in your PATH

Troubleshooting

Unsupported Ubuntu Version

If you're running an unsupported Ubuntu version, you'll see an error like:

[ERROR] Unsupported Ubuntu version: 20.04
[ERROR] This script only supports Ubuntu 22.04 and Ubuntu 24.04

Solution: Upgrade to Ubuntu 22.04 or 24.04, or use a supported distribution.

Unsupported Architecture

If you're running on an unsupported architecture, you'll see an error like:

[ERROR] Unsupported architecture: i386
[ERROR] This script only supports x86_64 and aarch64/arm64 architectures

Solution: Use a supported architecture (x86_64 or aarch64/arm64).

Permission Issues

If you encounter permission issues during installation:

sudo ./install.sh

Binary Not Found After Installation

If the binary is not found in your PATH after installation:

# Check if it's installed
ls -la /usr/local/bin/qed_rollup_cli

# Run directly
/usr/local/bin/qed_rollup_cli --help

# Add to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="/usr/local/bin:$PATH"

Usage

Create a configuration file with the following content which reflects PsyProtocol's testnet network topology

{
  "network": {
    "users_per_realm": 1048576,
    "global_user_tree_height": 24,
    "realm_user_tree_height": 20,
    "group_realm_height": 1,
    "realm_configs": [
      {
        "id": 0,
        "rpc_url": ["https://regnet-realm0.psy-protocol.xyz"]
      },
      {
        "id": 1,
        "rpc_url": ["https://regnet-realm1.psy-protocol.xyz"]
      }
    ],
    "coordinator_configs": [
      {
        "id": 0,
        "rpc_url": ["https://regnet-coordinator.psy-protocol.xyz"]
      }
    ],
    "prove_proxy_url": ["https://regnet-prover.psy-protocol.xyz"],
    "native_currency": "0",
    "native_currency_decimal": 9,
    "native_currency_name": "PSY",
    "fees": {
      "register_user_fee": 0,
      "deploy_contract_fee": 0,
      "guta_fee": 5000000000
    }
  }
}

After installation, you can use the Psy Node CLI:

Create a new wallet

qed_user_cli wallet create --output my_wallet

2025-10-24T10:41:04.896603Z  INFO qed_user_cli/src/main.rs:34: qed user cli
Enter password for wallet:
2025-10-24T10:41:09.381917Z  INFO qed_prover/src/wallet/secp_wallet.rs:224: Wallet saved to: my_wallet
✅ Wallet created and saved to: my_wallet
ETH Address: 0xfCB40714B52DA9956dC76E363467991D7C693d19
Public Key Hash: cd8a8ef54d6df79a31bf849a69ed3d583e033008cd3dc135af51748993fa04ea
Private Key: 0x21bd16a94299904f0a644e22120d94fc6caf8ccb33eb82669120f48382447bbc

Register the new wallet address's public_key_hash as a secp256k1 user, wait two blocks until realm acknowledge the registration

curl -X POST https://regnet-coordinator.psy-protocol.xyz \
-H "Content-Type: application/json" \
-d '{
  "jsonrpc": "2.0",
  "method": "qed_register_user",
  "params": {
    "public_key": {
        "fingerprint": "993bbdad2ba78319a70ab7d9ecd84b36eca0affc9f8ec4f9006b39a8fe29672c",
        "public_key_param": "cd8a8ef54d6df79a31bf849a69ed3d583e033008cd3dc135af51748993fa04ea"
    }
  },
  "id": 1
}'

Query the final assigned onchain user id:

qed_user_cli get-public-key \
    --private-key=0x21bd16a94299904f0a644e22120d94fc6caf8ccb33eb82669120f48382447bbc \
    --sign-type=secp256k1

Secp256k1 Signature Public Key:
  ETH Address: 0xfCB40714B52DA9956dC76E363467991D7C693d19
  Secp256k1 Public Key: c431e591bee452dbe04241eccf2b9039e5c122212272303e3fa549c5f22d6425884ae0792e36a4e1a80d8984ec787f70c30ae83e84bdf8f4abf77e95c47ec4c6
  public_key_hash: cd8a8ef54d6df79a31bf849a69ed3d583e033008cd3dc135af51748993fa04ea
  fingerprint: 993bbdad2ba78319a70ab7d9ecd84b36eca0affc9f8ec4f9006b39a8fe29672c
  public_key: 027f7c7225252fe0d84cdfad19a25448368545771b27380ae0b439bef47c5ceb

qed_user_cli get-user-leaf --checkpoint-id 100000 --pub-key 027f7c7225252fe0d84cdfad19a25448368545771b27380ae0b439bef47c5ceb

Ask the PsyProtocol offcials to add the new ETH format wallet address(0xfCB40714B52DA9956dC76E363467991D7C693d19) into whitelist

Launch with configuration and wallet keystore path

# Check if installation was successful
qed_rollup_cli --help

# Run your commands
qed_rollup_cli worker --config=./config.json --keystore-path my_wallet

Development

Building from Source

If you need to build from source for unsupported platforms:

  1. Clone the repository
  2. Follow the build instructions in the source code
  3. Install the built binary manually

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test on supported platforms
  5. Submit a pull request

License

[Add your license information here]

Support

For issues and questions:

  • Create an issue on GitHub
  • Check the troubleshooting section above
  • Ensure you're using a supported platform

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages