Skip to content

STOOOKEEE/XRPL-BONDS

Repository files navigation

🏦 XRPL Bonds - Corporate Bonds Marketplace

XRPL Next.js TypeScript MongoDB License

Plateforme de tokenisation et trading d'obligations d'entreprises sur le XRP Ledger

DemoFeaturesInstallationDocumentationRoadmap


📋 Table des matières


🎯 À propos

XRPL Bonds est une plateforme innovante qui révolutionne le marché des obligations d'entreprises en utilisant la technologie blockchain du XRP Ledger. Le projet permet aux entreprises d'émettre des obligations tokenisées et aux investisseurs d'acheter, vendre et gérer leurs portefeuilles d'obligations de manière transparente et sécurisée.

🌟 Pourquoi XRPL Bonds ?

  • 🔒 Sécurité : Transactions sécurisées sur le XRP Ledger
  • ⚡ Rapidité : Règlement instantané des transactions
  • 💰 Faible coût : Frais de transaction minimaux
  • 🌍 Accessibilité : Marché 24/7 accessible mondialement
  • 📊 Transparence : Traçabilité complète via blockchain
  • 🤖 Automatisation : Distribution automatique des coupons

✨ Fonctionnalités

Pour les Entreprises (Émetteurs)

  • Émission d'obligations : Créez et tokenisez vos obligations sur XRPL
  • 📈 Gestion de campagnes : Configurez les paramètres de votre levée de fonds
  • 💳 Distribution automatique : Paiement automatique des coupons aux détenteurs
  • 📊 Dashboard analytics : Suivez vos obligations en temps réel
  • 🔐 KYC/AML : Conformité réglementaire intégrée

Pour les Investisseurs

  • 🛒 Marketplace : Explorez et achetez des obligations tokenisées
  • 👛 Multi-wallet : Connectez votre wallet préféré (Xaman, Crossmark, GemWallet, WalletConnect)
  • 💼 Portfolio management : Gérez vos investissements en un seul endroit
  • 💰 Revenus passifs : Recevez automatiquement vos paiements de coupons
  • 📉 Trading secondaire : Achetez et vendez sur le marché secondaire
  • 🔔 Notifications : Alertes pour les paiements et événements importants

Techniques

  • 🔄 Monitoring temps réel : Surveillance des transactions XRPL
  • 🗄️ Base de données MongoDB : Stockage et indexation des données
  • 🔐 Smart contracts : Utilisation des MPTokens et Escrows XRPL
  • 📧 Notifications email : Intégration Resend pour les communications
  • 🎨 UI/UX moderne : Interface responsive avec Tailwind CSS et Radix UI

🏗️ Architecture

┌─────────────────────────────────────────────────────────────┐
│                     XRPL Bonds Platform                      │
└─────────────────────────────────────────────────────────────┘
                              │
                ┌─────────────┴─────────────┐
                │                           │
        ┌───────▼────────┐         ┌───────▼────────┐
        │   Frontend     │         │    Backend     │
        │   (Next.js)    │◄────────┤  (Express.js)  │
        │   Port 3000    │  REST   │   Port 3001    │
        └────────────────┘         └────────────────┘
                │                          │
                │                          │
        ┌───────▼────────┐         ┌───────▼────────┐
        │  XRPL Wallets  │         │    MongoDB     │
        │  - Xaman       │         │   Database     │
        │  - Crossmark   │         │                │
        │  - GemWallet   │         └────────────────┘
        │  - WalletCon.  │                 │
        └────────────────┘                 │
                │                          │
                └────────────┬─────────────┘
                             │
                    ┌────────▼─────────┐
                    │   XRP Ledger     │
                    │   (Testnet)      │
                    │  - MPTokens      │
                    │  - Escrows       │
                    │  - Payments      │
                    └──────────────────┘

🛠️ Technologies

Frontend

  • Next.js 16 - Framework React avec App Router
  • TypeScript - Typage statique
  • Tailwind CSS - Styling utilitaire
  • Radix UI - Composants UI accessibles
  • xrpl-connect - Connexion multi-wallet
  • Zustand - State management
  • React Query - Data fetching et cache

Backend

  • Node.js - Runtime JavaScript
  • Express.js - Framework web
  • MongoDB - Base de données NoSQL
  • Mongoose - ODM MongoDB
  • xrpl.js - SDK XRP Ledger
  • TypeScript - Typage côté serveur

Blockchain

  • XRP Ledger - Blockchain sous-jacente
  • MPTokens - Tokens multi-purpose pour les obligations
  • Escrows - Smart contracts pour les campagnes
  • Payments - Distribution des coupons

Services externes

  • Resend - Envoi d'emails
  • Xaman - Wallet mobile OAuth
  • WalletConnect - Protocol de connexion universel

🚀 Installation

Prérequis

  • Node.js >= 18.0
  • npm ou pnpm
  • MongoDB >= 5.0
  • Git

Installation rapide

# Cloner le repository
git clone https://github.com/STOOOKEEE/XRPL-BONDS.git
cd XRPL-BONDS

# Installer les dépendances frontend
npm install

# Installer les dépendances backend
cd backend
npm install
cd ..

⚙️ Configuration

1. Configuration Frontend

Créez un fichier .env.local à la racine :

# Wallets XRPL
NEXT_PUBLIC_XAMAN_API_KEY=your-xaman-api-key
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your-walletconnect-project-id

# Backend API
NEXT_PUBLIC_API_URL=http://localhost:3001

# Email (Resend)
RESEND_API_KEY=your-resend-api-key
FROM_EMAIL=onboarding@resend.dev

Obtenir les clés :

2. Configuration Backend

Créez un fichier backend/.env :

# XRPL
XRPL_URL=wss://s.altnet.rippletest.net:51233
ISSUER_SEED=sYourIssuerSeedHere

