generated: '2026-07-18' method: generated source: openapi/bitski-nft-service-openapi-original.json, openapi/bitski-wallet-experience-openapi-original.json description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 35 by_action_class: connected: 21 acting: 14 by_consequence: read: 21 physical: 6 write: 8 human_in_the_loop_required: 0 operations: - path: /contracts/{contract_id}/metadata method: get operationId: contract_metadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contracts/{contract_id}/token-metadata/{token_id} method: get operationId: token_metadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/contracts method: get operationId: list_contracts x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/contracts method: post operationId: create_contract x-agentic-access: action-class: acting consequence: physical subject: required scope: - apps audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/contracts/{contract_id} method: get operationId: get_contract x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/contracts/{contract_id} method: patch operationId: patch_contract x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/fulfillments method: post operationId: create_fulfillment x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/fulfillments/{fulfillment_id} method: get operationId: get_fulfillment x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/fulfillments/{fulfillment_id} method: patch operationId: patch_fulfillment x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/gates method: get operationId: list x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/gates method: post operationId: create x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/gates/{gate_id} method: get operationId: get x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/gates/{gate_id} method: put operationId: update x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/token-templates method: get operationId: get_token_templates x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/token-templates method: post operationId: create_token_template x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/token-templates/{token_template_id} method: get operationId: token_template x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/token-templates/{token_template_id} method: put operationId: update_token_template x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/tokens method: get operationId: get_tokens x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/tokens method: post operationId: create_token x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/apps/{app_id}/tokens/{token_id} method: get operationId: get_token x-agentic-access: action-class: connected consequence: read subject: optional scope: - apps token: max-ttl: 3600 audit: none - path: /v1/apps/{app_id}/tokens/{token_id} method: patch operationId: update_token x-agentic-access: action-class: acting consequence: write subject: required scope: - apps audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/auctions/{auction_id} method: get operationId: get_auction_info x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/claim-codes/claims/unclaimed method: get operationId: get_unclaimed_codes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/claim-codes/{claim_code_id_or_code} method: get operationId: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/claims method: post operationId: create x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/gates/check method: get operationId: check x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/orders method: post operationId: create_order x-agentic-access: action-class: acting consequence: physical subject: required scope: - commerce audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/orders/{order_id} method: get operationId: get_order x-agentic-access: action-class: connected consequence: read subject: optional scope: - commerce token: max-ttl: 3600 audit: none - path: /v1/orders/{order_id}/payments/{payment_id} method: patch operationId: patch_order_payment x-agentic-access: action-class: acting consequence: physical subject: required scope: - commerce audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/products method: get operationId: list_products x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/products/{product_id} method: get operationId: get_product x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stores/{store_id} method: get operationId: store_public x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/users/{user_id}/payment-methods method: get operationId: list_payment_methods x-agentic-access: action-class: connected consequence: read subject: optional scope: - commerce token: max-ttl: 3600 audit: none - path: /v1/users/{user_id}/payment-methods method: post operationId: add_payment_method x-agentic-access: action-class: acting consequence: physical subject: required scope: - commerce audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v2/activities method: get operationId: list_activities x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none