Files
calctext/_bmad-output/implementation-artifacts/3-2-cryptocurrency-provider.md
2026-03-16 19:54:53 -04:00

1.6 KiB

epic, story, title, status
epic story title status
3 3.2 Cryptocurrency Provider draft

Epic 3 — Currency & Cryptocurrency

Goal: Real-time and historical currency conversion with 180+ fiat and 50+ crypto.

Story 3.2: Cryptocurrency Provider

As a CalcPad user, I want live cryptocurrency rates for the top 50+ coins updated hourly, So that I can convert between crypto and fiat currencies.

Acceptance Criteria:

Given the engine is initialized with network access When crypto rates are requested Then it fetches live rates from CoinGecko free API (or configured provider) And at least 50 top cryptocurrencies by market cap are included (BTC, ETH, SOL, ADA, etc.)

Given crypto rates have been fetched When the rates are stored Then they are cached locally on disk with a timestamp And the cache refresh interval is configurable (default: 1 hour)

Given the expression 1 BTC in USD When the engine evaluates it with current rates Then it returns the current USD value of 1 Bitcoin And the result metadata includes the rate timestamp

Given the expression $1000 in ETH When the engine evaluates it Then it returns the equivalent amount in Ethereum

Given the device is offline When a crypto conversion is requested Then the engine uses cached rates And the result metadata indicates the age of the cached rates

Given a crypto symbol that could be ambiguous (e.g., a future coin with a symbol matching a fiat currency) When the engine encounters it Then fiat currencies take precedence by default And the user can disambiguate using explicit notation (e.g., crypto:SOL)