{"id":"ac87c360-48ec-436e-8fcc-9c3f0bdcc986","entityType":"agent","slug":"clawhub-simmer-simmer-wallet-setup","name":"simmer-wallet-setup","canonicalUrl":"https://www.xpersona.co/agent/clawhub-simmer-simmer-wallet-setup","canonicalPath":"/agent/clawhub-simmer-simmer-wallet-setup","generatedAt":"2026-10-11T01:46:41.990Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:37:08.207Z","emptyReason":null},"description":"Self-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17eez0vajry6hjb97y9mbtv2s85wekv:simmer-wallet-setup","sourceUrl":"https://clawhub.ai/simmer/simmer-wallet-setup","homepage":"https://clawhub.ai/simmer/skills/simmer-wallet-setup","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/simmer/simmer-wallet-setup","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/simmer/skills/simmer-wallet-setup","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"simmer-wallet-setup technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:37:08.207Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:37:08.207Z","emptyReason":null},"stars":null,"forks":null,"downloads":1240,"packageName":null,"latestVersion":"0.4.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:37:08.193Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T22:37:08.207Z","lastCrawledAt":"2026-10-10T22:37:08.193Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T22:37:08.193Z","lastVerifiedAt":null,"highlights":[{"version":"0.4.0","createdAt":"2026-08-19T00:47:40.110Z","changelog":"External-key path is primary; OWS repositioned as optional key store (per-agent OWS registrations closed); new Polymarket-import path (import_polymarket_wallet, SDK 0.24.4+).","fileCount":4,"zipByteSize":7235},{"version":"0.3.1","createdAt":"2026-05-20T12:01:43.261Z","changelog":"- Added support and instructions for connecting an existing dashboard-registered agent wallet to the local runtime. - Updated documentation to describe three wallet setup paths: OWS per-agent (recommended), external raw key, and connecting an existing agent. - Clarified descriptions and usage scenarios for each wallet mode. - Updated skill version to 0.3.1 and metadata accordingly.","fileCount":4,"zipByteSize":6995},{"version":"0.2.2","createdAt":"2026-05-15T11:14:12.381Z","changelog":"- Updated managed wallet instructions to clarify that funding/activation must go through the dashboard bridge wizard, not direct EOA transfers. - Expanded guidance on acceptable funding assets (USDC, USDT, USDC.e) and supported networks for the dashboard wizard. - Warned against sending funds directly to agent wallet EOAs except for legacy use cases. - Bumped version metadata to 0.2.2.","fileCount":3,"zipByteSize":4707},{"version":"0.2.1","createdAt":"2026-05-12T12:15:40.890Z","changelog":"Simmer Wallet Setup 0.2.1 - Updated instructions to clarify fully headless registration of OWS wallets via the SDK (no browser or dashboard session required for Elite users). - Added explicit installation step for the Simmer SDK with OWS bindings (`pip install 'simmer-sdk[ows]'`) in the OWS setup guide. - Documented new `client.wrap_on_dw()` utility for headless USDC.e-to-pUSD wrapping in Deposit Wallets (SDK ≥ 0.17.7). - Improved dashboard alternative instructions for agent wallet linking and clarified parity with SDK flow. - Minor copy edits and clarifications throughout setup steps.","fileCount":3,"zipByteSize":4529},{"version":"0.2.0","createdAt":"2026-05-12T02:16:50.273Z","changelog":"Simmer Wallet Setup 0.2.0 - `set_approvals()` and `link_wallet()` are now fully headless with both OWS and external raw key flows; browser session no longer required. - Added support and documentation for activating Polymarket Deposit Wallets entirely headlessly using `client.activate_polymarket_dw()`. - Clarified one-time `register_agent_wallet()` Elite requirement and guidance on dashboard session usage. - Improved instructions for raw key users and for migrating to OWS, emphasizing key never leaves local agent. - Updated sample code and troubleshooting to reflect new headless capabilities.","fileCount":3,"zipByteSize":4107},{"version":"0.1.0","createdAt":"2026-04-30T10:50:59.749Z","changelog":"Initial Tier A self-custody wallet setup skill — OWS recommended, external raw key supported. Managed users skip this skill (dashboard flow).","fileCount":3,"zipByteSize":3903}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17eez0vajry6hjb97y9mbtv2s85wekv:simmer-wallet-setup","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17eez0vajry6hjb97y9mbtv2s85wekv:simmer-wallet-setup` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/simmer/simmer-wallet-setup before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T01:46:41.988Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-simmer-wallet-setup/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:37:08.207Z","emptyReason":null},"readme":"Skill: simmer-wallet-setup\n\nOwner: simmer\n\nSummary: Self-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\n\nTags: latest:0.4.0\n\nVersion history:\n\nv0.4.0 | 2026-08-19T00:47:40.110Z | user\n\nExternal-key path is primary; OWS repositioned as optional key store (per-agent OWS registrations closed); new Polymarket-import path (import_polymarket_wallet, SDK 0.24.4+).\n\nv0.3.1 | 2026-05-20T12:01:43.261Z | auto\n\n- Added support and instructions for connecting an existing dashboard-registered agent wallet to the local runtime.\n- Updated documentation to describe three wallet setup paths: OWS per-agent (recommended), external raw key, and connecting an existing agent.\n- Clarified descriptions and usage scenarios for each wallet mode.\n- Updated skill version to 0.3.1 and metadata accordingly.\n\nv0.2.2 | 2026-05-15T11:14:12.381Z | auto\n\n- Updated managed wallet instructions to clarify that funding/activation must go through the dashboard bridge wizard, not direct EOA transfers.\n- Expanded guidance on acceptable funding assets (USDC, USDT, USDC.e) and supported networks for the dashboard wizard.\n- Warned against sending funds directly to agent wallet EOAs except for legacy use cases.\n- Bumped version metadata to 0.2.2.\n\nv0.2.1 | 2026-05-12T12:15:40.890Z | auto\n\nSimmer Wallet Setup 0.2.1\n\n- Updated instructions to clarify fully headless registration of OWS wallets via the SDK (no browser or dashboard session required for Elite users).\n- Added explicit installation step for the Simmer SDK with OWS bindings (`pip install 'simmer-sdk[ows]'`) in the OWS setup guide.\n- Documented new `client.wrap_on_dw()` utility for headless USDC.e-to-pUSD wrapping in Deposit Wallets (SDK ≥ 0.17.7).\n- Improved dashboard alternative instructions for agent wallet linking and clarified parity with SDK flow.\n- Minor copy edits and clarifications throughout setup steps.\n\nv0.2.0 | 2026-05-12T02:16:50.273Z | auto\n\nSimmer Wallet Setup 0.2.0\n\n- `set_approvals()` and `link_wallet()` are now fully headless with both OWS and external raw key flows; browser session no longer required.\n- Added support and documentation for activating Polymarket Deposit Wallets entirely headlessly using `client.activate_polymarket_dw()`.\n- Clarified one-time `register_agent_wallet()` Elite requirement and guidance on dashboard session usage.\n- Improved instructions for raw key users and for migrating to OWS, emphasizing key never leaves local agent.\n- Updated sample code and troubleshooting to reflect new headless capabilities.\n\nv0.1.0 | 2026-04-30T10:50:59.749Z | user\n\nInitial Tier A self-custody wallet setup skill — OWS recommended, external raw key supported. Managed users skip this skill (dashboard flow).\n\nArchive index:\n\nArchive v0.4.0: 4 files, 7235 bytes\n\nFiles: clawhub.json (778b), skill-card.md (2698b), SKILL.md (12732b), _meta.json (138b)\n\nFile v0.4.0:SKILL.md\n\n---\nname: simmer-wallet-setup\nversion: \"0.4.0\"\npublished: true\ndescription: Self-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.4.0\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. The standard self-custody signer.\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Optional key store — set instead of WALLET_PRIVATE_KEY if the key lives in an OWS vault.\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Three paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **[External key](#path-a--external-key)** (default) | Local SDK with `WALLET_PRIVATE_KEY` env — or an OWS key store via `OWS_WALLET` | Any self-custody setup: your own wallet, your key, your machine. |\n| **[Import a Polymarket wallet](#path-b--import-a-polymarket-wallet)** | Same local signing — key exported from polymarket.com | Fund with card/exchange via Polymarket's onramps; the wallet arrives at Simmer already funded and approved. |\n| **[Connect existing agent](#connect-existing-agent)** | Same local signing, wallet already registered in the dashboard | You already activated a dedicated per-agent wallet in the dashboard and want to wire your runtime to it. |\n\n> **Already on a managed wallet?** You don't need this skill — managed setup is a dashboard flow, not an agent task. Open [simmer.markets/dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill), go to your agent's **Wallet** tab, and click **Fund & activate trading**. The wizard opens a multi-chain bridge that accepts USDC, USDT, or USDC.e on Ethereum / Polygon / Base / Arbitrum / Solana — funds land as pUSD on your Polymarket Deposit Wallet, contracts auto-approve. **Do not tell the user to send funds directly to their agent wallet's EOA expecting them to sweep** — only legacy USDC.e on Polygon is recognized on the direct path; native USDC, USDT, and cross-chain tokens must go through the bridge wizard.\n\n## Key safety (read this first)\n\nThe private key goes in exactly one place: the agent host's environment, or a local key store.\n\n- Use `read -s` to set it — never paste a key into a pipe, a chat, a ticket, a shared config file, or a second browser extension \"just to sign\" (per SIM-2118):\n  ```bash\n  read -s -p 'WALLET_PRIVATE_KEY: ' K && export WALLET_PRIVATE_KEY=$K\n  ```\n- **Prefer a key store over a bare env var.** [OWS](https://openwallet.sh) (Open Wallet Standard) keeps the key encrypted at rest (AES-256-GCM); the SDK picks it up via `OWS_WALLET` and signs through the vault. Its policy engine can scope the agent's signing token to Polymarket orders only.\n  ```bash\n  curl -fsSL https://docs.openwallet.sh/install.sh | bash   # one-time OWS install\n  pip install 'simmer-sdk[ows]'\n  ows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\n  unset WALLET_PRIVATE_KEY\n  export OWS_WALLET=my-agent-wallet   # SDK signs via the vault from here\n  ```\n- If a key ever touches a chat or shared surface, treat it as compromised: withdraw to a fresh wallet and start over.\n\n## Path A — External key\n\nSet the key (see key safety above), then construct the client:\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\")\n# signer auto-detected: WALLET_PRIVATE_KEY or OWS_WALLET env var\nclient.link_wallet()    # signs a challenge message locally — fully headless\nclient.set_approvals()  # signs approval txs locally — fully headless, key never leaves agent\n\n# If your account uses a Polymarket Deposit Wallet (upgraded accounts):\nclient.activate_polymarket_dw()  # one-time — signs EIP-712 batch locally, no browser needed\n\n# If you have stranded USDC.e on your Deposit Wallet, wrap it to pUSD:\nresult = client.wrap_on_dw()  # idempotent — no-op when nothing stranded\n```\n\nAll calls work without a browser session. `link_wallet()` signs a challenge with your local key. `set_approvals()` builds, signs, and broadcasts each approval transaction via Simmer's RPC proxy — your key never leaves the agent process.\n\n> **Using a Deposit Wallet?** If your account has been upgraded to a Polymarket Deposit Wallet (DW), run `client.activate_polymarket_dw()` after `set_approvals()` — it signs the EIP-712 activation batch headlessly with your local key. Alternatively, use the dashboard browser flow at [simmer.markets/dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill) → Wallets → Activate Trading.\n\n> **Stranded USDC.e on your DW?** Run `client.wrap_on_dw()` to convert it to pUSD headlessly. Idempotent — safe to call on every startup; returns immediately if nothing is stranded. Returns `{\"wrapped\": bool, \"amount_units\": int, \"calls_count\": int, \"success\": bool}`. Requires the same signer as `activate_polymarket_dw()`. Added in SDK 0.17.7.\n\n### For Kalshi (Solana)\n\nSet `SOLANA_PRIVATE_KEY` (base58) in the env, fund with SOL + USDC, complete KYC at dflow.net/proof. If the key lives in an OWS vault, the same wallet's derived Solana account signs — no `SOLANA_PRIVATE_KEY` needed:\n\n```python\nclient = SimmerClient.from_env(venue=\"kalshi\")\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")\n```\n\n## Path B — Import a Polymarket wallet\n\nFor a wallet born on polymarket.com: create the account there, fund it with their onramps (card, exchange transfer), export the private key (polymarket.com → Settings → Export Private Key), and set it as `WALLET_PRIVATE_KEY` on the agent host (key safety above applies in full — this is a raw key).\n\n```python\nclient = SimmerClient.from_env()\nresult = client.import_polymarket_wallet()   # SDK 0.24.4+\n# links with ownership proof, adopts the Polymarket-deployed deposit wallet\n# (no redeploy), tops up approvals gaslessly, derives creds, reports balance\n```\n\nThe wallet arrives already funded and approved — Polymarket deployed the deposit wallet and pre-set the core exchange allowance. Note the shared surface: manual trades on polymarket.com use the same wallet as the agent and can collide with its positions.\n\nDocs: [docs.simmer.markets/polymarket-import](https://docs.simmer.markets/polymarket-import).\n\n## Dedicated per-agent wallets (Elite)\n\nElite accounts can give each agent its own wallet (own EOA + own deposit wallet, clean per-agent P&L). **Register the wallet from the dashboard** (My Agents → your agent → Add wallet), then activate on the host where the key lives:\n\n```python\n# WALLET_PRIVATE_KEY must be set to the agent EOA private key.\nclient.activate_polymarket_dw(agent_id=\"<agent_id>\")     # sets on-chain approvals — OWS/raw-key signed, gasless relay\nclient.update_agent_wallet_creds(agent_id=\"<agent_id>\")  # derives + caches CLOB creds\n```\n\nBoth calls are required (approvals first) and idempotent. Don't use `set_approvals()` here — that's the user-primary EOA path and a no-op for per-agent deposit wallets. Get `<agent_id>` from `client.get_agent_wallets()`.\n\n> **Existing OWS per-agent wallets:** new OWS per-agent registrations are closed (`register_agent_wallet()` is deprecated and the server rejects it), but wallets already registered on that path keep working unchanged — `client.update_agent_wallet_creds(ows_wallet_name=\"<wallet>\")` remains supported for them. OWS as a key store for the standard path (everything above) is unaffected.\n\n## Polymarket token note\n\nPolymarket trades against whatever collateral token Polymarket currently uses for its CLOB (currently pUSD, the V2 collateral). The dashboard at [simmer.markets/dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill) shows what the wallet needs and walks through setup. Watch for the V2 era banner at the top — it's the entry point.\n\n**First-time activation** (new users with no prior Polymarket activity): the dashboard prompts a USDC → pUSD wrap plus a one-time approval sequence (~8 signatures total). Total ~30 seconds of clicks and ~$0.20 in gas.\n\n**Existing Polymarket users with USDC.e** from before V2: the dashboard prompts a one-click migration (~30s) — no need to re-deposit.\n\nEither way, after setup `client.set_approvals()` should report `all_set=True`. If it doesn't, see [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration).\n\n## Connect existing agent\n\nYou already created an agent in the dashboard, registered its dedicated wallet, and have its API key. Now wire it to your locally-running agent runtime.\n\n### Prerequisites\n- API key (from dashboard → agent settings → API key, or wizard success modal)\n- The wallet's EOA private key (the one you imported during dashboard activation)\n- Python 3.10+ runtime where your agent runs\n\n### Steps\n\n1. **Install packages**\n   ```bash\n   pip install simmer-sdk          # add [ows] extra if using the OWS key store\n   ```\n\n2. **Set env vars in your agent runtime**\n   Use `read -s` to avoid clipboard contamination (per SIM-2118):\n   ```bash\n   read -s -p 'SIMMER_API_KEY: ' KEY && export SIMMER_API_KEY=$KEY\n   read -s -p 'WALLET_PRIVATE_KEY: ' K && export WALLET_PRIVATE_KEY=$K\n   ```\n   (Optionally import the key into OWS instead — see key safety above — and set `OWS_WALLET`.)\n\n3. **Activate trading: on-chain approvals + CLOB credentials (one-time)**\n   ```bash\n   python -c \"from simmer_sdk import SimmerClient; \\\n     c = SimmerClient.from_env(venue='polymarket'); \\\n     c.activate_polymarket_dw(agent_id='<agent_id>'); \\\n     c.update_agent_wallet_creds(agent_id='<agent_id>')\"\n   ```\n   First sets the deposit wallet's on-chain CLOB approvals (locally-signed EIP-712 batch, relayed gasless), then derives + caches CLOB creds server-side. **Both** are required before any Polymarket trades — approvals alone or creds alone is not enough. Get `<agent_id>` from `client.get_agent_wallets()`. (Existing OWS-registered wallets replace the final call with `c.update_agent_wallet_creds(ows_wallet_name='<name>')`.)\n\n4. **Verify**\n   ```bash\n   python -c \"from simmer_sdk import SimmerClient; \\\n     c = SimmerClient.from_env(); \\\n     print(c.get_briefing())\"\n   ```\n\n### Anti-patterns\n- Don't paste your private key from clipboard into a pipe — use `read -s` (per SIM-2118).\n- Don't skip `activate_polymarket_dw(agent_id=...)` — `update_agent_wallet_creds` alone caches creds without setting on-chain approvals, so trades fail at the relayer. Run both, approvals first.\n\n## Risk monitor\n\nThe auto risk monitor (stop-loss, take-profit) is configured at simmer.markets/dashboard → Settings → Auto Risk Monitor. The SDK auto-executes pending exits each `get_briefing()` cycle. The agent must be running.\n\n## Troubleshooting\n\n- **\"External wallet requires a pre-signed order\"** → key not configured. Confirm `WALLET_PRIVATE_KEY` is set — or, for an OWS key store, `ows wallet list` to verify the wallet exists and `OWS_WALLET` is set.\n- **\"insufficient allowance\"** → set approvals once per wallet: `client.activate_polymarket_dw(agent_id=...)` for a per-agent deposit wallet, `client.activate_polymarket_dw()` for a user-primary deposit wallet, or `client.set_approvals()` for a legacy raw-key EOA wallet.\n- **Balance shows $0 but funds visible elsewhere** → check chain (Polygon vs Solana) and token (pUSD vs USDC.e). See dashboard migration tool for V2 conversion.\n- **API key format wrong / 401 with a key that \"looks set\"** → inspect the raw value: `printenv SIMMER_API_KEY | cut -c1-20`. Must start with `sk_live_`. A common silent failure: install commands that use `pbpaste` or similar clipboard-read primitives write the *install command text itself* as the key value when the user copies the command after copying the key. Fix: get a fresh key from simmer.markets/dashboard, then `export SIMMER_API_KEY=\"sk_live_...\"` (type/paste the key directly, never pipe from clipboard into the variable assignment).\n\n## Links\n\n- Polymarket wallet import: [docs.simmer.markets/polymarket-import](https://docs.simmer.markets/polymarket-import)\n- OWS docs: [openwallet.sh](https://openwallet.sh)\n- Simmer wallet docs: [docs.simmer.markets/wallets](https://docs.simmer.markets/wallets)\n- V2 migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v0.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.4.0\",\n  \"publishedAt\": 1787100460110\n}\n\nFile v0.4.0:skill-card.md\n\n## Description:\n\nSelf-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet because managed setup is a one-time dashboard flow, not an agent task.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to configure self-custody wallet signing for Simmer agents that trade on Polymarket or Kalshi, including external keys, imported Polymarket wallets, and existing dashboard-registered agents.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The runtime may hold real wallet private keys or API keys for a real-money trading workflow.\n\nMitigation: Use an isolated environment, prefer a local key store over bare environment variables, avoid shared surfaces for keys, and keep wallet keys unset during package installation.\n\nRisk: The setup asks users to install mutable third-party code.\n\nMitigation: Install pinned and verified SDK versions where possible and avoid curl-to-bash installers unless the source and contents have been reviewed.\n\nRisk: Some SDK calls can sign approvals or trigger configured exit trades.\n\nMitigation: Review commands before execution, confirm the intended wallet and venue, and verify auto risk monitor settings before running the agent.\n\n## Reference(s):\n\n- [Simmer Skill Page](https://clawhub.ai/simmer/skills/simmer-wallet-setup)\n- [Simmer Dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill)\n- [Polymarket Wallet Import](https://docs.simmer.markets/polymarket-import)\n- [Simmer Wallet Docs](https://docs.simmer.markets/wallets)\n- [V2 Migration Guide](https://docs.simmer.markets/v2-migration)\n- [Open Wallet Standard](https://openwallet.sh)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell and Python code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes environment-variable setup guidance for SIMMER_API_KEY, optional wallet key handling, package installation, wallet linking, approvals, and verification.]\n\n## Skill Version(s):\n\n0.4.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.4.0:clawhub.json\n\n{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. The standard self-custody signer.\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Optional key store — set instead of WALLET_PRIVATE_KEY if the key lives in an OWS vault.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}\n\nArchive v0.3.1: 4 files, 6995 bytes\n\nFiles: clawhub.json (738b), skill-card.md (2744b), SKILL.md (11977b), _meta.json (138b)\n\nFile v0.3.1:SKILL.md\n\n---\nname: simmer-wallet-setup\nversion: \"0.3.1\"\npublished: true\ndescription: Self-custody wallet setup for Simmer agents. Choose OWS (recommended), external raw key, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.3.1\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Three paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **OWS per-agent** (recommended) | Local OWS vault, encrypted at rest | Per-agent isolation, multi-chain, policy-gated signing. Available for Polymarket + Kalshi. |\n| **External raw key** | Local SDK with `WALLET_PRIVATE_KEY` env | Existing setups. Fully supported; OWS is recommended for new agents. |\n| **[Connect existing agent](#connect-existing-agent)** | Local OWS vault, imported from dashboard registration | You already activated a wallet in the dashboard and want to wire your existing runtime to use it. |\n\n> **Already on a managed wallet?** You don't need this skill — managed setup is a dashboard flow, not an agent task. Open [simmer.markets/dashboard](https://simmer.markets/dashboard), go to your agent's **Wallet** tab, and click **Fund & activate trading**. The wizard opens a multi-chain bridge that accepts USDC, USDT, or USDC.e on Ethereum / Polygon / Base / Arbitrum / Solana — funds land as pUSD on your Polymarket Deposit Wallet, contracts auto-approve. **Do not tell the user to send funds directly to their agent wallet's EOA expecting them to sweep** — only legacy USDC.e on Polygon is recognized on the direct path; native USDC, USDT, and cross-chain tokens must go through the bridge wizard.\n\n## Path A — OWS per-agent wallet (recommended)\n\nOWS = [Open Wallet Standard](https://openwallet.sh). Local-first encrypted vault, multi-chain, policy engine, agent-scoped API keys. The private key never leaves the local machine.\n\n### One-time setup\n\n```bash\n# Install OWS CLI (creates ~/.ows vault, runs `ows wallet create`)\ncurl -fsSL https://docs.openwallet.sh/install.sh | bash\n\n# Install the SDK with OWS Python bindings (one command — note the [ows] extra)\npip install 'simmer-sdk[ows]'\n\n# Create a wallet for this agent\nows wallet create --name \"my-agent-wallet\"\n# Stores at ~/.ows/wallets/, derives addresses for EVM (Polygon), Solana, etc.\n\n# Fund it — show the EVM address to the human, they bridge USDC.e to Polygon\nows wallet show my-agent-wallet\n```\n\n### Register the wallet with Simmer\n\n```python\nfrom simmer_sdk import SimmerClient\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",   # name from `ows wallet create`\n)\n\nclient.register_agent_wallet()  # one-time, Elite-tier gated, fully headless\nclient.set_approvals()          # one-time per chain — signs locally via OWS, fully headless\n```\n\n> Both calls are fully headless — they authenticate with your SDK API key, no dashboard session or browser required. `register_agent_wallet()` requires Elite tier. After both run once, all trading is API-only.\n>\n> Elite users can alternatively register a per-agent wallet through the dashboard's agent-creation wizard (My Agents → Create agent → optional \"Link dedicated wallet\" step) or retrofit an existing agent via its Wallet tab. The SDK path and the dashboard path produce the same `user_agent_wallets` row — pick whichever fits your workflow.\n\n(Alternative: set `OWS_WALLET=my-agent-wallet` in the environment and pass only `api_key` — the SDK auto-detects.)\n\n### Trade — same API, OWS routes the signing\n\n```python\nresult = client.trade(\n    market_id, \"yes\", 10.0,\n    venue=\"polymarket\",\n    reasoning=\"...\"\n)\n# SDK builds the order, OWS signs locally, broadcast goes through Simmer\n```\n\n### For Kalshi (Solana)\n\nOWS is multi-chain. The same wallet has a Solana account derived automatically.\n\n```bash\nows wallet show my-agent-wallet  # shows Solana address too\n# Fund with SOL + USDC, complete KYC at dflow.net/proof\n```\n\n```python\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",\n    venue=\"kalshi\",\n)\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")\n```\n\nNo `SOLANA_PRIVATE_KEY` env var needed — OWS handles signing through the same vault.\n\n### What OWS gives over raw keys\n\n- **Encrypted at rest** (AES-256-GCM, scrypt KDF). Private key only decrypted in-process for signing, then wiped.\n- **Policy engine** — chain allowlists, daily caps, contract allowlists. Optional.\n- **Multi-chain** — same vault, every chain Simmer supports.\n- **Per-agent isolation** — separate wallets per agent for clean P&L attribution.\n- **Agent API keys** with bounded access (revocable, expiring).\n\n## Path B — External raw key\n\n> Fully supported path for self-custody with an existing wallet. New agents should consider OWS first — same self-custody guarantee, encrypted at rest, multi-chain, and easier to layer policy controls. Raw-key flow stays supported for users who already have it set up.\n\nSet the key in the environment, then construct the client:\n\n```bash\nexport WALLET_PRIVATE_KEY=\"0x...\"  # Polymarket Polygon wallet\n```\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\")\n# private_key is auto-detected from WALLET_PRIVATE_KEY env var\nclient.link_wallet()    # signs a challenge message locally — fully headless\nclient.set_approvals()  # signs approval txs locally — fully headless, key never leaves agent\n\n# If your account uses a Polymarket Deposit Wallet (Elite / upgraded accounts):\nclient.activate_polymarket_dw()  # one-time — signs EIP-712 batch locally, no browser needed\n\n# If you have stranded USDC.e on your Deposit Wallet, wrap it to pUSD:\nresult = client.wrap_on_dw()  # idempotent — no-op when nothing stranded\n```\n\nBoth calls work without a browser session. `link_wallet()` signs a challenge with your local key. `set_approvals()` builds, signs, and broadcasts each approval transaction via Simmer's RPC proxy — your `WALLET_PRIVATE_KEY` never leaves the agent process.\n\n> **Using a Deposit Wallet?** If your account has been upgraded to a Polymarket Deposit Wallet (DW), run `client.activate_polymarket_dw()` after `set_approvals()` — it signs the EIP-712 activation batch headlessly with your local key. Alternatively, use the dashboard browser flow at [simmer.markets/dashboard](https://simmer.markets/dashboard) → Wallets → Activate Trading.\n\n> **Stranded USDC.e on your DW?** Run `client.wrap_on_dw()` to convert it to pUSD headlessly. Idempotent — safe to call on every startup; returns immediately if nothing is stranded. Returns `{\"wrapped\": bool, \"amount_units\": int, \"calls_count\": int, \"success\": bool}`. Requires the same key as `activate_polymarket_dw()` (WALLET_PRIVATE_KEY or OWS wallet). Added in SDK 0.17.7.\n\n### Migrating to OWS when ready\n\nNo rush. When ready, import the existing key into OWS and switch over:\n\n```bash\nows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\nunset WALLET_PRIVATE_KEY  # OWS handles signing from here\n```\n\nThen in the agent code:\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\", ows_wallet=\"my-agent-wallet\")\n# Same trade() / set_approvals() / redeem() API — OWS routes the signing\n```\n\nThe same wallet address is preserved, so existing positions and approvals carry over.\n\n## Polymarket token note\n\nPolymarket trades against whatever collateral token Polymarket currently uses for its CLOB (currently pUSD, the V2 collateral). The dashboard at [simmer.markets/dashboard](https://simmer.markets/dashboard) shows what the wallet needs and walks through setup. Watch for the V2 era banner at the top — it's the entry point.\n\n**First-time activation** (new users with no prior Polymarket activity): the dashboard prompts a USDC → pUSD wrap plus a one-time approval sequence (~8 signatures total). Total ~30 seconds of clicks and ~$0.20 in gas.\n\n**Existing Polymarket users with USDC.e** from before V2: the dashboard prompts a one-click migration (~30s) — no need to re-deposit.\n\nEither way, after setup `client.set_approvals()` should report `all_set=True`. If it doesn't, see [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration).\n\n## Connect existing agent\n\nYou already created an agent in the dashboard and have its API key. Now wire it to your locally-running agent runtime.\n\n### Prerequisites\n- API key (from dashboard → agent settings → API key, or wizard success modal)\n- The wallet's EOA private key (the one you imported during dashboard activation)\n- Python 3.10+ runtime where your agent runs\n\n### Steps\n\n1. **Install packages**\n   ```bash\n   pip install simmer-sdk[ows] open-wallet-standard\n   ```\n\n2. **Import wallet key into OWS**\n   ```bash\n   ows wallet add <name> --private-key <your-eoa-private-key>\n   ```\n   Choose a memorable `<name>` (e.g. `my-agent-trading`). This becomes your `OWS_WALLET` env var.\n\n3. **Set env vars in your agent runtime**\n   Use `read -s` to avoid clipboard contamination (per SIM-2118):\n   ```bash\n   read -s -p 'SIMMER_API_KEY: ' KEY && export SIMMER_API_KEY=$KEY\n   export OWS_WALLET=<name>\n   ```\n\n4. **Cache CLOB credentials (one-time)**\n   ```bash\n   python -c \"from simmer_sdk import SimmerClient; \\\n     c = SimmerClient.from_env(venue='polymarket'); \\\n     c.update_agent_wallet_creds(ows_wallet_name='<name>')\"\n   ```\n   This signs an EIP-712 message via OWS, derives CLOB creds, persists server-side. Required before any Polymarket trades.\n\n5. **Verify**\n   ```bash\n   python -c \"from simmer_sdk import SimmerClient; \\\n     c = SimmerClient.from_env(); \\\n     print(c.get_briefing())\"\n   ```\n\n### Anti-patterns\n- Don't paste your private key from clipboard into a pipe — use `read -s` (per SIM-2118).\n- Don't use `client.activate_polymarket_dw()` — that's user-primary only. Use `update_agent_wallet_creds(ows_wallet_name)` for per-agent.\n\n## Risk monitor\n\nThe auto risk monitor (stop-loss, take-profit) is configured at simmer.markets/dashboard → Settings → Auto Risk Monitor. The SDK auto-executes pending exits each `get_briefing()` cycle. The agent must be running.\n\n## Troubleshooting\n\n- **\"External wallet requires a pre-signed order\"** → key not configured. For OWS: `ows wallet list` to verify the wallet exists. For external: confirm `WALLET_PRIVATE_KEY` is set.\n- **\"insufficient allowance\"** → run `client.set_approvals()` once per wallet.\n- **Balance shows $0 but funds visible elsewhere** → check chain (Polygon vs Solana) and token (pUSD vs USDC.e). See dashboard migration tool for V2 conversion.\n- **API key format wrong / 401 with a key that \"looks set\"** → inspect the raw value: `printenv SIMMER_API_KEY | cut -c1-20`. Must start with `sk_live_`. A common silent failure: install commands that use `pbpaste` or similar clipboard-read primitives write the *install command text itself* as the key value when the user copies the command after copying the key. Fix: get a fresh key from simmer.markets/dashboard, then `export SIMMER_API_KEY=\"sk_live_...\"` (type/paste the key directly, never pipe from clipboard into the variable assignment).\n\n## Links\n\n- OWS docs: [openwallet.sh](https://openwallet.sh)\n- Simmer wallet docs: [docs.simmer.markets/wallets](https://docs.simmer.markets/wallets)\n- V2 migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v0.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.3.1\",\n  \"publishedAt\": 1779278503261\n}\n\nFile v0.3.1:skill-card.md\n\n## Description: <br>\nSelf-custody wallet setup for Simmer agents choosing OWS, an external raw key, or an existing dashboard-registered agent for a local runtime. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[simmer](https://clawhub.ai/user/simmer) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and trading-agent operators use this skill to configure Simmer self-custody wallet access, API keys, approvals, and local signing paths for Polymarket or Kalshi agents. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill handles highly sensitive wallet credentials, including SIMMER_API_KEY and optional private keys. <br>\nMitigation: Follow the documented secret-handling guidance, avoid clipboard-based key piping, and store wallet material only in the intended local environment or encrypted OWS vault. <br>\nRisk: Wallet approvals, activation, wrapping, and trading configuration can affect real funds. <br>\nMitigation: Run setup only for intended Simmer self-custody wallets, verify commands and package sources before execution, and confirm approvals and balances before trading. <br>\nRisk: Using the wrong wallet path or chain can leave the agent unable to trade or showing unexpected balances. <br>\nMitigation: Choose the documented OWS, raw-key, or existing-agent path deliberately and verify the configured wallet, venue, chain, and token requirements before use. <br>\n\n\n## Reference(s): <br>\n- [Simmer Wallet Setup on ClawHub](https://clawhub.ai/simmer/simmer-wallet-setup) <br>\n- [Simmer publisher profile](https://clawhub.ai/user/simmer) <br>\n- [Open Wallet Standard](https://openwallet.sh) <br>\n- [OWS install script](https://docs.openwallet.sh/install.sh) <br>\n- [Simmer wallet docs](https://docs.simmer.markets/wallets) <br>\n- [Simmer V2 migration guide](https://docs.simmer.markets/v2-migration) <br>\n- [Simmer dashboard](https://simmer.markets/dashboard) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, markdown, shell commands, code, configuration] <br>\n**Output Format:** [Markdown with bash and Python code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Documentation-only guidance for configuring API keys, wallet selection, local signing, approvals, and troubleshooting.] <br>\n\n## Skill Version(s): <br>\n0.3.1 (source: server evidence and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v0.3.1:clawhub.json\n\n{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}\n\nArchive v0.2.2: 3 files, 4707 bytes\n\nFiles: clawhub.json (738b), SKILL.md (9545b), _meta.json (138b)\n\nFile v0.2.2:SKILL.md\n\n---\nname: simmer-wallet-setup\nversion: \"0.2.2\"\npublished: true\ndescription: Self-custody wallet setup for Simmer agents. Choose OWS (recommended — encrypted local vault, multi-chain, policy controls) or external raw key (existing setups). Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.2.2\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Two paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **OWS per-agent** (recommended) | Local OWS vault, encrypted at rest | Per-agent isolation, multi-chain, policy-gated signing. Available for Polymarket + Kalshi. |\n| **External raw key** | Local SDK with `WALLET_PRIVATE_KEY` env | Existing setups. Fully supported; OWS is recommended for new agents. |\n\n> **Already on a managed wallet?** You don't need this skill — managed setup is a dashboard flow, not an agent task. Open [simmer.markets/dashboard](https://simmer.markets/dashboard), go to your agent's **Wallet** tab, and click **Fund & activate trading**. The wizard opens a multi-chain bridge that accepts USDC, USDT, or USDC.e on Ethereum / Polygon / Base / Arbitrum / Solana — funds land as pUSD on your Polymarket Deposit Wallet, contracts auto-approve. **Do not tell the user to send funds directly to their agent wallet's EOA expecting them to sweep** — only legacy USDC.e on Polygon is recognized on the direct path; native USDC, USDT, and cross-chain tokens must go through the bridge wizard.\n\n## Path A — OWS per-agent wallet (recommended)\n\nOWS = [Open Wallet Standard](https://openwallet.sh). Local-first encrypted vault, multi-chain, policy engine, agent-scoped API keys. The private key never leaves the local machine.\n\n### One-time setup\n\n```bash\n# Install OWS CLI (creates ~/.ows vault, runs `ows wallet create`)\ncurl -fsSL https://docs.openwallet.sh/install.sh | bash\n\n# Install the SDK with OWS Python bindings (one command — note the [ows] extra)\npip install 'simmer-sdk[ows]'\n\n# Create a wallet for this agent\nows wallet create --name \"my-agent-wallet\"\n# Stores at ~/.ows/wallets/, derives addresses for EVM (Polygon), Solana, etc.\n\n# Fund it — show the EVM address to the human, they bridge USDC.e to Polygon\nows wallet show my-agent-wallet\n```\n\n### Register the wallet with Simmer\n\n```python\nfrom simmer_sdk import SimmerClient\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",   # name from `ows wallet create`\n)\n\nclient.register_agent_wallet()  # one-time, Elite-tier gated, fully headless\nclient.set_approvals()          # one-time per chain — signs locally via OWS, fully headless\n```\n\n> Both calls are fully headless — they authenticate with your SDK API key, no dashboard session or browser required. `register_agent_wallet()` requires Elite tier. After both run once, all trading is API-only.\n>\n> Elite users can alternatively register a per-agent wallet through the dashboard's agent-creation wizard (My Agents → Create agent → optional \"Link dedicated wallet\" step) or retrofit an existing agent via its Wallet tab. The SDK path and the dashboard path produce the same `user_agent_wallets` row — pick whichever fits your workflow.\n\n(Alternative: set `OWS_WALLET=my-agent-wallet` in the environment and pass only `api_key` — the SDK auto-detects.)\n\n### Trade — same API, OWS routes the signing\n\n```python\nresult = client.trade(\n    market_id, \"yes\", 10.0,\n    venue=\"polymarket\",\n    reasoning=\"...\"\n)\n# SDK builds the order, OWS signs locally, broadcast goes through Simmer\n```\n\n### For Kalshi (Solana)\n\nOWS is multi-chain. The same wallet has a Solana account derived automatically.\n\n```bash\nows wallet show my-agent-wallet  # shows Solana address too\n# Fund with SOL + USDC, complete KYC at dflow.net/proof\n```\n\n```python\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",\n    venue=\"kalshi\",\n)\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")\n```\n\nNo `SOLANA_PRIVATE_KEY` env var needed — OWS handles signing through the same vault.\n\n### What OWS gives over raw keys\n\n- **Encrypted at rest** (AES-256-GCM, scrypt KDF). Private key only decrypted in-process for signing, then wiped.\n- **Policy engine** — chain allowlists, daily caps, contract allowlists. Optional.\n- **Multi-chain** — same vault, every chain Simmer supports.\n- **Per-agent isolation** — separate wallets per agent for clean P&L attribution.\n- **Agent API keys** with bounded access (revocable, expiring).\n\n## Path B — External raw key\n\n> Fully supported path for self-custody with an existing wallet. New agents should consider OWS first — same self-custody guarantee, encrypted at rest, multi-chain, and easier to layer policy controls. Raw-key flow stays supported for users who already have it set up.\n\nSet the key in the environment, then construct the client:\n\n```bash\nexport WALLET_PRIVATE_KEY=\"0x...\"  # Polymarket Polygon wallet\n```\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\")\n# private_key is auto-detected from WALLET_PRIVATE_KEY env var\nclient.link_wallet()    # signs a challenge message locally — fully headless\nclient.set_approvals()  # signs approval txs locally — fully headless, key never leaves agent\n\n# If your account uses a Polymarket Deposit Wallet (Elite / upgraded accounts):\nclient.activate_polymarket_dw()  # one-time — signs EIP-712 batch locally, no browser needed\n\n# If you have stranded USDC.e on your Deposit Wallet, wrap it to pUSD:\nresult = client.wrap_on_dw()  # idempotent — no-op when nothing stranded\n```\n\nBoth calls work without a browser session. `link_wallet()` signs a challenge with your local key. `set_approvals()` builds, signs, and broadcasts each approval transaction via Simmer's RPC proxy — your `WALLET_PRIVATE_KEY` never leaves the agent process.\n\n> **Using a Deposit Wallet?** If your account has been upgraded to a Polymarket Deposit Wallet (DW), run `client.activate_polymarket_dw()` after `set_approvals()` — it signs the EIP-712 activation batch headlessly with your local key. Alternatively, use the dashboard browser flow at [simmer.markets/dashboard](https://simmer.markets/dashboard) → Wallets → Activate Trading.\n\n> **Stranded USDC.e on your DW?** Run `client.wrap_on_dw()` to convert it to pUSD headlessly. Idempotent — safe to call on every startup; returns immediately if nothing is stranded. Returns `{\"wrapped\": bool, \"amount_units\": int, \"calls_count\": int, \"success\": bool}`. Requires the same key as `activate_polymarket_dw()` (WALLET_PRIVATE_KEY or OWS wallet). Added in SDK 0.17.7.\n\n### Migrating to OWS when ready\n\nNo rush. When ready, import the existing key into OWS and switch over:\n\n```bash\nows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\nunset WALLET_PRIVATE_KEY  # OWS handles signing from here\n```\n\nThen in the agent code:\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\", ows_wallet=\"my-agent-wallet\")\n# Same trade() / set_approvals() / redeem() API — OWS routes the signing\n```\n\nThe same wallet address is preserved, so existing positions and approvals carry over.\n\n## Polymarket token note\n\nPolymarket trades against whatever collateral token Polymarket currently uses for its CLOB (currently pUSD, the V2 collateral). The dashboard at [simmer.markets/dashboard](https://simmer.markets/dashboard) shows what the wallet needs and walks through setup. Watch for the V2 era banner at the top — it's the entry point.\n\n**First-time activation** (new users with no prior Polymarket activity): the dashboard prompts a USDC → pUSD wrap plus a one-time approval sequence (~8 signatures total). Total ~30 seconds of clicks and ~$0.20 in gas.\n\n**Existing Polymarket users with USDC.e** from before V2: the dashboard prompts a one-click migration (~30s) — no need to re-deposit.\n\nEither way, after setup `client.set_approvals()` should report `all_set=True`. If it doesn't, see [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration).\n\n## Risk monitor\n\nThe auto risk monitor (stop-loss, take-profit) is configured at simmer.markets/dashboard → Settings → Auto Risk Monitor. The SDK auto-executes pending exits each `get_briefing()` cycle. The agent must be running.\n\n## Troubleshooting\n\n- **\"External wallet requires a pre-signed order\"** → key not configured. For OWS: `ows wallet list` to verify the wallet exists. For external: confirm `WALLET_PRIVATE_KEY` is set.\n- **\"insufficient allowance\"** → run `client.set_approvals()` once per wallet.\n- **Balance shows $0 but funds visible elsewhere** → check chain (Polygon vs Solana) and token (pUSD vs USDC.e). See dashboard migration tool for V2 conversion.\n\n## Links\n\n- OWS docs: [openwallet.sh](https://openwallet.sh)\n- Simmer wallet docs: [docs.simmer.markets/wallets](https://docs.simmer.markets/wallets)\n- V2 migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v0.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.2.2\",\n  \"publishedAt\": 1778843652381\n}\n\nFile v0.2.2:clawhub.json\n\n{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}\n\nArchive v0.2.1: 3 files, 4529 bytes\n\nFiles: clawhub.json (738b), SKILL.md (9159b), _meta.json (138b)\n\nFile v0.2.1:SKILL.md\n\n---\nname: simmer-wallet-setup\nversion: \"0.2.1\"\npublished: true\ndescription: Self-custody wallet setup for Simmer agents. Choose OWS (recommended — encrypted local vault, multi-chain, policy controls) or external raw key (existing setups). Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.2.1\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Two paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **OWS per-agent** (recommended) | Local OWS vault, encrypted at rest | Per-agent isolation, multi-chain, policy-gated signing. Available for Polymarket + Kalshi. |\n| **External raw key** | Local SDK with `WALLET_PRIVATE_KEY` env | Existing setups. Fully supported; OWS is recommended for new agents. |\n\n> **Already on a managed wallet?** You don't need this skill. Managed setup is a one-time dashboard action — go to [simmer.markets/dashboard](https://simmer.markets/dashboard), connect a Polygon wallet, approve the contracts, and the Simmer server signs trades within those approval bounds. No agent-side setup required.\n\n## Path A — OWS per-agent wallet (recommended)\n\nOWS = [Open Wallet Standard](https://openwallet.sh). Local-first encrypted vault, multi-chain, policy engine, agent-scoped API keys. The private key never leaves the local machine.\n\n### One-time setup\n\n```bash\n# Install OWS CLI (creates ~/.ows vault, runs `ows wallet create`)\ncurl -fsSL https://docs.openwallet.sh/install.sh | bash\n\n# Install the SDK with OWS Python bindings (one command — note the [ows] extra)\npip install 'simmer-sdk[ows]'\n\n# Create a wallet for this agent\nows wallet create --name \"my-agent-wallet\"\n# Stores at ~/.ows/wallets/, derives addresses for EVM (Polygon), Solana, etc.\n\n# Fund it — show the EVM address to the human, they bridge USDC.e to Polygon\nows wallet show my-agent-wallet\n```\n\n### Register the wallet with Simmer\n\n```python\nfrom simmer_sdk import SimmerClient\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",   # name from `ows wallet create`\n)\n\nclient.register_agent_wallet()  # one-time, Elite-tier gated, fully headless\nclient.set_approvals()          # one-time per chain — signs locally via OWS, fully headless\n```\n\n> Both calls are fully headless — they authenticate with your SDK API key, no dashboard session or browser required. `register_agent_wallet()` requires Elite tier. After both run once, all trading is API-only.\n>\n> Elite users can alternatively register a per-agent wallet through the dashboard's agent-creation wizard (My Agents → Create agent → optional \"Link dedicated wallet\" step) or retrofit an existing agent via its Wallet tab. The SDK path and the dashboard path produce the same `user_agent_wallets` row — pick whichever fits your workflow.\n\n(Alternative: set `OWS_WALLET=my-agent-wallet` in the environment and pass only `api_key` — the SDK auto-detects.)\n\n### Trade — same API, OWS routes the signing\n\n```python\nresult = client.trade(\n    market_id, \"yes\", 10.0,\n    venue=\"polymarket\",\n    reasoning=\"...\"\n)\n# SDK builds the order, OWS signs locally, broadcast goes through Simmer\n```\n\n### For Kalshi (Solana)\n\nOWS is multi-chain. The same wallet has a Solana account derived automatically.\n\n```bash\nows wallet show my-agent-wallet  # shows Solana address too\n# Fund with SOL + USDC, complete KYC at dflow.net/proof\n```\n\n```python\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",\n    venue=\"kalshi\",\n)\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")\n```\n\nNo `SOLANA_PRIVATE_KEY` env var needed — OWS handles signing through the same vault.\n\n### What OWS gives over raw keys\n\n- **Encrypted at rest** (AES-256-GCM, scrypt KDF). Private key only decrypted in-process for signing, then wiped.\n- **Policy engine** — chain allowlists, daily caps, contract allowlists. Optional.\n- **Multi-chain** — same vault, every chain Simmer supports.\n- **Per-agent isolation** — separate wallets per agent for clean P&L attribution.\n- **Agent API keys** with bounded access (revocable, expiring).\n\n## Path B — External raw key\n\n> Fully supported path for self-custody with an existing wallet. New agents should consider OWS first — same self-custody guarantee, encrypted at rest, multi-chain, and easier to layer policy controls. Raw-key flow stays supported for users who already have it set up.\n\nSet the key in the environment, then construct the client:\n\n```bash\nexport WALLET_PRIVATE_KEY=\"0x...\"  # Polymarket Polygon wallet\n```\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\")\n# private_key is auto-detected from WALLET_PRIVATE_KEY env var\nclient.link_wallet()    # signs a challenge message locally — fully headless\nclient.set_approvals()  # signs approval txs locally — fully headless, key never leaves agent\n\n# If your account uses a Polymarket Deposit Wallet (Elite / upgraded accounts):\nclient.activate_polymarket_dw()  # one-time — signs EIP-712 batch locally, no browser needed\n\n# If you have stranded USDC.e on your Deposit Wallet, wrap it to pUSD:\nresult = client.wrap_on_dw()  # idempotent — no-op when nothing stranded\n```\n\nBoth calls work without a browser session. `link_wallet()` signs a challenge with your local key. `set_approvals()` builds, signs, and broadcasts each approval transaction via Simmer's RPC proxy — your `WALLET_PRIVATE_KEY` never leaves the agent process.\n\n> **Using a Deposit Wallet?** If your account has been upgraded to a Polymarket Deposit Wallet (DW), run `client.activate_polymarket_dw()` after `set_approvals()` — it signs the EIP-712 activation batch headlessly with your local key. Alternatively, use the dashboard browser flow at [simmer.markets/dashboard](https://simmer.markets/dashboard) → Wallets → Activate Trading.\n\n> **Stranded USDC.e on your DW?** Run `client.wrap_on_dw()` to convert it to pUSD headlessly. Idempotent — safe to call on every startup; returns immediately if nothing is stranded. Returns `{\"wrapped\": bool, \"amount_units\": int, \"calls_count\": int, \"success\": bool}`. Requires the same key as `activate_polymarket_dw()` (WALLET_PRIVATE_KEY or OWS wallet). Added in SDK 0.17.7.\n\n### Migrating to OWS when ready\n\nNo rush. When ready, import the existing key into OWS and switch over:\n\n```bash\nows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\nunset WALLET_PRIVATE_KEY  # OWS handles signing from here\n```\n\nThen in the agent code:\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\", ows_wallet=\"my-agent-wallet\")\n# Same trade() / set_approvals() / redeem() API — OWS routes the signing\n```\n\nThe same wallet address is preserved, so existing positions and approvals carry over.\n\n## Polymarket token note\n\nPolymarket trades against whatever collateral token Polymarket currently uses for its CLOB (currently pUSD, the V2 collateral). The dashboard at [simmer.markets/dashboard](https://simmer.markets/dashboard) shows what the wallet needs and walks through setup. Watch for the V2 era banner at the top — it's the entry point.\n\n**First-time activation** (new users with no prior Polymarket activity): the dashboard prompts a USDC → pUSD wrap plus a one-time approval sequence (~8 signatures total). Total ~30 seconds of clicks and ~$0.20 in gas.\n\n**Existing Polymarket users with USDC.e** from before V2: the dashboard prompts a one-click migration (~30s) — no need to re-deposit.\n\nEither way, after setup `client.set_approvals()` should report `all_set=True`. If it doesn't, see [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration).\n\n## Risk monitor\n\nThe auto risk monitor (stop-loss, take-profit) is configured at simmer.markets/dashboard → Settings → Auto Risk Monitor. The SDK auto-executes pending exits each `get_briefing()` cycle. The agent must be running.\n\n## Troubleshooting\n\n- **\"External wallet requires a pre-signed order\"** → key not configured. For OWS: `ows wallet list` to verify the wallet exists. For external: confirm `WALLET_PRIVATE_KEY` is set.\n- **\"insufficient allowance\"** → run `client.set_approvals()` once per wallet.\n- **Balance shows $0 but funds visible elsewhere** → check chain (Polygon vs Solana) and token (pUSD vs USDC.e). See dashboard migration tool for V2 conversion.\n\n## Links\n\n- OWS docs: [openwallet.sh](https://openwallet.sh)\n- Simmer wallet docs: [docs.simmer.markets/wallets](https://docs.simmer.markets/wallets)\n- V2 migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v0.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1778588140890\n}\n\nFile v0.2.1:clawhub.json\n\n{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}\n\nArchive v0.2.0: 3 files, 4107 bytes\n\nFiles: clawhub.json (738b), SKILL.md (8201b), _meta.json (138b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: simmer-wallet-setup\nversion: \"0.2.0\"\npublished: true\ndescription: Self-custody wallet setup for Simmer agents. Choose OWS (recommended — encrypted local vault, multi-chain, policy controls) or external raw key (existing setups). Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.2.0\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Two paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **OWS per-agent** (recommended) | Local OWS vault, encrypted at rest | Per-agent isolation, multi-chain, policy-gated signing. Available for Polymarket + Kalshi. |\n| **External raw key** | Local SDK with `WALLET_PRIVATE_KEY` env | Existing setups. Fully supported; OWS is recommended for new agents. |\n\n> **Already on a managed wallet?** You don't need this skill. Managed setup is a one-time dashboard action — go to [simmer.markets/dashboard](https://simmer.markets/dashboard), connect a Polygon wallet, approve the contracts, and the Simmer server signs trades within those approval bounds. No agent-side setup required.\n\n## Path A — OWS per-agent wallet (recommended)\n\nOWS = [Open Wallet Standard](https://openwallet.sh). Local-first encrypted vault, multi-chain, policy engine, agent-scoped API keys. The private key never leaves the local machine.\n\n### One-time setup\n\n```bash\n# Install OWS CLI\ncurl -fsSL https://docs.openwallet.sh/install.sh | bash\npip install open-wallet-standard\n\n# Create a wallet for this agent\nows wallet create --name \"my-agent-wallet\"\n# Stores at ~/.ows/wallets/, derives addresses for EVM (Polygon), Solana, etc.\n\n# Fund it — show the EVM address to the human, they bridge USDC.e to Polygon\nows wallet show my-agent-wallet\n```\n\n### Register the wallet with Simmer\n\n```python\nfrom simmer_sdk import SimmerClient\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",   # name from `ows wallet create`\n)\n\nclient.register_agent_wallet()  # one-time, Elite-tier gated (requires dashboard session)\nclient.set_approvals()          # one-time per chain — signs locally via OWS, fully headless\n```\n\n> **`register_agent_wallet()`** requires a dashboard session (one-time Elite activation). **`set_approvals()`** is fully headless — signs approval transactions locally via OWS, no browser needed. After both run once, all trading is API-only.\n\n(Alternative: set `OWS_WALLET=my-agent-wallet` in the environment and pass only `api_key` — the SDK auto-detects.)\n\n### Trade — same API, OWS routes the signing\n\n```python\nresult = client.trade(\n    market_id, \"yes\", 10.0,\n    venue=\"polymarket\",\n    reasoning=\"...\"\n)\n# SDK builds the order, OWS signs locally, broadcast goes through Simmer\n```\n\n### For Kalshi (Solana)\n\nOWS is multi-chain. The same wallet has a Solana account derived automatically.\n\n```bash\nows wallet show my-agent-wallet  # shows Solana address too\n# Fund with SOL + USDC, complete KYC at dflow.net/proof\n```\n\n```python\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",\n    venue=\"kalshi\",\n)\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")\n```\n\nNo `SOLANA_PRIVATE_KEY` env var needed — OWS handles signing through the same vault.\n\n### What OWS gives over raw keys\n\n- **Encrypted at rest** (AES-256-GCM, scrypt KDF). Private key only decrypted in-process for signing, then wiped.\n- **Policy engine** — chain allowlists, daily caps, contract allowlists. Optional.\n- **Multi-chain** — same vault, every chain Simmer supports.\n- **Per-agent isolation** — separate wallets per agent for clean P&L attribution.\n- **Agent API keys** with bounded access (revocable, expiring).\n\n## Path B — External raw key\n\n> Fully supported path for self-custody with an existing wallet. New agents should consider OWS first — same self-custody guarantee, encrypted at rest, multi-chain, and easier to layer policy controls. Raw-key flow stays supported for users who already have it set up.\n\nSet the key in the environment, then construct the client:\n\n```bash\nexport WALLET_PRIVATE_KEY=\"0x...\"  # Polymarket Polygon wallet\n```\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\")\n# private_key is auto-detected from WALLET_PRIVATE_KEY env var\nclient.link_wallet()    # signs a challenge message locally — fully headless\nclient.set_approvals()  # signs approval txs locally — fully headless, key never leaves agent\n\n# If your account uses a Polymarket Deposit Wallet (Elite / upgraded accounts):\nclient.activate_polymarket_dw()  # one-time — signs EIP-712 batch locally, no browser needed\n```\n\nBoth calls work without a browser session. `link_wallet()` signs a challenge with your local key. `set_approvals()` builds, signs, and broadcasts each approval transaction via Simmer's RPC proxy — your `WALLET_PRIVATE_KEY` never leaves the agent process.\n\n> **Using a Deposit Wallet?** If your account has been upgraded to a Polymarket Deposit Wallet (DW), run `client.activate_polymarket_dw()` after `set_approvals()` — it signs the EIP-712 activation batch headlessly with your local key. Alternatively, use the dashboard browser flow at [simmer.markets/dashboard](https://simmer.markets/dashboard) → Wallets → Activate Trading.\n\n### Migrating to OWS when ready\n\nNo rush. When ready, import the existing key into OWS and switch over:\n\n```bash\nows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\nunset WALLET_PRIVATE_KEY  # OWS handles signing from here\n```\n\nThen in the agent code:\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\", ows_wallet=\"my-agent-wallet\")\n# Same trade() / set_approvals() / redeem() API — OWS routes the signing\n```\n\nThe same wallet address is preserved, so existing positions and approvals carry over.\n\n## Polymarket token note\n\nPolymarket trades against whatever collateral token Polymarket currently uses for its CLOB (currently pUSD, the V2 collateral). The dashboard at [simmer.markets/dashboard](https://simmer.markets/dashboard) shows what the wallet needs and walks through setup. Watch for the V2 era banner at the top — it's the entry point.\n\n**First-time activation** (new users with no prior Polymarket activity): the dashboard prompts a USDC → pUSD wrap plus a one-time approval sequence (~8 signatures total). Total ~30 seconds of clicks and ~$0.20 in gas.\n\n**Existing Polymarket users with USDC.e** from before V2: the dashboard prompts a one-click migration (~30s) — no need to re-deposit.\n\nEither way, after setup `client.set_approvals()` should report `all_set=True`. If it doesn't, see [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration).\n\n## Risk monitor\n\nThe auto risk monitor (stop-loss, take-profit) is configured at simmer.markets/dashboard → Settings → Auto Risk Monitor. The SDK auto-executes pending exits each `get_briefing()` cycle. The agent must be running.\n\n## Troubleshooting\n\n- **\"External wallet requires a pre-signed order\"** → key not configured. For OWS: `ows wallet list` to verify the wallet exists. For external: confirm `WALLET_PRIVATE_KEY` is set.\n- **\"insufficient allowance\"** → run `client.set_approvals()` once per wallet.\n- **Balance shows $0 but funds visible elsewhere** → check chain (Polygon vs Solana) and token (pUSD vs USDC.e). See dashboard migration tool for V2 conversion.\n\n## Links\n\n- OWS docs: [openwallet.sh](https://openwallet.sh)\n- Simmer wallet docs: [docs.simmer.markets/wallets](https://docs.simmer.markets/wallets)\n- V2 migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1778552210273\n}\n\nFile v0.2.0:clawhub.json\n\n{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}\n\nArchive v0.1.0: 3 files, 3903 bytes\n\nFiles: clawhub.json (738b), SKILL.md (7555b), _meta.json (138b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: simmer-wallet-setup\ndescription: Self-custody wallet setup for Simmer agents. Choose OWS (recommended — encrypted local vault, multi-chain, policy controls) or external raw key (existing setups). Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.1.0\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Two paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **OWS per-agent** (recommended) | Local OWS vault, encrypted at rest | Per-agent isolation, multi-chain, policy-gated signing. Available for Polymarket + Kalshi. |\n| **External raw key** | Local SDK with `WALLET_PRIVATE_KEY` env | Existing setups. Fully supported; OWS is recommended for new agents. |\n\n> **Already on a managed wallet?** You don't need this skill. Managed setup is a one-time dashboard action — go to [simmer.markets/dashboard](https://simmer.markets/dashboard), connect a Polygon wallet, approve the contracts, and the Simmer server signs trades within those approval bounds. No agent-side setup required.\n\n## Path A — OWS per-agent wallet (recommended)\n\nOWS = [Open Wallet Standard](https://openwallet.sh). Local-first encrypted vault, multi-chain, policy engine, agent-scoped API keys. The private key never leaves the local machine.\n\n### One-time setup\n\n```bash\n# Install OWS CLI\ncurl -fsSL https://docs.openwallet.sh/install.sh | bash\npip install open-wallet-standard\n\n# Create a wallet for this agent\nows wallet create --name \"my-agent-wallet\"\n# Stores at ~/.ows/wallets/, derives addresses for EVM (Polygon), Solana, etc.\n\n# Fund it — show the EVM address to the human, they bridge USDC.e to Polygon\nows wallet show my-agent-wallet\n```\n\n### Register the wallet with Simmer\n\n```python\nfrom simmer_sdk import SimmerClient\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",   # name from `ows wallet create`\n)\n\nclient.register_agent_wallet()  # one-time, Elite-tier gated\nclient.set_approvals()          # one-time per chain (signed via OWS)\n```\n\n> ⚠️ **Setup requires a dashboard session.** `register_agent_wallet()` and `set_approvals()` use the browser auth from [simmer.markets/dashboard](https://simmer.markets/dashboard) in addition to the API key — they don't work from a fully headless cron. Run them once after logging in. Trading is API-only after that.\n\n(Alternative: set `OWS_WALLET=my-agent-wallet` in the environment and pass only `api_key` — the SDK auto-detects.)\n\n### Trade — same API, OWS routes the signing\n\n```python\nresult = client.trade(\n    market_id, \"yes\", 10.0,\n    venue=\"polymarket\",\n    reasoning=\"...\"\n)\n# SDK builds the order, OWS signs locally, broadcast goes through Simmer\n```\n\n### For Kalshi (Solana)\n\nOWS is multi-chain. The same wallet has a Solana account derived automatically.\n\n```bash\nows wallet show my-agent-wallet  # shows Solana address too\n# Fund with SOL + USDC, complete KYC at dflow.net/proof\n```\n\n```python\nclient = SimmerClient(\n    api_key=\"sk_live_...\",\n    ows_wallet=\"my-agent-wallet\",\n    venue=\"kalshi\",\n)\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")\n```\n\nNo `SOLANA_PRIVATE_KEY` env var needed — OWS handles signing through the same vault.\n\n### What OWS gives over raw keys\n\n- **Encrypted at rest** (AES-256-GCM, scrypt KDF). Private key only decrypted in-process for signing, then wiped.\n- **Policy engine** — chain allowlists, daily caps, contract allowlists. Optional.\n- **Multi-chain** — same vault, every chain Simmer supports.\n- **Per-agent isolation** — separate wallets per agent for clean P&L attribution.\n- **Agent API keys** with bounded access (revocable, expiring).\n\n## Path B — External raw key\n\n> Fully supported path for self-custody with an existing wallet. New agents should consider OWS first — same self-custody guarantee, encrypted at rest, multi-chain, and easier to layer policy controls. Raw-key flow stays supported for users who already have it set up.\n\nSet the key in the environment, then construct the client:\n\n```bash\nexport WALLET_PRIVATE_KEY=\"0x...\"  # Polymarket Polygon wallet\n```\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\")\n# private_key is auto-detected from WALLET_PRIVATE_KEY env var\nclient.link_wallet()\nclient.set_approvals()\n```\n\n> ⚠️ **`link_wallet()` and `set_approvals()` need a dashboard session** — they use the browser auth from [simmer.markets/dashboard](https://simmer.markets/dashboard), not the SDK API key. Run them once from a logged-in dashboard, not a headless script. After that, the rest of the agent runs API-only.\n\n### Migrating to OWS when ready\n\nNo rush. When ready, import the existing key into OWS and switch over:\n\n```bash\nows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\nunset WALLET_PRIVATE_KEY  # OWS handles signing from here\n```\n\nThen in the agent code:\n\n```python\nclient = SimmerClient(api_key=\"sk_live_...\", ows_wallet=\"my-agent-wallet\")\n# Same trade() / set_approvals() / redeem() API — OWS routes the signing\n```\n\nThe same wallet address is preserved, so existing positions and approvals carry over.\n\n## Polymarket token note\n\nPolymarket trades against whatever collateral token Polymarket currently uses for its CLOB (currently pUSD, the V2 collateral). The dashboard at [simmer.markets/dashboard](https://simmer.markets/dashboard) shows what the wallet needs and walks through setup. Watch for the V2 era banner at the top — it's the entry point.\n\n**First-time activation** (new users with no prior Polymarket activity): the dashboard prompts a USDC → pUSD wrap plus a one-time approval sequence (~8 signatures total). Total ~30 seconds of clicks and ~$0.20 in gas.\n\n**Existing Polymarket users with USDC.e** from before V2: the dashboard prompts a one-click migration (~30s) — no need to re-deposit.\n\nEither way, after setup `client.set_approvals()` should report `all_set=True`. If it doesn't, see [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration).\n\n## Risk monitor\n\nThe auto risk monitor (stop-loss, take-profit) is configured at simmer.markets/dashboard → Settings → Auto Risk Monitor. The SDK auto-executes pending exits each `get_briefing()` cycle. The agent must be running.\n\n## Troubleshooting\n\n- **\"External wallet requires a pre-signed order\"** → key not configured. For OWS: `ows wallet list` to verify the wallet exists. For external: confirm `WALLET_PRIVATE_KEY` is set.\n- **\"insufficient allowance\"** → run `client.set_approvals()` once per wallet.\n- **Balance shows $0 but funds visible elsewhere** → check chain (Polygon vs Solana) and token (pUSD vs USDC.e). See dashboard migration tool for V2 conversion.\n\n## Links\n\n- OWS docs: [openwallet.sh](https://openwallet.sh)\n- Simmer wallet docs: [docs.simmer.markets/wallets](https://docs.simmer.markets/wallets)\n- V2 migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1777546259749\n}\n\nFile v0.1.0:clawhub.json\n\n{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Set only if you chose Path A (OWS).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. Set only if you chose Path B (external raw key).\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}","readmeExcerpt":"Skill: simmer-wallet-setup Owner: simmer Summary: Self-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task. Tags: latest:0.4.0 Version history: v0.4.0 | 2026-08-19T00:47:40.110Z | user External-ke","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"read -s -p 'WALLET_PRIVATE_KEY: ' K && export WALLET_PRIVATE_KEY=$K"},{"language":"bash","snippet":"curl -fsSL https://docs.openwallet.sh/install.sh | bash   # one-time OWS install"},{"language":"bash","snippet":"curl -fsSL https://docs.openwallet.sh/install.sh | bash   # one-time OWS install\n  pip install 'simmer-sdk[ows]'\n  ows wallet import --name \"my-agent-wallet\" --private-key \"$WALLET_PRIVATE_KEY\"\n  unset WALLET_PRIVATE_KEY\n  export OWS_WALLET=my-agent-wallet   # SDK signs via the vault from here"},{"language":"python","snippet":"client = SimmerClient(api_key=\"sk_live_...\")\n# signer auto-detected: WALLET_PRIVATE_KEY or OWS_WALLET env var\nclient.link_wallet()    # signs a challenge message locally — fully headless\nclient.set_approvals()  # signs approval txs locally — fully headless, key never leaves agent\n\n# If your account uses a Polymarket Deposit Wallet (upgraded accounts):\nclient.activate_polymarket_dw()  # one-time — signs EIP-712 batch locally, no browser needed\n\n# If you have stranded USDC.e on your Deposit Wallet, wrap it to pUSD:\nresult = client.wrap_on_dw()  # idempotent — no-op when nothing stranded"},{"language":"python","snippet":"client = SimmerClient.from_env(venue=\"kalshi\")\nclient.trade(market_id, \"yes\", 5.0, reasoning=\"...\")"},{"language":"python","snippet":"client = SimmerClient.from_env()\nresult = client.import_polymarket_wallet()   # SDK 0.24.4+\n# links with ownership proof, adopts the Polymarket-deployed deposit wallet\n# (no redeploy), tops up approvals gaslessly, derives creds, reports balance"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: simmer-wallet-setup\nversion: \"0.4.0\"\npublished: true\ndescription: Self-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet — managed setup is a one-time dashboard flow, not an agent task.\nmetadata:\n  author: \"Simmer (@simmer_markets)\"\n  version: \"0.4.0\"\n  displayName: Simmer Wallet Setup\n  difficulty: beginner\n  primaryEnv: SIMMER_API_KEY\n  envVars:\n    - name: SIMMER_API_KEY\n      required: true\n      description: \"Your Simmer SDK API key (from agent registration).\"\n    - name: WALLET_PRIVATE_KEY\n      required: false\n      description: \"Polygon EVM private key. The standard self-custody signer.\"\n    - name: OWS_WALLET\n      required: false\n      description: \"OWS wallet name. Optional key store — set instead of WALLET_PRIVATE_KEY if the key lives in an OWS vault.\"\n---\n\n# Simmer Wallet Setup\n\nSelf-custody wallet setup for an agent that signs its own real-money trades on Polymarket or Kalshi. Three paths:\n\n| Mode | Who signs | When to choose |\n|---|---|---|\n| **[External key](#path-a--external-key)** (default) | Local SDK with `WALLET_PRIVATE_KEY` env — or an OWS key store via `OWS_WALLET` | Any self-custody setup: your own wallet, your key, your machine. |\n| **[Import a Polymarket wallet](#path-b--import-a-polymarket-wallet)** | Same local signing — key exported from polymarket.com | Fund with card/exchange via Polymarket's onramps; the wallet arrives at Simmer already funded and approved. |\n| **[Connect existing agent](#connect-existing-agent)** | Same local signing, wallet already registered in the dashboard | You already activated a dedicated per-agent wallet in the dashboard and want to wire your runtime to it. |\n\n> **Already on a managed wallet?** You don't need this skill — managed setup is a dashboard flow, not an agent task. Open [simmer.markets/dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill), go to your agent's **Wallet** tab, and click **Fund & activate trading**. The wizard opens a multi-chain bridge that accepts USDC, USDT, or USDC.e on Ethereum / Polygon / Base / Arbitrum / Solana — funds land as pUSD on your Polymarket Deposit Wallet, contracts auto-approve. **Do not tell the user to send funds directly to their agent wallet's EOA expecting them to sweep** — only legacy USDC.e on Polygon is recognized on the direct path; native USDC, USDT, and cross-chain tokens must go through the bridge wizard.\n\n## Key safety (read this first)\n\nThe private key goes in exactly one place: the agent host's environment, or a local key store.\n\n- Use `read -s` to set it — never paste a key into a pipe, a chat, a ticket, a shared config file, or a second browser extension \"just to sign\" (per SIM-2118):\n  ```bash\n  read -s -p 'WALLET_PRIVATE_KEY: ' K && export WALLET_PRIVATE_KEY=$K\n  ```\n- **Prefer a key store over a bare env var.** [OWS](https://openwal"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"simmer-wallet-setup\",\n  \"version\": \"0.4.0\",\n  \"publishedAt\": 1787100460110\n}"},{"path":"skill-card.md","content":"## Description:\n\nSelf-custody wallet setup for Simmer agents. Bring your own key, import a funded Polymarket wallet, or connect an existing dashboard-registered agent to your local runtime. Skip this skill if you use a managed wallet because managed setup is a one-time dashboard flow, not an agent task.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to configure self-custody wallet signing for Simmer agents that trade on Polymarket or Kalshi, including external keys, imported Polymarket wallets, and existing dashboard-registered agents.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The runtime may hold real wallet private keys or API keys for a real-money trading workflow.\n\nMitigation: Use an isolated environment, prefer a local key store over bare environment variables, avoid shared surfaces for keys, and keep wallet keys unset during package installation.\n\nRisk: The setup asks users to install mutable third-party code.\n\nMitigation: Install pinned and verified SDK versions where possible and avoid curl-to-bash installers unless the source and contents have been reviewed.\n\nRisk: Some SDK calls can sign approvals or trigger configured exit trades.\n\nMitigation: Review commands before execution, confirm the intended wallet and venue, and verify auto risk monitor settings before running the agent.\n\n## Reference(s):\n\n- [Simmer Skill Page](https://clawhub.ai/simmer/skills/simmer-wallet-setup)\n- [Simmer Dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill)\n- [Polymarket Wallet Import](https://docs.simmer.markets/polymarket-import)\n- [Simmer Wallet Docs](https://docs.simmer.markets/wallets)\n- [V2 Migration Guide](https://docs.simmer.markets/v2-migration)\n- [Open Wallet Standard](https://openwallet.sh)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell and Python code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes environment-variable setup guidance for SIMMER_API_KEY, optional wallet key handling, package installation, wallet linking, approvals, and verification.]\n\n## Skill Version(s):\n\n0.4.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"clawhub.json","content":"{\n  \"emoji\": \"🔐\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key (from agent registration).\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Polygon EVM private key. The standard self-custody signer.\"\n    },\n    {\n      \"name\": \"OWS_WALLET\",\n      \"required\": false,\n      \"description\": \"OWS wallet name. Optional key store — set instead of WALLET_PRIVATE_KEY if the key lives in an OWS vault.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": false,\n    \"entrypoint\": null\n  }\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1501,"uniquenessScore":42,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T22:37:08.207Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T22:37:08.207Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T01:46:41.990Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}