{
  "name": "digihub-x402-gruenden",
  "version": "0.9.0",
  "base_url": "https://digihub-x402.marcel-13f.workers.dev",
  "payment": {
    "human_primary": "POST /v1/checkout/stripe (Stripe Checkout + Link)",
    "agent_primary": "x402 USDC",
    "protocol": "x402",
    "headers": [
      "X-PAYMENT",
      "PAYMENT-SIGNATURE"
    ],
    "stripe": {
      "create": "POST /v1/checkout/stripe",
      "status": "GET /v1/checkout/stripe/{session_id}",
      "webhook": "POST /v1/webhooks/stripe (requires (server secret); 503 if unset)",
      "success": "GET /v1/checkout/success?session_id=cs_…"
    }
  },
  "tools": [
    {
      "name": "list_legal_forms",
      "method": "GET",
      "path": "/v1/forms",
      "paid": false
    },
    {
      "name": "list_fixtures",
      "method": "GET",
      "path": "/v1/fixtures",
      "paid": false,
      "note": "Demo payloads GmbH/AG/LVC × tokenized + Anstalt"
    },
    {
      "name": "incorporate_li",
      "method": "POST",
      "path": "/v1/incorporate",
      "paid": true,
      "price_env": "X402_PRICE_INCORPORATE",
      "note": "?format=zip | ?compact=1"
    },
    {
      "name": "generate_beschluss",
      "method": "POST",
      "path": "/v1/beschluss",
      "paid": true,
      "price_env": "X402_PRICE_BESCHLUSS"
    },
    {
      "name": "list_lifecycle",
      "method": "GET",
      "path": "/v1/lifecycle",
      "paid": false
    },
    {
      "name": "lifecycle_action",
      "method": "POST",
      "path": "/v1/lifecycle/{action}",
      "paid": true,
      "price_env": "X402_PRICE_LIFECYCLE",
      "note": "beschluss|prokura (DOCX) | address_change|seat_relocation|capital_increase|board_change|…"
    },
    {
      "name": "list_showcase_deals",
      "method": "GET",
      "path": "/v1/showcase/deals?public=1",
      "paid": false
    },
    {
      "name": "create_showcase_deal",
      "method": "POST",
      "path": "/v1/showcase/deals",
      "paid": false,
      "note": "Draft deal + optional auto-score"
    },
    {
      "name": "score_showcase_deal",
      "method": "POST",
      "path": "/v1/showcase/deals/{id}/score",
      "paid": false
    },
    {
      "name": "skin_showcase_deal_challenge",
      "method": "POST",
      "path": "/v1/showcase/deals/{id}/skin/challenge",
      "paid": false,
      "note": "Single-use EIP-191 challenge bound to deal + wallet; required before wallet_proof"
    },
    {
      "name": "skin_showcase_deal",
      "method": "POST",
      "path": "/v1/showcase/deals/{id}/skin",
      "paid": false,
      "note": "Fetch /skin/challenge first. wallet_proof signs that message. usdc_payment txHash is single-use per chain."
    },
    {
      "name": "publish_showcase_deal",
      "method": "POST",
      "path": "/v1/showcase/deals/{id}/publish",
      "paid": false
    },
    {
      "name": "showcase_tokenlist_row",
      "method": "GET",
      "path": "/v1/showcase/deals/{id}/tokenlist-row",
      "paid": false
    },
    {
      "name": "get_showcase_deal_page",
      "method": "GET",
      "path": "/v1/showcase/deals/{id}/deal-page",
      "paid": false,
      "note": "Crowdcube-like payload; ?preview=1 for drafts"
    },
    {
      "name": "upsert_showcase_deal_page",
      "method": "PUT",
      "path": "/v1/showcase/deals/{id}/deal-page",
      "paid": false
    },
    {
      "name": "ecsp_intent",
      "method": "POST",
      "path": "/v1/ecsp/intent",
      "paid": false,
      "note": "Intent only — NOT a live ECSP licence"
    },
    {
      "name": "list_contract_templates",
      "method": "GET",
      "path": "/v1/contracts/templates",
      "paid": false
    },
    {
      "name": "deploy_contract",
      "method": "POST",
      "path": "/v1/contracts/deploy",
      "paid": true,
      "price_env": "X402_PRICE_CONTRACT"
    },
    {
      "name": "interact_contract",
      "method": "POST",
      "path": "/v1/contracts/{id}/interact",
      "paid": true,
      "price_env": "X402_PRICE_CONTRACT"
    },
    {
      "name": "split_payment",
      "method": "POST",
      "path": "/v1/payments/split",
      "paid": true,
      "price_env": "X402_PRICE_CONTRACT"
    },
    {
      "name": "distribute_dividends",
      "method": "POST",
      "path": "/v1/dividends/distribute",
      "paid": true,
      "price_env": "X402_PRICE_CONTRACT"
    },
    {
      "name": "launch_fundraise",
      "method": "POST",
      "path": "/v1/fundraise/launch",
      "paid": true,
      "price_env": "X402_PRICE_FUNDRAISE"
    },
    {
      "name": "swiss_knife_catalog",
      "method": "GET",
      "path": "/v1/swiss-knife",
      "paid": false,
      "note": "Smart-contract Postman/Console capability map"
    },
    {
      "name": "swiss_knife_run",
      "method": "POST",
      "path": "/v1/swiss-knife/run",
      "paid": true,
      "price_env": "X402_PRICE_CONTRACT",
      "note": "Unified runner; free caps skip pay; mock with (mock disabled)"
    },
    {
      "name": "stripe_checkout_link",
      "method": "POST",
      "path": "/v1/checkout/stripe",
      "paid": false,
      "note": "kinds: incorporate|beschluss only. kind lvc_register → 400 (Anteilbuch = x402 USDC only)."
    },
    {
      "name": "lvc_catalog",
      "method": "GET",
      "path": "/v1/lvc",
      "paid": false,
      "note": "Legal mapping Mitgliederpunkte ↔ TokenV2 ↔ Anteilbuch"
    },
    {
      "name": "lvc_transfers",
      "method": "GET",
      "path": "/v1/lvc/transfers?fromBlock=",
      "paid": false,
      "note": "eth_getLogs Transfer index; merge_notices→Vorstand inbox"
    },
    {
      "name": "lvc_balances",
      "method": "GET",
      "path": "/v1/lvc/balances?address=0x…",
      "paid": false,
      "note": "Fixture mock or live balanceOf; no CDP required"
    },
    {
      "name": "lvc_register_demo",
      "method": "GET",
      "path": "/v1/lvc/register.pdf?fixture=digihub-demo",
      "paid": false,
      "note": "Also /register (json) and /register.md"
    },
    {
      "name": "lvc_register_build",
      "method": "POST",
      "path": "/v1/lvc/register.pdf",
      "paid": true,
      "price_env": "LVC_REGISTER_PRICE_USDC",
      "note": "1 USDC x402 only (not Stripe). body {register}|{token_address,members[]}"
    },
    {
      "name": "lvc_allocate",
      "method": "POST",
      "path": "/v1/lvc/allocate",
      "paid": true,
      "price_env": "X402_PRICE_LVC",
      "note": "fixture lvc-allocate-demo | lvc-burn-demo"
    },
    {
      "name": "lvc_transfer_notice",
      "method": "POST",
      "path": "/v1/lvc/transfer-notice",
      "paid": true,
      "price_env": "X402_PRICE_LVC",
      "note": "fixture lvc-transfer-notice-demo | …-blocked-demo (409); persists inbox"
    },
    {
      "name": "lvc_notices",
      "method": "GET",
      "path": "/v1/lvc/notices?fixture=digihub-demo",
      "paid": false,
      "note": "Vorstand inbox; ?status=open,blocked_409 · alias /v1/lvc/{id}/notices"
    },
    {
      "name": "liquidation_meta",
      "method": "GET",
      "path": "/v1/liquidation",
      "paid": false,
      "note": "P1 DEMO — software ≠ Insolvenzverwalter"
    },
    {
      "name": "liquidation_demo",
      "method": "GET",
      "path": "/v1/liquidation/demo",
      "paid": false,
      "note": "HTML showcase; ?format=json walkthrough"
    },
    {
      "name": "list_liquidation_cases",
      "method": "GET",
      "path": "/v1/liquidation/cases",
      "paid": false
    },
    {
      "name": "create_liquidation_case",
      "method": "POST",
      "path": "/v1/liquidation/cases",
      "paid": false
    },
    {
      "name": "get_liquidation_case",
      "method": "GET",
      "path": "/v1/liquidation/cases/{id}",
      "paid": false,
      "note": "Fixture: envion-mirror"
    },
    {
      "name": "list_liquidation_claims",
      "method": "GET",
      "path": "/v1/liquidation/cases/{id}/claims",
      "paid": false
    },
    {
      "name": "submit_liquidation_claim",
      "method": "POST",
      "path": "/v1/liquidation/cases/{id}/claims",
      "paid": true,
      "price_env": "X402_PRICE_LIQUIDATION_CLAIM",
      "note": "Or demo:true"
    },
    {
      "name": "transfer_liquidation_claim",
      "method": "POST",
      "path": "/v1/liquidation/claims/{id}/transfer",
      "paid": false
    },
    {
      "name": "verify_liquidation_claims",
      "method": "POST",
      "path": "/v1/liquidation/cases/{id}/verify",
      "paid": false,
      "note": "Demo verify ≠ Kollokation"
    },
    {
      "name": "distribute_liquidation",
      "method": "POST",
      "path": "/v1/liquidation/cases/{id}/distribute",
      "paid": false
    },
    {
      "name": "liquidation_register_pdf",
      "method": "GET",
      "path": "/v1/liquidation/cases/{id}/register.pdf",
      "paid": false
    },
    {
      "name": "roas_effect_observe",
      "method": "GET",
      "path": "/v1/roas/effect",
      "paid": false,
      "note": "The ROAS Capital Effect™ spec + sandbox placeholder + queue counts"
    },
    {
      "name": "roas_effect_propose",
      "method": "POST",
      "path": "/v1/roas/effect/propose",
      "paid": true,
      "price_env": "X402_PRICE_ROAS_EFFECT",
      "note": "x402. Body page_url, primary_text, headline, cta, ad_account_slug=sandbox"
    },
    {
      "name": "roas_effect_queue",
      "method": "GET",
      "path": "/v1/roas/effect/queue",
      "paid": false,
      "note": "Open drafts awaiting operator approve"
    },
    {
      "name": "roas_effect_approve",
      "method": "POST",
      "path": "/v1/roas/effect/approve",
      "paid": false,
      "operator": true,
      "header": "X-ROAS-APPROVE",
      "note": "Operator-only. Secret (server secret), or DEMO-ONLY literal demo if unset. Creates PAUSED ad. No activate."
    },
    {
      "name": "roas_effect_get",
      "method": "GET",
      "path": "/v1/roas/effect/{id}",
      "paid": false
    }
  ],
  "fixtures": "https://digihub-x402.marcel-13f.workers.dev/v1/fixtures",
  "notes": [
    "Product = paid intake + perfect docs + orchestration. AfJ filing is human-in-the-loop.",
    "LVC names must include Genossenschaft. Sitz must match Statuten.",
    "Liberierung ≠ wallet screenshot (Sperrkonto / Verfügungsmacht).",
    "Fulfill: documents{} + pack_zip_base64. POST /v1/incorporate?format=zip → binary ZIP.",
    "Smart contracts: mock via (mock disabled); live deploy needs CDP secrets; live write returns unsigned tx plan.",
    "Swiss Knife: GET /v1/swiss-knife maps Console Postman ops; POST /v1/swiss-knife/run. Whitelist proxy needs (server secret) → investhub-whitelist-api.",
    "Liquidation/transfer-claim P1: demo stubs + envion-mirror fixture. verify ≠ Kollokation; software ≠ Insolvenzverwalter. Envion fee figures = CLIENT estimate.",
    "LVC membership points: chain = Punkte-Ledger (TokenV2, 0 decimals, whitelist = Mitglieder); Anteilbuch PDF is the authoritative document; transfers to non-members are blocked (PGR Art. 446 Abs. 2).",
    "LVC paid register: authn (EIP-191) → authz (vorstand|admitted) → pay 1 USDC. Pay ≠ authorize. GET fixture DEMO stays free.",
    "EQN gate: (server secret) secret allowlist; empty deploy default → 503 until Marcel puts wallets.",
    "ROAS Effect™ POC: propose (x402/mock) → queue → operator X-ROAS-APPROVE → PAUSED sandbox ad. DEMO stub unless sandbox act_ confirmed. No Stripe. No activate. DEMO-ONLY approve header demo if secret unset."
  ]
}