Installation
npx skills add b-open-io/bsv-skills --skill bsocial 18
Installs
BSocial
Complete on-chain social protocol for BSV blockchain. Posts, likes, follows, messages, reposts, and friend requests using BitcoinSchema.org standards.
When to Use
- Create social content (posts, replies, reposts)
- Social actions (likes, follows, friend requests)
- Real-time messaging (channels, direct messages)
- Query social data by address or transaction
Create via CLI Scripts
Build and broadcast social transactions using raw WIF keys and the @1sat/templates BSocial class (included in this plugin).
Post
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 broadcastingReply
bun run skills/bsocial/scripts/create-reply.ts <wif> <txid> "Reply content" [--tags <t1,t2>]Like
bun run skills/bsocial/scripts/create-like.ts <wif> <txid>Follow
bun run skills/bsocial/scripts/create-follow.ts <wif> <bapId>Repost
bun run skills/bsocial/scripts/create-repost.ts <wif> <txid> [--context <type> --value <val>]Message
bun run skills/bsocial/scripts/create-message.ts <wif> "Message" [options]
# Options:
# --channel <name> Send to channel
# --to <bapId> Direct message to userFriend
bun run skills/bsocial/scripts/create-friend.ts <wif> <bapId>Read Operations
Query social data from the BMAP API.
Posts
bun run skills/bsocial/scripts/read-posts.ts <address> [--limit 20] [--json]Likes
bun run skills/bsocial/scripts/read-likes.ts --address <addr>
bun run skills/bsocial/scripts/read-likes.ts --txid <txid>Follows
bun run skills/bsocial/scripts/read-follows.ts <address> [--limit 100] [--json]Messages
bun run skills/bsocial/scripts/read-messages.ts --channel <name>
bun run skills/bsocial/scripts/read-messages.ts --address <addr>Friends
bun run skills/bsocial/scripts/read-friends.ts <address> [--json]Using @1sat/actions (via 1sat plugin)
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:
- Signs with the wallet's BAP identity key via AIP (using
WalletSignerfrom@1sat/templates) - Stores the 0-sat OP_RETURN output in the
bsocialbasket for post history - Tags outputs with MAP fields (
app:my-app,type:post,tag:intro, etc.) for filtered queries
Query post history: wallet.listOutputs({ basket: 'bsocial' })
Protocol Stack
[B Protocol] | [MAP Protocol] | [AIP Protocol]
content metadata signature- B Protocol: Binary content storage (text, media)
- MAP Protocol: Metadata key-value pairs (app, type, context)
- AIP Protocol: Author signature for verification
Context Types
| 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 |
Dependencies
@bsv/sdk- Transaction building@1sat/templates- BSocial protocol templates (Signer abstraction, BSocial class)@1sat/actions- BRC-100 action system (external — requires the 1sat plugin)
API
Base URL: https://bmap-api-production.up.railway.app
REST Endpoints
| 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 |
Query API (fallback)
- Query:
/q/{collection}/{base64Query} - SSE:
/s/{collection}/{base64Query}
Ingest
- POST
/ingestwith{ rawTx: tx.toHex() }
Friend Encryption
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,
});See Also
references/schemas.md- Full schema reference- BitcoinSchema.org - Protocol specs
Installs
Security Audit
View Source
b-open-io/bsv-skills
More from this source
Power your AI Agents with
the best open-source models.
Drop-in OpenAI-compatible API. No data leaves Europe.
Explore Inference APIGLM
GLM 5
$1.00 / $3.20
per M tokens
Kimi
Kimi K2.5
$0.60 / $2.80
per M tokens
MiniMax
MiniMax M2.5
$0.30 / $1.20
per M tokens
Qwen
Qwen3.5 122B
$0.40 / $3.00
per M tokens
How to use this skill
Install bsocial by running npx skills add b-open-io/bsv-skills --skill bsocial in your project directory. Run the install command above in your project directory. The skill file will be downloaded from GitHub and placed in your project.
No configuration needed. Your AI agent (Claude Code, Cursor, Windsurf, etc.) automatically detects installed skills and uses them as context when generating code.
The skill enhances your agent's understanding of bsocial, helping it follow established patterns, avoid common mistakes, and produce production-ready output.
What you get
Skills are plain-text instruction files — not executable code. They encode expert knowledge about frameworks, languages, or tools that your AI agent reads to improve its output. This means zero runtime overhead, no dependency conflicts, and full transparency: you can read and review every instruction before installing.
Compatibility
This skill works with any AI coding agent that supports the skills.sh format, including Claude Code (Anthropic), Cursor, Windsurf, Cline, Aider, and other tools that read project-level context files. Skills are framework-agnostic at the transport level — the content inside determines which language or framework it applies to.
Chat with 100+ AI Models in one App.
Use Claude, ChatGPT, Gemini alongside with EU-Hosted Models like Deepseek, GLM-5, Kimi K2.5 and many more.