Skip to main content
Aven’s protocol is implemented as three Soroban smart contracts on Stellar, collectively forming an atomic payment-verification-reputation system. Each contract owns a distinct responsibility — escrow and lifecycle management, permanent proof-of-work records, and on-chain score computation — and the three are wired together so that a single Stellar transaction can pay a worker, mint their attestation, and update the inputs to their reputation score simultaneously.

The Three Contracts

Stream Contract

Manages payment streams — creation, fund escrow, verification, payout, pause, resume, and cancel. The entry point for every economic interaction in Aven.

Attestation Contract

Mints permanent on-chain records whenever a verified work session is paid. Every attestation is stored on the Stellar ledger and is publicly readable.

Reputation Contract

Reads all attestations for a given address and computes a weighted, category-based reputation score that workers own and can present anywhere.

System Architecture

The diagram below shows how a single verified payout flows through all three contracts and produces a reputation score.

Deployed Contract Addresses (Testnet)

All three contracts are currently live on Stellar Testnet.

Atomicity Guarantee

The stream contract calls the attestation contract in the same Stellar transaction as the token transfer. Both succeed or both revert — there is no partial state. This guarantees workers are only paid when attestations are created, and attestations are only created when workers are paid. You cannot mint a reputation record without real economic activity behind it.

TypeScript Bindings

Aven provides auto-generated TypeScript bindings for all three contracts in the contracts/bindings/ directory, making it straightforward to interact with the contracts from any JavaScript or TypeScript application. The bindings export a typed Client class per contract with full inline documentation for every method.