Skip to content

NekoSuneProjects/virtual-currency-wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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-wallet

Or 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!

About

Virtual cryptocurrency wallet system with SQLite and Discord BOT integration used as Points System

Resources

Stars

Watchers

Forks

Packages

No packages published