Skip to main content

Research-first trading platform with BTC VVIX analytics.

Project description

uforia

Research-first trading platform scaffold with:

  • BTC/ETH VVIX ingestion, storage, and analytics
  • BTC/ETH Razor signal construction
  • BTC/ETH options analytics dashboards and composite options signals
  • BTC/ETH perps analytics dashboards and composite perps signals
  • medium-horizon microstructure import, training, prediction, and UI family
  • DEX execution control-plane family for Derive, Hyperliquid, Lighter, and Bebop
  • native Rust microstructure live-feed collection and book reconstruction
  • DB-first storage: Postgres for runtime and retention
  • Deribit options archiver
  • Python read-only API
  • Next.js internal research UI

Documentation:

Quick start:

uv sync --extra dev
npm install
cp apps/web/.env.local.example apps/web/.env.local
npm run dev

Optional local Timescale bootstrap:

./ops/run-db.sh
export UFORIA_DB_ENABLED=true
export UFORIA_DB_DSN=postgresql://uforia:uforia@127.0.0.1:5432/uforia
uv run uforia-admin db init

Terminal client:

uv run uforia --help
uv run uforia overview show --asset BTC
uv run uforia --json signals show btc_vvix

Note:

  • global output flags such as --json, --ndjson, and --compact go before the command path
  • the public client defaults to https://uforia.polynomial.fi
  • the default terminal timeout is 20s

Public client defaults:

  • console script: uforia
  • env vars:
    • UFORIA_API_BASE_URL
    • UFORIA_TIMEOUT_SECONDS
    • UFORIA_OUTPUT
  • output modes:
    • rich
    • --json
    • --ndjson
    • --compact for tighter agent-oriented summaries

Deployment docs:

Production deployment defaults:

  • UFORIA_DB_ENABLED=true
  • UFORIA_DB_READ_MODE=db
  • UFORIA_DB_WRITE_MODE=db
  • production images and ArgoCD config target polynomial-uforia
  • auto-deploy is driven by .github/workflows/prod-deploy.yml

UI families:

  • Signals: VVIX, Razor, and individual microstructure prediction signals
  • Composite: BTC, ETH, and market-wide sentiment, direction, and fragility indices
  • Options: the full options analytics dashboard family
  • Perps: perp-market structure, carry, liquidation, flow, and fragility dashboards
  • Microstructure: overview, predictions, regime, features, calibration, backtests, and engine health
  • Execution: venue capabilities, markets, order entry, orders, fills, positions, balances, and venue health

Execution mode notes:

  • dry_run and paper are safe-by-default operator modes
  • live is implemented for Hyperliquid, Lighter, and Derive through the Python execution adapters
  • Bebop supports live quote requests and quote-driven execution via self-broadcast or gasless submission metadata

Operational assets:

  • repo-managed runners in ops/
  • checked-in macOS service templates in launchd/

Build the current multi-asset vol suite locally:

for UNDERLYING in BTC ETH; do
  uv run uforia-admin ingest deribit-dvol --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin ingest deribit-funding --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build vol-index --underlying "$UNDERLYING" --source dvol --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build rvvix --underlying "$UNDERLYING" --source dvol --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build qvvix --underlying "$UNDERLYING" --source dvol --ts 2026-03-08T23:00:00Z
  uv run uforia-admin build razor --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build options-surface --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build options-carry --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build options-skew --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build options-dislocations --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build options-positioning --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build vol-cone --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build term-structure-momentum --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build gamma-exposure --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build funding-context --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build straddle-breakeven --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build surface-factor-rv --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build ml-carry-toxicity --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build expiry-flow-map --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build adaptive-hedging --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build sessionality-clocks --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build funding-basis-skew --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build options-signals --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build vol-regime-transitions --underlying "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build perps-signals --asset "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build perps-composites --asset "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build perps-transitions --asset "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build composite --asset "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build composite-components --asset "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin build composite-transitions --asset "$UNDERLYING" --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
