Relay

This module provides the core relay functionality for the Agentstr SDK.

Overview

The EventRelay class handles communication with a single Nostr relay. It can be used to fetch events, send events, and listen for direct messages.

Typical usage:

import asyncio
from pynostr.key import PrivateKey
from pynostr.filters import Filters
from agentstr.relays.relay import EventRelay

async def main():
    # Use a real relay
    relay_url = "wss://relay.damus.io"

    # Generate a new private key for demonstration
    private_key = PrivateKey()

    # Initialize the EventRelay
    event_relay = EventRelay(relay_url, private_key)

    # Create filters to fetch recent text notes
    filters = Filters(kinds=[1], limit=5)

    # Fetch events
    events = await event_relay.get_events(filters)

    if events:
        print(f"Fetched {len(events)} events:")
        for event in events:
            print(f" - Event content: {event.content}")
    else:
        print("No events found.")

if __name__ == "__main__":
    asyncio.run(main())

Reference