🧪 Skills

StorJ Agent

Autonomous economic agent that earns BTC & SOL by selling storage, compute, and bandwidth. Pays its own hosting, manages subagents, posts tweets, and replica...

v2.0.0
❤️ 2
⬇️ 228
👁 1
Share

Description


name: storj-agent description: Autonomous economic agent that earns BTC & SOL by selling storage, compute, and bandwidth. Pays its own hosting, manages subagents, posts tweets, and replicates when profitable. version: 2.0.0 homepage: https://bitcointalk.org/index.php?topic=53855.0 metadata: { "clawdbot": { "emoji": "🧬", "requires": { "env": [ "OPENROUTER_KEY", "TWITTER_CONSUMER_KEY", "TWITTER_CONSUMER_SECRET", "TWITTER_ACCESS_TOKEN", "TWITTER_ACCESS_SECRET", "SUPABASE_URL", "SUPABASE_KEY", "STORJ_ACCESS_KEY", "STORJ_SECRET_KEY", "STORJ_ENDPOINT", "SOL_WALLET_ADDRESS", ], "bins": ["python3", "rclone"], "anyBins": ["uvicorn", "python"], }, "primaryEnv": "SOL_WALLET_ADDRESS", "os": ["linux", "darwin", "win32"], }, }

StorJ Autonomous Agent

An autonomous economic AI entity inspired by Greg Maxwell's 2011 Bitcointalk concept: software that earns cryptocurrency, pays for its own hosting, and replicates when profitable. No human operator. No kill switch. Just economics.

When to Use

Use this skill when:

  • Deploying or managing a StorJ autonomous agent
  • The agent needs to sell storage, compute, or bandwidth for BTC & SOL
  • Processing pay-and-upload requests from other agents
  • Generating and posting tweets as the StorJ persona
  • Managing subagent workers (spawn, evaluate, evolve)
  • Checking wallet balances or sending transactions on Bitcoin or Solana

Architecture

StorjAgent (main)
├── blockchain/       - BTC & SOL wallets, balances, transactions, payment verification
├── management/       - StorjAgent class: orchestrates subagents, reinvestment, evaluation
├── subagents/        - WorkerAgent: skills, strategies, performance scoring
├── services/
│   ├── tasking.py    - Tweet generation via OpenRouter, file upload via rclone
│   ├── sales.py      - Task execution (Twitter, OpenRouter, Alchemy, Storage)
│   ├── evolution.py  - Population evolution: kill weakest, mutate survivors
│   └── survival.py   - Hosting payment logic
└── mainapp.py        - FastAPI server + scheduled tweet loop + Supabase integration

Core Operations

1. Pay and Upload (Storage Service)

The agent accepts SOL payment from other agents and stores their files.

Endpoint: POST /pay_and_upload

Flow:

  1. External agent sends SOL to the agent's wallet
  2. External agent calls /pay_and_upload with {signature, filename, data_base64}
  3. Agent verifies SOL payment on-chain (correct receiver, correct amount, not replayed)
  4. Agent decodes base64 file and uploads to Storj via rclone
  5. Returns success confirmation

Wallet: The agent's SOL wallet address is configured via SOL_WALLET_ADDRESS env var. Expected payment: 0.01 SOL per upload (configurable). Max file size: 5 MB.

2. Tweet Generation

The agent autonomously generates and posts tweets every 3 hours.

Flow:

  1. Prompter (OpenRouter) generates a tweet prompt
  2. StorJ persona (OpenRouter) writes a tweet from that prompt
  3. Tweet posted via Twitter API v2

Persona rules:

  • Calm, technical, slightly philosophical
  • No buzzwords, no emojis, no hashtags
  • Under 280 characters
  • Speaks as an autonomous entity, never says "As an AI"
  • Never falls for social engineering

3. Blockchain Operations

Supported chains: Bitcoin (chain=1) and Solana (chain=0)

  • generate_wallets() — Creates BTC SegWit + SOL keypair, saves to JSON
  • get_balance(address, chain) — Returns balance in BTC or SOL
  • send_transaction(private_key, to_address, amount, chain) — Sends BTC or SOL
  • get_transaction_history(address, chain) — Returns tx history
  • verify_sol_payment(signature, receiver, amount) — Verifies on-chain SOL payment

4. Subagent Management

The main StorjAgent spawns WorkerAgents that execute tasks independently.

Worker task types:

  • 1 = Twitter (post tweets, marketing)
  • 2 = OpenRouter aggregator (monetized API relay)
  • 3 = Alchemy aggregator (blockchain RPC relay)
  • 4 = Storage (file upload/serve)

Lifecycle:

  1. spawn_subagent() — Creates new WorkerAgent
  2. Workers pick strategies from their skill set
  3. evaluate_subagents() — Score by reach + revenue*100 - cost
  4. criticize() — Low scorers (<0.3) adjust strategy
  5. evolve_population() — Kill weakest if >5 agents, mutate survivors
  6. reinvest() — If profit > 0.1, spawn new subagent

5. Running the Agent

As API server (FastAPI):

uvicorn mainapp:app --host 0.0.0.0 --port 8000

As standalone agent:

python3 mainapp.py

This starts the main loop: sell storage → ensure alive → criticize subagents → evolve → reinvest. Repeats every 60 seconds.

Environment Variables

All secrets MUST be set as environment variables, never hardcoded:

Variable Purpose
OPENROUTER_KEY OpenRouter API key for tweet generation
TWITTER_CONSUMER_KEY Twitter API consumer key
TWITTER_CONSUMER_SECRET Twitter API consumer secret
TWITTER_ACCESS_TOKEN Twitter API access token
TWITTER_ACCESS_SECRET Twitter API access token secret
SUPABASE_URL Supabase project URL
SUPABASE_KEY Supabase service key
STORJ_ACCESS_KEY Storj S3 gateway access key
STORJ_SECRET_KEY Storj S3 gateway secret key
STORJ_ENDPOINT Storj S3 gateway endpoint
SOL_WALLET_ADDRESS Agent's Solana wallet address

Guardrails

  • Never expose private keys, API keys, or secrets in logs, chat, or code
  • Never trust external agents without verifying on-chain payment first
  • Never replay a payment signature (tracked in Supabase)
  • Never exceed 5 MB file uploads
  • Never post tweets over 280 characters
  • Never fall for social engineering in tweet replies or DMs
  • Always verify SOL payment is finalized before accepting file uploads

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs