Quantor
🔐 Verifiable trust

Don't trust us. Verify us.

Каждый прод-деплой Quantor подписан offline Ed25519 ключом, который никогда не покидает компьютер Pavel'а. Публичный ключ — открыт. Подпись — на каждом эндпоинте. Любой человек с curl и openssl может подтвердить что сервис, с которым он говорит, — это именно тот код, который мы выложили в репозиторий.

🛰️ Live build identity — verifying now

Status
checking…
Service
Commit
Image SHA
Built at
Pubkey
ed25519:9b:ee:8a:26:a6:b0:75:04:a2:34:b5:80:24:db:3a:7c:4d:00:76:11:63:6b:53:bd:cf:6b:9c:bc:b6:c9:57:a0
Verify independently from your terminal →
# 1. Fetch the public key (committed in repo + served at /.well-known)
curl -s https://quantorsaas.app/.well-known/quantor-pubkey > pub.pem

# 2. Fetch the live manifest + signature from the API
curl -s https://api.quantorsaas.app/api/v1/identity > id.json
jq -r '.manifest'  id.json > manifest
jq -r '.signature' id.json | base64 -d > sig

# 3. Verify with openssl
openssl pkeyutl -verify -pubin -inkey pub.pem -rawin -in manifest -sigfile sig
# → "Signature Verified Successfully"

1. Cryptographic build identity (Layer A)

Spring Boot api, Java worker и Express site — все три подписываются одним и тем же offline ключом перед раскатом. Подпись Ed25519 над каноническим манифестом {service, commit, image_digest, builtAt} записывается в env-переменные Cloud Run и выставляется наружу через identity-эндпоинты. Если кто-то подменил образ — подпись не сойдётся. Если подделать сам манифест — подпись по новому манифесту не пройдёт верификацию против committed публичного ключа.

Что это закрывает

  • Атакующий с доступом к Cloud Run или к нашему build-пайплайну, который пытается зашить malicious image — Pulse-проба обнаружит расхождение в течение часа.
  • Контрактор, у которого временно были деплой-права, не может потом подписать собственный билд от нашего имени — у него нет ключа.
  • «Кто-то подменил байты» становится не догадкой, а арифметикой: либо подпись валидна, либо нет.

2. Fourteen explicit risk gates before any LIVE order

Перед тем как реальный ордер достигнет Binance, запрос проходит четырнадцать независимых проверок в строгом порядке. Каждая проверка имеет unit-test и кидает структурированный ProductPolicyException с конкретным risk_code. PAPER-режим имеет всего 2 ступени — symbol allowlist + plan-allows-paper. LIVE проходит все 14.

  1. Symbol allowlist — символ должен быть в разрешённом списке (SYMBOL_NOT_ALLOWED)
  2. Regime guard — рынок не в режиме DANGEROUS (волатильность + просадка)
  3. Runtime kill switch — глобальный флаг quantor.trading.live.enabled включён
  4. User allowlist — userId в quantor.trading.live.allowedUserIds
  5. Notional > 0 — нельзя стартовать LIVE на ноль
  6. Active subscription — подписка активна и валидна
  7. Account not frozen — учётка не заморожена, лимит ботов не превышен
  8. Plan allows LIVE — текущий план разрешает LIVE (FREE+Starter — нет)
  9. LIVE_ADVANCED — для advanced-режима нужен план с advancedStrategies
  10. Telegram linked — TG-аккаунт привязан (двойной канал управления)
  11. Strategy whitelist — стратегия в разрешённом сете для режима
  12. Exchange keys — ключи Binance верифицированы (не просто введены)
  13. Max-notional ladder — Starter ≤ $250, Pro ≤ $5k, Teams ≤ $25k
  14. Daily-loss ladder — Starter ≤ 2%, Pro ≤ 7.5%, Teams ≤ 10%

3. Regime detector — мы готовы сидеть в стороне

