[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73GKMW4AFP4E035NQBF3SY0":3,"skill-same:01M73GKMW4AFP4E035NQBF3SY0":52},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":33,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M73GKMW4AFP4E035NQBF3SY0","venice--venice-x402",null,"Manage Venice x402 wallet credits. Covers POST \u002Fx402\u002Ftop-up (payment discovery + signed USDC settlement), GET \u002Fx402\u002Fbalance\u002F{walletAddress}, GET \u002Fx402\u002Ftransactions\u002F{walletAddress}, USDC on Base (chain 8453), minimum $5 top-up, transaction types TOP_UP\u002FCHARGE\u002FREFUND, and the x402 v2 PAYMENT-REQUIRED","Horonomos-laps\u002FYana-AI","Horonomos-laps","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F355299122?v=4","01M76B3QPXE88ET2SQPDPVATZT"," Horonomos-laps","01M72ZQRJPCYPSSWT4D00VJR2A",13,"MIT","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fvenice--venice-x402\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: venice--venice-x402\ndescription: >-\n  Manage Venice x402 wallet credits. Covers POST \u002Fx402\u002Ftop-up (payment discovery + signed USDC settlement), GET \u002Fx402\u002Fbalance\u002F{walletAddress}, GET \u002Fx402\u002Ftransactions\u002F{walletAddress}, USDC on Base (chain 8453), minimum $5 top-up, transaction types TOP_UP\u002FCHARGE\u002FREFUND, and the x402 v2 PAYMENT-REQUIRED \norigin: \"github.com\u002Fveniceai\u002Fskills (skill: venice-x402)\"\nlicense: MIT\nversion: \"1.0.0\"\ncompatibility: \"yana-ai >= 0.14.0\"\n---\n\n# Venice x402 (wallet credits)\n\nx402 is Venice's **wallet-based payment** flow. Pay per request with USDC on Base, no account required. Three admin endpoints plus the protocol-level `402` response returned by every inference endpoint.\n\n| Endpoint | Auth | Purpose |\n|---|---|---|\n| `POST \u002Fx402\u002Ftop-up` | None (discovery) \u002F `X-402-Payment` (settlement) | Discover payment requirements, then settle a signed USDC transfer. |\n| `GET \u002Fx402\u002Fbalance\u002F{walletAddress}` | SIWE (`X-Sign-In-With-X`) | Current USD balance for a wallet. |\n| `GET \u002Fx402\u002Ftransactions\u002F{walletAddress}` | SIWE | Paginated ledger: `TOP_UP`, `CHARGE`, `REFUND`. |\n\nFor the SIWE header format itself, see [`venice-auth`](..\u002Fvenice-auth\u002FSKILL.md).\n\n## Pay with a wallet: end-to-end\n\n### 1. Call an inference endpoint with no balance → `402`\n\nAny inference endpoint (e.g. `POST \u002Fchat\u002Fcompletions`) returns a `402` with structured `topUpInstructions` and `siwxChallenge` when the wallet balance is too low. The `PAYMENT-REQUIRED` response header carries the **x402 v2 `paymentRequired` object** (base64-encoded JSON containing `x402Version`, `error`, `resource`, `accepts[]`, and optional `extensions`) — it is **not** the same payload as the 402 body, which is a richer balance\u002Ftop-up document.\n\n```json\n{\n  \"error\": \"Payment required\",\n  \"code\": \"PAYMENT_REQUIRED\",\n  \"message\": \"Insufficient x402 balance\",\n  \"suggestedTopUpUsd\": 10,\n  \"minimumTopUpUsd\": 5,\n  \"supportedTokens\": [\"USDC\"],\n  \"supportedChains\": [\"base\"],\n  \"topUpInstructions\": {\n    \"step1\": \"POST \u002Fapi\u002Fv1\u002Fx402\u002Ftop-up with no payment header to get payment requirements\",\n    \"step2\": \"Sign a USDC transfer authorization using the x402 SDK (createPaymentHeader)\",\n    \"step3\": \"POST \u002Fapi\u002Fv1\u002Fx402\u002Ftop-up with the signed X-402-Payment header\",\n    \"receiverWallet\": \"\u003CRECEIVER_WALLET_ADDRESS>\",\n    \"tokenAddress\": \"\u003CUSDC_TOKEN_ADDRESS>\",\n    \"tokenDecimals\": 6,\n    \"network\": \"eip155:8453\",\n    \"minimumAmountUsd\": 5\n  },\n  \"siwxChallenge\": {\n    \"info\": { \"domain\": \"api.venice.ai\", \"statement\": \"Sign in to Venice AI\", ... },\n    \"supportedChains\": [\"eip155:8453\"]\n  }\n}\n```\n\n### 2. Discover payment requirements — `POST \u002Fx402\u002Ftop-up` (no header)\n\n```bash\ncurl -X POST https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fx402\u002Ftop-up\n```\n\nResponse `402`:\n\n```json\n{\n  \"x402Version\": 2,\n  \"accepts\": [{\n    \"protocol\": \"x402\",\n    \"version\": 2,\n    \"network\": \"eip155:8453\",\n    \"asset\": \"\u003CUSDC_TOKEN_ADDRESS>\",\n    \"amount\": \"5000000\",          \u002F\u002F base units; USDC = 6 decimals → 5 USDC\n    \"payTo\": \"\u003CRECEIVER_WALLET_ADDRESS>\"\n  }]\n}\n```\n\n### 3. Sign a USDC transfer → `POST \u002Fx402\u002Ftop-up` with `X-402-Payment`\n\nThe **x402 SDK** does the EIP-712 USDC `transferWithAuthorization` signing for you:\n\n```bash\nnpm install x402\n```\n\n```ts\nimport { createPaymentHeader } from 'x402'\nimport { Wallet } from 'ethers'\n\nconst wallet = new Wallet(process.env.WALLET_KEY!)\n\u002F\u002F 1. Discover\nconst discover = await fetch(`${base}\u002Fx402\u002Ftop-up`, { method: 'POST' })\nconst { accepts: [req] } = await discover.json()\n\n\u002F\u002F 2. Sign payment for $10 (write your own amount in base units)\nconst amount = '10000000' \u002F\u002F $10\nconst header = await createPaymentHeader({ ...req, amount }, wallet)\n\n\u002F\u002F 3. Settle\nconst settle = await fetch(`${base}\u002Fx402\u002Ftop-up`, {\n  method: 'POST',\n  headers: { 'X-402-Payment': header },\n})\nconst { data } = await settle.json()\nconsole.log(data.newBalance, data.amountCredited, data.paymentId)\n```\n\n`200` response:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"walletAddress\": \"0x...\",\n    \"amountCredited\": 10,\n    \"newBalance\": 22.5,\n    \"paymentId\": \"payment_01HZ...\"\n  }\n}\n```\n\n### 4. Call inference again — credits are now debited from the wallet\n\nThe `venice-x402-client` SDK wraps steps 1–4: it catches `402`, auto-tops-up to a configured amount, and retries.\n\n## `GET \u002Fx402\u002Fbalance\u002F{walletAddress}`\n\n```bash\ncurl \"https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fx402\u002Fbalance\u002F0xYOUR_WALLET\" \\\n  -H \"X-Sign-In-With-X: \u003Cbase64 siwe>\"\n```\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"walletAddress\": \"0x...\",\n    \"balanceUsd\": 12.5,\n    \"canConsume\": true,\n    \"minimumTopUpUsd\": 5,\n    \"suggestedTopUpUsd\": 10,\n    \"diemBalanceUsd\": 5.25    \u002F\u002F optional — present if the wallet is linked to a Venice account with DIEM\n  }\n}\n```\n\nThe SIWE signer **must match** the path wallet — `403` otherwise.\n\n## `GET \u002Fx402\u002Ftransactions\u002F{walletAddress}`\n\n```bash\ncurl \"https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fx402\u002Ftransactions\u002F0xYOUR_WALLET?limit=50&offset=0\" \\\n  -H \"X-Sign-In-With-X: \u003Cbase64 siwe>\"\n```\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"walletAddress\": \"0x...\",\n    \"currentBalance\": 12.35,\n    \"transactions\": [\n      {\n        \"id\": \"ledger_01H...\",\n        \"amount\": -0.15,\n        \"balanceAfter\": 12.35,\n        \"type\": \"CHARGE\",\n        \"createdAt\": \"2026-04-03T12:34:56.000Z\",\n        \"requestId\": \"chatcmpl-...\",\n        \"modelId\": \"zai-org-glm-5-1\"\n      },\n      {\n        \"id\": \"ledger_01H...\",\n        \"amount\": 10,\n        \"balanceAfter\": 12.5,\n        \"type\": \"TOP_UP\",\n        \"createdAt\": \"2026-04-03T12:00:00.000Z\",\n        \"requestId\": null,\n        \"modelId\": null\n      }\n    ],\n    \"pagination\": { \"limit\": 50, \"offset\": 0, \"hasMore\": false }\n  }\n}\n```\n\n### Transaction types\n\n| `type` | Sign of `amount` | Meaning |\n|---|---|---|\n| `TOP_UP` | positive | `\u002Fx402\u002Ftop-up` settlement. |\n| `CHARGE` | negative | Inference debit. `requestId` \u002F `modelId` link back to the call. |\n| `REFUND` | positive | Failed request refund or manual adjustment. |\n\n## Query parameters\n\n### `\u002Fx402\u002Ftransactions\u002F{walletAddress}`\n\n| Param | Notes |\n|---|---|\n| `limit` | 1–100. Default 50. |\n| `offset` | Number of entries to skip. Default 0. |\n\nUse `offset + limit` and `pagination.hasMore` for paging.\n\n## Constants\n\n- **Chain** — Base mainnet, chain ID `8453` (`eip155:8453`).\n- **Token** — USDC (6 decimals). Native USDC on Base; not USDbC.\n- **Minimum top-up** — `$5` by default. A small number of allow-listed wallets (e.g. internal test wallets) may have a lower per-wallet override — always use the `minimumTopUpUsd` returned in `topUpInstructions` \u002F `\u002Fx402\u002Fbalance` rather than hardcoding `5`.\n- **x402 SDK** — `npm install x402` for raw payment header signing, or `venice-x402-client` for the managed Venice flow.\n- **Receiver wallet + token contract** are returned in `topUpInstructions`; don't hardcode them.\n\n## Errors\n\n| Code | Meaning |\n|---|---|\n| `400` | Below minimum top-up, invalid wallet format, or other validation. |\n| `401` | `X-Sign-In-With-X` header is **present** but invalid (bad signature, expired, nonce reuse, unsupported chain) — returned as `X402_SIGN_IN_*` error codes. |\n| `402` | Expected **discovery** response on `\u002Fx402\u002Ftop-up` (no payment header), on `\u002Fx402\u002Fbalance` and `\u002Fx402\u002Ftransactions` when the SIWE header is **absent**, and on any inference endpoint when the wallet balance is insufficient. Settlement errors use `INVALID_PAYMENT` \u002F `INVALID_PAYMENT_FORMAT` \u002F `INSUFFICIENT_FUNDS` \u002F `EXPIRED_PAYMENT` codes. |\n| `403` | SIWE wallet ≠ path wallet. |\n| `429` | Too many top-ups\u002Fbalance checks. |\n| `500` | Settlement failure; retry with a fresh nonce. |\n\n## Gotchas\n\n- Use the **x402 SDK** (`npm install x402`) for signing. Hand-rolling the EIP-712 `transferWithAuthorization` is risky — nonce reuse ⇒ `INVALID_PAYMENT`.\n- The SIWE signer wallet must match the `walletAddress` path param on `balance` \u002F `transactions`. Separate wallets can't inspect each other.\n- `\u002Fx402\u002Ftop-up` is unauthenticated on the **discovery** call — auth is implicit via the signed `X-402-Payment` header on settlement.\n- `balanceUsd` on `\u002Fx402\u002Fbalance` is the **USDC** credit balance only. `diemBalanceUsd`, when present, is a **separate** linked-account number — sum them yourself if you need a combined figure.\n- `PAYMENT-REQUIRED` (uppercase, hyphens) is the **header** with base64-encoded x402 `paymentRequired` object; don't confuse it with the body field `code: \"PAYMENT_REQUIRED\"` (which only appears on insufficient-balance bodies, not on auth-style 402s).\n- On `\u002Fx402\u002Fbalance` and `\u002Fx402\u002Ftransactions`, **missing** the SIWE header returns `402` (not 401). Only a present-but-invalid header returns `401` with a `X402_SIGN_IN_*` code.\n- The x402 v2 `accepts[].amount` is in **base units** (e.g. `\"5000000\"` = 5 USDC). Don't multiply by decimals again.\n- `DIEM`, `BUNDLED_CREDITS`, and Bearer-account `USD` are independent from wallet credits. For account balance, use [`venice-billing`](..\u002Fvenice-billing\u002FSKILL.md).\n","# Venice x402 (wallet credits)\n\nx402 is Venice's **wallet-based payment** flow. Pay per request with USDC on Base, no account required. Three admin endpoints plus the protocol-level `402` response returned by every inference endpoint.\n\n| Endpoint | Auth | Purpose |\n|---|---|---|\n| `POST \u002Fx402\u002Ftop-up` | None (discovery) \u002F `X-402-Payment` (settlement) | Discover payment requirements, then settle a signed USDC transfer. |\n| `GET \u002Fx402\u002Fbalance\u002F{walletAddress}` | SIWE (`X-Sign-In-With-X`) | Current USD balance for a wallet. |\n| `GET \u002Fx402\u002Ftransactions\u002F{walletAddress}` | SIWE | Paginated ledger: `TOP_UP`, `CHARGE`, `REFUND`. |\n\nFor the SIWE header format itself, see [`venice-auth`](..\u002Fvenice-auth\u002FSKILL.md).\n\n## Pay with a wallet: end-to-end\n\n### 1. Call an inference endpoint with no balance → `402`\n\nAny inference endpoint (e.g. `POST \u002Fchat\u002Fcompletions`) returns a `402` with structured `topUpInstructions` and `siwxChallenge` when the wallet balance is too low. The `PAYMENT-REQUIRED` response header carries the **x402 v2 `paymentRequired` object** (base64-encoded JSON containing `x402Version`, `error`, `resource`, `accepts[]`, and optional `extensions`) — it is **not** the same payload as the 402 body, which is a richer balance\u002Ftop-up document.\n\n```json\n{\n  \"error\": \"Payment required\",\n  \"code\": \"PAYMENT_REQUIRED\",\n  \"message\": \"Insufficient x402 balance\",\n  \"suggestedTopUpUsd\": 10,\n  \"minimumTopUpUsd\": 5,\n  \"supportedTokens\": [\"USDC\"],\n  \"supportedChains\": [\"base\"],\n  \"topUpInstructions\": {\n    \"step1\": \"POST \u002Fapi\u002Fv1\u002Fx402\u002Ftop-up with no payment header to get payment requirements\",\n    \"step2\": \"Sign a USDC transfer authorization using the x402 SDK (createPaymentHeader)\",\n    \"step3\": \"POST \u002Fapi\u002Fv1\u002Fx402\u002Ftop-up with the signed X-402-Payment header\",\n    \"receiverWallet\": \"\u003CRECEIVER_WALLET_ADDRESS>\",\n    \"tokenAddress\": \"\u003CUSDC_TOKEN_ADDRESS>\",\n    \"tokenDecimals\": 6,\n    \"network\": \"eip155:8453\",\n    \"minimumAmountUsd\": 5\n  },\n  \"siwxChallenge\": {\n    \"info\": { \"domain\": \"api.venice.ai\", \"statement\": \"Sign in to Venice AI\", ... },\n    \"supportedChains\": [\"eip155:8453\"]\n  }\n}\n```\n\n### 2. Discover payment requirements — `POST \u002Fx402\u002Ftop-up` (no header)\n\n```bash\ncurl -X POST https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fx402\u002Ftop-up\n```\n\nResponse `402`:\n\n```json\n{\n  \"x402Version\": 2,\n  \"accepts\": [{\n    \"protocol\": \"x402\",\n    \"version\": 2,\n    \"network\": \"eip155:8453\",\n    \"asset\": \"\u003CUSDC_TOKEN_ADDRESS>\",\n    \"amount\": \"5000000\",          \u002F\u002F base units; USDC = 6 decimals → 5 USDC\n    \"payTo\": \"\u003CRECEIVER_WALLET_ADDRESS>\"\n  }]\n}\n```\n\n### 3. Sign a USDC transfer → `POST \u002Fx402\u002Ftop-up` with `X-402-Payment`\n\nThe **x402 SDK** does the EIP-712 USDC `transferWithAuthorization` signing for you:\n\n```bash\nnpm install x402\n```\n\n```ts\nimport { createPaymentHeader } from 'x402'\nimport { Wallet } from 'ethers'\n\nconst wallet = new Wallet(process.env.WALLET_KEY!)\n\u002F\u002F 1. Discover\nconst discover = await fetch(`${base}\u002Fx402\u002Ftop-up`, { method: 'POST' })\nconst { accepts: [req] } = await discover.json()\n\n\u002F\u002F 2. Sign payment for $10 (write your own amount in base units)\nconst amount = '10000000' \u002F\u002F $10\nconst header = await createPaymentHeader({ ...req, amount }, wallet)\n\n\u002F\u002F 3. Settle\nconst settle = await fetch(`${base}\u002Fx402\u002Ftop-up`, {\n  method: 'POST',\n  headers: { 'X-402-Payment': header },\n})\nconst { data } = await settle.json()\nconsole.log(data.newBalance, data.amountCredited, data.paymentId)\n```\n\n`200` response:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"walletAddress\": \"0x...\",\n    \"amountCredited\": 10,\n    \"newBalance\": 22.5,\n    \"paymentId\": \"payment_01HZ...\"\n  }\n}\n```\n\n### 4. Call inference again — credits are now debited from the wallet\n\nThe `venice-x402-client` SDK wraps steps 1–4: it catches `402`, auto-tops-up to a configured amount, and retries.\n\n## `GET \u002Fx402\u002Fbalance\u002F{walletAddress}`\n\n```bash\ncurl \"https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fx402\u002Fbalance\u002F0xYOUR_WALLET\" \\\n  -H \"X-Sign-In-With-X: \u003Cbase64 siwe>\"\n```\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"walletAddress\": \"0x...\",\n    \"balanceUsd\": 12.5,\n    \"canConsume\": true,\n    \"minimumTopUpUsd\": 5,\n    \"suggestedTopUpUsd\": 10,\n    \"diemBalanceUsd\": 5.25    \u002F\u002F optional — present if the wallet is linked to a Venice account with DIEM\n  }\n}\n```\n\nThe SIWE signer **must match** the path wallet — `403` otherwise.\n\n## `GET \u002Fx402\u002Ftransactions\u002F{walletAddress}`\n\n```bash\ncurl \"https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fx402\u002Ftransactions\u002F0xYOUR_WALLET?limit=50&offset=0\" \\\n  -H \"X-Sign-In-With-X: \u003Cbase64 siwe>\"\n```\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"walletAddress\": \"0x...\",\n    \"currentBalance\": 12.35,\n    \"transactions\": [\n      {\n        \"id\": \"ledger_01H...\",\n        \"amount\": -0.15,\n        \"balanceAfter\": 12.35,\n        \"type\": \"CHARGE\",\n        \"createdAt\": \"2026-04-03T12:34:56.000Z\",\n        \"requestId\": \"chatcmpl-...\",\n        \"modelId\": \"zai-org-glm-5-1\"\n      },\n      {\n        \"id\": \"ledger_01H...\",\n        \"amount\": 10,\n        \"balanceAfter\": 12.5,\n        \"type\": \"TOP_UP\",\n        \"createdAt\": \"2026-04-03T12:00:00.000Z\",\n        \"requestId\": null,\n        \"modelId\": null\n      }\n    ],\n    \"pagination\": { \"limit\": 50, \"offset\": 0, \"hasMore\": false }\n  }\n}\n```\n\n### Transaction types\n\n| `type` | Sign of `amount` | Meaning |\n|---|---|---|\n| `TOP_UP` | positive | `\u002Fx402\u002Ftop-up` settlement. |\n| `CHARGE` | negative | Inference debit. `requestId` \u002F `modelId` link back to the call. |\n| `REFUND` | positive | Failed request refund or manual adjustment. |\n\n## Query parameters\n\n### `\u002Fx402\u002Ftransactions\u002F{walletAddress}`\n\n| Param | Notes |\n|---|---|\n| `limit` | 1–100. Default 50. |\n| `offset` | Number of entries to skip. Default 0. |\n\nUse `offset + limit` and `pagination.hasMore` for paging.\n\n## Constants\n\n- **Chain** — Base mainnet, chain ID `8453` (`eip155:8453`).\n- **Token** — USDC (6 decimals). Native USDC on Base; not USDbC.\n- **Minimum top-up** — `$5` by default. A small number of allow-listed wallets (e.g. internal test wallets) may have a lower per-wallet override — always use the `minimumTopUpUsd` returned in `topUpInstructions` \u002F `\u002Fx402\u002Fbalance` rather than hardcoding `5`.\n- **x402 SDK** — `npm install x402` for raw payment header signing, or `venice-x402-client` for the managed Venice flow.\n- **Receiver wallet + token contract** are returned in `topUpInstructions`; don't hardcode them.\n\n## Errors\n\n| Code | Meaning |\n|---|---|\n| `400` | Below minimum top-up, invalid wallet format, or other validation. |\n| `401` | `X-Sign-In-With-X` header is **present** but invalid (bad signature, expired, nonce reuse, unsupported chain) — returned as `X402_SIGN_IN_*` error codes. |\n| `402` | Expected **discovery** response on `\u002Fx402\u002Ftop-up` (no payment header), on `\u002Fx402\u002Fbalance` and `\u002Fx402\u002Ftransactions` when the SIWE header is **absent**, and on any inference endpoint when the wallet balance is insufficient. Settlement errors use `INVALID_PAYMENT` \u002F `INVALID_PAYMENT_FORMAT` \u002F `INSUFFICIENT_FUNDS` \u002F `EXPIRED_PAYMENT` codes. |\n| `403` | SIWE wallet ≠ path wallet. |\n| `429` | Too many top-ups\u002Fbalance checks. |\n| `500` | Settlement failure; retry with a fresh nonce. |\n\n## Gotchas\n\n- Use the **x402 SDK** (`npm install x402`) for signing. Hand-rolling the EIP-712 `transferWithAuthorization` is risky — nonce reuse ⇒ `INVALID_PAYMENT`.\n- The SIWE signer wallet must match the `walletAddress` path param on `balance` \u002F `transactions`. Separate wallets can't inspect each other.\n- `\u002Fx402\u002Ftop-up` is unauthenticated on the **discovery** call — auth is implicit via the signed `X-402-Payment` header on settlement.\n- `balanceUsd` on `\u002Fx402\u002Fbalance` is the **USDC** credit balance only. `diemBalanceUsd`, when present, is a **separate** linked-account number — sum them yourself if you need a combined figure.\n- `PAYMENT-REQUIRED` (uppercase, hyphens) is the **header** with base64-encoded x402 `paymentRequired` object; don't confuse it with the body field `code: \"PAYMENT_REQUIRED\"` (which only appears on insufficient-balance bodies, not on auth-style 402s).\n- On `\u002Fx402\u002Fbalance` and `\u002Fx402\u002Ftransactions`, **missing** the SIWE header returns `402` (not 401). Only a present-but-invalid header returns `401` with a `X402_SIGN_IN_*` code.\n- The x402 v2 `accepts[].amount` is in **base units** (e.g. `\"5000000\"` = 5 USDC). Don't multiply by decimals again.\n- `DIEM`, `BUNDLED_CREDITS`, and Bearer-account `USD` are independent from wallet credits. For account balance, use [`venice-billing`](..\u002Fvenice-billing\u002FSKILL.md).\n",{"name":5,"origin":24,"license":15,"version":25,"description":26,"compatibility":27},"github.com\u002Fveniceai\u002Fskills (skill: venice-x402)","1.0.0","Manage Venice x402 wallet credits. Covers POST \u002Fx402\u002Ftop-up (payment discovery + signed USDC settlement), GET \u002Fx402\u002Fbalance\u002F{walletAddress}, GET \u002Fx402\u002Ftransactions\u002F{walletAddress}, USDC on Base (chain 8453), minimum $5 top-up, transaction types TOP_UP\u002FCHARGE\u002FREFUND, and the x402 v2 PAYMENT-REQUIRED ","yana-ai >= 0.14.0","main","481dcd7dd2e288b9d627a2bd017db70e64e6c6fa","core\u002Fskills\u002Fvenice--venice-x402",2,"https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI","https:\u002F\u002Fyana.vutam.link\u002F","https:\u002F\u002Fgithub.com\u002FHoronomos-laps","https:\u002F\u002Fyana.vutam.link","An open-source governed runtime & execution environment for multi-agent AI systems.","2026-11-12 23:12:27",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add Horonomos-laps\u002FYana-AI --skill venice--venice-x402",{"tool":44,"command":45},"bunx","bunx skills add Horonomos-laps\u002FYana-AI --skill venice--venice-x402",{"tool":47,"command":48},"pnpm","pnpm dlx skills add Horonomos-laps\u002FYana-AI --skill venice--venice-x402","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fvenice--venice-x402\u002FSKILL.md",true,[],[53,60,68,76,84,92],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":19},"01M735GKET5YVYKAY62W2P5YXB","openai--sentry--sentry","Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`.","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fopenai--sentry--sentry\u002FSKILL.md",[],[],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":64,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M73DCAP83T17HY7SMGK7MGFE","ito-basket-compare","Compare Itô prediction-market baskets against a user's knowledge base, portfolio notes, financial context, watchlist, or research thesis. Use for read-only basket comparison and gap analysis without investment advice or live trading.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fito-basket-compare\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":64,"licenseFileUrl":72,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M734CYEMZFDR3KH6SW0JP8TD","implementing-network-traffic-baselining","Build network traffic baselines from NetFlow\u002FIPFIX data using Python pandas for statistical analysis, z-score anomaly detection, and hourly\u002Fdaily traffic pattern profiling","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":64,"licenseFileUrl":80,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M73ASZ6NJRJM44Z2P84NGQ3Q","detecting-evasion-techniques-in-endpoint-logs","Detects defense evasion techniques used by adversaries in endpoint logs including log tampering, timestomping, process injection, and security tool disabling. Use when investigating suspicious endpoint behavior, building detection rules for evasion tactics, or conducting threat hunting for stealthy adversary activity. Activates for requests involving evasion detection, defense evasion analysis, log tampering detection, or MITRE ATT&CK TA0005.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":64,"licenseFileUrl":88,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M734AFNXD06Z78QRK0VKGT7Q","implementing-microsegmentation-with-guardicore","Implementing microsegmentation using Akamai Guardicore Segmentation to map application dependencies, create granular network policies, visualize east-west traffic flows, and enforce least-privilege communication between workloads across data centers and cloud.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FSKILL.md",[],[],{"skillNo":93,"name":94,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":64,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":19},"01M736TK27QMCXK0DVCH25SJN5","ramdisk-tmpfs-patterns","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",[],[]]