Using Privacy Wallets
This guide walks you through the complete workflow for using privacy wallets with verifiable credentials, from credential issuance to shielded transactions.
Prerequisites
Before you begin, ensure you have:
- MetaMask browser extension installed (Chrome or Brave recommended on Mac)
- Base network configured as your default network in MetaMask
- Make sure to have balances of least 5 USDC and 1 ETH for testing
- Access to the platform at https://platform.ligetron.com
Look for the Base logo next to your MetaMask profile picture to confirm the network is properly configured.
Step 1: Generate Verifiable Credentials
Verifiable credentials prove your eligibility to use the privacy pool without revealing your identity.
Request Credentials
- Navigate to the credential request form
- Choose your Operator (illustration only at demo stage)
- Complete all form fields with your information
- Bank data can be mock data for testing
- Important: Ensure Date of Birth indicates age 18 or older. This is the default predicate implemented in the current demo.
- Click Submit
Issue Credentials (Provider Action)
One user needs to approve the credential request:
- Navigate to the provider dashboard
- Locate your request in the Client Activity dashboard (appears at the top)
- Click the green Issue button next to the request details
The credentials will then be sent to the email address you provided; note that there will be two emails sent, save on your local device the attachment in the second email received (extension json_mdl.cbor)
Step 2: Shielded Transactions
Access the wallet interface at https://platform.ligetron.com/Verifiable_Credentials/wallet
Shielding Tokens
Shielding deposits your tokens into the privacy pool.
- Select Shield from the Action Type dropdown
- Click Connect MetaMask under Wallet Connection
- Approve the connection in the MetaMask extension
- Select your token (USDC) and enter the quantity to shield
- Amounts are denominated in WEI
- Example: 100 = 100 × 10⁻⁶ = 0.0001 USDC
- Recommended test amount: 100-200
- Click Load Verifiable Credentials and select your saved credential file
- Click Shield Token
The browser console will display:
- ZK proof generation progress (~4 seconds on modern hardware)
- Data transmission to relayer
- Confirmation when complete (15-45 seconds total)
Proof generation takes approximately 4 seconds on recent MacBooks. Total transaction time ranges from 15-45 seconds depending on network conditions.
Checking Your Balance
- Select Balance from the Action Type dropdown
- Click Check Balance (credentials already loaded from previous step)
- View your shielded balance
- Expand to see individual UTXOs if needed
Transferring Tokens
Transfers require two parties: a sender and a receiver.
Receiver: Generate Invoice
- Select Generate Invoice from the Action Type dropdown
- Choose your token (USDC) and specify the amount
- Click Generate Invoice
- Copy the Note Public Key (npk) using the clipboard icon
Sender: Execute Transfer
- Select Transfer from the Action Type dropdown
- Keep USDC selected in the Token dropdown
- Enter the transfer amount (must match receiver's invoice exactly)
- Paste the receiver's Note Public Key in the Receiver's NPK field
- Click Transfer Token
Verify Transfer
Both parties should check their balances after the transfer completes to confirm the transaction succeeded. Balance can be verified by selecting Balance from the Action Type dropdown, load the Verifiable for the account of interest, and then hit 'Check Balance'
Important Notes
Sequential Operations
Execute actions one at a time. When performing an operation on one device, avoid simultaneous actions on another device to prevent conflicts.
UI Considerations
Occasionally, entered amounts may change when switching fields. If this occurs:
- Simply re-enter the correct amount
- This typically happens at most once per session
UTXO Requirements
The platform uses a UTXO-based model. For transfers:
- Transfer amount must be less than or equal to a single UTXO
- Example: To transfer 30, you need a UTXO with amount ≥ 31
- Check UTXO status in the Balance dropdown
- Only UTXOs with "Settled" status can be used
UTXO merging functionality is in development for improved user experience.
Smart Contract Verification
MetaMask may display a warning that the smart contract is unverified on Base. This is expected and can be safely acknowledged.
Troubleshooting
Credential Issues
- Verify the Date of Birth indicates age 18+
- Ensure credential file is properly saved and accessible
- Confirm credentials were successfully issued in the provider dashboard
Transaction Failures
- Check that you have sufficient UTXO balance
- Verify amounts match exactly between sender and receiver
- Ensure adequate ETH balance for gas fees
- Confirm Base is selected as the active network
Browser Compatibility
- Use Chrome or Brave on Mac for optimal performance
- Ensure MetaMask extension is up to date
- Clear browser cache if experiencing persistent issues
Coming Up Soon
- Learn about credential management
- Upcoming advanced transaction features
- Review privacy best practices