Inspiration
Financial analysts spend hours reading long company reports and retyping figures into spreadsheets. The problem is not only the time required. A language model can produce a number that looks correct but does not actually exist in the source document. In credit analysis, one incorrect figure can distort ratios, risk scores, and business decisions.
We built SOLFV around a simple principle:
The model extracts. The arithmetic decides.
What SOLFV Does
SOLFV converts company financial reports into structured, explainable financial intelligence.
The system:
- Targets the pages that contain the relevant financial statements.
- Detects and masks sensitive information before external model calls.
- Uses AI to extract financial figures and source coordinates.
- Validates the extraction against deterministic accounting relationships.
- Assigns trust labels such as VERIFIED, DERIVED, and UNVERIFIED.
- Quarantines figures that fail reconciliation.
- Withholds dependent ratios instead of estimating them.
- Lets analysts click a figure and inspect its source cell in the PDF.
- Provides live cryptocurrency market intelligence.
- Generates crypto research candidates for human review.
The most important behavior is refusal. If a balance-sheet figure is changed or cannot be reconciled, SOLFV does not continue with a confident but unreliable risk score. It explains what failed and which conclusions must be withheld.
Solana and x402
SOLFV includes an optional paper-investment workflow powered by Solana devnet.
When a user selects a crypto asset and creates a simulated investment request:
- SOLFV returns an HTTP 402 payment challenge.
- Phantom signs a small devnet USDC payment containing a verification memo.
- The backend verifies the transaction on Solana.
- Supabase records the verified payment.
- SOLFV fetches a live crypto reference price.
- The system creates a simulated paper-order receipt.
The analysis itself is free. The Solana payment is used only for the optional simulated investment action.
No real cryptocurrency is purchased, transferred, or held by the prototype.
How We Built It
The reconciliation engine is implemented as deterministic Python code with no model or network dependency. The API is built with FastAPI. The frontend uses React, TypeScript, Vite, and Tailwind.
The payment layer uses Solana devnet, Phantom, SPL USDC, transaction memo verification, and an x402-style HTTP 402 flow. Supabase PostgreSQL stores verified payment records and audit information.
Live crypto market data is retrieved through backend-proxied CoinGecko and GeckoTerminal endpoints. DeepSeek is used as an AI research and extraction layer when configured, but the model does not replace deterministic arithmetic checks.
Challenges
The most difficult challenges were:
- Making extracted figures traceable to exact PDF locations.
- Handling missing or inconsistent financial statement inputs.
- Ensuring ratios are calculated only after reconciliation.
- Designing a payment flow that demonstrates real Solana settlement without pretending to execute a real investment.
- Connecting a browser wallet to an SPL USDC transaction while keeping private keys out of the application.
- Keeping payment records auditable without storing raw documents or detected personal data.
What We Learned
We learned that trust is not created by asking a model to be more confident. It is created by limiting what the model is allowed to do and checking its output with independent deterministic rules.
We also learned that x402 is useful as a machine-native payment protocol, but a payment gateway is not the same as a cryptocurrency exchange. In this prototype, Solana demonstrates verified payment settlement while the investment outcome remains a paper transaction.
Future Direction
A production version could support enterprise subscriptions, licensed market-data providers, approved digital-asset partners, stronger authentication, and regulated trade execution. Those capabilities are deliberately outside the current prototype.
Built With
- coingecko
- css
- deepseek
- devnet
- fastapi
- geckoterminal
- phantom
- postgresql
- pymupdf
- python
- react
- solana
- supabase
- tailwind
- typescript
- usdc
- vite
- x402
Log in or sign up for Devpost to join the conversation.