Installation
Get started with YaniPay SDK and UI components in your project.
Pourquoi YaniPay
YaniPay SDK est la solution tout-en-un pour intégrer des fonctionnalités DeFi dans vos applications. Conçu pour les développeurs, il offre une API simple, des composants UI prêts à l'emploi, et une documentation complète pour vous permettre de lancer rapidement votre application.
Que vous construisiez un wallet, une plateforme d'échange, ou une application de paiement, YaniPay vous fournit tous les outils nécessaires pour connecter vos utilisateurs à l'écosystème YaniChain en quelques lignes de code.
Developer Experience First
Cas d'Utilisation
Découvre YaniPay et souhaite créer sa première application DeFi en quelques minutes.
✓ Application fonctionnelle en 10 minutes après git clone + pnpm install
Intègre YaniPay dans un projet Next.js existant avec une architecture complexe.
✓ Intégration réussie sans breaking changes grâce aux peer dependencies
Configure les variables d'environnement pour un déploiement CI/CD multi-environnement.
✓ Pipeline CI/CD fonctionnel avec gestion des secrets sécurisée
Vérifie que l'installation est correcte avant de commencer le développement.
✓ Wallet connecté et premier appel API réussi en moins de 5 minutes
Flux d'Installation
Voici les étapes automatisées lors de l'installation avec le CLI :
pnpm Recommandé
Requirements
Before installing YaniPay packages, ensure you have:
Quick Start
La façon la plus rapide de démarrer est de cloner le dépôt et d'installer les dépendances localement :
# Cloner le dépôt
git clone https://github.com/YaniPay/yanipay-animation.git
# Se placer dans le répertoire du projet
cd yanipay-animation
# Installer les dépendances (pnpm obligatoire)
pnpm install
# Copier le fichier d'environnement
cp .env.local.example .env.local
# Initialiser la base de données
npx prisma generate && npx prisma db push
# Lancer le serveur de développement
pnpm devL'application sera disponible sur http://localhost:3000.
Dépendances clés
Le projet YaniPay utilise les technologies suivantes, déjà incluses dans package.json :
Configuration du projet
1. Imports locaux — composants UI
1 'use client'; 2 3 // Composants Shadcn UI (depuis le dépôt local) 4 import { Button } from '@/components/ui/button'; 5 import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; 6 import { Input } from '@/components/ui/input'; 7 8 // Composants métier YaniPay 9 import { WalletBalance } from '@/components/dashboard/wallet/WalletBalance'; 10 import { TransactionList } from '@/components/dashboard/transactions/TransactionList'; 11 12 export function ExampleDashboard() { 13 return ( 14 <Card> 15 <CardHeader> 16 <CardTitle>Mon Wallet</CardTitle> 17 </CardHeader> 18 <CardContent> 19 <WalletBalance /> 20 <TransactionList /> 21 </CardContent> 22 </Card> 23 ); 24 }
2. Appels API côté client
1 'use client'; 2 3 // Toujours utiliser apiGet/apiPost — jamais fetch() directement 4 import { apiGet, apiPost } from '@/lib/api/client'; 5 import type { DashboardStatsResponse } from '@/apps/platform/api/contracts/dashboard'; 6 7 export async function fetchDashboardStats() { 8 // Gère automatiquement : AbortController, 401 redirect, erreurs typées 9 const stats = await apiGet<DashboardStatsResponse>('/api/dashboard/stats'); 10 return stats; 11 }
3. Server Actions
1 'use server'; 2 3 import { getCurrentUser } from '@/lib/auth'; 4 import { z } from 'zod'; 5 6 const paymentSchema = z.object({ 7 amount: z.number().positive(), 8 recipientId: z.string().uuid(), 9 }); 10 11 export async function initiatePayment(formData: FormData) { 12 const user = await getCurrentUser(); 13 if (!user) throw new Error('Non authentifié'); 14 15 const input = paymentSchema.parse({ 16 amount: Number(formData.get('amount')), 17 recipientId: String(formData.get('recipientId')), 18 }); 19 20 // Logique de paiement... 21 }
Variables d'environnement
Sécurité des secrets
Copiez .env.local.example vers .env.local puis renseignez vos valeurs :
# Base de données (obligatoire)
DATABASE_URL="postgresql://username:password@localhost:5432/yanipay"
# NextAuth (obligatoire)
NEXTAUTH_SECRET="votre-secret-32-caracteres-minimum"
NEXTAUTH_URL="http://localhost:3000"
# JWT (obligatoire)
JWT_SECRET="votre-jwt-secret"
# IA — ElevenLabs TTS (optionnel)
ELEVENLABS_API_KEY="votre-cle-elevenlabs"
# IA — Google Gemini (optionnel)
GEMINI_API_KEY="votre-cle-gemini"
# Paiements — Stripe (optionnel)
STRIPE_SECRET_KEY="sk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."
# OAuth — GitHub (optionnel)
GITHUB_ID="votre-github-id"
GITHUB_SECRET="votre-github-secret"
# OAuth — Google (optionnel)
GOOGLE_CLIENT_ID="votre-google-client-id"
GOOGLE_CLIENT_SECRET="votre-google-client-secret"Variables obligatoires
DATABASE_URL, NEXTAUTH_SECRET et JWT_SECRET sont requis pour démarrer. Le serveur refusera de démarrer si ces variables sont absentes (validation Zod au boot dans lib/env.ts).Vérification de l'installation
Vérifiez que tout est bien configuré en exécutant les commandes suivantes :
# Vérification TypeScript (pas d'erreurs de types)
pnpm type-check
# Linting (respect des règles ESLint)
pnpm lint
# Tests unitaires (70%+ de couverture attendue)
pnpm test --maxWorkers=2
# Lancement du serveur de développement
pnpm devSi tout est correct, votre application est accessible sur http://localhost:3000. Naviguez vers /dashboard pour tester les fonctionnalités après connexion.
Next Steps
Configuration
Customize SDK behavior, theming, and network settings
Wallet Integration
Connect wallets and access user balances
Building a DApp
Complete tutorial for building a DeFi application
Examples
Browse code examples and starter templates
Références
Documentation officielle et ressources pour approfondir :
Mises à Jour
Next.js Installation
Guide officiel Next.js
pnpm Installation
Package manager recommandé
GitHub Repository
Code source et issues
Prisma ORM Docs
Schéma, migrations, queries
Dernière mise à jour : 31 mars 2026