CryptoPulse AI is an explainable FinTech market-intelligence project for analysing cryptocurrency news sentiment, identifying market-relevant events, and investigating how those signals relate to subsequent price, volume, and volatility changes.
The project begins with Bitcoin and Ethereum. It is designed as a research and decision-support tool, not a trading bot or source of financial advice.
The system preserves evidence and time lineage from ingestion through dashboard presentation. See the model card, data sheet, API reference, and v1.0 release notes.
Crypto sentiment projects often stop at word clouds or positive/negative labels. Those outputs do not show which asset the sentiment concerns, whether duplicate stories distorted the result, when the information became available, or whether sentiment had any measurable relationship with later market behaviour.
CryptoPulse AI will build a reproducible pipeline from source data to an explainable, time-aware sentiment index and market-impact analysis.
- Collect permitted Bitcoin and Ethereum news and OHLCV market data
- Preserve source, publication, retrieval, and processing timestamps
- Validate, clean, and deduplicate incoming articles
- Detect which crypto asset each statement concerns
- Compare a transparent VADER baseline with a financial-language model
- Evaluate models using a human-labelled test set
- Classify market-relevant events such as regulation, security incidents, adoption, and protocol changes
- Produce hourly and daily sentiment indices with evidence coverage
- Compare sentiment with subsequent returns, volume, and volatility using chronological evaluation
- Explain individual classifications and aggregate signals
- Provide an interactive dashboard and downloadable research reports
CryptoPulse AI will not claim that sentiment causes price changes, guarantees returns, or provides personalised investment advice. v1.0 will not execute trades or connect to exchange accounts.
See the project requirements, development roadmap, decision log, and responsible-use policy.
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .The virtual environment and installed packages are ignored by Git.
The repository contains a small, entirely synthetic dataset for testing the contracts. From the repository root:
$env:PYTHONPATH="src"
python -m cryptopulse.validation data/sample
python -m unittest discover -s tests -vSee the data dictionary and sample-data policy.
Phase 3 provides a NewsAPI adapter for permitted news metadata and a public Coinbase Exchange adapter for exchange-specific BTC/USD and ETH/USD candles. Automated tests use offline fake responses and never consume live API quota.
See the connector setup, provenance, and limitations. Copy .env.example to .env only when you are ready to test NewsAPI with your own development key.
Phase 4 creates model-ready text without overwriting raw observations, assigns visible quality flags, and groups exact or near-duplicate stories using documented lexical thresholds. The generated reports show every grouping decision.
$env:PYTHONPATH="src"
python -m cryptopulse.preprocessingSee preprocessing and quality design.
Phase 5 evaluates a versioned VADER baseline against target-specific annotations. Reports include class-wise metrics, confusion matrices, deduplicated evaluation, the locked test split, and individual error examples. Synthetic sample metrics verify the pipeline and are not performance claims.
$env:PYTHONPATH="src"
python -m cryptopulse.sentimentSee the VADER baseline and annotation guidelines.
Phase 6 adds a revision-pinned, optional FinBERT adapter and compares it with VADER using the same annotations, deduplication policy, and test split. It also measures multiclass Brier score and expected calibration error. The synthetic sample validates the pipeline but cannot establish which model is better.
python -m pip install -e ".[ml]"
$env:PYTHONPATH="src"
python -m cryptopulse.finbertSee the FinBERT comparison methodology and licence boundary.
Phase 7 resolves explicit Bitcoin and Ethereum aliases, separates contrastive multi-asset clauses, and supplies target-specific evidence to both sentiment models. Missing and ambiguous targets are reported rather than hidden.
$env:PYTHONPATH="src"
python -m cryptopulse.entity_resolutionSee the entity-resolution methodology and limitations.
Phase 8 classifies target-specific evidence into market-event categories such as regulation, security incidents, adoption, protocol changes, and market commentary. It supports secondary labels, records matched rules, and abstains when evidence is insufficient.
$env:PYTHONPATH="src"
python -m cryptopulse.eventsSee the event-classification methodology.
Phase 9 aggregates target-specific evidence using recency, confidence, duplicate-group, and source-independence weights. Direction and evidence coverage remain separate, and every index point can be reconstructed from its contribution report.
$env:PYTHONPATH="src"
python -m cryptopulse.indexingSee the sentiment-index methodology and limitations.
Phase 10 aligns completed sentiment windows with strictly later returns, volume changes, and range volatility. It uses chronological splits, compares simple direction baselines, and blocks inferential claims when fewer than 30 observations are available.
$env:PYTHONPATH="src"
python -m cryptopulse.researchSee the market-impact methodology and safeguards.
Phase 11 provides one complete pipeline command, a migrated SQLite operational database, run history, overlap protection, freshness checks, an optional FastAPI service, and a local scheduler.
$env:PYTHONPATH="src"
python -m cryptopulse.operationsTo run the read-only development API:
python -m pip install -e ".[api]"
python -m cryptopulse.apiSee the backend and operations guide.
Phase 12 adds a responsive Next.js and TypeScript interface for investigating Bitcoin and Ethereum sentiment, evidence coverage, event drivers, and the current research boundary. It clearly labels synthetic demo data and does not present the interface as a trading product.
npm install
npm run devOpen http://localhost:3000. The dashboard uses its committed synthetic demonstration data by
default. To connect the Phase 11 API, follow the web dashboard guide.
Phase 13 adds a permitted derived-index CSV download, a print-ready research report that can be saved as PDF, and locally configurable research alerts. Alert rules are stored in the browser and describe observed evidence conditions; they are not price forecasts or trading recommendations.
See the reports and alerts guide.
Phase 14 adds versioned model/component metadata, data-quality and drift monitoring, production configuration checks, non-root Docker containers, GitHub CI, dependency auditing, secret scanning, and an explicit security/governance review.
$env:PYTHONPATH="src"
python -m cryptopulse.monitoring --project-root .
docker compose up --buildDocker is optional and does not host the application publicly. See the MLOps and operations guide and security policy.
Phase 14 - MLOps, quality, and security: complete
All fifteen planned v1.0 phases are complete. See the changelog and follow the
owner-controlled release checklist before creating the GitHub v1.0.0 tag.
Original project code and documentation are licensed under the MIT License. Third-party datasets, APIs, models, news content, and trademarks remain subject to their own licences and terms.
