CookbookAdd a Badge

Recipe: Add a RunProof Badge to Your README

Show verification status in your repository.

Quick Start

After generating a RunProof, add the badge to your README:

[![RunProof Verified](https://verify.substr8labs.com/badge/YOUR_PROOF_ID)](https://verify.substr8labs.com/proof/YOUR_PROOF_ID)

Step-by-Step

1. Generate a RunProof

python your_agent.py  # Generates runproof.json

2. Get the Proof ID

substr8 proof inspect runproof.json --field proof_id
# Output: proof_ccfe7c4abd014eab

3. Add the Badge

In your README.md:

## Verification
 
This agent's execution is verified with RunProof.
 
[![RunProof Verified](https://verify.substr8labs.com/badge/proof_ccfe7c4abd014eab)](https://verify.substr8labs.com/proof/proof_ccfe7c4abd014eab)

Badge Styles

Default (Green)

![RunProof](https://verify.substr8labs.com/badge/PROOF_ID)

With Status

![RunProof](https://verify.substr8labs.com/badge/PROOF_ID?style=status)

Shows: verified or invalid

Minimal

![RunProof](https://verify.substr8labs.com/badge/PROOF_ID?style=minimal)

Dynamic Badges (CI/CD)

For repos that run agents in CI, generate the badge dynamically:

# .github/workflows/agent.yml
- name: Run Agent
  run: python agent.py
 
- name: Extract Proof ID
  id: proof
  run: |
    PROOF_ID=$(substr8 proof inspect runproof.json --field proof_id)
    echo "proof_id=$PROOF_ID" >> $GITHUB_OUTPUT
 
- name: Update README Badge
  run: |
    sed -i "s|badge/proof_[a-z0-9]*|badge/${{ steps.proof.outputs.proof_id }}|g" README.md

Why Badges Matter

Badges create a viral loop:

  1. Developer sees badge → “What’s RunProof?”
  2. Clicks → lands on verification page
  3. Tries it → adds to their own repo
  4. Cycle repeats

Distribution through curiosity.