{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": false,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": false,
  "persist_scope": true,
  "volumes": false,
  "auto_stop_idle": false,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": false,
  "vm_isolation": false,
  "docker_inside": false,
  "nested_virt": false,
  "root": false,
  "systemd": null,
  "browser": false,
  "desktop": null,
  "computer_use": null,
  "code_interpreter": null,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": true,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": true,
  "open_internet": null,
  "static_egress_ip": false,
  "private_network": true,
  "self_host": true,
  "byoc": false,
  "open_source": false,
  "soc2": false,
  "hipaa": false,
  "sso": true,
  "gpu": false,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": true,
  "spend_limits": true,
  "mcp_server": false,
  "usage_api": false,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": true,
  "own_agent_api": false,
  "fast_boot": null,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": false,
  "secret_proxy": true,
  "secret_proxy_any": false,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": false,
  "kernel_features": false,
  "burst": null
 },
 "company": {
  "id": "stateset",
  "checked": "2026-09-30",
  "company": "StateSet, Inc.",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://stateset.com/about",
   "quote": "StateSet connects commerce systems, business rules and AI-assisted workflows so teams can spend less time chasing exceptions and more time moving work to resolution."
  },
  "stage": {
   "value": "unknown",
   "source": "",
   "quote": "",
   "confidence": "low",
   "note": "No funding round, investor, or accelerator disclosure found on the company site, GitHub, or via ycombinator.com/companies/stateset (404, not a YC company). Crunchbase/Tracxn/PitchBook profiles for 'stateset' returned no accessible page (404/403) during research; LinkedIn required login. StateSet's iCommerce product (which includes 'StateSet Sandbox') markets itself as an AI commerce-operations platform with a SOC 2 Type II report and enterprise customers, consistent with an operating, revenue-generating independent company, but no funding figures could be confirmed or credibly estimated in the time available."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": null,
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [],
  "portfolio_listings": [],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": null,
   "source": ""
  },
  "note": "StateSet, Inc. is a San Francisco-area (phone area code 650) company operating stateset.com, an 'AI execution plane for commerce operations' (order/returns/refund/subscription automation, SOC 2 Type II audited). sandbox.stateset.app ('StateSet Sandbox') is a developer sandbox product offered under the same brand (same logo/org, linked from stateset.com's Developers > Sandboxes nav). No press releases, funding announcements, investor names, accelerator batch, or revenue figures were found on the company's own site, blog, or GitHub org; general web search engines (DuckDuckGo, Bing, Google) were inaccessible or returned unrelated/blocked results during this research session, and Crunchbase/PitchBook/LinkedIn profile pages could not be read (login walls / 403s). A distinct historical 'stateset.io' domain existed circa 2019-2020 (per Wayback Machine index) but its content could not be verified as the same entity, so it is not used as evidence here. Treat funding/stage/investors/revenue as genuinely unresearched rather than confirmed-absent."
 },
 "id": "stateset",
 "name": "StateSet Sandbox",
 "url": "https://sandbox.stateset.app/",
 "category": "agent-sandbox",
 "isolation": "gvisor",
 "modes": [
  {
   "key": "shared-spot",
   "label": "Shared (Spot, preemptible)",
   "flags": [
    "spot"
   ],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "isolation": "gvisor"
   },
   "pricing": "resource",
   "vcpu_h": 0.0055,
   "ram_gib_h": 0.00075,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": 1,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": null,
   "granularity_s": 1,
   "start_fee": 6e-7,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "cpu_class": "shared",
   "note": "Shared class, same on every plan: \"Shared CPU per vCPU-hour $0.0055 ... Memory per GB-hour $0.00075\", \"4 vCPU · 8 GB : $0.028/hour at its full size\", \"Burstable, on Spot capacity\", \"Can be preempted Yes\", \"A shared sandbox is billed for its full size for the wall-clock time it runs, and billing stops if it is preempted\" (https://sandbox.stateset.app/pricing, 2026-10-14). Minimum size 1 vCPU. Plan allowances do not apply (\"shared compute is billed from the first second\"). $0.15/GB network and $0.60/million creates on Hobby/Pro (Team $0.12 / $0.50, not split out here)."
  },
  {
   "key": "on-demand",
   "label": "Dedicated (on-demand)",
   "flags": [],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {
    "isolation": "gvisor"
   },
   "pricing": "resource",
   "vcpu_h": 0.128,
   "ram_gib_h": 0.0106,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": null,
   "granularity_s": 1,
   "start_fee": 6e-7,
   "boot_overhead_s": null,
   "multiplier": 0.5,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Dedicated class, Hobby/Pro list rates $0.128/vCPU-h and $0.0106/GB-h, \"Dedicated compute is billed at 50% of the allocated vCPU and memory (an estimate of average utilization), so a 4 vCPU · 8 GB dedicated sandbox costs $0.2984 /hour on Pro\" (https://sandbox.stateset.app/pricing, 2026-10-14): modelled as multiplier 0.5 on the full allocation (fixed 50%, not measured usage). \"Guaranteed CPU and memory, on-demand\", never preempted. Billed per second. $0.15/GB network, $0.60/million creates. Team list rates are lower ($0.10 / $0.008 / $0.12 / $0.50), modelled as the Team-only regime below.",
   "cpu_class": "dedicated"
  },
  {
   "key": "team-on-demand",
   "label": "Dedicated (Team rates)",
   "flags": [],
   "plans": [
    "Team"
   ],
   "pricing": "resource",
   "vcpu_h": 0.1,
   "ram_gib_h": 0.008,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "start_fee": 5e-7,
   "egress_gib": 0.12,
   "note": "Team-only dedicated list rates $0.10/vCPU-h, $0.008/GB-h, also billed on 50% of the allocation (\"4 vCPU · 8 GB per hour, billed on 50% of its size ... $0.232\" on Team, https://sandbox.stateset.app/pricing, 2026-10-14), so multiplier 0.5. Billed per second.",
   "cpu_class": "dedicated",
   "multiplier": 0.5,
   "granularity_s": 1
  }
 ],
 "storage": {
  "included_disk_gib": null,
  "disk_gib_month": null,
  "disk_billed_when_stopped": null,
  "snapshot_gib_month": null,
  "paused_ram_billed": false,
  "artifacts": "Persistent files outside a sandbox, transferable between sandboxes, with signed time-limited download URLs; no storage price or retention limit is published."
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": 0.15,
  "ipv4_month": null,
  "ipv4_available": null
 },
 "plans": [
  {
   "name": "Hobby",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "concurrency": 10,
   "max_session_h": 0.75,
   "included_vcpu_h": 5,
   "included_ram_gib_h": 420,
   "included_egress_gib": 20,
   "included_creates": 5000,
   "note": "Free. 10 concurrent sandboxes, 45-minute max runtime, no durable sandboxes. Allowances (dedicated usage only) are per-resource buckets (not fungible), so included_usd 0.",
   "start_rate_limit": "40 vCPU per 10 minutes"
  },
  {
   "name": "Pro",
   "fee": 49,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "concurrency": 2000,
   "max_session_h": 24,
   "included_vcpu_h": 50,
   "included_ram_gib_h": 500,
   "included_egress_gib": 100,
   "included_creates": 50000,
   "note": "$49/mo. 2,000 concurrent, 24-hour max runtime, 20 durable sandboxes with a 3-day lifetime. Allowances cover dedicated usage only and are per-resource (not fungible), included_usd 0.",
   "start_rate_limit": "200 vCPU per minute"
  },
  {
   "name": "Team",
   "fee": 299,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "concurrency": 10000,
   "max_session_h": 24,
   "included_vcpu_h": 500,
   "included_ram_gib_h": 5000,
   "included_egress_gib": 1000,
   "included_creates": 500000,
   "note": "$299/mo. 10,000 concurrent, 24-hour max runtime, 100 durable sandboxes with a 7-day lifetime. Lower dedicated rates ($0.10/vCPU-h, $0.008/GB-h) are the Team-only regime; network $0.12/GB and creates $0.50/M on both classes are not split out for the shared class. Allowances cover dedicated usage only, per-resource, included_usd 0.",
   "start_rate_limit": "1,000 vCPU per minute"
  }
 ],
 "free": {
  "monthly_credit": null,
  "one_time_credit": 25
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "snapshot": "fs",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": true,
  "volumes": null,
  "auto_stop_idle": false,
  "max_session_h": 24,
  "custom_image": null,
  "docker_inside": false,
  "nested_virt": false,
  "root": false,
  "systemd": null,
  "browser": false,
  "desktop": null,
  "computer_use": null,
  "code_interpreter": null,
  "agent_harnesses": true,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": true,
  "static_egress_ip": false,
  "private_network": true,
  "self_host": true,
  "byoc": false,
  "open_source": false,
  "soc2": false,
  "hipaa": false,
  "sso": true,
  "gpu_types": [],
  "regions": [
   "us"
  ],
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": true,
  "spend_limits": true,
  "mcp_server": false,
  "isolation": "gvisor",
  "image_oci": false,
  "agent_sessions": true,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": true,
  "egress_allowlist_level": "both",
  "ingress_rules": true,
  "guest_firewall": false,
  "secret_proxy": "ai-only",
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "volume_attach": false,
  "volume_shared": false,
  "own_agent_api": false,
  "usage_api": false,
  "persist_scope": "folder",
  "persist_path": "the workspace volume"
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "knobs": [],
 "caveats": [
  "Public homepage lists compute/network/create meters. gVisor Kubernetes pods, non-root. Free CPU-hours cannot be applied to RAM or network. Runtime price shown as CPU-hour; allocated versus observed CPU metering is not fully specified.",
  "ENGINE_CARD cannot apply all independent free CPU/RAM/storage/request allowances exactly. Raw regimes/worked example retain them; any engine subtotal may overstate charges or miss eligibility. Do not subtract them twice.",
  "Features set to null were not verified. No sandbox was purchased or tested; feature/performance statements are documentation claims. Null maximums are unknown unless a cited note explicitly states unlimited.",
  "A complete monthly bill requires known snapshot/egress/plan limits; do not silently treat missing ancillary charges as free.",
  "Plans re-checked 2026-10-14 on sandbox.stateset.app/pricing: Hobby $0 (10 concurrent, 45 min max), Pro $49 (2,000 concurrent, 24 h, 20 durable sandboxes / 3-day lifetime), Team $299 (10,000 concurrent, 24 h, 100 durable / 7 days). Included vCPU-h / GB-h / network / creates are separate buckets kept as extra plan keys and cover dedicated usage only (\"Included vCPU-hours and memory GB-hours cover dedicated usage only; shared compute is billed from the first second\"); the engine only understands a fungible included_usd, so they are not credited (small overstatement on dedicated rows).",
  "Disk: no per-sandbox disk size or disk price on the pricing page; disk beyond 0 GiB stays unknown. Snapshots: checkpoints are filesystem + env only (\"Process state is not captured\"), max 10 GB, retained 90 days, stored in GCS/S3; no checkpoint storage price published (snapshot_gib_month null). The docs production guide carries an older conflicting table ($0.05/vCPU-h, $0.02/GB-h, $0.20/GB-month storage, different plan limits) that is not used.",
  "Access is API/SDK only (run commands, files, artifacts); no SSH. The SDK 2.1.0 typings add screenshot/mouse/keyboard calls for a \"computer-use image\" that no docs page documents, so desktop and computer-use are unverified (null), not offered-and-tested. Pods run non-root with a read-only root filesystem (root false).",
  "Nested virtualization set to no: every sandbox runs under gVisor, which gives the workload its own user-space kernel and no /dev/kvm device (no KVM-based emulators or VMs inside). Docker inside is a separate question.",
  "Two compute classes since 2026-10 (sandbox.stateset.app/pricing, 2026-10-14): shared sandboxes run on Spot capacity at $0.0055/vCPU-h + $0.00075/GB-h on the full size ($0.028/h for 4 vCPU / 8 GB) and \"can be preempted\"; dedicated sandboxes get guaranteed CPU and memory at the list rates billed on a fixed 50% of the allocation ($0.2984/h for 4 vCPU / 8 GB on Pro, $0.232 on Team). The shared class is flagged spot, so it is priced only when interruptible capacity is allowed.",
  "Isolation: gVisor by default (priced here); Kata Containers microVM isolation is a per-sandbox option with no separate published price (sandbox.stateset.app/security, 2026-10-14).",
  "Durable sandboxes (Pro 20, Team 100) can be paused, and \"Paused durable sandboxes stop compute billing while paused\"; their lifetime is 3 days (Pro) / 7 days (Team). Storage for a paused durable sandbox has no published price."
 ],
 "sources": [
  "https://sandbox.stateset.app/",
  "https://sandbox.stateset.app/pricing",
  "https://sandbox.stateset.app/docs/checkpoints",
  "https://sandbox.stateset.app/docs/production-guide",
  "https://sandbox.stateset.app/security",
  "https://sandbox.stateset.app/benchmarks",
  "https://unpkg.com/@stateset/sandbox-sdk@2.1.0/dist/client.d.ts"
 ],
 "fleet": {
  "default_max_instances": 10,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": "Free no credit card.",
  "tiers": "Hobby 10; Pro ($49/month) 2,000; Team ($299/month) 10,000.",
  "notes": "Current pricing differs from a legacy production-guide table (Free 2). Use current pricing but confirm account limits. vCPU allocation rates 40/10min Hobby, 200/min Pro, 1,000/min Team are ramp limits, not aggregate CPU quota. 50/300/1,000 fit Pro concurrency.",
  "sources": [
   "https://sandbox.stateset.app/pricing",
   "https://sandbox.stateset.app/"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 16,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 1
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://sandbox.stateset.app/docs/agent-sessions",
   "quote": "When a sandbox nears expiry the platform checkpoints it, creates a fresh sandbox, and restores state — seamlessly.",
   "note": "Only for Agent Sessions (sandbox rotation before timeout, pre_rotate_buffer_seconds). Filesystem + env only: checkpoints guide says 'Process state is not captured (only filesystem)'. Plain sandboxes auto-terminate at timeout without a checkpoint.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://sandbox.stateset.app/docs/checkpoints",
   "quote": "They capture the filesystem, environment variables, and metadata at a point in time",
   "note": "POST /sandbox/:id/checkpoints, restore (same or a different new sandbox), clone, compare; SDK also has forkSandbox. No memory ('Process state is not captured (only filesystem)'); max 10 GB, retained 90 days.",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": true,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "High-level helper for running Claude Code agents in sandboxes.",
   "note": "SDK AgentRunner.run({prompt, systemPrompt, allowedTools, mcpServers, maxTurns}) writes a Claude Agent SDK script into the sandbox and streams typed events (message/tool_use/tool_result/done) via onEvent; one-shot, no follow-up/resume API. Built on exec streaming; injects ANTHROPIC_API_KEY as env. Only in the npm SDK README, not the docs site. Agent Sessions (docs) are exec/budget/event-log containers, not a harness driver. Claude Code CLI preinstalled.",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Set the egress policy for the organization",
   "note": "SDK types: EgressPolicy {mode: 'allow_all'|'allowed_domains'|'denied_domains'|'allowed_ports', allowed_domains, denied_domains, allowed_ports, enforcement 'enforce'|'log_only', failure_mode} via PUT /settings/egress, plus egress audit log (host/port/decision). Organization-wide, not per sandbox; documented only in SDK typings, not on docs pages. Docs site only says 'strict network policies'.",
   "checked": "2026-09-29",
   "level": "both"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Create a tunnel for a sandbox port",
   "note": "SDK createTunnel(sandboxId, {port, protocol, expires_in, public}) returns url, expires_at and optional token; per-port opt-in, expiring, public flag. SDK-only, not on docs pages. No IP allowlists.",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/production-guide",
   "quote": "Non-root user execution",
   "note": "Default isolation is gVisor Kubernetes pods, non-root with all Linux capabilities dropped (\"Sandbox containers run as a non-root user with privilege escalation disabled, all Linux capabilities dropped and a seccomp profile applied\", https://sandbox.stateset.app/security, 2026-10-14), so in-sandbox iptables/nftables is not available. Kata microVM is a per-sandbox option but keeps the same non-root container settings.",
   "checked": "2026-09-29"
  },
  "secret_proxy": {
   "value": "ai-only",
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "The controller decrypts the org's API key secret and injects it into the outbound request, so the API key never enters the sandbox.",
   "note": "Inference proxy POST /sandbox/:id/inference for LLM providers only (provider + path + body), called with the StateSet API key through the control plane. General secrets are org secrets injected into the sandbox as env vars (injectSecrets ... as_env_vars: true), i.e. visible to the agent. No arbitrary-host / non-HTTP credential proxy.",
   "checked": "2026-09-29"
  },
  "image_oci": {
   "value": false,
   "source": "https://www.npmjs.com/package/@stateset/sandbox-sdk",
   "quote": "Sandbox template. Determines the container image and pre-installed tools. - 'base' - 'claude-code' - 'browser' - 'rust' - 'go'",
   "note": "Docs/SDK only expose fixed named templates (base/claude-code/browser/rust/go/...). The published TypeScript SDK types include an undocumented `image?: string` override field on create(), but it is not described on any docs/pricing page as a supported bring-your-own-OCI-image feature, so treated as not offered.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/production-guide",
   "quote": "Non-root user execution",
   "note": "Sandboxes run as non-root, read-only-root-filesystem gVisor Kubernetes pods; no docs mention a container runtime (Docker/Podman) available inside the sandbox. SDK isolation enum also lists 'microvm'/'kata' but these aren't documented as running nested Docker.",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://sandbox.stateset.app/",
   "quote": "Run agent workflows in isolated Kubernetes environments. Execute code, read and write files, and store artifacts — all securely.",
   "note": "not offered: outside the product's scope — this is a code-execution/agent sandbox product, not a scraping/browser-stealth product; no anti-bot or fingerprinting feature is documented.",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://sandbox.stateset.app/",
   "quote": "Run agent workflows in isolated Kubernetes environments. Execute code, read and write files, and store artifacts — all securely.",
   "note": "not offered: outside the product's scope — no CAPTCHA-solving capability is documented anywhere on the site, docs, or SDK.",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://sandbox.stateset.app/",
   "quote": "gVisor runtime, non-root containers, and strict network policies.",
   "note": "derived: sandboxes are multi-tenant Kubernetes pods with shared cluster egress; no static, residential, or mobile egress IP is documented, so outbound traffic is ordinary shared datacenter IP space.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/checkpoints",
   "quote": "Process state is not captured (only filesystem)",
   "note": "Checkpoints/forks (forkSandbox, promoteSandbox) are built on filesystem+env checkpoints only; running processes are not restored, so forks do not carry memory state.",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": true,
   "corrected_from": false,
   "source": "https://sandbox.stateset.app/pricing",
   "quote": "Paused durable sandboxes stop compute billing while paused.",
   "note": "Only durable sandboxes: \"Durable sandboxes 20 Durable sandbox lifetime 3 days\" on Pro, 100 / 7 days on Team, \"Not available\" on Hobby. Security page lists pause and resume as sandbox lifecycle actions (\"Sandbox lifecycle actions (create, extend, fork, promote, pause, resume, terminate)\", https://sandbox.stateset.app/security). Whether memory survives a pause is not published; the published SDK 2.1.0 has no sandbox pause call (only pauseAgentSession, which keeps the sandbox running).",
   "checked": "2026-10-14"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://sandbox.stateset.app/faq",
   "quote": "Each sandbox has a timeout (default and plan-based). You can set a custom timeout per sandbox within your plan limits.",
   "note": "Sandboxes are created via explicit API call and auto-terminate at a fixed timeout; no docs describe a stopped/sleeping sandbox being woken automatically by an inbound request.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Persistent workspaces use a sandbox-scoped Kubernetes PVC and can participate in CSI snapshot branching when enabled.",
   "note": "CreateSandboxOptions.workspace.persistence can be 'ephemeral' or 'persistent'; persistent mode backs the /workspace directory with a real PVC rather than pod-local storage. Not documented on the public docs pages, only in the SDK's TypeScript types.",
   "checked": "2026-09-30"
  },
  "volume_attach": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "workspace?: { persistence: 'ephemeral' | 'persistent'; size?: string; }",
   "note": "Only a single per-sandbox workspace volume is exposed in the API/SDK; there is no separate API to attach additional named persistent volumes to a running sandbox.",
   "checked": "2026-09-30"
  },
  "volume_shared": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Persistent workspaces use a sandbox-scoped Kubernetes PVC",
   "note": "The workspace PVC is explicitly sandbox-scoped (one PVC per sandbox), not shareable/mountable by multiple concurrently running sandboxes.",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": false,
   "source": "https://sandbox.stateset.app/pricing",
   "quote": "Limits Max runtime: 45 minutes Max concurrent sandboxes: 10",
   "note": "Sandboxes stop on a fixed max-runtime timeout set at creation, not on idle-activity detection; no idle-based auto-stop is documented.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "extend(sandboxId, additionalSeconds) — Extend a sandbox lifetime by additional seconds",
   "note": "The SDK exposes an API to extend a sandbox's remaining lifetime, but no API to change a running sandbox's CPU/memory allocation without recreating it.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://sandbox.stateset.app/",
   "quote": "Run agent workflows in isolated Kubernetes environments. Execute code, read and write files, and store artifacts — all securely.",
   "note": "not offered: outside the product's scope — StateSet Sandbox's own first-party API drives coding-harness workflows (Claude Code via AgentRunner) and preinstalls a domain-specific `stateset` commerce CLI, but there is no first-party API for a browser/computer-use/research task agent.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "startMCPServer(sandboxId, config): Promise<{ name, pid, port, status }>",
   "note": "The SDK's MCP feature lets a caller start/stop/list arbitrary MCP servers running as processes inside a sandbox (the opposite direction). A separate 'stateset-mcp-server' GitHub repo is an MCP server for StateSet's e-commerce API (orders/inventory/customers), unrelated to controlling this sandbox product. No MCP server is shipped to control the sandbox platform itself.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "pod_ip?: string — Pod IP address for direct connections.",
   "note": "Sandboxes only expose an internal Kubernetes pod IP; there is no documented dedicated/public IPv4 address per sandbox. Inbound access is via HTTPS tunnels instead.",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": true,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Create a tunnel for a sandbox port",
   "note": "createTunnel(sandboxId, {port, protocol: 'http'|'https', expires_in, public}) returns a URL to reach a sandbox port over HTTP/HTTPS; SDK-only, not documented on the public docs pages.",
   "checked": "2026-09-30"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "EgressPolicy: mode: 'allow_all' | 'allowed_domains' | 'denied_domains' | 'allowed_ports'",
   "note": "Egress control granularity is at the domain/port level (allowed_domains, denied_domains, allowed_ports), not at the HTTP method/path level.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://sandbox.stateset.app/",
   "quote": "Isolated network namespaces",
   "note": "No fixed/static outbound IP is documented anywhere; egress goes through shared multi-tenant cluster networking with org-wide allow/deny policies, not a dedicated egress IP.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://sandbox.stateset.app/pricing",
   "quote": "Usage rates Simple metering across compute, memory, network, and creations. CPU $0.128 per vCPU-hour Memory $0.0106 per GB-hour Network $0.15 per GB Creations $0.60 per 1M",
   "note": "Pricing page meters CPU/memory/network/creates only; no GPU tier or price is published. The SDK's TypeScript types include an unused/undocumented `gpu?: GpuRequest` field on create(), but it is not marketed, priced, or documented as an available option.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Desktop OS (linux, windows, macos). Only linux is currently supported.",
   "note": "SDK typings explicitly state only Linux is currently supported for desktop_os.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Desktop OS (linux, windows, macos). Only linux is currently supported.",
   "note": "Same field as windows: macOS is a listed enum value but explicitly not currently supported.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/production-guide",
   "quote": "StateSet Sandbox is a secure, isolated execution environment for running code on behalf of AI agents. It provides containerized sandboxes with full lifecycle management, checkpointing, artifact storage, and usage tracking.",
   "note": "not offered: outside documented scope — no architecture selection or ARM machine type is mentioned anywhere in the docs, pricing, or SDK.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://sandbox.stateset.app/launch",
   "quote": "Self-hosted Bring it to your cluster Deploy the controller on your Kubernetes cluster to control networking and data.",
   "note": "This is customer-run self-hosting (self_host=true), where the customer deploys and operates the controller themselves — not a StateSet-managed service deployed and operated inside the customer's own cloud account (BYOC).",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://api.github.com/repos/stateset/stateset-sandbox",
   "quote": "Not Found",
   "note": "The sandbox controller/product source repo (stateset/stateset-sandbox, the SDK's declared 'repository') is not publicly accessible via the GitHub API. The npm client SDK is MIT-licensed, but that is only a thin API client, not the core sandbox product, so the core product is treated as not open source.",
   "checked": "2026-09-30"
  },
  "hipaa": {
   "value": false,
   "source": "https://sandbox.stateset.app/security",
   "quote": "We do not currently hold a SOC 2 report or other third-party certification.",
   "note": "No third-party certification of any kind; no HIPAA/BAA mention on the site.",
   "checked": "2026-10-14"
  },
  "eu_data_residency": {
   "value": false,
   "source": "https://sandbox.stateset.app/benchmarks",
   "quote": "The benchmark runs on the production cluster in us-central1 , using the same code path as the public API.",
   "note": "The hosted service runs on one Google Cloud cluster in us-central1; no EU region or region choice is published.",
   "checked": "2026-10-14"
  },
  "max_session_h": {
   "value": 24,
   "source": "https://sandbox.stateset.app/pricing",
   "quote": "Pro $49 /month Plus usage, billed per second. Limits Max sandbox runtime 24 hours",
   "note": "Pro and Team both \"Max sandbox runtime 24 hours\"; Hobby 45 minutes. Durable sandboxes (Pro 20, Team 100) have a separate lifetime of 3 days (Pro) / 7 days (Team) and can be paused.",
   "checked": "2026-10-14"
  },
  "fork_running": {
   "value": true,
   "corrected_from": false,
   "source": "https://unpkg.com/@stateset/sandbox-sdk@2.1.0/dist/client.d.ts",
   "quote": "Fork a sandbox into a new sandbox by checkpointing and restoring state.",
   "note": "fork(sandboxId, {cpus, memory, isolation, include_env, ...}) returns parent_id, forked_id, checkpoint_id and workspace_strategy 'file-checkpoint' | 'csi-snapshot': a live sandbox is checkpointed (filesystem + env, no memory: \"Process state is not captured (only filesystem)\", docs/checkpoints) and restored into a new one, the same disk-fork shape as boat.dev. SDK typings only, not on the docs pages.",
   "checked": "2026-10-14"
  },
  "nested_virt": {
   "value": false,
   "source": "https://sandbox.stateset.app/",
   "quote": "Every sandbox runs in complete isolation with gVisor, non-root containers, and strict network policies.",
   "note": "Isolation is gVisor-sandboxed Kubernetes pods (also stated in production-guide: 'Sandboxes\tKubernetes Pods\tIsolated execution' and 'Read-only root filesystem' / 'Non-root user execution'). gVisor intercepts syscalls in userspace and does not expose /dev/kvm or hardware virtualization to the guest, so KVM-based nested VMs are not possible. No page explicitly says 'no nested virtualization', hence medium confidence rather than a direct quote settling it.",
   "checked": "2026-09-30"
  },
  "root": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/production-guide",
   "quote": "Read-only root filesystem\nNon-root user execution",
   "note": "Production guide's Security > Sandbox Isolation section explicitly lists non-root execution and a read-only root filesystem as security properties of every sandbox pod; homepage repeats 'Non-root container execution'.",
   "checked": "2026-09-30"
  },
  "ssh": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/production-guide",
   "quote": "Method\tEndpoint\tDescription\nPOST\t/api/v1/sandbox/create\tCreate sandbox\nGET\t/api/v1/sandbox/:id\tGet sandbox details\nGET\t/api/v1/sandbox/:id/status\tGet sandbox status (lightweight)\nPOST\t/api/v1/sandbox/:id/execute\tExecute command\nPOST\t/api/v1/sandbox/:id/files\tWrite files\nGET\t/api/v1/sandbox/:id/files?path=...\tRead file\nPOST\t/api/v1/sandbox/:id/stop\tStop sandbox\nDELETE\t/api/v1/sandbox/:id\tDelete sandbox\nGET\t/api/v1/sandboxes\tList sandboxes",
   "note": "The production guide's complete API reference (sandbox, checkpoints, artifacts, webhooks) has no SSH/terminal-access endpoint; the homepage also says 'Five endpoints. That's all you need.' (Create, Execute, Write, Read, Store) — access is exec-over-HTTP only.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": null,
   "was": false,
   "source": "https://unpkg.com/@stateset/sandbox-sdk@2.1.0/dist/client.d.ts",
   "quote": "Requires a desktop sandbox (computer-use image with DISPLAY env var).",
   "note": "A desktop exists only inside the undocumented computer-use image, reachable through screenshot/mouse/keyboard calls; no VNC or live stream is offered. Unverified rather than false.",
   "checked": "2026-10-14"
  },
  "browser": {
   "value": false,
   "source": "https://sandbox.stateset.app/",
   "quote": "Simple, powerful API\n\nFive endpoints. That's all you need.\n1 Create / 2 Execute / 3 Write / 4 Read / 5 Store",
   "note": "No browser-automation/Chromium-in-sandbox endpoint anywhere in the docs (production-guide's full endpoint list covers sandbox/checkpoints/artifacts/webhooks only); the only 'browser' mention on the site is 'useful for browser downloads' about signed artifact URLs opened in the user's own local browser, unrelated to an in-sandbox browser feature.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": null,
   "was": false,
   "source": "https://unpkg.com/@stateset/sandbox-sdk@2.1.0/dist/client.d.ts",
   "quote": "Capture a screenshot of the sandbox desktop ... Requires a desktop sandbox (computer-use image with DISPLAY env var).",
   "note": "SDK 2.1.0 has screenshot(), mouse() (click/drag), keyboard() (type/key/hotkey) and getScreenSize() for a desktop sandbox, so false no longer holds; but no docs page, template list or pricing line documents the computer-use image, so availability is unverified. Homepage advertises \"browser-ready environments\".",
   "checked": "2026-10-14"
  },
  "usage_api": {
   "value": false,
   "source": "https://sandbox.stateset.app/docs/production-guide",
   "quote": "API Endpoints: Registration & API Keys, Sandboxes, Checkpoints, Artifacts, Webhooks. Dashboard pages include Usage (/dashboard/usage) for viewing usage and billing. No GET /api/v1/usage or billing endpoint listed.",
   "note": "granularity: account-only; cost: no; StateSet Sandbox tracks usage (usage_events in database) and exposes it via the /dashboard/usage web page, but does not provide a programmatic API to retrieve usage metrics or cost per sandbox or by tag. Usage is accessible only through the UI dashboard or billing invoices.",
   "confidence": "high",
   "checked": "2026-10-01"
  },
  "persist_scope": {
   "value": "folder",
   "source": "https://registry.npmjs.org/@stateset/sandbox-sdk",
   "quote": "Persistent workspaces use a sandbox-scoped Kubernetes PVC and can participate in CSI snapshot branching when enabled.",
   "note": "Only the workspace volume survives a stop; the rest of the filesystem (packages installed elsewhere) resets.",
   "checked": "2026-10-01"
  },
  "soc2": {
   "value": false,
   "corrected_from": true,
   "source": "https://sandbox.stateset.app/security",
   "quote": "We do not currently hold a SOC 2 report or other third-party certification. We are building toward a SOC 2 audit",
   "note": "The old homepage line \"SOC 2 Type II compliant\" is gone from the live homepage.",
   "checked": "2026-10-14"
  },
  "scoped_api_keys": {
   "value": true,
   "source": "https://sandbox.stateset.app/security",
   "quote": "API keys can be limited to specific scopes (create, read, write) and given an expiry date.",
   "note": "Keys can also be revoked or regenerated; sandboxes call back with a token scoped to that one sandbox.",
   "checked": "2026-10-14"
  },
  "isolation": {
   "value": "gvisor",
   "source": "https://sandbox.stateset.app/security",
   "quote": "The default runtime is gVisor, a user-space kernel that stands between sandboxed code and the host kernel. Kata Containers microVM isolation is available as a per-sandbox option.",
   "note": "gVisor is the default and is what the card prices; Kata microVMs are a per-sandbox option at no published price difference (SDK isolation: 'container' | 'gvisor' | 'microvm' | 'kata' | 'wasm'; promote() moves a sandbox to another isolation level). Containers stay non-root with all capabilities dropped either way.",
   "checked": "2026-10-14"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "IA",
   "city": "Council Bluffs",
   "provider_region": "us-central1",
   "self_serve": true,
   "choosable": false
  }
 ],
 "locations_source": "https://sandbox.stateset.app/benchmarks",
 "locations_quote": "The benchmark runs on the production cluster in us-central1 , using the same code path as the public API.",
 "locations_checked": "2026-10-14",
 "locations_note": "One hosted production cluster on Google Cloud (\"Data at rest in our cloud database and object storage is encrypted by the underlying Google Cloud services.\", https://sandbox.stateset.app/security); us-central1 is Council Bluffs, Iowa. No region selection. Self-host on your own Kubernetes cluster is separate."
}