@nekosuneprojects/virtual-currency-wallet
v1.0.3
Published
Virtual cryptocurrency wallet system with SQLite and Discord BOT integration used as Points System
Downloads
105
Maintainers
Readme
Virtual Currency Wallet
A full virtual cryptocurrency wallet system designed for Discord bots, games, or simulated trading environments. Supports balances, staking, trading, orders, friends, transactions, and more --- all backed by SQLite via Sequelize.
✅ Features
Wallet & Balances
- Add/remove crypto from users
- Convert crypto → fiat (USD by default, configurable)
Staking System
- Supports selected staking tokens (Solana, Ethereum, ZENZO, etc.)
- APY-based reward growth
- Tracks:
- staked
- earned rewards
- unstaked amounts
- Auto-updates earnings when checked or unstaked
Trading / Swapping
- Swap one crypto → another using live price API
- Price conversion uses NekoGecko API (CoinGecko wrapper)
Orderbook Trading (Exchange-like system)
- Users can place:
- buy orders
- sell orders
- Automatic matching engine
- Locked balances for sell orders
- Partial and full order fills
Friends System
- Add friends
- Friend requests
- Auto-decline pending requests after 1 hour
- Transfer crypto only to friends
Transactions
Each transaction includes: -
type: send, receive, staked, unstaked, rewardStake - timestamps -
from/to fields - crypto + amount
📦 Installation
npm install @nekosuneprojects/virtual-currency-walletOr clone your repo:
git clone https://github.com/NekoSuneProjects/virtual-currency-wallet
cd virtual-currency-wallet
npm install✅ Example Usage
const CryptoWallet = require("@nekosuneprojects/virtual-currency-wallet");
const wallet = new CryptoWallet();
(async () => {
await wallet.giveCrypto("123", "bitcoin", 0.01);
console.log(await wallet.getBalance("123", "bitcoin"));
console.log(await wallet.convertCryptoToFiat(0.01, "bitcoin"));
const tx = await wallet.getTransactions("123");
console.log(tx);
})();📚 Database Models
Uses Sequelize + SQLite with: - User - Balance - Transaction - Friend - FriendRequest - Stake - Order
Database files auto-sync on startup.
🔧 Staking Example
await wallet.stakeCrypto("123", "solana", 5, 0.10); // 10% APY stake
await wallet.unstakeCrypto("123", "solana");🔄 Swapping Example
await wallet.swapCrypto("123", "bitcoin", "ethereum", 0.01);🛒 Orderbook Example
await wallet.placeOrder("123", "sell", "bitcoin/ethereum", 0.01, 30000);
await wallet.placeOrder("555", "buy", "bitcoin/ethereum", 0.01, 31000);Auto-matching triggers instantly.
🧾 Transaction Output Example
{
"id": 1,
"type": "send",
"from": "123",
"to": "555",
"crypto": "bitcoin",
"amount": 0.01,
"time": "11/3/2025, 12:00 PM"
}✅ Perfect for
✅ Discord bots ✅ Virtual economy systems ✅ Game integrations ✅ Crypto simulators ✅ Learning exchange & staking systems
📄 License
MIT License
🤝 Contributions
PRs are welcome!
