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
- Sufficient balances for testing: at least 5 USDC and 1 ETH
- Access to the Ligetron platform: platform.ligetron.com
Confirm the Base network is active by checking for the Base logo next to your MetaMask profile picture.
Step 1: Generate Verifiable Credentials
Verifiable credentials are cryptographic proofs that demonstrate your eligibility to use the privacy pool without revealing your actual identity or personal information. They allow you to prove claims (such as being over 18 years old) while maintaining privacy.
Request Credentials
- Navigate to the credential request form
- Choose your Operator (illustrative only at demo stage)
- Complete all form fields with your information
- For testing purposes, bank data can be mock/sample data
- Important: Enter a Date of Birth that shows you are 18 years or older - this is the eligibility predicate enforced in the current demo
- Click Submit to send your credential request
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
Retrieve Your Credentials
After issuance, you will receive two emails at the address you provided:
- The first email confirms your credential request
- The second email contains your credential file as an attachment (
.json_mdl.cborextension)
Save the attachment from the second email to your local device - you'll need this file to perform shielded transactions.
Step 2: Shielded Transactions
Access the wallet interface: platform.ligetron.com/Verifiable_Credentials/wallet
Shielding Tokens
Shielding moves your tokens into the privacy pool, making subsequent transactions private. Once shielded, your token balance and transactions are hidden from public view.
- 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 entered in base units (smallest denomination)
- Example: 100 = 100 × 10⁻⁶ = 0.0001 USDC
- Recommended test amount: 100-200 base units
- 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
After shielding, verify your tokens are in the privacy pool:
- Select Balance from the Action Type dropdown
- Click Check Balance (your credentials are already loaded from the previous step)
- View your total shielded balance
- Expand the balance view to see individual UTXOs and their settlement status
Transferring Tokens
Private transfers require coordination between two parties. The receiver first generates an invoice, then the sender uses that invoice to complete the transfer.
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 success:
- Select Balance from the Action Type dropdown
- Load the Verifiable Credential for your account
- Click Check Balance to view your updated balance
Important Notes
Sequential Operations
Important: Complete each action fully before starting the next one. If using multiple devices or browser tabs with the same account, perform operations sequentially to prevent transaction conflicts and ensure proper UTXO management.
Known UI Behavior
In some cases, entered amounts may reset when switching between form fields. If this occurs:
- Re-enter the correct amount before proceeding
- This behavior typically happens at most once per session
UTXO Requirements
The platform uses a UTXO (Unspent Transaction Output) model similar to Bitcoin. For transfers:
- Each transfer must be funded by a single UTXO
- The UTXO must have sufficient balance to cover the transfer amount plus change
- Example: To transfer 30 units, you need a UTXO with at least 31 units
- Check your available UTXOs in the Balance view
- Only UTXOs with "Settled" status can be used for transfers
UTXO merging functionality is in development to simplify balance management.
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
Problem: Unable to complete shielding or transfers with credentials
Solutions:
- Verify your Date of Birth in the credential shows you are 18 years or older
- Ensure the
.json_mdl.cborfile was properly downloaded and saved - Confirm credentials were successfully issued by checking the provider dashboard
- Try re-uploading the credential file
Transaction Failures
Problem: Shield or transfer operations fail to complete
Solutions:
- Verify you have a settled UTXO with sufficient balance for the transaction
- For transfers, confirm amounts match exactly between sender and receiver invoices
- Check you have adequate ETH balance for gas fees (at least 0.1 ETH recommended)
- Confirm Base network is selected as the active network in MetaMask
- Wait for previous transactions to complete before initiating new ones
Browser Compatibility
Problem: Interface not loading or behaving unexpectedly
Solutions:
- Use Chrome or Brave browsers on Mac for optimal performance
- Update MetaMask extension to the latest version
- Clear browser cache and reload the page
- Disable other browser extensions that might interfere with MetaMask
- Check the browser console (F12) for error messages
Next Steps
- Credential management and lifecycle
- Advanced transaction features (unshielding, multi-party transfers)
- Privacy best practices for shielded transactions
- Understanding zero-knowledge proofs in the platform