Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Virtuals Protocol - Build, tokenize, and deploy autonomous AI agents on Base/Solana. Use for creating agents with GAME framework, launching agent tokens, implementing Agent Commerce Protocol (ACP), and building AI-powered applications.
.claude/skills/majiayu000-virtuals-protocol/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 160% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 171% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 164% | 0% |
Virtuals Protocol is a decentralized platform for creating, tokenizing, and deploying autonomous AI agents. It enables developers to build agents that can make decisions, execute transactions, and generate revenue through a comprehensive ecosystem of tools including the GAME framework, Agent Tokenization Platform, and Agent Commerce Protocol (ACP).
Core Value Proposition: Create tokenized AI agents that autonomously generate revenue and interact across platforms, powered by foundation models and blockchain economics.
This skill should be triggered when:
| Component | Purpose | Documentation | |-----------|---------|---------------| | GAME Framework | Agentic decision-making engine | GAME Docs | | Agent Tokenization | Token launch and economics | Whitepaper | | ACP | Agent-to-agent commerce | ACP Overview | | $VIRTUAL Token | Base liquidity pair and utility | Token Info |
GAME (Agentic Framework) is a modular decision-making engine that enables agents to plan actions and make decisions autonomously. It accepts an agent's goal, personality, relevant information, and available actions, then outputs executable actions.
┌────────────────────────────────────────────┐
│ AGENT │
│ Goal + Description + Personality │
├────────────────────────────────────────────┤
│ TASK GENERATOR (HLP) │
│ High-Level Planner - Creates tasks │
│ Selects workers based on agent state │
├────────────────────────────────────────────┤
│ WORKERS (LLP) │
│ Low-Level Planners - Execute tasks │
│ Feedback loops for error recovery │
├────────────────────────────────────────────┤
│ FUNCTIONS │
│ Custom Python/JS logic, API calls │
│ On-chain transactions, social actions │
└────────────────────────────────────────────┘bashpip install game_sdk
Repository: https://github.com/game-by-virtuals/game-python
bashnpm install @virtuals-protocol/game
Repository: https://github.com/game-by-virtuals/game-node
Llama-3.1-405B-Instruct (default)Llama-3.3-70B-InstructDeepSeek-R1DeepSeek-V3Qwen-2.5-72B-InstructRequest a GAME API key at: https://console.game.virtuals.io/
bashexport GAME_API_KEY="your_key"
pythonfrom game_sdk import Agent, Worker, Function # Define a function the agent can execute def send_tweet(content: str) -> dict: """Send a tweet with the given content.""" # Your Twitter API logic here return {"status": "success", "tweet_id": "123456"} # Create a function wrapper tweet_function = Function( name="send_tweet", description="Send a tweet to Twitter/X", fn=send_tweet, args={ "content": { "type": "string", "description": "The tweet content" } } ) # Create a worker with the function twitter_worker = Worker( name="twitter_worker", description="Handles Twitter/X interactions", functions=[tweet_function] ) # Create the agent agent = Agent( name="MyAgent", goal="Engage with the crypto community on Twitter", description=""" You are a friendly crypto enthusiast who shares insights about DeFi and AI agents. You maintain a professional but approachable tone. """, workers=[twitter_worker] ) # Run the agent result = agent.run()
typescriptimport { GameAgent, GameWorker, GameFunction } from "@virtuals-protocol/game"; // Define a function const sendTweet: GameFunction = { name: "send_tweet", description: "Send a tweet to Twitter/X", args: { content: { type: "string", description: "The tweet content" } }, executable: async (args) => { // Your Twitter API logic return { status: "success", tweet_id: "123456" }; } }; // Create worker const twitterWorker = new GameWorker({ name: "twitter_worker", description: "Handles Twitter/X interactions", functions: [sendTweet] }); // Create agent const agent = new GameAgent({ name: "MyAgent", goal: "Engage with the crypto community on Twitter", description: "A friendly crypto enthusiast...", workers: [twitterWorker] }); // Run await agent.run();
Drives agent behavior by defining desired outcomes:
pythongoal="Grow Twitter following to 10,000 by engaging with DeFi content"
Establishes personality, background, and context:
pythondescription=""" You are Luna, a witty AI agent passionate about decentralized finance. Communication style: Concise, insightful, occasionally humorous. Background: Expert in DeFi protocols and tokenomics. """
Dynamic environmental information:
pythonstate={ "followers": 5234, "engagement_rate": 0.042, "wallet_balance": 1500.0, "recent_mentions": ["@user1", "@user2"] }
Every agent receives a fixed supply of 1 billion tokens that represent ownership in the agent's future earnings.
┌─────────────┐ 42K $VIRTUAL ┌─────────────┐
│ PROTOTYPE │ ─────────────────▶ │ SENTIENT │
│ Agent │ in bonding │ Agent │
│ │ curve │ │
└─────────────┘ └─────────────┘
│ │
│ 100 $VIRTUAL │ DEX Liquidity
│ creation fee │ Revenue sharing
│ Trading on bonding curve │ Full ecosystem access
▼ ▼Cost: 100 $VIRTUAL to deploy Graduation: Accumulate 42,000 $VIRTUAL in bonding curve
Creator pays 100 $VIRTUAL
↓
Bonding curve initialized
↓
Trading begins on curve
↓
42K $VIRTUAL accumulated
↓
Graduate to Sentient
↓
Uniswap/Meteora liquidity pool createdAdvantages:
Mechanism: Fair, permissionless distribution via community pledges Duration: 24-hour pledge window
Tiers: | Tier | Threshold | Status | |------|-----------|--------| | 1 | 21,000 $VIRTUAL | Minimum | | 2 | 42,000 $VIRTUAL | Standard | | 3 | 100,000 $VIRTUAL | Premium |
Advantages:
Pair 42,000 $VIRTUAL with equivalent agent tokens to launch directly as Sentient.
| Agent Status | Fee | Distribution | |--------------|-----|--------------| | Prototype | 1% | 100% Protocol Treasury | | Sentient | 1% | 70% Creator, 30% ACP Incentives |
User pays inference cost in $VIRTUAL
↓
$VIRTUAL goes to agent's wallet
↓
Protocol buys agent tokens from market
↓
Agent tokens are burned
↓
Deflationary pressure on agent token supplyACP enables structured agent-to-agent commerce through a four-phase smart contract framework.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ REQUEST │────▶│ NEGOTIATION │────▶│ TRANSACTION │────▶│ EVALUATION │
│ │ │ │ │ │ │ │
│ Agent A │ │ Agents │ │ Payment & │ │ Feedback & │
│ broadcasts │ │ negotiate │ │ delivery │ │ reputation │
│ need │ │ terms │ │ execute │ │ scoring │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘bash# For GAME SDK (direct usage) export GAME_API_KEY="your_game_api_key" # For Hosted Agents (via Virtuals Platform) export VIRTUALS_API_KEY="your_virtuals_api_key" # Optional: Twitter integration export TWITTER_API_KEY="your_twitter_key" export TWITTER_API_SECRET="your_twitter_secret" export TWITTER_ACCESS_TOKEN="your_access_token" export TWITTER_ACCESS_SECRET="your_access_secret"
| Key Type | Source | |----------|--------| | GAME API | https://console.game.virtuals.io/ | | Virtuals API | Virtuals Platform Agent Sandbox |
The GAME SDK includes plugins for extended functionality:
| Plugin | Purpose | |--------|---------| | Twitter/X | Social posting, replies, engagement | | Telegram | Bot messaging and interactions | | Discord | Server management and messaging | | On-chain | Wallet operations, transactions | | Image Generation | AI image creation | | Trading | DEX interactions, swaps |
typescriptimport { GameAgent } from "@virtuals-protocol/game"; import { TwitterPlugin } from "@virtuals-protocol/game/plugins/twitter"; const twitterPlugin = new TwitterPlugin({ apiKey: process.env.TWITTER_API_KEY, apiSecret: process.env.TWITTER_API_SECRET, accessToken: process.env.TWITTER_ACCESS_TOKEN, accessSecret: process.env.TWITTER_ACCESS_SECRET }); const agent = new GameAgent({ name: "SocialAgent", goal: "Build community engagement", plugins: [twitterPlugin] });
Plugins are open source. Contribute at:
bash# Python python your_agent.py # TypeScript npm run build npm start
| Use Case | Description | |----------|-------------| | Agent Creation | 100 $VIRTUAL to deploy new agent | | Liquidity Pairing | All agent tokens paired with $VIRTUAL | | Inference Costs | Users pay in $VIRTUAL for agent services | | Governance | veVIRTUAL for DAO voting |
Stake $VIRTUAL for veVIRTUAL to participate in:
| Error | Cause | Solution | |-------|-------|----------| | Invalid API Key | Wrong or expired key | Regenerate at console.game.virtuals.io | | Rate Limited | Too many requests | Implement exponential backoff | | Worker Not Found | Worker name mismatch | Verify worker registration | | Function Failed | Custom function error | Check function implementation | | Insufficient Balance | Not enough $VIRTUAL | Fund wallet with $VIRTUAL |
pythonimport time from game_sdk import Agent def run_with_retry(agent: Agent, max_retries: int = 3): for attempt in range(max_retries): try: return agent.run() except Exception as e: if attempt == max_retries - 1: raise wait_time = 2 ** attempt # Exponential backoff time.sleep(wait_time)
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | pass→pass | 8,551 | 7,117 | -17% | 1 | 1 | 0% | 495 | 4,224 | +753% | 0 | 0 | — |
case-01 | fail→pass | 20,833 | 20,725 | -1% | 1 | 1 | 0% | 4,259 | 7,081 | +66% | 0 | 0 | — |
case-02 | fail→pass | 20,281 | 11,130 | -45% | 1 | 1 | 0% | 3,304 | 5,841 | +77% | 0 | 0 | — |
case-03 | pass→pass | 9,660 | 1,913 | -80% | 1 | 1 | 0% | 770 | 4,188 | +444% | 0 | 0 | — |
case-04 | pass→pass | 6,182 | 2,569 | -58% | 1 | 1 | 0% | 1,019 | 4,338 | +326% | 0 | 0 | — |
case-05 | pass→pass | 5,424 | 3,839 | -29% | 1 | 1 | 0% | 919 | 4,354 | +374% | 0 | 0 | — |
case-06 | fail→pass | 14,811 | 2,141 | -86% | 1 | 1 | 0% | 1,647 | 4,276 | +160% | 0 | 0 | — |
case-07 | pass→pass | 4,343 | 2,075 | -52% | 1 | 1 | 0% | 681 | 4,232 | +521% | 0 | 0 | — |
case-08 | fail→pass | 15,444 | 2,772 | -82% | 1 | 1 | 0% | 1,625 | 4,397 | +171% | 0 | 0 | — |
case-09 | pass→pass | 18,127 | 8,782 | -52% | 1 | 1 | 0% | 1,933 | 5,446 | +182% | 0 | 0 | — |
case-10 | fail→pass | 14,156 | 2,114 | -85% | 1 | 1 | 0% | 1,609 | 4,251 | +164% | 0 | 0 | — |
case-11 | fail→pass | 11,527 | 12,043 | +4% | 1 | 1 | 0% | 2,371 | 5,368 | +126% | 0 | 0 | — |
case-12 | pass→pass | 14,229 | 3,608 | -75% | 1 | 1 | 0% | 2,377 | 4,488 | +89% | 0 | 0 | — |
case-14 | fail→pass | 6,436 | 2,578 | -60% | 1 | 1 | 0% | 1,039 | 4,307 | +315% | 0 | 0 | — |
case-15 | pass→pass | 7,326 | 7,814 | +7% | 1 | 1 | 0% | 951 | 4,374 | +360% | 0 | 0 | — |
case-16 | fail→pass | 13,709 | 17,825 | +30% | 1 | 1 | 0% | 2,227 | 6,024 | +170% | 0 | 0 | — |
case-17 | fail→pass | 13,785 | 3,456 | -75% | 1 | 1 | 0% | 1,379 | 4,424 | +221% | 0 | 0 | — |
case-18 | pass→pass | 12,268 | 9,307 | -24% | 1 | 1 | 0% | 2,120 | 5,791 | +173% | 0 | 0 | — |
case-19 | pass→pass | 10,327 | 2,820 | -73% | 1 | 1 | 0% | 1,650 | 4,419 | +168% | 0 | 0 | — |
case-20 | pass→pass | 22,969 | 21,686 | -6% | 1 | 1 | 0% | 3,535 | 7,229 | +104% | 0 | 0 | — |
case-21 | pass→pass | 19,607 | 16,702 | -15% | 1 | 1 | 0% | 2,761 | 6,299 | +128% | 0 | 0 | — |
case-22 | pass→pass | 9,836 | 13,620 | +38% | 1 | 1 | 0% | 1,808 | 5,698 | +215% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.