[<https://github.com/penumbra-zone/penumbra>](<https://github.com/penumbra-zone/penumbra>)

Backup keys (on the OLD server)

**c**d $HOME/penumbra

****# export seed
****cargo run --quiet --release --bin pcli wallet export

# SEED EXAMPLE
**a0XXXXXXXXXe864XXXXXXXXXXXXXXXXXXXX9fe5ecdab8b1f2f931ce4209e499**

Install Penumbra on the NEW server

Build pcli

# install packets
sudo apt update && sudo apt upgrade
sudo apt install make curl tar wget clang pkg-config libssl-dev jq build-essential -y

# install rust and cargo
curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs> | sh
# press 1

source ~/.cargo/env 

# build
rm -rf penumbra
git clone <https://github.com/penumbra-zone/penumbra>
cd penumbra
#git fetch
git checkout 005-mneme
cargo build --release --bin pcli

This warning at the end is ok

warning: field is never read: `transactions`
  --> wallet/src/state.rs:52:5
   |
52 |     transactions: BTreeMap<note::Commitment, Option<Vec<u8>>>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: `penumbra-wallet` (lib) generated 1 warning
   Compiling git2 v0.13.25
   Compiling pcli v0.1.0 (/root/penumbra/pcli)
    Finished release [optimized] target(s) in 4m 20s

Restore wallet and sync (on the NEW SERVER)


# Make sure to run commands from /penumbra dir!
**c**d $HOME/penumbra

****# import seed
****cargo run --quiet --release --bin pcli wallet import **a0XXXXXXXXXe864XXXXXXXXXXXXXXXXXXXX9fe5ecdab8b1f2f931ce4209e499**

#OUTPUT EXAMPLE
# Saving wallet to /home/mzonder/.local/share/pcli/penumbra_wallet.json
# Saving backup wallet to /home/mzonder/.local/share/penumbra-testnet-archive/0cf115e468224457/penumbra_wallet.json

# check wallet list
cargo run --quiet --release --bin pcli addr list

# OUTPUT EXAMPLE
# Index  Label    Address                                                                                                                             
# 0      Default  penumbrav0t13f0pl626x88ewt38t6j2h7gzrwj4vmf2szaeacaduc9hnvf9mvcx00rqyvkgxxu58mwqdxznx4v0npy2yf8wjwmqwpugfmhjx2hvshgm0aacf05v2kztf0s9r06lyf

# enable logs
export RUST_LOG=info

# check balance (wait for sync)
cargo run --quiet --release --bin pcli balance

**# OUTPUT EXAMPLE**
#Jan 29 01:28:02.356  INFO sync{start_height=738493}: pcli::sync: syncing... height=738579
#Jan 29 01:28:12.175  INFO sync{start_height=738493}: pcli::sync: syncing... height=738580
#Jan 29 01:28:20.240  INFO sync{start_height=738493}: pcli::sync: finished sync end_height=738581
#Jan 29 01:28:24.386  INFO assets: pcli::fetch: updated asset registry
# Total
#  1cube
#  100gm
#  1077.376168penumbra

Now you can destroy OLD server if needed.