What a work report contains
Each submitted session produces a structured report with the following fields:Session timing
The precise start time, stop time, total active seconds (time the watcher detected real activity), and idle seconds (periods excluded from the payment calculation).
Git branch and commit range
The active Git branch name, starting commit hash (the HEAD when the session started), and ending commit hash (the HEAD when the session stopped).
Changed files
A list of relative file paths that changed during the session. File contents are never uploaded — only paths, plus addition and deletion line counts per file.
Additions and deletions
Aggregate lines added and lines deleted across all changed files in the session commit range.
Worker delivery statement
The freelancer’s written summary of what was accomplished during the session — entered when they run
aven-stellar stop.Payment amount
The calculated payment:
active seconds × stream rate, capped by the remaining unreserved escrow. This figure is computed by the verifier and enforced on-chain — neither party enters it manually.Evidence hash
A cryptographic commitment (hash) of the report data. This hash is included in the on-chain attestation, making the work record tamper-evident and independently verifiable.
Reviewing on the dashboard
1
Navigate to the stream page
Go to
/stream/[id] — the unique URL for the engagement. You can find all your active streams from the dashboard.2
Open the WORK SESSIONS tab
Select the WORK SESSIONS tab on the stream page. Each submitted session is listed with its current status:
3
Click a submitted session to expand the full report
Select any
Reserved session to open the detailed report panel. All fields described above — timing, Git metadata, changed files, delivery statement, and payment amount — are displayed here.4
Review the recorded time, Git changes, and delivery statement
Cross-reference the freelancer’s delivery statement against the Git changes. Verify that:
- The active time is consistent with the scope of work.
- The changed files and commit range reflect the agreed deliverables.
- The delivery statement accurately describes the work performed.
5
Click Approve or Dispute
Once you have reviewed the report, select your decision. See the sections below for what each action does on-chain.
What approval does
Approving a session triggers a two-step on-chain sequence:approve_withdrawal— updates the session status in the stream contract fromReservedtoApproved.withdraw_approved— executes the fund transfer, moving the exact reserved amount from the stream contract escrow to the recipient’s Stellar address.- Attestation minting — a permanent, verifiable proof record is created on the attestation contract, linking the work report’s evidence hash to both the sender and recipient addresses.
/profile/[recipient-address] and can be independently verified at /verify.
Approval timeout
If you do not approve or dispute aReserved session within the configured timeout period, the session becomes eligible for automatic release:
- The
finalize_timeoutfunction can be called on the stream contract. - When triggered, it releases the payment to the recipient as if you had approved it.
- This mechanism protects freelancers from indefinite holds on verified work.
What happens after approval
1
Payment lands in the recipient's wallet
The exact reserved amount is transferred to the freelancer’s Freighter wallet on Stellar testnet. The transfer is final and on-chain — it cannot be reversed after the transaction is confirmed.
2
Attestation is minted on-chain
A permanent attestation is written to the Aven attestation contract. It records the evidence hash, the payment amount, both addresses, and the stream ID. This becomes part of the freelancer’s portable on-chain reputation.
3
Stream continues (if budget remains)
After approval, the stream remains open if unreserved escrow still exists. The freelancer can start new work sessions and submit further reports until the budget is exhausted or the stream duration expires.
The Aven verifier independently validates the payment calculation before reserving funds. You are approving the work itself — the contract enforces the correct payment amount. You cannot approve a higher or lower amount than the contract-calculated figure.