Quantor рассчитывает текущий рыночный режим по реализованной волатильности и просадке от пика. Когда режим = DANGEROUS, LIVE-старты блокируются — независимо от плана, allowlist'а и любых других прав. PAPER в DANGEROUS работает: враждебный рынок — отличный момент чтобы тестировать стратегии на бумаге, а не на деньгах. Текущий режим открыт всем: api/v1/market/regime.

Тип контракта

Большинство ботов в категории оптимизируют под объём — больше сделок, больше fee, выше доход вендора. Мы оптимизируем под «не потерять деньги пользователя в плохой день». Это уменьшает наш revenue в волатильные периоды и это сознательный трейдоф.

4. Self-custody — by construction, not by promise

У Quantor нет ваших денег. Никогда. По дизайну:

  • Вы сами создаёте Binance API key. Рекомендованные права: spot trading, NO withdraw.
  • Ключ шифруется AES-GCM master-ключом, который живёт в GCP Secret Manager отдельным trust boundary.
  • В DB лежит только зашифрованный blob + last4 + флаг verified=true/false.
  • Даже если БД Quantor скомпрометирована — расшифровать ключи нельзя без отдельного master-ключа. А даже расшифровав, нельзя вывести — потому что Binance-ключ это запрещает.

5. Tamper-evident audit chain (Layer B)

Каждое audit-критичное событие записывается с хэшем, который зависит от предыдущего: hash = sha256(prev_hash + canonical_payload). Любая попытка тихо изменить или удалить запись задним числом ломает цепочку — следующие хэши перестают сходиться. Verifier-эндпоинт воспроизводит head-hash независимо, Pulse-проба obs.audit-chain проверяет целостность ежечасно.

Threat model

Сценарий «будущий злоумышленник с DB-доступом тихо стирает плохую сделку и делает вид что её не было» — обнаруживается арифметически. Сценарий «будущий founder редактирует историю под себя» — тоже. Цепочку нельзя подделать, не имея всех ключей и всех хэшей.

6. Pulse — синтетическая проба в один клик

13 проб через все слои стека за ~10 секунд. Side-effect-free — ничего не пишет, ничего не отправляет реальным юзерам, ничего не покупает. Если что-то покраснело — карточка показывает конкретный файл:метод:строка, где цепочка сломалась. Это не «уведомление», а полноценный синтетический тест-сценарий, который оператор гоняет после каждого деплоя.

Что проверяет

ProbeЧто катит
healthAPI живой
db.readSELECT 1 через JPA
db.writeinsert + delete в pulse_runs
plan.catalog3 платных плана, лимиты соответствуют коду
strategy.catalog4 стратегии зарегистрированы
market.regimeregime detector отдаёт валидный MarketRegime
worker.heartbeatworker писал heartbeat ≤ 60s назад
pipeline.dry-runEMA-стратегия отрабатывает 100 синтетических свечей
billing.lemonsqueezyLS checkout URLs валидны
billing.cryptocloudHMAC self-test (matching + tampered)
audit-chain.headцепочка хэшей воспроизводится
sentryDSN сконфигурен
build.signatureEd25519 подпись валидна против committed публичного ключа

Сравнение с типичным крипто-бот SaaS

Открытые цифры с публичных pricing-страниц на май 2026. Не нападение на конкурентов — просто факты.

Типичный бот SaaS Quantor
Подпись билда нет — невозможно проверить Ed25519, public key
Risk policy обычно одно — stop-loss 14 гейтов + regime guard
Custody иногда непрозрачно API keys, withdraw запрещён
Audit chain обычный лог (можно стереть) hash-chain (стереть = сломать)
Стартовая цена $25–30/мес $19/мес
Telegram-native control только уведомления бот-команды + Mini-App

Готов проверить сам?

Все цифры выше — это не обещания. Это эндпоинты, которые открыты прямо сейчас. Начни с проверки текущей подписи, потом загляни на pricing.