# Server
PORT=3001

3. Access to the MongoDB Database

A read-only MongoDB user has been created so the jury can explore and verify the project's database.

Connection details:

mongodb+srv://jury_readonly:<password>@cluster0.ml4qq54.mongodb.net/xrpl-bonds?retryWrites=true&w=majority&appName=Cluster0

Replace <password> with the password provided separately.

How to test the connection:

  1. Open MongoDB Compass or any MongoDB client.
  2. Paste the connection string above into the connection field.
  3. Connect to the database named xrpl-bonds.
  4. You will see the following collections:
    • bonds — list of all issued or pending corporate bonds.
    • holders_<bondId> — list of investors for each bond.
  5. You have read-only access: you can view all documents but not modify them.

Note:
Access is open from any IP (0.0.0.0/0) for evaluation purposes only. It will be restricted after the review period.


🎮 Utilisation

Démarrer l'application

Terminal 1 - Backend :

cd backend
npm run dev

Terminal 2 - Frontend :

npm run dev

Accéder à l'application :

Workflow complet

1. Connexion Wallet

# Ouvrir http://localhost:3000
# Cliquer sur "Connect Wallet"
# Choisir votre wallet (Crossmark, GemWallet, Xaman, WalletConnect)

2. Explorer le Marketplace

# Naviguer vers /marketplace
# Voir les obligations disponibles
# Filtrer par taux, maturité, risque

3. Investir

# Sélectionner une obligation
# Cliquer sur "Invest"
# Confirmer la transaction dans votre wallet

4. Gérer le Portfolio

# Voir vos holdings
# Suivre les paiements de coupons
# Vendre sur le marché secondaire

📡 API

Endpoints principaux

Obligations

# Liste toutes les obligations
GET /api/bonds

# Détails d'une obligation
GET /api/bonds/:bondId

# Créer une obligation
POST /api/bonds

# Mettre à jour une obligation
PATCH /api/bonds/:bondId

Détenteurs

# Liste des détenteurs d'une obligation
GET /api/bonds/:bondId/holders

# Obligations d'un détenteur
GET /api/holders/:address/bonds

Transactions

# Transactions d'une obligation
GET /api/bonds/:bondId/transactions?type=transfer&limit=50

# Historique des coupons
GET /api/bonds/:bondId/coupons

Exemples

// Récupérer toutes les obligations
const response = await fetch('http://localhost:3001/api/bonds');
const data = await response.json();

// Créer une obligation
const bond = await fetch('http://localhost:3001/api/bonds', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    bondId: 'BOND-001',
    tokenName: 'TechCorp Bond 2025',
    tokenCurrency: 'TC2025',
    totalSupply: '10000000',
    couponRate: 5.5,
    // ...autres paramètres
  })
});

👛 Wallets supportés

Sans configuration (prêts à l'emploi)

🌐 Crossmark

  • Type : Extension navigateur
  • Installation : https://crossmark.io/
  • Plateformes : Chrome, Firefox, Edge, Brave

💎 GemWallet

Avec configuration API

📱 Xaman (ex-XUMM)

🔗 WalletConnect


🗺️ Roadmap

Phase 1 : MVP (Terminée ✅)

  • Connexion multi-wallet
  • Backend avec MongoDB
  • Marketplace basique
  • Émission d'obligations
  • Distribution automatique des coupons

Phase 2 : Amélioration (En cours 🚧)

  • KYC/AML intégré
  • Trading peer-to-peer
  • Charts et analytics avancés
  • Mobile app (React Native)
  • Support multilingue

Phase 3 : Production (À venir 🔮)

  • Migration Mainnet
  • Audit de sécurité
  • Intégration DEX
  • API publique
  • Programme de gouvernance

Phase 4 : Expansion (Futur 🌟)

  • Support multi-chain
  • NFT pour obligations uniques
  • Staking et yield farming
  • DAO pour la gouvernance
  • Marketplace secondaire avancé

🧪 Tests

Tests unitaires

npm run test

Tests d'intégration

npm run test:integration

Tests E2E

npm run test:e2e

Workflow de test complet

# Backend
cd backend
npm run test-workflow

# Frontend
npm run test

📚 Documentation

Documentation détaillée

Ressources externes


🤝 Contribuer

Les contributions sont les bienvenues ! Voici comment contribuer :

1. Fork le projet

gh repo fork STOOOKEEE/XRPL-BONDS

2. Créer une branche

git checkout -b feature/AmazingFeature

3. Commit les changements

git commit -m 'Add some AmazingFeature'

4. Push vers la branche

git push origin feature/AmazingFeature

5. Ouvrir une Pull Request

Guidelines

  • Suivez le style de code existant
  • Ajoutez des tests pour les nouvelles fonctionnalités
  • Mettez à jour la documentation
  • Utilisez des messages de commit clairs

🐛 Signaler un bug

Trouvé un bug ? Aidez-nous à l'améliorer :

  1. Vérifiez qu'il n'a pas déjà été signalé
  2. Ouvrez une issue
  3. Décrivez le problème et les étapes pour le reproduire
  4. Ajoutez des captures d'écran si possible

📊 Statistiques du projet

GitHub stars GitHub forks GitHub issues GitHub pull requests


👥 Équipe


📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


🙏 Remerciements

  • XRPL Foundation pour la blockchain
  • Xaman pour l'excellent wallet mobile
  • WalletConnect pour le protocol universel
  • Next.js Team pour le framework
  • MongoDB pour la base de données
  • Vercel pour l'hébergement

📞 Contact


⭐ Si vous aimez ce projet, donnez-lui une étoile ! ⭐

Made with ❤️ by the XRPL Bonds Team

⬆ Retour en haut

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors