My crypto-mining / faucet platform already tracks user balances; the missing piece is a reliable withdrawal path to MetaMask on Ethereum. I need the backend code completed so a user can submit a manual withdrawal request, have it validated against their balance, and then see the transaction broadcast and confirmed on-chain. Core scope • Build the withdrawal endpoint (Node.js / Express preferred) that receives a request, signs and sends the ETH payout via Web3.js or Ethers.js, and returns the transaction hash. • Integrate basic encryption for any stored wallet addresses, private keys, and API secrets (AES-256 at rest, HTTPS in transit). • Add simple admin controls that let me approve, reject, or fund pending requests before the transaction is sent. • Surface clear status updates in JSON so my existing React front-end can render “pending”, “sent”, “confirmed”, or “failed”. Acceptance criteria 1. A test account with 0.01 ETH can request withdrawal and receive funds in MetaMask within one confirmation. 2. No private key ever leaves the server; keys are encrypted at rest and decrypted only in memory for signing. 3. All contract or address interactions occur on Ethereum mainnet (not testnet). 4. Unit tests prove balance checks, signature creation, and error handling for insufficient balance or gas failure. 5. Complete install & run instructions so I can deploy on Ubuntu with PM2. If you are comfortable with Web3, MetaMask integration, and security basics, the code hand-off should be straightforward and quick to verify.