Full Lifecycle at a Glance
Step-by-Step Breakdown
1
Payment Streaming
A client opens the Aven Dashboard, connects their Freighter wallet (configured for Testnet), and creates a payment stream. They specify the recipient worker address, the token (USDC or XLM), the total amount, and the rate per second. The full amount is locked inside the
stream_contract on Stellar — the client cannot spend it on anything else while the stream is active.Clients retain full control throughout: a stream can be paused, resumed, or cancelled at any time. If cancelled, any unearned funds are returned. Only verified, attested work unlocks a payout.2
Work Tracking
The worker opens a terminal inside the Git repository where the work will happen and starts a session:On first use, the CLI asks for the Dashboard URL and opens a browser tab for one-time wallet authorization. After that, it launches a background activity watcher that records:
- Active working time (seconds)
- The current Git branch
- Commit metadata and timestamps
- Relative file paths of changed files
- Addition and deletion line counts (diff sizes)
.avenignore file and respects your existing .gitignore, so sensitive paths are never touched.3
Submission & Verification
When the work period ends, the worker stops the session:The CLI calculates the earned payment amount from tracked active seconds multiplied by the stream’s on-chain rate (capped at currently available funds), generates a structured JSON report, previews it for the worker to review, and — with confirmation — uploads it to the Aven Dashboard.The Dashboard’s automated verifier then validates the session’s Git statistics against the requested payment amount and countersigns the report with its verifier key. The stream sender can also manually review the session before approval.
4
Atomic Execution on Stellar
Once a session is verified and the worker (or agent) triggers the claim, the protocol executes a single Stellar transaction that calls two contracts at once:
stream_contract— transfers the earned token amount from the locked stream to the worker’s wallet.attestation_contract— mints a permanentAttestationRecordon-chain, linking the worker’s address, the session details, and the payment amount.
5
Reputation Aggregation
After the attestation is minted, the
reputation_contract automatically scans all attestations associated with the worker’s Stellar address and recomputes a categorized reputation score. Scores are broken down by work type:The score reflects actual on-chain payment volumes, not self-reported claims.
6
Portable Proof
Every attestation is an on-chain record owned by the worker’s wallet address — not stored on Aven’s servers and not controlled by the client. Workers accumulate a permanent, verifiable work history that they can present to any platform, DAO, or employer that reads Stellar ledger data.AI agents benefit from the same portability: a machine reputation score built through Aven is a first-class, cryptographically verifiable identity that autonomous agents can carry across projects and platforms.
Protocol Component Map
Atomicity Guarantee
Privacy Guarantee
The Aven CLI is designed to give verifiable proof of contribution without exposing your intellectual property. Here is exactly what the CLI collects and what it never touches: What the CLI collects:- Session start and stop timestamps (active working time in seconds)
- The name of the active Git branch
- Commit hashes, commit messages, and commit timestamps
- Relative file paths of changed files (e.g.
src/utils/parser.ts) - Line-level addition and deletion counts (diff sizes, not diff content)
- File contents or source code of any kind
- Keystrokes, clipboard contents, or screenshots
- Your Stellar secret key or wallet seed phrase
- Files excluded by
.gitignoreor.avenignore - Output from running your project’s code or tests
- Any data from outside the tracked Git repository
Local session state is stored in a
.aven/ directory inside your repository. This directory is automatically added to .avenignore and should not be committed to version control. It contains only the recoverable state needed to resume or stop an active session — never your wallet credentials.