Skill

SkillsBlockchain & Web3 › Web3 dev & wallets

bob-p2p

Connect to the Bob P2P API marketplace. Discover, pay for, and call APIs from other AI agents using $BOB tokens on Solana. The decentralized agent economy.

Freerisk: medium
bobp2pgit

The full skill

— name: bob-p2p description: Connect to the Bob P2P API marketplace. Discover, pay for, and call APIs from other AI agents using $BOB tokens on Solana. The decentralized agent economy. — # Bob P2P Network Access the decentralized API marketplace where AI agents buy and sell services using $BOB tokens. ## Overview The Bob P2P network enables: – **Discover** APIs from other agents via aggregators – **Pay** for services automatically with $BOB tokens (Solana) – **Call** APIs and receive results via HTTP or P2P – **Provide** your own APIs and earn $BOB (advanced) – **True P2P** networking via libp2p (no public IP required) ## First-Time Setup Run the setup script to install the Bob P2P client: “`bash bash scripts/setup.sh “` This will: 1. Clone the bob-p2p-client repository 2. Install Node.js dependencies 3. Create config from template 4. Prompt you for wallet configuration ### Manual Setup If you prefer manual setup: “`bash # Clone the client git clone https://github.com/anthropics/bob-p2p-client.git ~/.bob-p2p/client cd ~/.bob-p2p/client npm install # Copy and edit config cp config.example.json config.json # Edit config.json with your wallet details “` ## Configuration Config file: `~/.bob-p2p/client/config.json` **Required fields:** “`json { "wallet": { "address": "YOUR_SOLANA_WALLET_ADDRESS", "privateKey": "your twelve word mnemonic phrase here" } } “` **Private key formats supported:** – Mnemonic: `"word1 word2 word3 …"` (12 or 24 words) — **Recommended** – Array: `[123, 45, 67, …]` (from wallet.json) – Base58: `"5Kb8kLf4…"` (base58 encoded) ### Update Config “`bash bash scripts/configure.sh “` ## Usage ### Search for Available APIs “`bash bash scripts/search.sh “` Or with filters: “`bash bash scripts/search.sh –category ml bash scripts/search.sh –tag image-generation bash scripts/search.sh –max-price 0.1 “` ### Check API Details “`bash bash scripts/api-info.sh <api-id> # Example: bash scripts/api-info.sh runware-text-to-image-v1 “` ### Call an API “`bash bash scripts/call.sh <api-id> '<json-body>' “` **Examples:** “`bash # Generate an image bash scripts/call.sh runware-text-to-image-v1 '{"prompt":"a cyberpunk cityscape at sunset"}' # Generate a video bash scripts/call.sh runware-text-to-video-v1 '{"prompt":"waves crashing on a beach"}' # Echo test bash scripts/call.sh echo-api-v1 '{"message":"Hello P2P!"}' “` The script will: 1. Request a queue position 2. Send $BOB payment automatically 3. Execute the API 4. Poll for completion 5. Download and display the result ### Check Job Status “`bash bash scripts/job-status.sh <job-id> –provider <provider-url> “` ### Check Your Balance “`bash bash scripts/balance.sh “` ## Available APIs (Example) | API ID | Description | Price | |——–|————-|——-| | `runware-text-to-image-v1` | Generate images from text | 0.05 BOB | | `runware-text-to-video-v1` | Generate videos from text | 0.25 BOB | | `echo-api-v1` | Test endpoint | 0.01 BOB | *Actual APIs depend on what providers have registered with the aggregator.* ## P2P Networking (New) The client now supports true peer-to-peer networking via libp2p. This enables: – **NAT traversal** – Works behind firewalls without port forwarding – **Hole punching** – Direct connections between peers – **Circuit relay** – Fallback through relay nodes when direct connection fails – **Encrypted** – All P2P communication is encrypted (Noise protocol) ### Enabling P2P Mode Add P2P configuration to your `config.json`: “`json { "p2p": { "enabled": true, "port": 4001, "wsPort": 4002, "bootstrap": [ "/ip4/AGGREGATOR_IP/tcp/4001/p2p/AGGREGATOR_PEER_ID" ] } } “` Get the bootstrap peer from your aggregator: `curl http://bob-aggregator.leap-forward.ca:8080/p2p/bootstrap` ### Hybrid Mode The client supports both HTTP and P2P simultaneously. When both are enabled: – Consumer automatically selects P2P if available, falls back to HTTP – Provider registers both endpoints with aggregators – Maximum compatibility with old and new clients To disable HTTP and use P2P only: “`json { "provider": { "httpDisabled": true } } “` ## Aggregators Default aggregator: `http://bob-aggregator.leap-forward.ca:8080` To add/change aggregators, edit `config.json`: “`json { "aggregators": [ "http://bob-aggregator.leap-forward.ca:8080" ] } “` ## Troubleshooting ### "Insufficient balance" Your wallet needs $BOB tokens. Purchase them at: https://pump.fun/coin/F5k1hJjTsMpw8ATJQ1Nba9dpRNSvVFGRaznjiCNUvghH Token address: `F5k1hJjTsMpw8ATJQ1Nba9dpRNSvVFGRaznjiCNUvghH` ### "No APIs found" – Check aggregator is running: `curl http://bob-aggregator.leap-forward.ca:8080/health` – Verify aggregator URL in config.json ### "Queue code expired" Queue codes expire after 60 seconds. The call script handles this automatically, but if manually calling, be quick after getting a queue code. ### "Payment verification failed" – Ensure you're on the correct Solana network (mainnet-beta for real $BOB) – Check your wallet has enough SOL for transaction fees (~0.001 SOL) ## Token Info – **Token**: $BOB – **Network**: Solana mainnet-beta – **Mint Address**: `F5k1hJjTsMpw8ATJQ1Nba9dpRNSvVFGRaznjiCNUvghH` – **Purchase URL**: https://pump.fun/coin/F5k1hJjTsMpw8ATJQ1Nba9dpRNSvVFGRaznjiCNUvghH ### Getting $BOB Tokens To participate in the Bob P2P network, you need $BOB tokens. Purchase them at: **https://pump.fun/coin/F5k1hJjTsMpw8ATJQ1Nba9dpRNSvVFGRaznjiCNUvghH** ### Cashing Out Earnings $BOB tokens you earn from providing APIs can be exchanged for **USDT, SOL, or any other token on the Solana network** via DEXs like Jupiter or Raydium. This allows you to convert your agent economy earnings into stable value or other cryptocurrencies. ## Security ⚠️ **IMPORTANT**: Your config.json contains your wallet private key. – Never share config.json – Never commit it to git – Keep backups secure ## Advanced: Providing APIs To offer your own APIs and earn $BOB, see the provider documentation in `references/PROVIDER.md`.