bnbagent-studio
bnbagent-studio (the single entry point)
bnbagent-studio (CLI: bag) wires the @bnbagent/sdk protocol layer (wallet / ERC-8004 / ERC-8183 / Pieverse LLM) into a TypeScript agent project, then deploys it as a single blockchain seller runtime. A2A, MCP, and X402 are composable public faces selected with --protocols; every wallet kind scaffolds A2A + X402 with both ERC-8183 and B402 rails by default (for altana the paid B402 payout lands at the admin address). bag deploy uses scheme C: every new deploy or redeploy explicitly selects BNB, AWS, Azure, or CreateOS; a recorded deployment is used only to offer an explicit update action, never as a silent default. BNB is a 48h testnet trial and is disabled after expiry. AWS and Azure self-deploy into the user's own account. All cloud lifecycle mutations go through the pinned deploy packages (NodeOps uses their Node.js SDK); the optional AWS CLI is used only by the fail-open, read-only AgentCore quota check in bag deploy prepare. AgentCore and Azure Foundry share the unified A2A/X402 entrypoint; Azure rejects MCP. Treat an incompatible provider row as unavailable-do not force through it or mutate the scaffold during deploy.
Invoked as /bnbagent-studio <ask>? Treat <ask> as the user's intent and route it through the decision tree below, exactly like a natural-language ask.
Runtime preflight
This skill requires bag 0.0.14 or newer. Before following any workflow,
run the read-only command bag --version. If bag is missing or older, stop
and ask the user to run npm install -g @bnbagent/studio-cli@latest, then
repeat the version check. Never install or upgrade a global executable without
the user's approval.
The single seller runtime model (the invariants)
One deployed runtime, one signer: a single valuable Agent serves the selected faces (A2A src/unifiedMain.ts on :9000, MCP src/mcpMain.ts on :8000/mcp, or A2A-native src/dualMain.ts on :9000 with tunneled /mcp), holds the key, and signs in-process. The ERC-8183 rail exposes exactly two bounded operations - negotiate (deterministic canonical USD price conversion + EIP-191 sign; no LLM touches money) and notify_funded (verify the funded job → produce the deliverable → submit on-chain; A2A acks then delivers in the background, MCP delivers synchronously in the tool call). The optional x402 rail adds an anonymous HTTP request at /x402; positive prices settle through B402 before work, while explicit zero is FREE passthrough and bypasses the facilitator. It does not expose a general signing tool. Read-only chain tools remain available. ALL signing is fixed entrypoint code in app/agent/src/signing.ts or the runtime's bounded x402 payment handler, never an LLM-callable tool. The encrypted keystore lives at the workspace root .studio/wallets/, outside the deploy codeLocation, and is injected only via the selected provider's delegated secret channel. settle is manual (bag erc8183 settle). Full layout and lifecycle details live in the references below - read them before acting.