Skip to main content
Glama

FactLedger

Reproducible Solana wallet intelligence. Read-only. Deterministic. Evidence-cited.

CI License: MIT API status

FactLedger turns raw Solana activity into behavioral metrics, an intelligence score, and a risk assessment — using public on-chain data only. It follows three rules it never breaks:

  • Read-only — never requests or stores private keys, seed phrases, or secrets, and never signs a transaction.

  • Deterministic — the same input always produces the same output; a CI test proves it on every commit.

  • Evidence-cited — every finding names the signature, slot, and program it came from. When a fact isn't available, the answer is an explicit UNKNOWN / null, never a guess.

Most wallet analytics ask you to trust a black box. FactLedger shows its work, so anyone can reproduce a result and check the math.


Why it's different

Wallet scoring is a crowded space, and almost all of it is opaque: a number appears, and you take it on faith. FactLedger's wedge is auditability. Because the scoring model is fixed and transparent and the code is MIT-licensed, its central claim — that every score can be independently reproduced from the same on-chain input — is something anyone can actually exercise, not just believe.

That makes it suited to uses where a number has to be defensible: compliance and audit workflows, agent tooling that must not hallucinate, and any integration that needs a paper trail behind a risk call.


Related MCP server: cabal-hunter-mcp

The intelligence score

A transparent 0–100 score built from four sub-scores, each derived only from observable blockchain facts:

Component

Measures

Activity

Transaction frequency and distinct-token diversity

Sophistication

Diversity of programs the wallet interacts with

Consistency

Regularity of activity patterns over time

Efficiency

Share of the wallet's transactions that succeeded

A separate risk model reads the same metrics — failure rate, abnormal frequency, single-program concentration, volatility — and returns low / medium / high, with the exact numbers that triggered it.


Evidence & confidence

Confidence is a fixed mapping, never an invented per-instance number:

State

Confidence

Meaning

confirmed

100

Verified on-chain fact

candidate

50

Recognized but not fully decoded

unknown

0

Not available — returned as such, never filled in

What's verified today — and what's honestly still open

Publishing this openly is the point: a project that claims reproducibility must be auditable about its own maturity.

Capability

State

Notes

Read-only wallet data & balances

✅ verified

Transactions, SPL balances, metadata read live from RPC

Deterministic scoring & risk

✅ verified

Covered by an automated determinism test in CI

Evidence engine

✅ verified

Per-instruction citations with the fixed mapping above

Token mint/freeze-authority checks

✅ verified

Never returns a bare "safe"

DEX adapters (Raydium V4, Jupiter V6)

🟡 candidate

Program IDs verified; amount/mint extraction in progress

Live alert stream over RPC

🟡 candidate

Same deterministic pipeline; pending production-RPC validation

Market-event tracking

⚪ unknown

No pipeline yet — returns explicit UNKNOWN by design


API

Live developer-preview REST API with request validation, rate limiting, and API-key support. The same read-only pipeline is also exposed as an MCP server, so Claude Desktop, Claude Code, and other MCP hosts can call it directly as tools.

Wallet

GET /api/v1/wallet/:address/analysis        Full read-out
GET /api/v1/wallet/:address/intelligence    Score + components
GET /api/v1/wallet/:address/risk            Risk + reasoning
GET /api/v1/wallet/:address/evidence        Cited findings

Token & transaction

GET /api/v1/token/:mint/security            Mint/freeze authority checks
GET /api/v1/token/:mint/price               Priced, or null if unavailable
GET /api/v1/transaction/:signature          Transaction metadata
GET /api/v1/health                          Liveness

Example:

curl 'https://factledger-api.onrender.com/api/v1/wallet/<address>/analysis'

git clone https://github.com/fas988840-dev/FactLedger.git
cd FactLedger
npm install
cp .env.example .env.local     # never commit real credentials
npm run dev                    # or: npm run build && npm run start
npm run mcp                    # run as an MCP server over stdio

Requires Node.js 18+ for the API. The dashboard requires Node.js 20.9+. See QUICK_START.md for the full setup and CLAUDE.md for architecture and design principles.

Release stage: developer preview. See PRODUCTION_READINESS.md for the current v1.0 gates.

Security

  • No private keys, ever — read-only access, no signing, no secret storage.

  • API-key auth — required before any public deployment (API_KEYS); the server warns on stderr if a production deploy is left open.

  • Rate limiting — two tiers per IP via express-rate-limit.

  • Safe CORS defaults — GET/OPTIONS only, explicit origin allowlist.

  • Dependency scanning — Dependabot + npm audit in CI.

See SECURITY.md.

Support

FactLedger is built and maintained by one developer with no company, no token, and no paid tier that changes an answer. Funding goes to RPC capacity and monitoring, evidence fixtures, and tests.

  • GitHub Sponsors — profile under review; the Sponsor button enables it once approved.

  • Options and rules — see FUNDING/DONATE.md. The only canonical receiving address is recorded in FUNDING/RECEIVING_WALLET.md; FactLedger will never ask for private keys or seed phrases, and never for a transfer to any other address.

Disclaimers

FactLedger provides data analysis only. Scores are derived from observable on-chain behavior, are not financial advice, do not indicate portfolio quality, and do not predict performance. A clean security check is never a claim that a token or wallet is “safe.” Users are solely responsible for their own decisions.

License

MIT — see LICENSE. © 2026 Abdullah Al-Anzi.

The code is open on purpose: a license forbidding copying would make the project’s core claim — reproducible, auditable scores — impossible to exercise.

Related MCP Connectors

Related MCP Servers