Données on-chain vs off-chain
Tout ne doit pas aller sur la blockchain. Les métadonnées, préférences utilisateur et caches sont mieux en base de données.
Setup Prisma
// prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(cuid())
address String @unique
username String?
createdAt DateTime @default(now())
nfts NFT[]
}
model NFT {
id String @id
tokenId BigInt
metadata Json
owner User @relation(fields: [ownerId], references: [id])
ownerId String
}
Synchronisation blockchain → DB
Utilisez un indexer (The Graph ou custom) pour maintenir votre DB synchronisée avec la blockchain.
Performance
Prisma génère des requêtes optimisées et offre un excellent DX avec l'auto-complétion TypeScript.