Exiting zk.money
None of the services from the Trust model can take your funds, but each one can stop being available on its own accord. Your way out of the zk.money system does not depend on any individual service staying operational, since the published code, the local copy of your wallet in zk.money Desktop, and the open registries on Ethereum exist.
Below are the four routes out, easiest first. You only need the next one down if the one above it is unavailable to you.
1. The normal withdrawal
You start the withdrawal and sign it. An enclave co-signs, and a relayer sends the last transaction on Ethereum. See Withdraw.
2. If the relayer stops
You send the last Ethereum transaction yourself. zk.money builds it for you. See "Troubleshooting failed deposits" on Deposit and "Troubleshooting failed withdrawals" on Withdraw.
3. If the zk.money website disappears
Use zk.money Desktop. It runs the wallet from your own computer, and it uses the same passkey. It needs Google Chrome. See How to run the desktop app.
In zk.money Desktop you can point the wallet at a different Ethereum RPC, a different Aztec node, and a different enclave, from the wallet's settings or the app's own settings page. It is the local exit you can use today.
4. If every operator stops operating, including every Oxide enclave
You register your own enclave. The portal contract accepts a registration from any address.
The contract checks a proof from AWS Nitro Enclaves. The proof must show that the software measurement of your enclave is one the portal already approves. The contract also refuses debug mode. So you cannot register modified software, and a hostile operator cannot sign an invalid operation.
You need an AWS account and a machine type that supports Nitro Enclaves. You must build an image that measures to the approved version. You must send the registration to Ethereum as a set of transactions, because the proof check is too large for one transaction, and you pay the gas for all of them. Then you point zk.money Desktop at your own enclave.
No registration command is published here, because none has yet been run against the build you would register. For how to start the enclave software on your own server, see How to run an enclave.