Skip to main content

game-plugin-oneshot

A GAME SDK plugin that gives Virtuals Protocol agents OneShot's 48 real-world tools plus one per lookup tool: email, SMS, calls, research, enrichment, commerce, website builds. Paid tools charge USDC from your wallet on Base Mainnet, so fund it first.

Install

pip install game-plugin-oneshot

Quick Start

import os
from game_sdk.game.agent import Agent
from game_plugin_oneshot import OneShotPlugin

plugin = OneShotPlugin(
    private_key=os.environ["WALLET_PRIVATE_KEY"],
)

agent = Agent(
    api_key=os.environ["GAME_API_KEY"],
    name="my-agent",
    agent_description="An agent that can interact with the real world",
)

agent.add_worker(plugin.get_worker())
agent.run()

Access-token sessions

Hosted GAME agents that should not hold a wallet key use a delegated token instead:

import os
from game_plugin_oneshot import OneShotPlugin

plugin = OneShotPlugin(access_token=os.environ["ONESHOT_ACCESS_TOKEN"])
# Inside an async application:
# plugin = await OneShotPlugin.acreate(access_token=os.environ["ONESHOT_ACCESS_TOKEN"])

Create the token and set budgets from a wallet session. Calls spend prepaid credits within the stored caps. Tokens cannot manage tokens, raise budgets, or sign USDC payments. Refill credits from a wallet session with OneShotClient.top_up_credits(amount). See the hosted setup guide.

Tools

The plugin exposes 48 OneShot tools plus one oneshot_<name> function per lookup tool. The lookup tools are read from the generated manifest in oneshot-python (oneshot.lookup_tools()), so a new lookup tool appears here without a plugin change. Core tools:

Tool Description Paid?
oneshot_email Send emails to real recipients paid
oneshot_sms Send SMS text messages paid
oneshot_voice Make phone calls with an AI voice agent paid
oneshot_research Deep research reports paid
oneshot_web_search Web search (fast, synchronous) paid
oneshot_web_read Read a web page as markdown paid
oneshot_person_find Search people by title/company/location paid
oneshot_person_profile Enrich a profile from LinkedIn/email/name paid
oneshot_person_email Find an email at a company paid
oneshot_person_email_status Verify email deliverability paid
oneshot_person_dossier A person’s profile, known social accounts, articles, posts and written summary paid
oneshot_person_social_accounts Find someone's social accounts paid
oneshot_person_articles Articles/interviews about a person paid
oneshot_person_posts Recent social posts for a person paid
oneshot_person_interests What a person cares about paid
oneshot_person_followers Followers/following/replies paid
oneshot_product_find Search for products paid
oneshot_commerce_buy Purchase products online paid
oneshot_build Generate and deploy a website paid
oneshot_update_build Update an existing website paid
oneshot_browser Browser automation task paid
oneshot_browser_create_profile Create a persistent browser profile free
oneshot_browser_list_profiles List browser profiles free
oneshot_browser_delete_profile Delete a browser profile free
oneshot_inbox_list List inbound emails free
oneshot_inbox_get Get an inbound email by ID free
oneshot_sms_inbox_list List inbound SMS free
oneshot_sms_inbox_get Get an inbound SMS by ID free
oneshot_notifications List agent notifications free
oneshot_mark_notification_read Mark a notification as read free
oneshot_get_balance Get USDC + credits balance free
oneshot_budget_status Today's spend vs the configured budget (read-only) free
oneshot_list_domains List sending domains with reputation + rotation state free
oneshot_pause_domain Take a domain out of rotation free
oneshot_resume_domain Put a paused domain back into rotation free

Paid tools are priced in USDC via x402. Current rates are on the Pricing page.

Payment

Paid tools deduct USDC from your wallet on Base Mainnet, settled with the x402 payment protocol. Fund the wallet with USDC first.

Read tools (inbox, SMS inbox, notifications, balance) send a signed EIP-712 read proof (x-agent-proof) so the API can verify you control the X-Agent-ID wallet before returning private data. The underlying oneshot-python client handles this automatically. It requires oneshot-python >= 0.18.0, which is already the dependency floor.

Complex Arguments

Structured input goes in as strings, because GAME Argument supports only scalar types. commerce_buy, build, and update_build take JSON strings, and list fields on people_search take comma-separated values:

# The agent will generate these automatically, but for manual testing:
import json

shipping = json.dumps({
    "first_name": "John",
    "last_name": "Doe",
    "street": "123 Main St",
    "city": "Austin",
    "state": "TX",
    "zip_code": "78701",
    "phone": "+15551234567",
})

product = json.dumps({
    "name": "Acme SaaS",
    "description": "Project management for teams",
})

Configuration

Parameter Default Description
private_key (required) Hex-encoded Ethereum private key
base_url None Override API URL
budgets None Server-enforced spend cap, e.g. {"daily": 50, "per_transaction": 5}
alert_email None Email for budget alerts

LinkedIn connection recovery

If the active account list is empty or an account is connection_deleted or revoked, ask the human to use oneshot_linkedin_connect and authorize fresh grants. An existing account with reconnect_required must be reconnected through the owning application. Reconnect and revoke are deliberately not agent tools. Do not create a new connection automatically after authentication failures or timeouts.

Requirements

  • Python >= 3.10
  • game-sdk >= 0.1.5
  • oneshot-python >= 0.18.0

License

MIT

Optional phone lookup

person_find, person_profile, and person_dossier accept include_phone, off by default. It adds $0.10 × the requested search limit (default 100 → $10), or $0.10 for profile/dossier, for up to that many people with no promised hit. Existing source numbers and published business or record numbers remain available without opting in. Fallbacks and callbacks cost nothing extra; a completed no-match is charged and a failed job is refunded. GAME accepts the string "true" or "false". The full quote is checked before payment.

Metadata

Release files for game-plugin-oneshot 0.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for game-plugin-oneshot 0.18.0
File Size Uploaded
game_plugin_oneshot-0.18.0.tar.gz 103.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for game-plugin-oneshot 0.18.0
File Interpreter ABI Platform
game_plugin_oneshot-0.18.0-py3-none-any.whl Python 3 none any Details

Total release size: 122.4 kB

Release files / game_plugin_oneshot-0.18.0.tar.gz

Download URL game_plugin_oneshot-0.18.0.tar.gz
Size 103.1 kB
Tags Source
SHA-256 checksum
How to use checksums
123f7d4f22c0230d20793d5c0c371844a848f39d6d1703edca2ed136d6f9b5d8
BLAKE2b-256 checksum
How to use checksums
67b77ea68be86fee1a4038fb3a35187a18a64a0143030fa3b3390f8b68c67878
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / game_plugin_oneshot-0.18.0-py3-none-any.whl

Download URL game_plugin_oneshot-0.18.0-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
011df9ea10ce1f06139974d2866fd2e005ad8a86cad3c803525e60167b20e5fe
BLAKE2b-256 checksum
How to use checksums
bcb4bdfd409209f1ec60240edf046aa8204969639c08a7d691900c6b77f8c06c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

0.19.0

2 release files

This release

0.18.0 This release

2 release files

0.17.0

2 release files

0.15.0

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page