skills/bsocial/SKILL.md
This skill should be used when the user asks to "post to BSocial", "like a post", "unlike", "follow user", "unfollow", "send message", "repost", "friend request", "on-chain social media", "BMAP", "BSocial protocol", "channel message", "create on-chain post", "read BSocial posts", or needs social operations (posts, likes, follows, messages, reposts, friends) on BSV blockchain.
npx skillsauth add b-open-io/bsv-skills bsocialInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete on-chain social protocol for BSV blockchain. Posts, likes, follows, messages, reposts, and friend requests using BitcoinSchema.org standards.
Build and broadcast social transactions using raw WIF keys and the @1sat/templates BSocial class (included in this plugin).
bun run skills/bsocial/scripts/create-post.ts <wif> "Post content" [options]
# Options:
# --channel <name> Post to a channel
# --url <url> Associate with URL
# --tags <t1,t2> Comma-separated tags
# --dry-run Build tx without broadcasting
bun run skills/bsocial/scripts/create-reply.ts <wif> <txid> "Reply content" [--tags <t1,t2>]
bun run skills/bsocial/scripts/create-like.ts <wif> <txid>
bun run skills/bsocial/scripts/create-follow.ts <wif> <bapId>
bun run skills/bsocial/scripts/create-repost.ts <wif> <txid> [--context <type> --value <val>]
bun run skills/bsocial/scripts/create-message.ts <wif> "Message" [options]
# Options:
# --channel <name> Send to channel
# --to <bapId> Direct message to user
bun run skills/bsocial/scripts/create-friend.ts <wif> <bapId>
Query social data from the BMAP API.
bun run skills/bsocial/scripts/read-posts.ts <address> [--limit 20] [--json]
bun run skills/bsocial/scripts/read-likes.ts --address <addr>
bun run skills/bsocial/scripts/read-likes.ts --txid <txid>
bun run skills/bsocial/scripts/read-follows.ts <address> [--limit 100] [--json]
bun run skills/bsocial/scripts/read-messages.ts --channel <name>
bun run skills/bsocial/scripts/read-messages.ts --address <addr>
bun run skills/bsocial/scripts/read-friends.ts <address> [--json]
For BRC-100 wallet users, @1sat/actions provides high-level social actions that handle B:// + MAP + AIP construction and wallet signing automatically. This requires the 1sat plugin and the @1sat/actions package — it is not part of bsv-skills.
See the 1sat:transaction-building skill for details.
import { createSocialPost, createContext } from '@1sat/actions'
const ctx = createContext(wallet)
const result = await createSocialPost.execute(ctx, {
app: 'my-app', // MAP attribution — identifies the calling application
content: 'Hello BSV!',
contentType: 'text/plain', // or 'text/markdown'
tags: ['intro', 'bsv'], // optional
})
// result: { txid, rawtx, error }
The action:
WalletSigner from @1sat/templates)bsocial basket for post historyapp:my-app, type:post, tag:intro, etc.) for filtered queriesQuery post history: wallet.listOutputs({ basket: 'bsocial' })
[B Protocol] | [MAP Protocol] | [AIP Protocol]
content metadata signature
| Context | Use Case |
|---------|----------|
| tx | Reply/like a transaction |
| channel | Post/message to named channel |
| bapID | Target specific identity |
| provider | Associate with external URL or provider |
| videoId | Reference a video |
| geohash | Geolocation context |
| btcTx | Reference a BTC transaction |
| ethTx | Reference an ETH transaction |
@bsv/sdk - Transaction building@1sat/templates - BSocial protocol templates (Signer abstraction, BSocial class)@1sat/actions - BRC-100 action system (external — requires the 1sat plugin)Base URL: https://bmap-api-production.up.railway.app
| Endpoint | Description |
|----------|-------------|
| /social/post/bap/{bapId} | Posts by BAP ID |
| /social/feed/{bapId} | Feed for BAP ID |
| /social/post/{txid}/like | Likes for a post |
| /social/bap/{bapId}/like | Likes by user |
| /social/friend/{bapId} | Friends for BAP ID |
| /social/@/{bapId}/messages | Messages for user |
| /social/channels/{channelId}/messages | Channel messages |
/q/{collection}/{base64Query}/s/{collection}/{base64Query}/ingest with { rawTx: tx.toHex() }Friend requests use Type42 key derivation with BRC-43 invoice numbers (2-friend-{sha256(friendBapId)}) via the BRC-100 wallet.
import { Hash, Utils } from "@bsv/sdk";
const { toHex, toArray } = Utils;
const keyID = toHex(Hash.sha256(toArray(friendBapId, "utf8")));
// Get encryption pubkey for friend request
const { publicKey } = await wallet.getPublicKey({
protocolID: [2, "friend"],
keyID,
counterparty: "self",
});
// Encrypt private message for friend
const { ciphertext } = await wallet.encrypt({
protocolID: [2, "friend"],
keyID,
counterparty: friendIdentityKey,
plaintext: toArray("secret message", "utf8"),
});
// Decrypt message from friend
const { plaintext } = await wallet.decrypt({
protocolID: [2, "friend"],
keyID,
counterparty: friendIdentityKey,
ciphertext,
});
references/schemas.md - Full schema referencedevelopment
This skill should be used when the user asks to integrate "Yours Wallet", "connect a BSV wallet", use "BRC-100", "pay with BSV wallet", add "wallet checkout in a web app", use "yours-wallet-provider", build a "pay with Yours Wallet" button, access "window.CWI", or connect a React app to a BRC-100 wallet.
development
This skill should be used when the user asks to "send BSV", "transfer satoshis", "create payment transaction", "send from WIF", "P2PKH transaction", or needs to build, sign, and broadcast P2PKH transactions from a WIF private key using @bsv/sdk.
development
This skill should be used when the user asks to "encrypt message with BSV key", "decrypt with private key", "ECDH encryption", "AES-256-GCM BSV", "EncryptedMessage", "BRC-2 encryption", or needs to encrypt/decrypt data using BSV keys and @bsv/sdk.
tools
This skill should be used when the user asks to "implement BRC-100 wallet", "use wallet-toolbox", "TypeScript BSV wallet", "BRC-100 implementation", "desktop wallet", "Electron wallet", "browser wallet", "IndexedDB wallet storage", "wallet actions", "wallet baskets", "UTXO management", "createAction", "listOutputs", "wallet certificates", "WalletClient", "noSend", "BEEF payment", "pay-beef", "send BEEF", "Transaction.fromBEEF", "toHexBEEF", or needs guidance on building conforming wallets using @bsv/wallet-toolbox or connecting to a user's BRC-100 wallet via WalletClient.