WAVS AT Protocol is a decentralized service that bridges AT Protocol social interactions with blockchain attestations. It listens to Bluesky/AT Protocol events and automatically creates on-chain attestations for posts that reply to a specific target account.
- Rust 1.86+ with
cargo, plus thewasm32-wasip2target (rustup target add wasm32-wasip2) bunfor package management and script executiongo-taskfor theTaskfile.ymlcommands- Docker (used by the backend tasks for WAVS, chains, and IPFS)
wkgif you need to refresh the WAVS WIT worlds
- Set up the development environment (install dependencies, fetch WIT worlds):
task setup
- Bootstrap the entire system:
Use
task bootstrap:all
task backend:stop-allto tear everything down, or call the more granular tasks shown bytask --list.
- Set your
TARGET_HANDLEintaskfile/bootstrap.yml - This is the account whose replies will trigger attestations
- Default:
ismellike.bsky.social
- WAVS subscribes to AT Protocol's Jetstream real-time event feed
- Monitors for new post events (
app.bsky.feed.post) - Captures post content, author, and reply metadata
// Pseudo-code for the filtering logic
if post.reply_to == TARGET_HANDLE {
process_post(post)
}- WASI component parses incoming AT Protocol events
- Filters posts based on reply target
- Validates post structure and metadata
- Routes output to submission chain
- Interacts with EAS smart contracts
- Submits blockchain transactions
For each qualifying reply:
- Creates EAS attestation with post data
- Links to original post via AT Protocol URI
- Stores author information and reply content
- Generates immutable on-chain record
Query all attestations created for the AT Protocol schema:
task query:attestationsGPL-3.0-or-later. See LICENSE for details.