credit

you

own

a credit reputation you carry, not one a bank keeps. a k-of-n threshold oracle on stellar soroban turns your on-chain history into fair credit — portable, yours, signed by an independent quorum. zero fintech in the trust path.

3 of 5
ed25519 threshold sigs
104
tests green across the matrix
92 b
canonical mint message

live on-chain

reading…
threshold
3 of 5
ed25519 quorum
oracle keys
5
independent signers
wallet age floor
anti-sybil mint gate
contract
CDLLO7QE…
testnet · soroban
read a live badge
permissionless get_score / is_defaulted — no wallet, no signature

score any address, live

paste any stellar public key. the scoring engine reads horizon and returns the same features the oracle signs — no fintech, no private data.

run an evaluation to see live features

watch the threshold sign

every mint requires k of n independent oracle signatures over the canonical 92-byte message. no single party can authorise alone.

oracle 0
oracle 1
oracle 2
idle
oracle 3
idle
oracle 4
canonical signed message — 92 bytes
borrower xdr (44)score u32 (4)expiration u64 (8)age_days u32 (4)nonce (32)
each oracle signs the same byte sequence with ed25519. the contract calls env.crypto().ed25519_verify k times. fewer than k valid signatures, a duplicated oracle index, or any single tampered byte rejects the mint at simulation — no ledger pollution, no gas spent.

architecture

three components, each independently verifiable. nothing in the trust path is owned by a single party.

1off-chain

synthetic scoring engine

off-chain reader of stellar horizon. 180-day window, 200-op cap. p2p churn discounted 70% against an ecosystem whitelist. zero fintech dependency.

2off-chain

threshold oracle quorum

five independent ed25519 keypairs. three signatures required. each signs the canonical 92-byte mint message. tampering one byte breaks all signatures.

3on-chain

soroban contracts

vigente-badge (soulbound credit token, threshold-verified mint, immutable slash) + reference-vault (credit-gated lending with TVL cap, util limit, withdrawal timelock).

the road ahead — the pipeline
optional
open finance
consented bank-data enrichment
off-chain
scoring engine
horizon · 180d · zero fintech in trust path
off-chain
threshold oracle
k-of-n ed25519 · signs the mint
on-chain
badge SBT
soulbound · immutable defaults
read
consumers
wallets · lending protocols
impact
inclusion
first-time credit · measured (IRIS+)

threat model

six adversarial scenarios. each one has a code-level mitigation that ships in the current testnet contracts.

vector
mitigation
status
carousel / wash trading
ecosystem whitelist + 70% penalty on p2p volume, monthly bins and effective tx count
shipped
sybil bot farms
30-day wallet age floor folded into the signed mint message; tampered age breaks all sigs
shipped
long-con default
credit ladder: first loan = 10% of tier ceiling; full cap unlocked only after first successful repay
shipped
vault drainage / unbounded exposure
admin circuit breaker + TVL cap + 85% utilization rail (15% always liquid for LPs)
shipped
centralized oracle compromise
k-of-n ed25519 verification on-chain; anti-replay nonce stored per-mint
shipped
LP bank run
14-day withdrawal timelock + utilization floor — no single LP can drain on rumor alone
shipped

out-of-scope items (validator collapse, compromised user wallet, sdk bugs) are deliberately listed as such so the boundary of the protocol's responsibility is explicit.

partners we're building with

vigente is the credit primitive — the lending stack lives on top, the data layer feeds in. we're forming partnerships in two directions, with conservative limits and client protection baked in.

layer 1 · lending protocols
soroban lending markets

a protocol reads get_score / is_defaulted to open a reputation-tier pool. for price-oracle markets, vigente gates eligibility off-chain at conservative, throttled limits (CP2). reference-vault is the on-chain reference any protocol can read directly.

integrate vigente as credit layer
data · open finance (optional enrichment)
open finance aggregators · chile-first

the core score reads only stellar horizon, so the trust path stays fintech-free. open finance is opt-in enrichment that adds detail to a thin-file borrower's profile — never a gate, never published on-chain.

partner on data
for protocol founders

if you run a soroban lending market and want to plug vigente's credit primitive in front of your pool — same week integration, zero token swap.

zzzbedream@gmail.com

inclusion is the product

a credit history is an asset the user owns — soulbound, portable, readable by every protocol that integrates vigente. it turns on-chain activity into fair credit. funded by the protocols that use it, not by grants — sustainable by design, not charity.

shared value, not charity

the underserved market — earners with on-chain or open-finance data but no traditional score — IS the target market. every score that unlocks fair credit earns a fee and cuts financial exclusion at the same time.

no over-indebtedness

conservative tier ceilings, a first-loan throttle to 10%, and immutable defaults. enabling credit to the unbanked must never push them into unpayable debt — the limits are proven on-chain in reference-vault.

metrics that aren't vanity

we measure first-time credit access, cost of credit before vs. after, real default rate, and 6/12-month persistence — with a baseline and external verification. not 'wallets created'.

fair, explainable, private

disparate-impact audits across groups, an explainable score with a right to human review (Ley 21.719), and no personal data published on-chain. client protection (Cerise+SPTF) is a release gate, not a slogan.

aligned to SDG 1 / 5 / 8 / 10 and the Cerise+SPTF client-protection standards. measured with IRIS+ — baseline, comparison group, external verification.

see it live on testnet

two real soroban calls against CDLLO7QE…. the negative one shows the age floor enforcing on-chain through the signed account_age bytes.

positive mint

tx on ledger
score880
age days90
statusSUCCESS
sigs3 of 5
get_score returned880
8b9fccfc9daaf594e457e19808ef9c0746e8e45f37aab8417b5fe8d59641bc85

age-floor trap

rejected
score700
age days10 (below 30 floor)
statusError(WasmVm, InvalidAction)
ledger affectedno — rejected at simulation
gas spent0

roadmap

built in the open, funded in tranches. everything marked shipped is verifiable on-chain today — the rest is scoped, costed, and labeled by the tranche that pays for it.

the wedge is layer 1: a live lending protocol reading the score in production. distribution and the data layer compound from there.

shipped · live now

credit primitive

  • ·3-of-5 threshold oracle verified on-chain
  • ·soulbound credit badge + immutable defaults
  • ·credit-gated reference vault (TVL cap, timelock)
  • ·credit oracle interface v1 + ABI for integrators
  • ·180-day on-chain credit heat map
tranche 1 · layer 1 (primary)

first protocol integration

  • ·first lending-protocol integration (off-chain gate, tested)
  • ·live reputation-tier pool at conservative limits
  • ·oracle ops + key rotation runbook
  • ·SEP draft: credit attestation standard
tranche 2 · yield layer

data + capital efficiency

  • ·open finance enrichment (consented bank data)
  • ·SEP-0056 tokenized vault + tokenized-vault listing
  • ·idle reserve earning yield in soroban pools
  • ·/earn — one-click USDC deposits for LPs
tranche 3 · mainnet

open infrastructure

  • ·mainnet deploy behind multi-sig
  • ·typescript SDK on npm
  • ·tier-segmented pools + staking
  • ·inclusion pilot + client-protection metrics (IRIS+)

deliberately out of scope until mainnet: own token, multi-chain, retail KYC, competing with existing lending markets. vigente is the credit layer other protocols read — not another lending app.