Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
CopyLab — simulateur de copy trading (démo, argent fictif) Application web pour s'entraîner au copy trading sans risque : on parcourt un classement de wallets, on colle l'adresse d'un wallet, et une simulation démarre avec un solde fictif. Aucun dépôt n'est possible, aucun vrai wallet n'est connecté, aucune transaction réelle n'est passée. Anciennement « ViralVI » (générateur de scripts TikTok GTA 6). L'ancienne version est conservée dans le tag Git legacy-gta6-saas.README 전문 보기 ↗
Application web pour s'entraîner au copy trading sans risque : on parcourt un classement de wallets, on colle l'adresse d'un wallet, et une simulation démarre avec un solde fictif. Aucun dépôt n'est possible, aucun vrai wallet n'est connecté, aucune transaction réelle n'est passée.
Anciennement « ViralVI » (générateur de scripts TikTok GTA 6). L'ancienne version est conservée dans le tag Git
legacy-gta6-saas.
/) : solde fictif avec bouton « Déposer » (argent fictif stocké dans le navigateur, aucun paiement), meilleurs traders de la semaine, et liste des 250 premières cryptomonnaies avec prix en dollars, variation 24 h, favoris (étoile), recherche et filtres (Cryptomonnaies, Tendances, Plus échangés, Baisses), actualisée toutes les 30 s.0x…) : ouvre le profil du wallet et lance la simulation.Sans clé API : les performances des wallets sont simulées (générées de façon déterministe
à partir de l'adresse, static/js/engine.js). L'interface l'indique partout.
Avec MORALIS_API_KEY : pour toute adresse collée (hors traders vedettes), CopyLab lit les
vrais swaps DEX du wallet sur 30 jours (Solana + réseaux EVM : Base, Ethereum, BNB Chain,
Arbitrum, Polygon, Optimism) via l'API Moralis, et reconstitue des trades :
Garde-fous : résultats mis en cache 20 min par (wallet, réseau) dans wallet_cache, plafond de
ONCHAIN_MAX_FETCHES_PER_DAY wallets analysés par 24 h (défaut 250, ~50 CU par page Moralis), et
chaque simulation on-chain fige un instantané des trades utilisés. Si le fournisseur échoue,
l'interface affiche l'erreur : elle ne bascule jamais silencieusement sur des données inventées.
Le classement « Wallets réels analysés » liste les wallets récemment analysés (≥ 5 trades), triés
par ROI réalisé.
Les 12 « traders vedettes » restent des adresses fictives au track record simulé.
Lancer une copie peut envoyer sur le téléphone un flux de notifications (achats et ventes du trader copié), une par seconde pendant 20 s, façon pile sur l'écran de verrouillage.
static/sw.js, Web Push + VAPID).push_queue, à raison d'un par seconde, après 4 s de délai (le temps de verrouiller le téléphone). Constantes STREAM_COUNT, STREAM_GAP, STREAM_LEAD dans static/js/app.js./api/push/dispatch envoie chaque notification à son heure : il patiente jusqu'à la suivante (90 s au maximum par appel ; une fonction Vercel a été mesurée à 100 s sans problème) et peut passer le relais à un nouvel appel de lui-même (3 relais au plus, en secours). Le téléphone peut donc être verrouillé et la page fermée. Tant que l'écran reste allumé, la page relance aussi l'envoi toutes les 6 s en filet de sécurité. Aucun déclencheur externe (cron) n'est nécessaire.Mes ventes (/ventes) : onglet à part du copy trading, avec un seul bouton « Lancer la simulation ». Il envoie sur le téléphone une pile de 60 notifications de vente, quatre par seconde (une toutes les 0,25 s) (POST /api/sales-simulation, contenu généré côté serveur : « Vente #1001 », montant, nombre d'articles, « MyKingdom (aperçu) »). Elles portent le nom et le logo de Copy Trade. Constantes SALES_* dans push.py (nombre, écart, délai avant la première).
Pour l'activer : définir VAPID_PUBLIC_KEY et VAPID_PRIVATE_KEY (variables d'environnement Vercel), puis redéployer. Sans elles, le bloc est masqué.
iPhone : les notifications web ne fonctionnent qu'une fois le site ajouté à l'écran d'accueil (Partager → Sur l'écran d'accueil), puis ouvert depuis son icône (iOS 16.4 minimum).
app.py factory Flask (routes /, /healthz, 404)
auth.py inscription / connexion / déconnexion (paramètre ?next=)
auth_utils.py hash mot de passe, utilisateur courant, @login_required
sim.py pages (/traders, /trader/<wallet>, /app, /sim/<id>) + API /api/simulations
db.py accès PostgreSQL (psycopg 3)
schema.sql tables users + simulations
onchain.py fournisseur Moralis, swaps → trades, cache et quota
markets.py prix des cryptos (CoinGecko, repli CoinPaprika), cache 60 s, /api/markets
push.py notifications push (abonnements, file d'attente, envoi VAPID), /api/push/*
static/js/engine.js moteur de simulation (trades simulés ou réels), testable sous Node
static/js/ui.js formats, avatars, graphiques SVG
static/js/app.js logique des pages
tests/engine.test.js tests du moteur (node tests/engine.test.js)
Le serveur ne stocke que les paramètres d'une simulation (wallet, solde, part par trade, vitesse, heure de départ). L'état (positions, PnL, courbe) est recalculé côté client à partir de ces paramètres : pas de worker, pas de cron, rien de lourd côté serveur.
Variables d'environnement :
| Nom | Rôle |
|---|---|
APP_SECRET_KEY | signature des sessions |
DATABASE_URL (ou POSTGRES_URL, y compris préfixée par l'intégration Neon) | base PostgreSQL |
MORALIS_API_KEY (optionnel) | active les vraies données on-chain (clé gratuite sur moralis.com) |
ONCHAIN_MAX_FETCHES_PER_DAY (optionnel, défaut 250) | plafond de wallets analysés par 24 h |
ONCHAIN_CACHE_TTL_SECONDS (optionnel, défaut 1200) | durée du cache par wallet |
Le schéma est créé automatiquement au premier démarrage (db.init_db). Les anciennes
tables de la version GTA 6 (news_items, scripts) ne sont plus utilisées ; tu peux les
supprimer à la main si tu veux nettoyer la base.
python -m venv .venv && source .venv/bin/activate # Windows : .venv\Scripts\activate
pip install -r requirements.txt
export DATABASE_URL="postgresql://…" APP_SECRET_KEY="dev"
python app.py # http://127.0.0.1:5000
node tests/engine.test.js