# CarteZcash alpha - Instructions If you are reading this it means you are going to be one of the first people to use the public alpha testnet of the CarteZcash network. Congrats! - Please submit any issues you experience here - https://github.com/willemolding/CarteZcash/issues - Send any questions or comments to me on Discord (.wollum) Things are going to be quite janky at first and the network might go down periodically and be redeployed. If that happens you will need to delete your local wallet file and produce a new one or it will error. ## 0. Prerequisites - Have [Rust and Cargo installed](https://www.rust-lang.org/tools/install) - This is needed to build and install the CLI wallet - Have a MetaMask wallet setup in your browser - Obtain some Sepolia Eth - You can get it from https://www.sepoliafaucet.io/ ## 1. Set up a test Zcash wallet First up you need a Zcash wallet to deposit funds to. Currently CarteZcash only officially supports the Zingo CLI wallet. Other wallets may work but will probably need some modifications. Install the CarteZcash Zingo fork with: ```shell cargo install --git https://github.com/willemolding/zingolib --branch willem/tinycash-desktop --force --locked --bin zingo-cli ``` > [!Note] > You may need to install the following packages to build the wallet: > libssl-dev pkgconf Once it has installed open a new wallet connected to CarteZcash with ```shell zingo-cli ``` Note that syncing may be quite slow at the moment. Obtain your transparent address by running `addresses` from inside the wallet ![image](https://hackmd.io/_uploads/HkIGVliER.png) ## 2. Depositing Sepolia Eth Next visit the CarteZcash bridge https://willemolding.github.io/CarteZcash/ Deposit Eth using the deposit tab and inputting the amount and your Zcash t-address from the wallet. Easy! To get the updated balance in your wallet wait a few moments then run ```shell rescan ``` from the zingo-wallet prompt and then ```shell balance ``` You should see the Eth you deposited as your transparent balance. Note that the balance will be displayed in zatoshis, the smallest unit supported by CarteZcash. 1 Eth = 10^8 zatoshis. Now you have Eth inside CarteZcash you can send it to other people, shield it, send shielded funds, all from within the Zingo wallet. For example run ```shell shield ``` and then ```shell confirm ``` > [!NOTE] > You may get an error `ERROR zingolib::wallet::send: server returned invalid txid []`. You can safely ignore this and the transaction probably still worked. wait a new moments then `rescan`. You should see your entire balance is now in the orchard pool meaning any transactions with it are private. Sending funds can be done with ```shell send <address> <amount> ``` ## 3. Withdrawing back to Sepolia To withdraw back to Ethereum you need to make a special shielded transaction from within the wallet to the withdrawal address. This can be done by running: ```shell send u1k7ant55p6u5lgwhf9ss4qurcz35pjeav398lw0e0xmqqdm0aksvhrpa2gtnmv83lggean4pm8n7tgtr9ssnrpevkyrgw9y5e4ck23j6g <amount> <eth-address> ``` ```shell confirm ``` > [!warning] > When you paste your eth address into the command above make sure you remove the `0x` prefix. Otherwise your funds will be lost. --- Now return to the bridge webpage and visit the withdrawals tab. Once the withdrawal has been processed it will appear here as a voucher you can execute to unlock the funds ![image](https://hackmd.io/_uploads/B1M6Ixo4R.png) ## Check it out on Cartesiscan If you have any issues or want to get more insight into what is going on. Check out the dApp on cartesiscan https://sepolia.cartesiscan.io/applications/0xD9b811D7e96C7e712E610Dec263a8DcEd9C3175d/inputs Using cartesiscan you can connect the application to the graphql endpoint https://cartezcash.fly.dev/graphql for additional detail.