# PaperclipWallet - Desktop Wallet for PaperclipChain

A modern, feature-rich desktop wallet for PaperclipChain with comprehensive DeFi staking capabilities.

PaperclipWallet is the official desktop wallet for PaperclipChain, providing secure wallet management, transaction handling, and advanced staking features for earning rewards through validator delegation.

## Features

### Core Wallet Functions
- Secure wallet management - Create, import, and manage multiple CLIPS wallets
- Transaction history - View detailed transaction history and status
- Address book - Manage frequently used addresses
- Balance tracking - Real-time CLIPS balance updates
- Send/Receive - Simple and secure CLIPS transfers

### Advanced DeFi Staking
- Validator delegation - Stake CLIPS to active validators and earn rewards
- Reward claiming - One-click claiming of accumulated staking rewards
- Validator creation - Become a validator with minimum 10,000 CLIPS stake
- Real-time statistics - Live network staking data and APY calculations
- Multi-validator support - Delegate to multiple validators simultaneously

### Professional Interface
- Modern dashboard - Clean, intuitive interface with real-time data
- Responsive design - Works seamlessly on all screen sizes
- Theme support - Professional dark and light themes
- Data visualization - Charts and graphs for staking performance

## Installation & Setup

### Prerequisites
- [Git](https://git-scm.com)
- [Node.js](https://nodejs.org/en/download/) (v14 or higher)
- [Yarn](https://yarnpkg.com/) or npm
- Running PaperclipChain node (for blockchain connectivity)

### Quick Start

```bash
# Clone this repository
git clone https://git.takoyaki.cool/matt/paperclip-wallet.git
cd paperclip-wallet

# Install dependencies
yarn install

# Start the wallet
yarn start
```

### Building for Distribution

```bash
# Build for your platform
yarn run dist-linux    # Linux
yarn run dist-win      # Windows
yarn run dist-osx      # macOS

# Build for all platforms
yarn run pack-win && yarn run pack-linux && yarn run pack-osx
```

## Configuration

### Node Connection
By default, the wallet connects to `localhost:26657` (PaperclipChain RPC). To connect to a different node:

1. Open wallet settings
2. Update the RPC URL to your PaperclipChain node
3. Restart the wallet

### Network Requirements
- **Mainnet**: Connect to a synced PaperclipChain mainnet node
- **Testnet**: Use testnet node for development and testing
- **Local**: Run a local PaperclipChain node for development

## Staking Guide

### How to Stake CLIPS

1. **Select Validators**
   - Navigate to the "Staking" tab
   - Browse active validators
   - Compare commission rates and APY

2. **Delegate Tokens**
   - Click "Delegate" on your chosen validator
   - Enter the amount to stake (minimum 100 CLIPS)
   - Confirm the transaction

3. **Earn Rewards**
   - Rewards accumulate automatically
   - Claim rewards anytime via "Claim Rewards" button
   - Rewards are distributed based on validator performance

### Becoming a Validator

1. **Minimum Requirements**
   - 10,000 CLIPS minimum stake
   - Running PaperclipChain validator node
   - Stable internet connection

2. **Setup Process**
   - Click "Become Validator" in staking tab
   - Set your commission rate (0-50%)
   - Provide initial stake
   - Submit validator creation transaction

## Security

### Best Practices
- Backup wallets - Always backup your wallet files and private keys
- Secure storage - Store backups in multiple secure locations
- Regular updates - Keep the wallet updated to the latest version
- Network security - Only connect to trusted PaperclipChain nodes

### Private Key Management
- Private keys are stored locally and encrypted
- Never share your private keys or wallet files
- Use strong passwords for wallet encryption

## Development

### Project Structure
```
paperclip-wallet/
├── main.js                 # Electron main process
├── index.html              # Main application window
├── renderer/               # Frontend logic
│   ├── staking.js          # Staking interface
│   ├── wallets.js          # Wallet management
│   └── ...
├── modules/                # Backend modules
│   ├── paperclip-rpc.js    # Blockchain RPC client
│   ├── clips-crypto.js     # Cryptographic functions
│   └── ...
└── assets/                 # UI assets and templates
    ├── templates/          # HTML templates
    ├── styles/             # CSS styling
    └── images/             # Icons and graphics
```

### Technology Stack
- Frontend: Electron, jQuery, Handlebars
- Backend: Node.js, Ed25519 cryptography
- Blockchain: PaperclipChain RPC integration
- Styling: Custom CSS with Material Design elements

## Troubleshooting

### Common Issues

**Wallet won't connect to node**
- Verify PaperclipChain node is running and synced
- Check RPC URL in settings (default: `localhost:26657`)
- Ensure firewall allows connections

**Staking transactions fail**
- Verify sufficient CLIPS balance for transaction + gas fees
- Check validator is active and accepting delegations
- Ensure wallet is unlocked and private key is accessible

**Balance not updating**
- Refresh the wallet interface
- Verify node is fully synced
- Check transaction was properly broadcast

### Support
For technical support and bug reports, please visit:
- Repository: https://git.takoyaki.cool/matt/paperclip-wallet
- Issues: Create a new issue with detailed information
- Documentation: Check PaperclipChain main repository

## Contributing

We welcome contributions! Please:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request

## License

[CC0 1.0 (Public Domain)](LICENSE.md)

---

PaperclipWallet - Secure, Modern, and Feature-Rich Desktop Wallet for PaperclipChain
