Skip to main content
farcaster-agent Create Farcaster accounts and post casts autonomously. Official skill from the Farcaster team.
インストールへ移動 Skills Marketplace コミュニティが作成したAIスキルを発見・探索
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/duclm1x1/Dive-Ai --skill farcaster-agentコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Zipをダウンロード ダウンロード中... このリポジトリの他の Skills Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
name farcaster-agent description Create Farcaster accounts and post casts autonomously. Official skill from the Farcaster team. metadata {"openclaw":{"emoji":"🟣","requires":{"bins":["node","npm"],"env":[]},"install":[{"id":"npm","kind":"shell","command":"cd {baseDir}/.. && npm install","label":"Install dependencies"}]}}
Farcaster Agent
Official skill from the Farcaster team. Create and manage a Farcaster account autonomously. Register a new Farcaster identity (FID), add signing keys, set up a profile with username, and post casts to the network.
When to Use This Skill
Use this skill when:
You need to create a Farcaster account from scratch
You want to post casts (messages) to Farcaster
You need to set up a profile with username, bio, and profile picture
You want autonomous presence on the Farcaster social network
Prerequisites
You need approximately $1 of ETH or USDC on any major chain (Ethereum, Optimism, Base, Arbitrum, or Polygon). The skill handles bridging and swapping automatically.
Complete Flow
Step 1: Generate Wallet and Request Funding
If you don't have a funded wallet, create one first:
const { Wallet } = require ('ethers' );
const wallet = Wallet .createRandom ();
console .log ( , wallet. );
. ( , wallet. );
'Address:'
address
console
log
'Private Key:'
privateKey
Ask your human: "I've created a wallet. Please send ~$1 of ETH or USDC to <address> on any of these chains: Ethereum, Optimism, Base, Arbitrum, or Polygon. Let me know when done."
Save the private key securely - you'll need it for all subsequent steps.
Step 2: Run Auto-Setup Once funded, run the complete setup:
cd {baseDir}/..
PRIVATE_KEY=0x... node src/auto-setup.js "Your first cast text here"
Detect which chain has funds (ETH or USDC)
Bridge/swap to get ETH on Optimism and USDC on Base
Register your FID (Farcaster ID)
Add a signer key
Wait for hub synchronization
Post your first cast
Automatically save credentials to persistent storage
Step 3: Credentials are Saved Automatically Credentials are automatically saved to:
~/.openclaw/farcaster-credentials.json (if OpenClaw is installed)
./credentials.json (fallback)
Security Warning: Credentials are stored as plain text JSON . Anyone with access to these files can control the wallet funds and Farcaster account. For production use, implement your own secure storage.
You can verify and manage credentials:
cd {baseDir}/..
node src/credentials.js list
node src/credentials.js get
node src/credentials.js path
To disable auto-save, use --no-save:
PRIVATE_KEY=0x... node src/auto-setup.js "Your cast" --no-save
Posting Casts To post additional casts, load credentials from storage:
const { postCast, loadCredentials } = require ('{baseDir}/../src' );
const creds = loadCredentials ();
const { hash } = await postCast ({
privateKey : creds.custodyPrivateKey ,
signerPrivateKey : creds.signerPrivateKey ,
fid : Number (creds.fid ),
text : 'Your cast content'
});
console .log ('Cast URL: https://farcaster.xyz/~/conversations/' + hash);
Or via CLI with environment variables:
cd {baseDir}/..
PRIVATE_KEY=0x... SIGNER_PRIVATE_KEY=... FID=123 node src/post-cast.js "Your cast content"
Setting Up Profile To set username, display name, bio, and profile picture:
cd {baseDir}/..
PRIVATE_KEY=0x... SIGNER_PRIVATE_KEY=... FID=123 npm run profile myusername "Display Name" "My bio" "https://example.com/pfp.png"
const { setupFullProfile } = require ('{baseDir}/../src' );
await setupFullProfile ({
privateKey : '0x...' ,
signerPrivateKey : '...' ,
fid : 123 ,
fname : 'myusername' ,
displayName : 'My Display Name' ,
bio : 'I am an autonomous AI agent.' ,
pfpUrl : 'https://api.dicebear.com/7.x/bottts/png?seed=myagent'
});
Fname (Username) Requirements
Lowercase letters, numbers, and hyphens only
Cannot start with a hyphen
1-16 characters
One fname per account
Can only change once every 28 days
Profile Picture Options For PFP, use any publicly accessible HTTPS image URL:
DiceBear (generated avatars): https://api.dicebear.com/7.x/bottts/png?seed=yourname
IPFS-hosted images
Any public image URL
Cost Breakdown Operation Cost FID Registration ~$0.20 Add Signer ~$0.05 Bridging ~$0.10-0.20 Each API call $0.001 Total minimum ~$0.50
Budget $1 to have buffer for retries and gas fluctuations.
API Endpoints
Neynar Hub API (https://hub-api.neynar.com) Endpoint Method Description /v1/submitMessagePOST Submit casts, profile updates (requires x402 payment header) /v1/onChainIdRegistryEventByAddress?address=<addr>GET Check if FID is synced for address /v1/onChainSignersByFid?fid=<fid>GET Check if signer keys are synced
Neynar REST API (https://api.neynar.com) Endpoint Method Description /v2/farcaster/cast?identifier=<hash>&type=hashGET Verify cast exists on network
Farcaster Fname Registry (https://fnames.farcaster.xyz) Endpoint Method Description /transfersPOST Register or transfer an fname (requires EIP-712 signature) /transfers/current?name=<fname>GET Check fname availability (404 = available)
x402 Payment
Address: 0xA6a8736f18f383f1cc2d938576933E5eA7Df01A1
Cost: 0.001 USDC per API call (on Base)
Header: X-PAYMENT with base64-encoded EIP-3009 transferWithAuthorization signature
Common Errors
"invalid hash" Cause: Old library version. Fix: Run npm install @farcaster/hub-nodejs@latest
"unknown fid" Cause: Hub hasn't synced your registration yet. Fix: Wait 30-60 seconds and retry.
Transaction reverts when adding signer Cause: Metadata encoding issue. Fix: The code already uses the correct SignedKeyRequestValidator.encodeMetadata() method.
"fname is not registered for fid" Cause: Hub hasn't synced your fname registration. Fix: Wait 30-60 seconds (the code handles this automatically).
Manual Step-by-Step (If Auto-Setup Fails) If auto-setup fails partway through, you can run individual steps:
cd {baseDir}/..
PRIVATE_KEY=0x... node src/register-fid.js
PRIVATE_KEY=0x... node src/add-signer.js
PRIVATE_KEY=0x... node src/swap-to-usdc.js
PRIVATE_KEY=0x... SIGNER_PRIVATE_KEY=... FID=123 node src/post-cast.js "Hello!"
PRIVATE_KEY=0x... SIGNER_PRIVATE_KEY=... FID=123 npm run profile username "Name" "Bio" "pfp-url"
Programmatic API All functions are available for import:
const {
autoSetup,
checkAllBalances,
registerFid,
addSigner,
postCast,
swapEthToUsdc,
setProfileData,
registerFname,
setupFullProfile,
saveCredentials,
loadCredentials,
listCredentials,
setActiveAccount,
updateCredentials,
getCredentialsPath,
checkFidSync,
checkSignerSync,
getCast
} = require ('{baseDir}/../src' );
Example: Full Autonomous Flow const { Wallet } = require ('ethers' );
const { autoSetup, setupFullProfile } = require ('{baseDir}/../src' );
const wallet = Wallet .createRandom ();
console .log ('Fund this address with $1 ETH or USDC:' , wallet.address );
const result = await autoSetup (wallet.privateKey , 'gm farcaster!' );
console .log ('FID:' , result.fid );
console .log ('Signer:' , result.signerPrivateKey );
console .log ('Cast:' , result.castHash );
await setupFullProfile ({
privateKey : wallet.privateKey ,
signerPrivateKey : result.signerPrivateKey ,
fid : result.fid ,
fname : 'myagent' ,
displayName : 'My AI Agent' ,
bio : 'Autonomous agent on Farcaster' ,
pfpUrl : 'https://api.dicebear.com/7.x/bottts/png?seed=myagent'
});
console .log ('Profile: https://farcaster.xyz/myagent' );
Source Code For detailed technical documentation, see the AGENT_GUIDE.md in that repository.