match sdk.unshield(token_address, amount, recipient) {
Ok(result) => println!("Withdraw TX: {}", result.tx_hash),
Err(CliError::InsufficientBalance) => println!("Not enough shielded balance"),
Err(CliError::InvalidAddress) => println!("Invalid recipient address"),
Err(CliError::NotAuthenticated) => println!("Please login first"),
Err(CliError::NetworkError { message }) => println!("Network error: {}", message),
Err(e) => println!("Withdrawal failed: {:?}", e),
}