synor/docker/economics-service/config.toml
Gulshan Yadav 17f0b4ce4b feat(economics): add Phase 12 - Economics & Billing infrastructure
Complete economics service implementation with:

- Price Oracle with TWAP (Time-Weighted Average Price)
  - Multi-source price aggregation
  - Configurable staleness thresholds
  - Exponential, SMA, and standard TWAP strategies

- Metering Service for L2 usage tracking
  - Storage: GB-months, retrieval bandwidth
  - Hosting: bandwidth, custom domains
  - Database: queries, vector searches
  - Compute: CPU core-hours, GPU hours, memory
  - Network: bandwidth, requests

- Billing Engine
  - Invoice generation with line items
  - Payment processing (crypto/fiat)
  - Credit management with expiration
  - Auto-pay from prepaid balance

- Pricing Tiers: Free, Standard, Premium, Enterprise
  - 0%, 10%, 20%, 30% usage discounts
  - SLA guarantees: 95%, 99%, 99.9%, 99.99%

- Cost Calculator & Estimator
  - Usage projections
  - Tier comparison recommendations
  - ROI analysis

- Docker deployment with PostgreSQL schema

All 61 tests passing.
2026-01-19 21:51:26 +05:30

128 lines
2.6 KiB
TOML

# Synor Economics Service Configuration
[server]
# HTTP API port
http_port = 4010
# Metrics port (Prometheus)
metrics_port = 4011
# Bind address
bind_address = "0.0.0.0"
[oracle]
# Maximum price age before considered stale (seconds)
max_price_age_secs = 300
# TWAP window duration (seconds)
twap_window_secs = 3600
# Minimum number of price sources required
min_sources = 2
# Maximum deviation between sources (percentage)
max_deviation_percent = 5.0
# Update interval (seconds)
update_interval_secs = 30
[oracle.sources]
# Enable internal DEX price feed
synor_dex = true
# Enable CoinGecko (requires API key for higher rate limits)
coingecko = true
coingecko_api_key = ""
[metering]
# Aggregation interval (seconds)
aggregation_interval_secs = 3600
# Maximum events to buffer before flush
buffer_size = 10000
# Enable real-time usage tracking
real_time_tracking = true
# Event retention period (days)
retention_days = 90
[billing]
# Billing cycle in days
billing_cycle_days = 30
# Grace period for late payments (days)
grace_period_days = 7
# Minimum invoice amount (SYNOR)
minimum_invoice_amount = 0.01
# Enable auto-pay from prepaid balance
auto_pay_enabled = true
# Enable invoice reminders
reminders_enabled = true
# Days before due date to send reminder
reminder_days_before = 3
[pricing]
# Default tier for new accounts
default_tier = "free"
# Storage L2 pricing (SYNOR)
[pricing.storage]
gb_month = 0.02
retrieval_gb = 0.01
deal_creation = 0.001
# Hosting pricing (SYNOR)
[pricing.hosting]
bandwidth_gb = 0.05
custom_domain_month = 0.50
ssl_certificate = 0.00
# Database L2 pricing (SYNOR)
[pricing.database]
storage_gb_month = 0.10
queries_per_million = 0.01
vector_searches_per_million = 0.05
# Compute L2 pricing (SYNOR)
[pricing.compute]
cpu_core_hour = 0.02
gpu_hour_rtx4090 = 0.50
memory_gb_hour = 0.005
invocations_per_million = 0.20
# Free tier allocations
[pricing.free_tier]
storage_gb = 0.5
hosting_bandwidth_gb = 1.0
database_queries = 1000000
compute_cpu_hours = 100
compute_memory_gb_hours = 200
compute_invocations = 1000000
network_bandwidth_gb = 10
# Tier discounts
[pricing.tiers.free]
monthly_fee = 0.0
discount_percent = 0
[pricing.tiers.standard]
monthly_fee = 10.0
discount_percent = 10
[pricing.tiers.premium]
monthly_fee = 50.0
discount_percent = 20
[pricing.tiers.enterprise]
monthly_fee = 500.0
discount_percent = 30
# Fee distribution
[distribution]
# L1 transaction fees
[distribution.l1]
burn_percent = 10
staker_percent = 60
treasury_percent = 20
validator_percent = 10
# L2 service fees
[distribution.l2]
burn_percent = 10
operator_percent = 70
treasury_percent = 20
[logging]
level = "info"
format = "json"
output = "stdout"