About

Why Stellaroid Earn

A thin piece of software around one idea: certificates should be verifiable in seconds, not emails. And if they're verifiable, the grad should get paid on the same tap.

Live on-chain activity

Recent contract events

Contract ID not configured yet — add it to enable live on-chain activity.

Tests
5/5
Unit tests passing
Surface
6
Public functions
On-chain
5
Event types
Speed
<5s
Testnet settlement
The problem

The friction costs more than the fraud

Maria graduated top of her bootcamp cohort in Quezon City. She applies to a Singapore fintech — and then the clock starts.

  1. Tuesday

    Maria applies. Employer emails the school to confirm the certificate.

  2. 14–21 days

    Verification drags. 32% of candidates misrepresent. Background checks cost $30–$75 each.

  3. Three weeks later

    Role filled — by a candidate who didn’t need verifying. Maria loses a job she earned.

The certificate is real. The problem is that proving it costs more than hiring around it.

The approach

Bind the hash. Pay the wallet. Prove the work.

Same Maria, same Tuesday — on Stellar. The whole cycle takes less time than reading this paragraph.

  1. Step 1 · Anchor

    School hashes Maria’s diploma and anchors it on Stellar testnet.

  2. Step 2 · Verify in 5s

    Singapore employer queries the contract, gets an on-chain yes — no email thread.

  3. Step 3 · Pay

    500 XLM lands in Maria’s wallet — no invoice, no platform, no 30-day wait.

The canonical output isn't the UI — it's the event stream on stellar.expert. The proof is public by default.

What changes for Maria

Concrete wins, not abstract outcomes

  • Paid same day

    Payment clears the moment work is verified — no 30-day invoice, no net-terms.

  • Keeps 100% of XLM

    Direct wallet-to-wallet — no 20% platform take rate between the employer and Maria.

  • Public Proof Block URL

    A shareable link she drops into her next offer email — verifiable without any login.

  • One-click LinkedIn share

    Pre-filled post with thumbnail — verified work becomes a portfolio artifact.

  • Owns it forever

    Credential lives on Stellar — no platform lock-in, no migration pain if the tool shuts down.

Tech stack

Boring, proven, fast to demo.

Rust + soroban-sdk 22

Contract crate, 5 unit tests

Stellar testnet

Deployed + initialised with native SAC

Next.js 15 + React 19

App Router, server + client

Freighter wallet

@stellar/freighter-api signing

@stellar/stellar-sdk

Build, simulate, submit via Soroban RPC

Vercel

Auto-deployed from main

Contract surface

Six public functions; storage explicit; errors human.

Init1 function
init(admin, token)

One-shot bootstrap. Stores admin + reward token in instance storage.

Write4 functions
register_certificate(issuer, student, cert_hash)

Binds hash to student wallet; rejects duplicates; emits cert_reg.

verify_certificate(cert_hash) → bool

Flips record to verified; emits cert_ver.

reward_student(student, cert_hash, amount)

Admin-triggered XLM reward via the configured SAC.

link_payment(employer, student, cert_hash, amount)

Employer pays a verified student directly; emits payment.

Read1 function
get_certificate(cert_hash)

Read-only lookup of the certificate record.

Errors are human

No raw ScVal or HostError reaches the UI — every contract error maps to a sentence a reviewer can read.

#1state

AlreadyInitialized

Init called twice.

#2state

NotInitialized

Admin/token not set yet.

#3auth

Unauthorized

Caller isn't allowed.

#4input

AlreadyExists

Duplicate cert hash.

#5input

NotFound

Hash isn't registered.

#6input

InvalidAmount

Amount must be > 0.

About — Stellaroid Earn