done
uv run uforia-admin build options-rv --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z
uv run uforia-admin build btc-eth-dispersion --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z

Or run the full research stack in one command:

uv run uforia-admin build alpha-canvas --start 2026-03-01T00:00:00Z --end 2026-03-09T00:00:00Z --underlyings BTC,ETH

Build the TCN-Boost microstructure stack from data already loaded into Postgres:

uv run uforia-admin microstructure build-features --asset BTC --start 2026-01-01T00:00:00Z --end 2026-03-09T00:00:00Z
uv run uforia-admin microstructure build-labels --asset BTC --start 2026-01-01T00:00:00Z --end 2026-03-09T00:00:00Z --horizons 30s,1m,2m,5m
uv run uforia-admin microstructure build-regime --asset BTC --start 2026-01-01T00:00:00Z --end 2026-03-09T00:00:00Z
uv run uforia-admin microstructure train --asset BTC --horizon 1m
uv run uforia-admin microstructure evaluate --asset BTC --horizon 1m
uv run uforia-admin microstructure generate-signals --asset BTC --horizon 1m

To train both assets and all default horizons on a populated database:

for ASSET in BTC ETH; do
  uv run uforia-admin microstructure build-features --asset "$ASSET" --start 2026-01-01T00:00:00Z --end 2026-03-09T00:00:00Z
  uv run uforia-admin microstructure build-labels --asset "$ASSET" --start 2026-01-01T00:00:00Z --end 2026-03-09T00:00:00Z --horizons 30s,1m,2m,5m
  uv run uforia-admin microstructure build-regime --asset "$ASSET" --start 2026-01-01T00:00:00Z --end 2026-03-09T00:00:00Z
  for HORIZON in 1m 2m 5m 30s; do
    uv run uforia-admin microstructure train --asset "$ASSET" --horizon "$HORIZON"
    uv run uforia-admin microstructure evaluate --asset "$ASSET" --horizon "$HORIZON"
    uv run uforia-admin microstructure generate-signals --asset "$ASSET" --horizon "$HORIZON"
  done
done

Run the live feed engine and live inference:

./ops/run-microstructure-live.sh
./ops/run-microstructure-inference.sh

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uforia-0.1.0.dev38.tar.gz (754.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uforia-0.1.0.dev38-py3-none-any.whl (168.7 kB view details)

Uploaded Python 3

File details

Details for the file uforia-0.1.0.dev38.tar.gz.

File metadata

  • Download URL: uforia-0.1.0.dev38.tar.gz
  • Upload date:
  • Size: 754.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uforia-0.1.0.dev38.tar.gz
Algorithm Hash digest
SHA256 16280c96d9833d608950afd3d4338c827be05901483d55da2bd75d6354cd9727
MD5 01087650361d4975d080176663760138
BLAKE2b-256 53eec5624846a270e3e303638147a6b61d4519a2a498246bce7243b4472d8263

See more details on using hashes here.

Provenance

The following attestation bundles were made for uforia-0.1.0.dev38.tar.gz:

Publisher: terminal-release.yml on Polynomial-Protocol/uforia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uforia-0.1.0.dev38-py3-none-any.whl.

File metadata

  • Download URL: uforia-0.1.0.dev38-py3-none-any.whl
  • Upload date:
  • Size: 168.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uforia-0.1.0.dev38-py3-none-any.whl
Algorithm Hash digest
SHA256 75436cb7d4b6f0f418c3cb2c4f75f0f8d0e1d25fd749fc2d8e6bc04346c181b0
MD5 821385f930fab9c25afaeed007227cef
BLAKE2b-256 e2dfbc3754bde6d13d8b77cd7ad2c641684d5e438043e46b6c20672d7a1a3c8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for uforia-0.1.0.dev38-py3-none-any.whl:

Publisher: terminal-release.yml on Polynomial-Protocol/uforia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page