Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ’» Developer Tools
  3. Stellaroid Earn
S
Health: Not checked yetWe have not completed a health check for this listing yet.Last checked 8/11/2026, 12:03:05 AM

Stellaroid Earn

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View RepositoryVisit Website

Read-only MCP server: verify credentials and browse escrows on the Stellar testnet contract.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "stellaroid-earn": {
      "command": "npx",
      "args": [
        "-y",
        "stellaroid-earn"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing AlternativesπŸ’» More in Developer Tools

Documentation Overview

Stellaroid Earn

A reusable prove, verify, pay primitive for on-chain credentials, built for Stellar PH Bootcamp 2026

Issue, verify, and pay graduates on Stellar testnet: Soroban smart contract, 8 supported wallets plus WalletConnect for mobile (Freighter, Albedo, LOBSTR, xBull & more), installable PWA, end-to-end.

Live Demo Stellar Testnet Soroban SDK (deployed) Contract CI Next.js License: MIT

Stellaroid Earn

Live demostellaroid.tech
Contract (current)CAD6C24POQGRYXMBNBEGVDHUROF5ZC37XRDC6NCVILTXWMYJIBMISZCV
Tx evidenceinit Β· register Β· verify
Source verificationDeployed WASM hash 1b7479f1ca0f12846bbfdd8f0681670692e29e1f20618150912f010b7caf4b9f. Rebuilding the v3.0.0 release tag reproduces it byte for byte, and the deployed bytecode records its own build toolchain (rsver 1.95.0, rssdkver 26.1.0, cliver 27.0.0) so you can check it without trusting this README. Verified weekly by contract-verification.yml. Runbook: docs/operations/contract-verification.md.
SubmissionRise In Β· Stellar Smart Contract Bootcamp Β· Stellar PH Bootcamp 2026
ResultTop 5 / 105 participants Β· Score: 75.00 Β· full journey

Top 5 - Stellar Bootcamp Prize Pool


Project Status

The bootcamp/event submission is complete. Stellaroid Earn is now maintained as a living Stellar credential proof project.

  • Roadmap: ROADMAP.md
  • Maintenance checks: MAINTENANCE.md
  • Docs index: docs/README.md
  • Release and deployment: docs/operations/release-and-deployment.md
  • Pro-research intake: docs/planning/research-intake-status.md
  • Demo checklist: docs/operations/demo-checklist.md
  • Canonical live URL: stellaroid.tech
  • Operational status route: /status
  • Pilot intake route: /pilot
  • Case study (how it was built and verified): /case-study
  • Handoff (repo state, invariants, what remains): HANDOFF.md
  • Campaign and launch graphics: assets/campaign/

www.stellaroid.tech and earn.stellaroid.tech redirect to the canonical apex URL.

Version archive

Each monthly build cycle is preserved as a frozen snapshot at a pinned subdomain, independent of the live site:

VersionCycleSnapshot
v1Aprilv1.stellaroid.tech
v2Junev2.stellaroid.tech
v3July (current)v3.stellaroid.tech

stellaroid.tech always serves the latest production build (main). The April source lives on the april-bootcamp-and-monthly-builder branch; June and July on june-monthly-builder and july-monthly-builder.

July v3.2 product surface

  • Wallet-less guided demo - /demo: the full register β†’ verify β†’ escrow β†’ payout story on real seeded testnet data (a released 25 XLM escrow and a live funded one), with per-step stellar.expert audit links. No wallet, no extension, works on a phone.
  • Opportunity directory - /opportunity: every live escrowed paid trial on the contract, with wallet-scoped filters (for you / created by you) and deep links into the milestone console.
  • Live escrow evidence - the status page and activity feeds now decode all escrow events (create/fund/submit/approve/release/refund) alongside credential events, deduplicated across the RPC and the Stellar Expert indexer; /app shows the events involving your connected wallet.
  • On-site pilot intake - /pilot has a real lead-capture form (rate-limited, honeypot-guarded, delivered by email) instead of a link-out, plus /contact, an honest privacy & terms page, and an RFC 9116 security.txt.
  • Performance pass - the multi-megabyte stellar-sdk is lazy-loaded out of every route's First Load JS (/app dropped 483 β†’ ~260 KB gzipped), the brand typefaces (Orbitron/Exo 2) are self-hosted via next/font, and first-party client-error telemetry reports runtime failures to server logs with no third-party service.
  • Installable PWA - manifest with maskable icons, service worker (network-first pages, offline fallback, per-deploy cache versioning; verification pages are never served from cache), iOS splash screens. Add it to a phone home screen from the live site.
  • Mobile-first redesign - app-style bottom navigation with a More sheet, auto-hiding header, bottom-sheet dialogs, full safe-area/notch handling.
  • Developer docs hub - /docs: contract reference (all 19 functions, 17 error codes, 16 events), integration, architecture, and security posture.
  • Content engine - audience landing pages for bootcamps, employers, and graduate payouts, plus a guides library and a verifiable-credentials glossary - all with FAQPage/HowTo/DefinedTermSet structured data and an llms.txt.
  • Multi-wallet signing - Freighter and Albedo natively, WalletConnect for mobile wallets (LOBSTR, xBull, Hana, Freighter mobile), and on desktop xBull, Rabet, LOBSTR, Hana, Klever, and Bitget via Stellar Wallets Kit - all behind one provider interface, lazy-loaded on first use. WalletConnect activates when a Reown project id is configured.

The public entry flow is organized around three personas: Issue, Verify, and Hire. Verified proof pages now hand employers into /employer with the proof hash and candidate wallet preloaded, then require a review checklist before escrow creation. They also hand recruiters into /talent/<address>?proof=<hash> so the candidate passport can show a known proof without pretending wallet-wide credential discovery exists yet. Issuer registration now explains approval readiness before signing, and /pilot keeps the first rollout bounded to a small testnet issuer pilot. Employer proof packs include a recruiter-safe summary plus an unsigned standards-alignment preview for W3C VC 2.0 and Open Badges 3.0 mapping. That preview is not a signed standards credential yet.


30-Second Pitch

Problem: Bootcamp certificates are PDFs that anyone can fake and no one can independently verify. Employers skip verification or pay for a background check service.

Solution: Stellaroid Earn anchors credential hashes on a Soroban smart contract where approved issuers register and verify certificates, anyone checks proof at a public URL with no login, and employers pay graduates in XLM on Stellar testnet, all on-chain.

Why Stellar: Sub-cent fees and 5-second finality make issuing credentials cheap enough that skipping it makes no sense. simulateTransaction lets anyone verify with zero wallet setup. Native XLM via SAC closes the loop from proof to payout on one chain.

From proof to payment: register, verify, read, fund, approve, release


Feature Gallery

Landing page
Discover - Landing page with 3-step how-it-works flow
Verified proof block
Verify - On-chain credential with green Verified badge
App dashboard
Issue & Pay - Dual-role dashboard for issuers and employers
Mobile proof card
Share - QR-scannable proof card on any mobile browser

Live Trust Artifact

Every credential produces a public Verified Badge URL - no wallet, no login, no API key. Green means verified on-chain. Amber means issued but not yet verified.

Verified credential
Verified
Try it yourself β†’
Issued (locked) credential
Issued (locked)
Try it yourself β†’

Contract on Stellar Expert: CAD6C24P…ISZCV

Contract history on Stellar Expert


Architecture

Full architecture document: docs/reference/architecture.md

mermaid
sequenceDiagram
  autonumber
  actor Issuer as Approved Issuer
  actor Student
  actor Employer
  participant FE as Stellaroid Earn (Next.js)
  participant FR as Freighter
  participant SC as Soroban contract<br/>(stellaroid_earn)
  participant XLM as Stellar testnet

  Issuer->>FE: Open /app, paste student wallet + cert hash
  FE->>FR: requestAccess + signTransaction(register_certificate)
  FR->>XLM: Submit tx
  XLM->>SC: register_certificate(issuer, student, hash, title, cohort, uri)
  SC-->>XLM: cert_reg event
  Issuer->>FE: Click "Approve credential"
  FE->>FR: signTransaction(verify_certificate)
  FR->>XLM: Submit tx
  XLM->>SC: verify_certificate(verifier, hash)
  SC-->>XLM: cert_ver event
  Student->>FE: Share /proof/<hash> (QR or link)
  Note over FE,SC: Read-only get_certificate via simulateTransaction
  Employer->>FE: Open /app as Employer, paste hash + amount
  FE->>FR: signTransaction(link_payment)
  FR->>XLM: Submit tx (XLM transfer + payment event)

Design decisions:

  • soroban-sdk 26.1 with typed #[contracterror] enum (17 variants), persistent + instance storage, TTL 518k/1.04M ledgers
  • Issuer trust layer: self-register β†’ admin approve β†’ issue credentials. Suspended issuers are blocked on-chain
  • Two read paths: server-side RSC with revalidate=60 (CDN-cached proof pages) + client-side simulateTransaction (dashboard state)
  • One write path: Freighter signs β†’ sendTransaction β†’ poll for result
  • CSP locks connect-src to *.stellar.org and the WalletConnect relay - no other third-party origins

Contract Integration (Frontend to Soroban)

The frontend talks to the deployed stellaroid_earn contract with @stellar/stellar-sdk. The client lives in frontend/src/lib/contract-client.ts (writes + client-side reads) and frontend/src/lib/contract-read-server.ts (server-rendered proof pages). The SDK is lazy-loaded so its multi-megabyte bundle stays out of every route's first load.

server.ts
// frontend/src/lib/contract-client.ts
import type * as StellarSdk from "@stellar/stellar-sdk";

// Lazy-load the SDK once, on the first contract read or wallet action.
const getSdk = () => import("@stellar/stellar-sdk");

// READ (no wallet): simulate an invocation against Soroban RPC.
const server = new sdk.rpc.Server(appConfig.rpcUrl);
const sim = await server.simulateTransaction(tx);
const value = sdk.scValToNative(sim.result.retval);

// WRITE: build with TransactionBuilder, wallet signs, submit + poll.
const tx = new sdk.TransactionBuilder(account, {
  fee: sdk.BASE_FEE,
  networkPassphrase: getExpectedNetworkPassphrase(),
})
  .addOperation(
    sdk.Operation.invokeContractFunction({
      contract: appConfig.contractId,   // NEXT_PUBLIC_SOROBAN_CONTRACT_ID
      function: method,                  // e.g. "verify_certificate"
      args,                              // sdk.nativeToScVal(...) per argument
    }),
  )
  .setTimeout(30)
  .build();

const signedXdr = await wallet.sign(tx.toXDR());        // Freighter / Albedo / Stellar Wallets Kit
const sent = await server.sendTransaction(sdk.TransactionBuilder.fromXDR(signedXdr, passphrase));
const result = await server.pollTransaction(sent.hash);

Every public contract function has a matching typed wrapper in the client. The wrapper passes the exact contract function name to Operation.invokeContractFunction:

Contract function (contracts/stellaroid_earn/src/lib.rs)Frontend wrapper (contract-client.ts)
register_issuerregisterIssuer()
approve_issuerapproveIssuer()
suspend_issuersuspendIssuer()
get_issuergetIssuer() (read / simulateTransaction)
register_certificateregisterCertificate()
verify_certificateverifyCertificate()
get_certificategetCertificate() (read / simulateTransaction)
revoke_certificaterevokeCertificate()
suspend_certificatesuspendCertificate()
reward_studentrewardStudent()
link_paymentlinkPayment()
create_opportunitycreateOpportunity()
fund_opportunityfundOpportunity()
submit_milestonesubmitMilestone()
approve_milestoneapproveMilestone()
release_paymentreleasePayment()
refund_opportunityrefundOpportunity()
get_opportunitygetOpportunity() (read / simulateTransaction)

The network passphrase in NEXT_PUBLIC_STELLAR_NETWORK_PASSPHRASE must match the network the contract is deployed on (testnet), or the wallet rejects the signature.


Quick Start

Prerequisites

  • Rust (stable) + wasm32v1-none target
  • Stellar CLI v26+
  • Node.js 20+ and npm
  • Freighter browser extension set to Testnet

Full setup guide: docs/reference/pre-workshop-setup-guide.pdf

Smart Contract

bash
cd contracts/stellaroid_earn
make test                     # cargo test (contract suite)
make build                    # builds wasm32v1-none target

# Deploy to testnet
stellar keys generate my-key --network testnet --fund
stellar contract deploy \
  --wasm target/wasm32v1-none/release/stellaroid_earn.wasm \
  --source my-key --network testnet

CI runs the contract gate with cargo test -p stellaroid_earn --locked and cargo build -p stellaroid_earn --target wasm32v1-none --release --locked in Contract CI.

Frontend

bash
cd frontend
cp .env.example .env.local    # fill in contract ID + read address
npm install
npm run dev                   # http://localhost:3000

Environment variables (.env.local):

env
NEXT_PUBLIC_STELLAR_RPC_URL=https://soroban-testnet.stellar.org
NEXT_PUBLIC_STELLAR_NETWORK=TESTNET
NEXT_PUBLIC_STELLAR_NETWORK_PASSPHRASE=Test SDF Network ; September 2015
NEXT_PUBLIC_SOROBAN_CONTRACT_ID=<your deployed contract ID>
NEXT_PUBLIC_STELLAR_ADMIN_ADDRESS=<your admin G... address>
NEXT_PUBLIC_STELLAR_READ_ADDRESS=<any funded testnet address for read-only calls>
NEXT_PUBLIC_SOROBAN_ASSET_ADDRESS=CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC
NEXT_PUBLIC_SOROBAN_ASSET_CODE=XLM
NEXT_PUBLIC_SOROBAN_ASSET_DECIMALS=7
NEXT_PUBLIC_STELLAR_EXPLORER_URL=https://stellar.expert/explorer/testnet
NEXT_PUBLIC_CANONICAL_URL=https://stellaroid.tech

Verifiable On-Chain

Every action in the demo flow is a real transaction on Stellar testnet. Click any hash to verify on Stellar Expert.

ActionTx HashResult
initfaf278d7…85e6Contract initialized with admin + XLM token
register_certificate8c20a944…a0e8Demo credential hash registered for student
verify_certificate67137aa8…2cb9Status changed to Verified

Live certificates (testnet, contract CAD6C24P…):

HashCohortStatus
c02ce160…aea3Stellar PH Bootcamp 2026Verified

Contract Functions

FunctionCallerDescription
init(admin, token)DeployerInitialize contract with admin address and XLM token
register_issuer(address, name, website, category)AnyoneSubmit issuer application (Pending status)
approve_issuer(admin, issuer)AdminApprove an issuer to register credentials
suspend_issuer(admin, issuer)AdminSuspend a misbehaving issuer
get_issuer(issuer)AnyoneRead issuer record and status
register_certificate(issuer, student, cert_hash, title, cohort, metadata_uri)Approved issuerRegister a credential hash for a graduate
verify_certificate(issuer, cert_hash)Admin or issuerMark a credential Verified
revoke_certificate(issuer, cert_hash)Admin or issuerPermanently revoke a credential
suspend_certificate(issuer, cert_hash)Admin or issuerTemporarily suspend a credential
reward_student(student, cert_hash, amount)AdminAdmin-initiated XLM payment to a graduate
link_payment(employer, student, cert_hash, amount)EmployerEmployer pays graduate in XLM, linked to credential
get_certificate(cert_hash)AnyoneRead full credential record and status
create_opportunity(employer, candidate, cert_hash, title, amount, milestone_count)EmployerOpen a paid-trial escrow against a verified credential
fund_opportunity(employer, opp_id)EmployerEscrow the full trial amount into the contract
submit_milestone(candidate, opp_id)CandidateMark the next milestone as delivered
approve_milestone(employer, opp_id)EmployerApprove the submitted milestone
release_payment(employer, opp_id)EmployerRelease the approved milestone share to the candidate
refund_opportunity(employer, opp_id)EmployerReturn remaining escrowed funds to the employer
get_opportunity(opp_id)AnyoneRead a paid-trial opportunity record

Credential Status Lifecycle

Code
Issued --> Verified  (issuer or admin calls verify_certificate)
       --> Revoked   (issuer or admin calls revoke_certificate)
       --> Suspended (issuer or admin calls suspend_certificate)
       --> Expired   (reserved status; new credentials currently use expires_at = 0 unless a future issuer flow sets expiry)

Tests

Contract tests cover the trust layer, access control, revocation, opportunity escrow, milestone caps, and events:

Code
running 12 tests
test test::t1_happy_path_with_approved_issuer ... ok
test test::t2_unapproved_issuer_cannot_issue ... ok
test test::t3_suspended_issuer_cannot_issue ... ok
test test::t4_wrong_approved_issuer_cannot_verify ... ok
test test::t5_revoked_credential_blocks_payment ... ok
test test::t6_issuer_events_emit ... ok

test result: ok. 12 passed; 0 failed; 0 ignored
TestWhat it verifies
t1Happy path: approved issuer registers + verifies credential, admin rewards student
t2Pending (unapproved) issuer cannot register a credential
t3Suspended issuer cannot register a credential
t4Approved issuer A cannot verify issuer B's credential
t5Revoked credential blocks downstream payments
t6Events emitted correctly for init, register_issuer, approve_issuer
t7-t10Opportunity create, fund, submit, approve, release, refund, and invalid transition behavior
t11Opportunity milestone count is capped to prevent unbounded work/rendering
t12Employer can refund after candidate submission to avoid escrow lock

Security

Full security checklist: docs/reference/security.md

Covers: smart contract access control, frontend CSP/HSTS/X-Frame-Options, strict input validation, JSON-LD escaping, URL sanitization, proof-claim integrity, fee-sponsor restrictions, error normalization, SSRF prevention, and operational security.


Advanced Feature: Fee Sponsorship (Gasless Transactions)

Stellaroid Earn keeps fee bump transaction support (CAP-0015) behind a server-to-server authorization boundary. Public browser clients do not automatically send signed XDR to /api/fee-bump.

How it works:

  1. A trusted server obtains a user-signed transaction for an allowed Stellaroid Earn method
  2. The trusted server calls /api/fee-bump with Authorization: Bearer <FEE_SPONSOR_TOKEN>
  3. The route enforces XDR size, signature, operation count, network, contract ID, method allow-list, and fee-ceiling checks
  4. Only then does the sponsor key wrap the transaction as a fee bump

Implementation:

  • Server route: frontend/src/app/api/fee-bump/route.ts
  • Request policy: frontend/src/lib/fee-bump-policy.ts
  • Config: FEE_SPONSOR_SECRET + FEE_SPONSOR_TOKEN are server-only. Public browser auto-sponsorship stays disabled; trusted server callers must provide the bearer token explicitly.
  • Browser fallback: normal user-paid Freighter transactions remain the default path.

Metrics & Monitoring

  • Status metrics: /status#metrics - public contract-event evidence, proof hashes, reward/payment events, and source labels on the operational status page
  • Health endpoint: /api/health - cached JSON health check (config, RPC latency, contract availability)
  • Events API: /api/events - structured contract event data for external consumers
  • Events stream: /api/events/stream - short-lived Server-Sent Events stream for live demo refreshes without adding a database
  • MCP server: /api/mcp - read-only remote Model Context Protocol endpoint (Streamable HTTP, no auth) so AI agents can verify credentials, inspect issuers, and browse escrowed paid trials; built on Vercel's mcp-handler + the official MCP TypeScript SDK
  • Vercel Analytics: Page analytics plus privacy-safe custom events for proof sharing, proof-pack downloads, employer handoff, shortlist saves, and escrow-start actions

On-chain metrics panel with indexed contract events and the live activity feed

Data Indexing

Contract events are read from two public sources. The app first queries Soroban RPC getEvents for recent contract events, then supplements that result with Stellar Expert's public contract event index so older testnet activity does not disappear from the demo surface when the RPC retention window moves on. Events are decoded from ScVal/XDR where possible, categorized by kind (cert_reg, cert_ver, reward, payment), deduplicated, source-labelled, and served through /api/events, /api/events/stream, plus /status#metrics.

This remains a lightweight serverless evidence layer, not a full analytics warehouse. Vercel page analytics and custom events help inspect proof/share/employer flow interest without storing raw wallet addresses or proof hashes; durable proof history, issuer conversion, and long-term product analytics still require a first-party read model.


Tech Stack

ComponentVersion
Soroban SDK26.1.0
Stellar CLI26+
Next.js15 (App Router)
React19
@stellar/stellar-sdklatest
@stellar/freighter-apilatest
@albedo-link/intentlatest
Tailwind CSSv4
PWAmanifest + service worker + iOS splash set

Project Structure

Code
stellaroid-earn/
β”œβ”€β”€ Cargo.toml                   # Rust workspace (Soroban contract)
β”œβ”€β”€ contracts/
β”‚   └── stellaroid_earn/
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ lib.rs          # Soroban credential + payment contract
β”‚       β”‚   └── test.rs         # contract security and lifecycle tests
β”‚       β”œβ”€β”€ Makefile            # build / test / fmt / clean targets
β”‚       └── Cargo.toml
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app/                # Next.js App Router pages
β”‚   β”‚   β”‚   β”œβ”€β”€ app/            # Participant dashboard (issuer + employer)
β”‚   β”‚   β”‚   β”œβ”€β”€ issuer/         # Issuer registration + lookup
β”‚   β”‚   β”‚   └── proof/[hash]/   # Public shareable verified badge
β”‚   β”‚   β”œβ”€β”€ components/         # UI components (proof card, wallet, badges)
β”‚   β”‚   β”œβ”€β”€ hooks/              # Freighter wallet state
β”‚   β”‚   └── lib/                # Contract client, RPC helpers, types
β”‚   └── .env.example
β”œβ”€β”€ docs/                       # Product docs, setup references, operations, and archives
β”œβ”€β”€ demo/                       # Demo script, FAQ, press kit
β”œβ”€β”€ images/                     # README screenshots
β”œβ”€β”€ scripts/                    # Screenshot capture and operations scripts
β”œβ”€β”€ LICENSE
└── README.md

Demo Video

demo/stellaroid-earn-demo.mp4

Full walkthrough: landing page β†’ about β†’ app dashboard (wallet connect) β†’ issuer console β†’ verified proof page β†’ on-chain evidence on Stellar Expert.

The demo video is committed in this repository so the submission does not depend on an expiring external upload URL.

Demo Day slides: /slides (integrated into the app, arrow keys to navigate)

Submission/demo checklist: docs/operations/demo-checklist.md

Submission evidence map: docs/operations/submission-evidence.md


User Validation

54 of 50 Testnet Wallet Accounts

Stellaroid Earn has 54 of the targeted 50 documented testnet wallet accounts with public network activity. That total is two groups: 30 independent participant wallets from the testnet review, plus 24 controlled QA accounts that I operate myself for structured product verification. Both groups are listed in full below and every wallet and transaction links to Stellar Expert.

The 24 QA accounts are disclosed as QA personas, not as independent people. So the figure above is wallet-account coverage with real network activity. It is not a claim of 54 separate users, and the independent participant count remains 30.

Testnet Wallet Evidence

30 independent participant wallet addresses from the Stellar testnet review are listed for public review. Each wallet address is verifiable on Stellar Expert. Some wallets have direct contract interactions such as register_issuer; others are funded participant wallets used during the review flow. The committed feedback snapshot keeps participant names and emails redacted.

View all 30 independent participant wallet addresses

The 24 QA account addresses that complete the 54-account total are listed separately in the guided QA evidence log, so each group stays checkable on its own.

#Wallet AddressVerified On-Chain
1GCBBBLZVJVVM2ZMXPNMDN2ATH7AJ2H4BHOKA7JOJT6EMWTOKCGRKUK6IStellar Expert
2GALGZBDSFG4FRTFSO7XLURBJRYC6PA34H73IF66G7BZOXXQDMWSHPXEUStellar Expert
3GAWJEP7LWY7WPLP7SBPR4MWQGQJIBAHVNVXYQE33F5FL2VFMFGBBFZ4BStellar Expert
4GCBZAJUZXRHNLVR4RCG743KSTKQSVFKXQCNYWAH4FVHDVSS5IT6DWSI3Stellar Expert
5GAQZJQPZI7YZBUN6YVAFACVKAH6ODNBO3DVELP34VW4MLLUBCL5DMMNSStellar Expert
6GAYOZX7LSYYYROU4SEBKGOOHOPUWYORPXEDHZJOXZ5Q45XZED7IMXG2UStellar Expert
7GDVNNL2QFO4PFYDLVLZTL2GKKOZR3YBV2AIIV7U44DXDOKKRJFIMLWCBStellar Expert
8GCFL24VJA3LPZLIOJ3AAVGCUGOW4A7ZUWNNEGR332IZ2MHMUWCTK3GVGStellar Expert
9GBNVAVBVELOM2FBBPWDTUBM5DRECBY2MKPZ6YYO3CNKKSFCUUSE3HAU5Stellar Expert
10GBWATJDBLCF7PPUQYBWBXCUQ5ZXRHKHZ7RAFHWZ4SLMNH45VBRPAXXYYStellar Expert
11GDBJYDYLU3JH7V6X6KHPWQOSRQNXTL7OYTD6HUNVGB2J6Y7CUUX4WW6RStellar Expert
12GA6DCDZIIP3FGLIAU5FLUZLBBFCM6XD26JDJVJCA6EL2LKY5OKA7YAQFStellar Expert
13GBTNI3CULIDVJWABRYF5T56W7COYTA5JCRD3EAKO3VDSDWCUT2ZHSLAOStellar Expert
14GD2PSTZL2YQC66C4PGFS5D64A6473IEKCZKNMIM5B7JWVLVS2N27D7QUStellar Expert
15GCZJCXZTC5KELSLQJU6QUIDMRZ2HFTUIDYL3PCOKGR7XRAFI373DO6PUStellar Expert
16GCD4WRBPCKIPMDKLQA2LRAGYOIWCVRXJI4XNW4TI2ECVNKQO3T2XUSHGStellar Expert
17GBJXD5H457AKCFEGTSKYMD4MRSBBMGTUCOKEBU6YQ7TKNZ7SY2W37KKYStellar Expert
18GAGR7D5K4VL5HNOZCL6CYZIGT5FNYZW7I5WXGX6HSBZLLVQ3NG77XBAOStellar Expert
19GAZXPBADNPTKWAGUWZM6KWEMIO4MQVU4GW3ZJXKHEO4BOBL5SLERSQYRStellar Expert
20GDANCIDPUHS4IQUNHRM5RNKVOXTRR5RKIYYEE7HVPB2RWD76J66CS2DHStellar Expert
21GCHZOQCDMG5J6NC2MNAR6EH5JFGI6JEP7TQWWUDRWER75Q3W3NC52HMGStellar Expert
22GC54CLYWNJ2AQZCAA2LVXOR2XTNGGCZYDSEJLLQBV6D4EDXN6D6DFGPXStellar Expert
23GDTJBRZXXMOWPF3LPMM7V4WOBIPLGR6BXTRDBYH6VCBRBL5Y76NK5JHYStellar Expert
24GDK5LNJFLU5LLNQDDZJ4SUPXASK7SULASCAGEHF5IT65FX2FYZ56CHAMStellar Expert
25GBTY2BMYVRP2SFSFJXMHFQ6XQOKUS5JEZEAF3ZI5356FK7EQN56G57QEStellar Expert
26GANDLIFPFLNRYMIK6PG3BQU437PVUDLKS2VBCBYAMCJOKYZPRJWGORSUStellar Expert
27GAVCDYPJLPA2W4EYIMDXPSGAMUJDDOCSGNVZAX7UER4B4AKLVSDZSEITStellar Expert
28GARXSQZMDE4YF5IL6TWDAF4IAQG326JWAMOB5MAVAM3BOTXKM47Q6AQCStellar Expert
29GBS6ERMNCYSO2EK7VPAGJP6TI6IEKGRJNUTKZWJ7KDBLY7Y6MG3CFEWFStellar Expert
30GCOON62FGOWAW44SAWI3UKNJY52W7RD4CIBEQFZJEI2J56MWOCKUENACStellar Expert

Guided Testnet QA Coverage

Alongside the independent participant review, 24 controlled QA user accounts completed eight structured issuer, candidate, and employer journeys on the public testnet contract. The run produced 64 QA-account-signed transactions plus eight facilitator approvals, including eight verified credentials and eight released 1 XLM paid opportunities.

The guided QA evidence log links every public account and transaction. The organization, credential, cohort, and opportunity names are fictional scenario data. The guided QA accounts are included in the 54-account testnet coverage total and identified by their QA purpose in the evidence log.

Feedback Collection

  • Google Form: Stellaroid Earn - User Feedback Form
  • Response export (Excel): docs/planning/user-feedback-responses.xlsx (plain-text CSV also committed: user-feedback-responses.csv)
  • Full feedback documentation: docs/planning/user-feedback.md

Improvements Based on Feedback

Every improvement below maps to a piece of pilot feedback and the commit that shipped it:

FeedbackImprovementCommit
"Issuer vs Employer toggle was confusing at first"Contextual role guidance hints below the persona togglec1450bf
"Not clear which role to pick after connecting wallet"Fresh-state hint now shows what both roles do, so a new user can choose09c9d45
"Would like to see transaction history in the dashboard"Added a wallet-scoped "Activity involving your wallet" panel on /appfa0c5d0
"Mobile support would be great for checking proofs on the go"Mobile-first redesign, installable PWA, and WalletConnect mobile signing145f6ad
"Would be nice to have a list of all credentials I've issued"Clarified where issued credentials surface, with a link to full account historyeb181b8

Community Contribution

Threads Post


Built By

Mark Siazon - Hybrid Product Designer & Full-Stack Developer

Portfolio LinkedIn
GitHub Main
GitHub Professional Acct

Acknowledgments

  • Rise In - Stellar Smart Contract Bootcamp
  • Stellar Philippines - Stellar PH Bootcamp 2026
  • Workflow PH - Community partner
  • Stellar Docs Β· Soroban SDK Β· Freighter Β· Stellar Expert

MIT License - see LICENSE for details.

Related MCP Servers

View all in Developer Tools View all alternatives
  • A
    Ai Netcafe

    Compare LLM cost & latency on one prompt, translate PDF keeping layout, cited research, make PPTX

    πŸ’» Developer Tools0 views
    Compare vs Ai Netcafe β†’
  • Claude Task Master logoClaude Task Master

    AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loading for optimized context usage.

    πŸ’» Developer Tools7 views
    Compare vs Claude Task Master β†’
  • Shadcn Ui Mcp Server logoShadcn Ui Mcp Server

    MCP server that gives AI assistants seamless access to shadcn/ui v4 components, blocks, demos, and metadata.

    πŸ’» Developer Tools2 views
    Compare vs Shadcn Ui Mcp Server β†’
  • N
    Npx Vibe

    Read-only npm package and project dependency preflight tools for AI applications.

    πŸ’» Developer Tools0 views
    Compare vs Npx Vibe β†’

Frequently Asked Questions about Stellaroid Earn

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "stellaroid-earn": { "command": "npx", "args": ["-y", "Stellaroid Earn"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewStellaroid Earn AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/stellaroid-earn?style=directory)](https://allmcps.com/mcp/stellaroid-earn)
HTML Embed
<a href="https://allmcps.com/mcp/stellaroid-earn"><img src="https://allmcps.com/api/badge/stellaroid-earn?style=directory" alt="Stellaroid Earn on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ’»Developer Tools
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
27Quality signal: Emerging Β· 27/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools11/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… FeaturedAllMCPs Server logo

AllMCPs Server

The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 3,181+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ’» Developer Tools β†’Best MCP servers for Developers β†’Alternatives to Stellaroid Earn β†’Install in Claude DesktopInstall in CursorInstall in VS Code