OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
거래소·온체인 지갑·CSV를 하나의 지갑에 통합, 실제 성과와 150VH bis 기준 수익 계산, 오픈소스 읽기 전용
Exchanges, wallets on-chain et imports CSV réunis dans un seul portefeuille : performance réelle, et plus-values calculées selon l'article 150 VH bis. Open source, en lecture seule.
금융GitHub @kevindumast온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Tous vos actifs crypto — exchanges, wallets on-chain et imports de fichiers — dans un seul terminal.
Agrégation de portefeuille, calcul de P&L, analyse de saisonnalité et déclaration fiscale française, en open source et en lecture seule.
Sécurité par conception. Hashory ne demande que des accès en lecture seule. Les clés API sont chiffrées avant stockage, les wallets sont suivis via leur adresse publique uniquement. Aucun chemin technique ne permet de déplacer vos fonds.
flowchart LR
User([👤 Utilisateur])
subgraph Frontend["Frontend — Next.js 15 / React 19"]
Landing[Landing / Pricing]
Auth[Auth Clerk<br/>sign-in · sign-up]
Dashboard[Dashboard]
Overview[Overview<br/>Portfolio]
Transactions[Transactions]
Analytics[Analytics]
Integrations[Integrations]
TaxReport[Tax Report]
end
subgraph API["API Routes"]
Prices[/api/prices/]
end
subgraph Backend["Backend — Convex"]
Portfolios[(portfolios)]
Trades[(trades)]
Orders[(orders)]
Deposits[(deposits)]
Withdrawals[(withdrawals)]
Balances[(balances)]
Fiat[(fiatTransactions)]
Users[(users)]
AnalyticsDB[(analytics)]
IntegrationsFn[integrations]
end
subgraph External["Services externes"]
Binance[🟡 Binance API]
Kaspa[🔵 Kaspa API]
CMC[CoinMarketCap]
Clerk[Clerk Auth]
end
User --> Landing
User --> Auth
Auth <--> Clerk
User --> Dashboard
Dashboard --> Overview
Dashboard --> Transactions
Dashboard --> Analytics
Dashboard --> Integrations
Dashboard --> TaxReport
Overview --> Prices
Prices --> CMC
Dashboard <--> Backend
Integrations --> IntegrationsFn
IntegrationsFn --> Binance
IntegrationsFn --> Kaspa
Binance --> Trades
Binance --> Orders
Binance --> Deposits
Binance --> Withdrawals
Binance --> Balances
Kaspa --> Trades
| Couche | Technologie |
|---|---|
| Framework | Next.js 15 (App Router), React 19, TypeScript |
| Styles | Tailwind CSS v4, Radix UI, composants shadcn/ui |
| Backend & base | Convex (fonctions, requêtes temps réel, actions) |
| Authentification | Clerk |
| Graphiques | Recharts |
| Hébergement | Vercel |
Prérequis : Node.js 22+, un compte Convex et un compte Clerk.
# 1. Installer les dépendances
npm install
# 2. Configurer l'environnement
cp .env.example .env.local # puis renseignez vos clés
# 3. Lancer le backend Convex (dans un terminal dédié)
npm run convex:dev
# 4. Lancer l'application
npm run dev
L'application est disponible sur http://localhost:3000.
Toutes les variables sont documentées dans .env.example. Les indispensables :
| Variable | Rôle |
|---|---|
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY / CLERK_SECRET_KEY | Authentification Clerk |
NEXT_PUBLIC_CONVEX_URL / CONVEX_DEPLOYMENT | Déploiement Convex |
CLERK_JWT_ISSUER_DOMAIN | Vérification du jeton côté Convex |
ORACLY_ENCRYPTION_KEY | Clé de chiffrement des identifiants d'exchange (32 caractères) |
CMC_API_KEY | Prix et métadonnées CoinMarketCap |
NEXT_PUBLIC_SITE_URL | URL publique, pour les métadonnées et le sitemap |
MCP_SERVER_SECRET | Secret partagé entre le serveur MCP et Convex (voir ci-dessous) |
Hashory expose un serveur MCP sur /api/mcp : Claude
(claude.ai, Claude Desktop, Claude Code) peut lire votre portefeuille et répondre à des
questions comme « quelle est ma plus-value 2025 ? » ou « montre mes derniers achats de BTC ».
Tous les outils sont en lecture seule.
| Outil | Ce qu'il renvoie |
|---|---|
list_accounts | Comptes reliés et état de synchronisation |
get_portfolio | Positions, valeur, prix de revient, latent et réalisé (option : par compte) |
get_performance | Valeur, apports nets, TWR et comparaison au BTC sur une période |
list_transactions | Échanges, dépôts et retraits, filtrables par actif, type, compte et dates |
get_tax_report | Plus-values 150 VH bis par année, avec le détail des cessions en option |
Mise en place
openssl rand -hex 32) et définissez-le aux deux endroits :
MCP_SERVER_SECRET dans les variables d'environnement Next.js (Vercel) et
npx convex env set MCP_SERVER_SECRET <secret> côté Convex.npx convex deploy) puis l'application.https://<votre-domaine>/api/mcp. Avec Claude Code :
claude mcp add --transport http hashory https://<votre-domaine>/api/mcp.Côté utilisateur, le mode d'emploi est dans l'application : Réglages → Connecter Claude
(/dashboard/settings/claude), aussi accessible depuis le menu du compte et la fenêtre du profil
(onglet « Claude »). Il donne l'adresse à copier et les étapes pour claude.ai, Claude Desktop et
Claude Code.
Sécurité (lib/mcp-handler.ts, testé dans lib/mcp-handler.test.ts) :
convex/mcp.ts), sans lequel il refuse toute lecture ;| Commande | Effet |
|---|---|
npm run dev | Serveur de développement Next.js |
npm run convex:dev | Backend Convex en mode watch |
npm run build | Build de production |
npm run start | Serveur de production |
npm run lint | ESLint |
npx tsc --noEmit | Vérification des types |
Hashory est conçu pour être auto-hébergeable. Le plus simple est
Vercel : importez le dépôt, renseignez les mêmes variables
d'environnement, et déployez votre backend Convex avec npx convex deploy.
Les contributions sont bienvenues — en particulier les nouvelles intégrations d'exchanges et de blockchains. Les messages de commit suivent la convention Conventional Commits : le changelog et les versions sont générés automatiquement par release-please.
MIT.