Skip to content

v0.1.0 — SDK, indexer and web app

Latest

Choose a tag to compare

@adelekevictor12 adelekevictor12 released this 22 Jul 09:46

First tagged release of the OpenAjo application layer, running against the deployed testnet contracts.

Contracts this targets

Contract ID
circle CCLVOHGHDH32GWFAMCEMVHLNJSF6ENVHERYWU2OHUYWWLAOKLVR3HGKS
reputation CDXPH2PYUTRW7GV57X6CJH3E3JOPROSC23NXPMAXOO3EOBI5UTCB2GTQ

What's in it

  • packages/sdk — typed client for both contracts. Reads run as RPC simulations; writes take a pluggable SignFn so the SDK never touches a key. Decoded contract errors, event decoding, and bigint amount helpers.
  • indexer/ — polls Soroban getEvents into Postgres, serves a read-only REST API (/health, /circles, /circles/:id, /members/:address, /stats), and optionally cranks settle_cycle for due circles.
  • apps/web — Next.js app: create/join/contribute/settle with Freighter, circle timelines, member reputation. Light and dark themes.

Design

  • Writes go from the browser straight to Soroban RPC, signed by the user's wallet. No server holds user keys; the only server key is the optional crank, which pays fees for the permissionless settle_cycle and can move nothing else.
  • The indexer folds events to learn which circles changed, then re-reads state from the contract by simulation — so the database cannot drift from on-chain truth.
  • bigint raw token units end-to-end; no floating-point math on money.

Verification

  • 8 SDK unit tests passing (ScVal round-trips, amount parsing, event decoding).
  • SDK reads and writes verified against the live testnet contracts.
  • Typecheck clean across all workspaces; web production build passes (6 routes).

Notes

Unaudited. Testnet only.