A public health and reputation record for Stellar off-ramp anchors — with a non-custodial execution path built on it.
Stellar Intel probes every registered anchor on a five-minute clock and writes
down what it finds: whether the endpoint answered, whether its stellar.toml
still parses, whether the issuer still matches the asset on-chain, and whether
a quote was available. Those observations accumulate into a published,
method-documented reputation score, and the same interface lets you settle an
off-ramp as a signed intent without this project ever holding your funds.
The record comes first because it is the part that works without anyone's cooperation. Built for users sending money home across Africa, Latin America and Southeast Asia via Stellar anchors — and for anyone who has to choose an anchor and would rather not do it on faith.
Live demo → stellar-intel.vercel.app
- Why this exists
- Tech stack
- Getting started
- Environment variables
- Documentation
- Contributing
- Contributors
- License
Moving a dollar from a wallet in San Francisco to a bank account in Lagos, Buenos Aires, or Manila is still a small act of faith. Rates drift between the quote and the signature, anchors fail silently, and the user finds out forty minutes later when nothing lands. Every serious stablecoin corridor has the same three unsolved problems: which anchor is actually cheapest right now, will it honour the quote, and is it up.
Nobody publishes the answers. An anchor's stellar.toml says what it supports;
it does not say whether that was true this morning. Stellar Intel answers the
third question directly and the first two as the data allows.
- The record. Seven registered anchors, probed every five minutes across
four signals — uptime, quote availability, issuer mismatch, TOML integrity.
Samples accumulate; the scoring method is published in
docs/ANCHOR_REPUTATION.md, and small samples are labelled as small rather than averaged into confidence they have not earned. - The execution path. An off-ramp expressed as a signed intent — "withdraw $100 USDC to this NGN account, at or better than this rate, before this deadline" — routed to an anchor that can satisfy it and ranked on landed value rather than headline rate.
- The agent surface. An MCP server exposes the same primitives the web UI uses, so an agent can read the record and execute against it.
Non-custodial by construction: every leg is signed by the user, the anchor takes custody under SEP-24, Stellar enforces atomicity. We never touch funds.
One honest caveat, because it changes what (2) means today. Firm SEP-38
quotes are scarce on the live network: as of 2026-08-05, one of the seven
registered anchors advertises a quote server at all, and it does not quote the
corridor it is registered for. Ranking across firm quotes is a capability that
becomes real as anchors adopt SEP-38, not one that is real today. The evidence,
and what is measured in the meantime, is in
docs/POSITIONING.md.
What this is and is not lives in docs/POSITIONING.md; the request/quote/sign/settle flow and the Soroban oracle wiring live in docs/ARCHITECTURE.md.
| Layer | Technology |
|---|---|
| Framework | Next.js 16, React 19, TypeScript |
| Styling | Tailwind CSS v4 |
| Data fetching | SWR |
| Blockchain | @stellar/stellar-sdk v16 |
| Deployment | Vercel |
Prerequisites: Node.js 20+, npm
# Clone the repository
git clone https://github.com/Ezedike-Evan/stellar-intel.git
cd stellar-intel
# Install dependencies
npm install
# Copy the example environment file and fill in your values
cp .env.example .env.local
# Start the development server
npm run devThe app will be available at http://localhost:3000.
# Type-check the codebase
npm run typecheck
# Lint
npm run lint
# Production build
npm run buildCopy .env.example to .env.local and set the following variables. The server
validates these at boot in lib/config.ts and fails fast on a missing or
malformed required value.
| Variable | Required | Default | Description |
|---|---|---|---|
NEXT_PUBLIC_STELLAR_NETWORK |
Yes | mainnet |
Stellar network (mainnet or testnet). |
NEXT_PUBLIC_HORIZON_URL |
Yes | https://horizon.stellar.org |
Horizon server URL. |
NEXT_PUBLIC_USDC_ISSUER |
Yes | — | USDC issuer public key (G…, 56 chars). Validated; no default. |
NEXT_PUBLIC_STELLAR_EXPERT_URL |
No | https://api.stellar.expert/explorer/public |
Stellar Expert API base for transaction links. |
NEXT_PUBLIC_APP_NAME |
Yes | — | Display name used in the UI. Validated; no default (boot fails if unset). |
ADMIN_SECRET_KEY |
Yes* | — | *Required only to access /admin/disputes and admin API routes. |
NEXT_PUBLIC_USDC_ISSUER has no default — set it (Circle's canonical USDC issuer
for mainnet). To point at the Stellar testnet, set:
NEXT_PUBLIC_STELLAR_NETWORK=testnet
NEXT_PUBLIC_HORIZON_URL=https://horizon-testnet.stellar.orgThe interactive developer portal — with API reference, quickstart guides, authentication docs, SDK documentation, and a live API playground — is at stellar-intel.vercel.app/docs.
The full doc surface lives under docs/. Start with:
| Document | What it covers |
|---|---|
| docs/POSITIONING.md | What this is and is not; ROZO and SDF Anchor Directory, with checkable evidence. |
| docs/PROPOSAL.md | Longer-form project thesis: what this is for, what it stopped claiming, and how it is sequenced. |
| docs/PRODUCTION_AUDIT.md | Claim-by-claim: what is enforced in CI, what is only documented, and what is not true yet. |
| docs/ARCHITECTURE.md | System diagram, intent router, Soroban oracle, MCP/agent surface, SEP-10/24/38 flow. |
| docs/ROADMAP.md | Milestone waves v1.0 → v5, with tickable per-wave scope. |
| docs/INTENT_API.md | Intent schema, signing rules, replay protection, curl + TS snippets. |
| docs/GRAPHQL_API.md | Additive GraphQL surface over the same REST v1 resources — schema, example queries, error shape. |
| docs/ANCHOR_REPUTATION.md | Scoring methodology, composite formula, dispute process. |
| docs/ORACLE_SPEC.md | Soroban contract interface, consumer examples, publisher whitelist policy. |
| docs/ORACLE_MIGRATION.md | v1 → v2 corridor storage migration: runbook, idempotency, and the v1 compatibility guarantee. |
| docs/MCP.md | Tool list, npx tsx scripts/mcp/server.ts run instructions, example prompts, agent-safety notes. |
| docs/AGENT_POSITIONING.md | How agent builders should route between Stellar Intel (anchors/fiat exit) and ROZO (chains). |
| docs/SECURITY.md | Non-custodial guarantee, key handling, disclosure email, supply-chain policy. |
| docs/FAQ.md | "Is this custodial?", "what if an anchor fails?", "how are we different?". |
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.
All contributors are expected to follow the Code of Conduct.
Good places to start:
- Issues tagged
good-first-issue— scoped, unblocked, reviewer-ready. - Issues tagged
help-wanted— larger tickets actively looking for owners. - Anchor integrations — see docs/ANCHOR_ONBOARDING.md.
Every contributor merged during OSS week is credited by name in the grant resubmission document.
Thanks to everyone who has shipped code, docs, designs, or anchor integrations for Stellar Intel.
![]() Evan Ezedike Creator & maintainer 💻 📖 🏗️ 🚧 |
Your name here Open a PR → |
Emoji key follows the all-contributors spec: 💻 code · 📖 docs · 🎨 design · 🏗️ infrastructure · 🚧 maintenance · 🔌 anchor integration.
