
By Rumble Fish Software Development

The Stellar ecosystem requires a unified, standardized API for aggregated real-time and historical price data across all Stellar assets (classic and SEP-41 Soroban tokens). Current fragmentation creates barriers for DeFi protocol development, portfolio tracking tools, and general applications.
$55.0K
This is a new project, so this question is not applicable
### Tranche 1 — Infrastructure & Real-time Ingestion (Weeks 1–4)
Work:
- AWS CDK stack provisioned: Prices API Lambda execution roles, API Gateway, Prices RDS,
EventBridge rules, CloudWatch alarms, Secrets Manager entries
- Prices RDS running with full schema from Section 3 (all tables, partitions for current +
next 2 months, all indexes, including backfill_progress table)
- Prices Ledger Processor Lambda deployed and registered as second S3 event notification target
on the shared stellar-ledger-data/ S3 bucket; confirmed processing live ledgers
- Asset Discovery Lambda running; assets table populated for at least 20 major assets
- Historical backfill ECS Fargate task started; processing from current tip backwards;
covers approximately 6 months of recent history by end of Tranche 1
- GET /backfill/status endpoint live and returning valid progress data
- CloudWatch alarm: backfill heartbeat >10 min stale → SNS notification
Acceptance criteria:
1. cdk deploy from a clean AWS account (sharing only the existing VPC/S3 bucket from Block
Explorer) produces the full Prices API stack with no manual steps
2. Prices RDS schema matches Section 3: all tables, partitions for current + next 2 months,
all indexes present (verifiable via \d+ psql output)
3. After 24 hours of live operation: price_ohlcv contains continuous 1-min candles for at
least 20 major assets (XLM, USDC, EURC, AQUA, BTC, ETH) with no gaps >2 candles
4. GET /backfill/status returns {"status": "running", "backfill_task_healthy": true} with
backfill_current_ledger advancing (ledger sequence decreasing toward ledger 1 over time)
5. CloudWatch alarm test: backfill task stopped manually → alarm fires within 15 minutes
6. earliest_data_available in GET /backfill/status shows a date approximately 6 months ago
Budget: $11,000, 20% of $55,000
### Tranche 2 — Public API (Weeks 5–9)
Work:
- Core API endpoints implemented and deployed:
- GET /assets (paginated, sortable, filterable)
- GET /assets/{asset_identifier} (single asset)
- GET /assets/{asset_identifier}/price (current price with sources breakdown)
- GET /assets/{asset_identifier}/ohlcv (OHLCV with timeframe/granularity params, with backfill_note when history is partial)
- POST /prices/batch (multi-asset current price)
- GET /oracles/{asset_identifier} (Reflector cross-reference data)
- GET /backfill/status
- API Gateway: response caching (TTLs per Section 6), usage plans, API key issuance, throttling
- Full VWAP formula wired into Current Price Updater Lambda (Section 5.5)
- Outlier detection: sources deviating >configurable% from inter-source median excluded
- Aquarius pool metadata integration: Aquarius appearing as a named source in VWAP
- Input validation: asset identifier format enforced, param ranges validated, 400 on invalid input
Backfill milestone for Tranche 2:
By the end of Week 9, the backfill task will have been running continuously for approximately
5 weeks. At ~150,000 ledgers/hour sustained, that is ~25.2 million ledgers processed, covering
approximately January 2022 to present (4+ years of price history, including all of the
Soroban era plus 2 years of pre-Soroban SDEX data).
Acceptance criteria:
1. All 7 endpoint groups return correct, schema-valid responses for at least 20 major assets
2. Load test (k6 or Locust, script provided): 100 req/s sustained for 5 minutes on
GET /assets/{id}/price → p95 latency <200ms, error rate <0.1%
3. Cache confirmed: consecutive identical requests within TTL window return X-Cache: Hit header
4. VWAP calculation verifiable against raw price_ohlcv rows for at least 3 assets
5. GET /backfill/status shows earliest_data_available ≤ 2022-01-01
6. OHLCV data for ?timeframe=all on USDC returns data points from at least January 2022,
with correct 1d candles verifiable against known USDC price history (spot-check dates
provided by reviewer)
Budget: $16,500, 30% of $55,000
### Tranche 3 — Production Launch & Validation (Weeks 10–13)
Work:
- OpenAPI 3.0 specification covering all endpoints
- Self-service onboarding portal (S3 + CloudFront): API key request form, quickstart guide,
example queries
- Integration test suite (automated, runs in CI): covers all 7 endpoint groups
- Load test report: k6 or Locust, documented test plan, results at 100/s, 500/s, 1000/s
- Security review checklist: IAM least-privilege, no secrets in env vars, input sanitization
- X-Ray tracing enabled end-to-end
- CloudWatch dashboards: API latency, error rate, ingestion lag, DB CPU, backfill progress
- GitHub repository made public with README, architecture docs, deploy instructions
Backfill milestone for Tranche 3:
By the end of Week 13, the backfill will have been running for approximately 9 weeks.
At ~150,000 ledgers/hour sustained, that is ~45 million ledgers processed, covering approximately
January 2018 to present (8+ years of price history).
The Tranche 3 review validates that backfill is progressing correctly, not that it is complete.
The reviewer should confirm:
- GET /backfill/status returns status: running, backfill_task_healthy: true
- earliest_data_available ≤ 2018-01-01
- estimated_hours_to_completion shows a reasonable remaining estimate (expected: 4–8 weeks)
- rate_ledgers_per_hour is stable (variation <20% over the last 24 hours)
- OHLCV data for ?timeframe=all on XLM returns data points from 2018 or earlier
The backfill continues running autonomously post-delivery. When status transitions to
completed, the GET /backfill/status endpoint records the completed_at timestamp. The team
will share a link to this endpoint with Stellar for post-delivery monitoring.
Acceptance criteria:
1. GET /backfill/status shows status: running, backfill_task_healthy: true,
earliest_data_available ≤ 2018-01-01, estimated_hours_to_completion present and valid
2. OpenAPI spec passes openapi-validator lint with no errors; Swagger UI deployed
3. Onboarding portal accessible; self-service API key request flow functional
4. Integration test suite: all tests pass on CI (GitHub Actions link provided)
5. Load test report: p95 <100ms at 100 req/s confirmed
6. Security checklist signed off: no wildcard IAM, RDS has no public endpoint, all secrets
in Secrets Manager, all inputs validated
7. GitHub repository public; cdk deploy from README works in a fresh AWS account
8. CloudWatch dashboard accessible to Stellar team (read-only IAM role); all alarms OK
9. 7-day post-launch monitoring report: uptime %, error rate, p95 latency, backfill rate
Budget: $22,000, 40% of $55,000
We're a software house specializing in Blockchain and AWS. We're also working on Soroban Explorer. Our company webpage: www.rumblefish.dev

