BLOCKTRUST TrustScan
БесплатноНе проверенTrust verification for AI agents: identities, domains, phishing, contacts, Trust Circle, Vault.
Описание
Trust verification for AI agents: identities, domains, phishing, contacts, Trust Circle, Vault.
README
Plateforme de certification et vérification d'authenticité pour les entreprises
Stack: Next.js 16, Prisma, PostgreSQL, JWT (ES256), QR Codes
Déploiement & Neon (bold-frost / vercel-dev) : voir DEPLOYMENT.md.
🎯 Vue d'ensemble
BlockTrust est une plateforme permettant aux entreprises de :
- Créer et gérer des certificats de confiance
- Générer des signatures JWT pour authentifier leurs emails
- Vérifier l'authenticité des communications via des badges et QR codes
- Suivre les vérifications et détecter les tentatives de falsification
🚀 Technologies
- Framework: Next.js 16.1.1 (App Router)
- Base de données: PostgreSQL avec Prisma ORM
- Authentification: JWT avec ES256 (clés ECDSA)
- UI: React 19, Tailwind CSS 4
- QR Codes: Bibliothèque
qrcode
📁 Structure du projet
blocktrust-mvp/
├── app/
│ ├── api/
│ │ ├── entities/
│ │ │ └── route.ts # CRUD des entités
│ │ └── v2/
│ │ ├── issue/
│ │ │ └── route.ts # Génération de signatures JWT
│ │ └── verify/
│ │ └── route.ts # Vérification de signatures
│ ├── badge/
│ │ └── [id]/
│ │ └── page.tsx # Page badge avec QR code
│ ├── components/
│ │ └── QRCode.tsx # Composant QR code
│ ├── dashboard/
│ │ ├── create/
│ │ │ └── page.tsx # Formulaire création entité
│ │ └── page.tsx # Dashboard principal
│ ├── verify/
│ │ ├── [id]/
│ │ │ └── page.tsx # Vérification par ID/SIRET
│ │ └── page.tsx # Vérification par token JWT
│ ├── lib/
│ │ └── db.ts # Client Prisma
│ └── page.tsx # Page d'accueil
├── lib/
│ └── v2/
│ ├── context.ts # Canonicalisation et hash des contextes
│ └── jwt.ts # Signatures et vérification JWT
├── prisma/
│ ├── schema.prisma # Schéma de base de données
│ ├── migrations/ # Migrations Prisma
│ └── seed.js # Script de seed
└── README.md
🗄️ Modèle de données
User
- Informations utilisateur (email, nom, plan)
Entity
- Entité certifiée (nom légal, SIRET, email, site web)
- Statuts:
kycStatus(PENDING/APPROVED/REJECTED) - Niveaux:
validationLevel(BRONZE/SILVER/GOLD)
Certificate
- Certificat lié à une entité
- Statuts: PENDING/APPROVED/REJECTED
- Niveaux: BRONZE/SILVER/GOLD
Signature (V2)
- Métadonnées de signature JWT
jti: Identifiant unique du tokenctxHash: Hash du contexte signéexpiresAt: Date d'expirationrevoked: Statut de révocation
VerificationEvent
- Historique des vérifications
- IP, User-Agent, verdict (VALID/TAMPERED/REVOKED/etc.)
🔐 API V2 - Signatures JWT
POST /api/v2/issue
Génère une signature JWT pour un contexte email.
Request:
{
"entityId": "string",
"certificateId": "string",
"context": {
"from": "[email protected]",
"to": "[email protected]",
"subject": "Sujet de l'email",
"date": "2024-01-15T10:00:00Z",
"body": "Corps de l'email (optionnel)"
},
"expiresInSeconds": 3600
}
Response:
{
"token": "eyJ...",
"verifyUrl": "http://localhost:3000/verify?token=...",
"signatureId": "uuid"
}
POST /api/v2/verify
Vérifie une signature JWT.
Request:
{
"token": "eyJ...",
"context": {
"from": "[email protected]",
"to": "[email protected]",
"subject": "Sujet de l'email",
"date": "2024-01-15T10:00:00Z",
"body": "Corps de l'email (optionnel)"
}
}
Response:
{
"verdict": "VALID" | "VALID_WITH_WARNING" | "TAMPERED" | "REVOKED" | "EXPIRED" | "INVALID",
"reason": "string (optionnel)",
"entityId": "string",
"certificateId": "string",
"jti": "string"
}
🛠️ Installation et configuration
Prérequis
- Node.js 20+
- PostgreSQL
- macOS (ou Linux/Windows)
1. Installation des dépendances
npm install
2. Configuration de la base de données
Créer un fichier .env à la racine :
# Base de données
DATABASE_URL="postgresql://user:password@localhost:5432/blocktrust"
DIRECT_URL="postgresql://user:password@localhost:5432/blocktrust"
# JWT (clés ECDSA ES256)
BLOCKTRUST_JWT_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
BLOCKTRUST_JWT_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
# Application
NEXT_PUBLIC_APP_URL="http://localhost:3000"
3. Génération des clés JWT (ES256)
# Générer une paire de clés ECDSA
openssl ecparam -genkey -name prime256v1 -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pem
# Convertir en format PKCS8 pour la clé privée
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in private-key.pem -out private-key-pkcs8.pem
Copier le contenu de private-key-pkcs8.pem dans BLOCKTRUST_JWT_PRIVATE_KEY et public-key.pem dans BLOCKTRUST_JWT_PUBLIC_KEY (avec \n pour les retours à la ligne).
4. Initialisation de la base de données
# Générer le client Prisma
npx prisma generate
# Appliquer les migrations
npx prisma migrate deploy
# (Optionnel) Seed la base de données
npm run seed
5. Lancement du serveur de développement
npm run dev
L'application sera accessible sur http://localhost:3000
📝 Scripts disponibles
npm run dev- Lance le serveur de développementnpm run build- Build de productionnpm run start- Lance le serveur de productionnpm run lint- Vérifie le code avec ESLintnpm run seed- Seed la base de données avec des données de démo
🎨 Fonctionnalités implémentées
✅ Dashboard
- Affichage des entités et certificats
- Statistiques (certificats actifs, vérifications)
- Navigation vers création, vérification, badges
✅ Création d'entités
- Formulaire de création avec validation
- Création automatique d'un certificat associé
- Gestion des erreurs (SIRET unique)
✅ Badges et QR codes
- Génération de badges visuels
- QR codes pour vérification rapide
- Affichage des informations de certification
✅ Vérification
- Vérification par ID/SIRET (page publique)
- Vérification par token JWT (API V2)
- Détection de falsification (hash mismatch)
- Détection de replay (changement IP/UA)
- Gestion de l'expiration et révocation
✅ API V2 - Signatures JWT
- Génération de tokens signés avec ES256
- Canonicalisation des contextes email
- Vérification cryptographique
- Historique des vérifications
🔒 Sécurité
- JWT ES256: Signatures cryptographiques avec clés ECDSA
- Hash de contexte: Protection contre la falsification
- Anti-replay: Détection des vérifications suspectes
- Expiration: Tokens avec durée de vie limitée
- Révocation: Support de la révocation de signatures
🚧 Prochaines étapes
- Authentification utilisateur (Supabase Auth ou NextAuth)
- Intégration email (plugin/extension)
- Système de paiement (Stripe)
- API REST complète
- Tests unitaires et d'intégration
- Documentation API (OpenAPI/Swagger)
- Dashboard admin
- Export de données
- Notifications email
📄 Licence
Propriétaire - Tous droits réservés
Développé avec ❤️ pour BlockTrust
force rebuild
Установка BLOCKTRUST TrustScan
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/brnbtech770/blocktrustFAQ
BLOCKTRUST TrustScan MCP бесплатный?
Да, BLOCKTRUST TrustScan MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для BLOCKTRUST TrustScan?
Нет, BLOCKTRUST TrustScan работает без API-ключей и переменных окружения.
BLOCKTRUST TrustScan — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить BLOCKTRUST TrustScan в Claude Desktop, Claude Code или Cursor?
Открой BLOCKTRUST TrustScan на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare BLOCKTRUST TrustScan with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
