xytara 3.1.16 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -92
- package/RELEASE_NOTES.md +7 -3
- package/START_HERE.md +56 -224
- package/bin/xytara.js +21 -8
- package/client.js +79 -1
- package/lib/{delivery_receipt.js → delivery_receipt_verify.js} +14 -100
- package/package.json +25 -35
- package/scripts/verify_client.js +418 -0
- package/scripts/verify_release_candidate.js +146 -45
- package/.env.example +0 -173
- package/ADAPTER_START_HERE.md +0 -56
- package/BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md +0 -126
- package/CARRIED_HANDOFF_DEMO.md +0 -60
- package/EXAMPLE_PATHS.md +0 -53
- package/FINAL_CONTRACT.md +0 -498
- package/PARTNER_READY_PATH.md +0 -71
- package/PUBLIC_DEMO_SCRIPT.md +0 -78
- package/REAL_PAYMENT_SETUP.md +0 -320
- package/SERVICE_CONTRACT.md +0 -419
- package/SUPABASE_RUNTIME_STATE_SETUP.md +0 -61
- package/TERMINOLOGY.md +0 -50
- package/WHY_XYTARA_XOONYA.md +0 -63
- package/XT1_EXECUTION_TRUTH_STANDARD.md +0 -78
- package/XYTARA_ADAPTER_PROTOCOL_TRUTH_MODEL.md +0 -75
- package/XYTARA_AUTONOMOUS_ENTRY_MODEL.md +0 -124
- package/XYTARA_DEFAULT_PATH_MODEL.md +0 -84
- package/XYTARA_EXECUTION_TRUTH_MODEL.md +0 -171
- package/XYTARA_PAYMENT_RAIL_TRUTH_MODEL.md +0 -68
- package/adapters/AUTHORING_GUIDE.md +0 -244
- package/adapters/ONBOARDING_POSTURE.md +0 -61
- package/adapters/THIRD_PARTY_SUBMISSION_PROCESS.md +0 -84
- package/adapters/adapter-manifest.schema.json +0 -283
- package/adapters/examples/example-execution-adapter.js +0 -61
- package/adapters/examples/example-execution-adapter.manifest.json +0 -81
- package/adapters/examples/example-settlement-adapter.js +0 -55
- package/adapters/examples/example-settlement-adapter.manifest.json +0 -78
- package/adapters/examples/example-third-party-acp-registration.submission-bundle.json +0 -124
- package/adapters/examples/example-third-party-erc8004-registration.submission-bundle.json +0 -121
- package/adapters/examples/example-third-party-identity-registration.certification-pack.json +0 -22
- package/adapters/examples/example-third-party-identity-registration.record.json +0 -26
- package/adapters/examples/example-third-party-identity-registration.submission-bundle.json +0 -126
- package/adapters/examples/example-third-party-langchain-registration.submission-bundle.json +0 -124
- package/adapters/examples/example-third-party-mpp-registration.submission-bundle.json +0 -120
- package/adapters/examples/example-third-party-registration.certification-pack.json +0 -22
- package/adapters/examples/example-third-party-registration.record.json +0 -28
- package/adapters/examples/example-third-party-registration.submission-bundle.json +0 -126
- package/adapters/examples/example-third-party-settlement-registration.certification-pack.json +0 -22
- package/adapters/examples/example-third-party-settlement-registration.record.json +0 -26
- package/adapters/examples/example-third-party-settlement-registration.submission-bundle.json +0 -127
- package/adapters/examples/langchain-reference-execution-adapter.js +0 -81
- package/adapters/examples/langchain-reference-execution-adapter.manifest.json +0 -79
- package/adapters/examples/langgraph-reference-execution-adapter.js +0 -81
- package/adapters/examples/langgraph-reference-execution-adapter.manifest.json +0 -79
- package/adapters/examples/minimal-third-party-execution-adapter.js +0 -61
- package/adapters/examples/minimal-third-party-execution-adapter.manifest.json +0 -79
- package/adapters/examples/minimal-third-party-execution-registration.record.json +0 -26
- package/adapters/examples/minimal-third-party-execution.certification-pack.json +0 -22
- package/adapters/examples/minimal-third-party-execution.submission-bundle.json +0 -126
- package/adapters/integration-certification-pack.schema.json +0 -82
- package/adapters/integration-registration-record.schema.json +0 -114
- package/adapters/integration-submission-bundle-set.schema.json +0 -39
- package/adapters/integration-submission-bundle.schema.json +0 -34
- package/adapters/interfaces.js +0 -56
- package/bin/xytara-release.js +0 -1429
- package/examples/_demo_env.js +0 -40
- package/examples/adapter_review_walkthrough.js +0 -54
- package/examples/export_carried_handoff.js +0 -81
- package/examples/funded_runtime_walkthrough.js +0 -71
- package/examples/partner_launch_walkthrough.js +0 -44
- package/examples/quickstart.js +0 -3256
- package/fixtures/catalog.js +0 -1156
- package/index.js +0 -395
- package/integrations/dispatch.js +0 -276
- package/integrations/registry-snapshot.schema.json +0 -36
- package/integrations/registry.js +0 -2261
- package/integrations/views.js +0 -28
- package/lib/a2a_lane_contract.js +0 -104
- package/lib/a2a_rpc.js +0 -287
- package/lib/a2c_lane_contract.js +0 -111
- package/lib/account_auth.js +0 -585
- package/lib/acp_lane_contract.js +0 -54
- package/lib/activity_audit_contract.js +0 -322
- package/lib/adapter_certification_contract.js +0 -130
- package/lib/adapter_depth_contract.js +0 -218
- package/lib/adapter_pack.js +0 -118
- package/lib/adapter_partner_pack.js +0 -89
- package/lib/adapter_promotion_pack.js +0 -89
- package/lib/adapter_protocol_truth_contract.js +0 -229
- package/lib/agent_identity.js +0 -162
- package/lib/announcement_pack.js +0 -61
- package/lib/artifact_distribution_lane_contract.js +0 -54
- package/lib/asyncapi_contract.js +0 -150
- package/lib/auth_interop_contract.js +0 -80
- package/lib/authority_binding_lifecycle_contract.js +0 -182
- package/lib/autonomous_entry_contract.js +0 -409
- package/lib/bolt_adapter.js +0 -187
- package/lib/bolt_lane_contract.js +0 -55
- package/lib/bolt_payment_front.js +0 -224
- package/lib/business_cockpit.js +0 -378
- package/lib/buyer_event_log.js +0 -230
- package/lib/buyer_safety_policy.js +0 -132
- package/lib/capability_execution_truth.js +0 -276
- package/lib/capability_registry.js +0 -633
- package/lib/catalog_contract.js +0 -966
- package/lib/catalog_family_model.js +0 -193
- package/lib/catalog_views.js +0 -55
- package/lib/cdp_jwt.js +0 -57
- package/lib/checkout_event_security.js +0 -142
- package/lib/checkout_processor_adapter.js +0 -217
- package/lib/cloudevents_contract.js +0 -80
- package/lib/command_flow.js +0 -911
- package/lib/commerce_artifacts.js +0 -591
- package/lib/commerce_authority.js +0 -449
- package/lib/commerce_bridge.js +0 -274
- package/lib/commerce_cases.js +0 -399
- package/lib/commerce_checkout.js +0 -509
- package/lib/commerce_coordination.js +0 -346
- package/lib/commerce_economics.js +0 -4017
- package/lib/commerce_identity.js +0 -578
- package/lib/commerce_quotes.js +0 -266
- package/lib/commerce_reports.js +0 -14461
- package/lib/commerce_runtime.js +0 -322
- package/lib/commerce_shell.js +0 -257
- package/lib/crypto_agility_matrix.js +0 -125
- package/lib/default_path_contract.js +0 -412
- package/lib/delivery_summary_contract.js +0 -95
- package/lib/ecosystem_entry.js +0 -64
- package/lib/erc8004_lane_contract.js +0 -65
- package/lib/event_system_lane_contract.js +0 -75
- package/lib/execution_dedupe.js +0 -86
- package/lib/execution_truth_contract.js +0 -234
- package/lib/external_credit_bridge.js +0 -142
- package/lib/external_execution_policy.js +0 -143
- package/lib/external_execution_runtime.js +0 -238
- package/lib/feature_control_lane_contract.js +0 -54
- package/lib/first_run_conversion_contract.js +0 -290
- package/lib/framework_lane_contract.js +0 -89
- package/lib/framework_provider_promotion.js +0 -235
- package/lib/full_catalog_contract.js +0 -525
- package/lib/go_live_operator_pack.js +0 -391
- package/lib/http_transport.js +0 -99
- package/lib/identity_auth.js +0 -175
- package/lib/identity_interop_contract.js +0 -82
- package/lib/integration_matrix_contract.js +0 -102
- package/lib/l402_adapter.js +0 -241
- package/lib/l402_lane_contract.js +0 -55
- package/lib/l402_payment_front.js +0 -265
- package/lib/launch_narrative.js +0 -53
- package/lib/lifecycle_continuity_contract.js +0 -115
- package/lib/machine_identity_registry_contract.js +0 -199
- package/lib/major_rails_lane_contract.js +0 -150
- package/lib/market_lane_contract.js +0 -467
- package/lib/market_lane_depth_contract.js +0 -182
- package/lib/market_lane_promotion_contract.js +0 -210
- package/lib/market_lane_trace_contract.js +0 -278
- package/lib/mcp_lane_contract.js +0 -137
- package/lib/mpp_adapter.js +0 -237
- package/lib/network_transport.js +0 -110
- package/lib/offline_verifiability_recovery_contract.js +0 -155
- package/lib/openapi_contract.js +0 -300
- package/lib/operational_receipt_contract.js +0 -165
- package/lib/operator_intelligence.js +0 -407
- package/lib/outreach_copy_pack.js +0 -51
- package/lib/outreach_message_pack.js +0 -71
- package/lib/outreach_proof.js +0 -71
- package/lib/outreach_target_pack.js +0 -60
- package/lib/partner_intelligence.js +0 -105
- package/lib/payment_config.js +0 -257
- package/lib/payment_front_registry.js +0 -53
- package/lib/payment_protocol_contract.js +0 -165
- package/lib/payment_rail_truth_contract.js +0 -324
- package/lib/payment_verification.js +0 -357
- package/lib/phase_10_closeout_pack.js +0 -45
- package/lib/phase_10_completion_pack.js +0 -76
- package/lib/phase_10_decision_record_pack.js +0 -54
- package/lib/phase_10_decision_resolution_pack.js +0 -53
- package/lib/phase_10_demand_signal_adapters_runtime_pack.js +0 -74
- package/lib/phase_10_ecosystem_backlog_triage_runtime_pack.js +0 -74
- package/lib/phase_10_freeze_baseline_pack.js +0 -67
- package/lib/phase_10_freeze_review_pack.js +0 -64
- package/lib/phase_10_gate_pack.js +0 -57
- package/lib/phase_10_long_tail_continuity_pack.js +0 -80
- package/lib/phase_10_long_tail_ecosystem_pack.js +0 -66
- package/lib/phase_10_niche_extension_registry_runtime_pack.js +0 -74
- package/lib/phase_1_claude_mcp_pack.js +0 -60
- package/lib/phase_1_claude_mcp_runtime_pack.js +0 -52
- package/lib/phase_1_ecosystem_pack.js +0 -67
- package/lib/phase_1_openai_codex_pack.js +0 -60
- package/lib/phase_1_openai_codex_runtime_pack.js +0 -52
- package/lib/phase_2_base_runtime_pack.js +0 -71
- package/lib/phase_2_base_usdc_runtime_pack.js +0 -72
- package/lib/phase_2_closeout_pack.js +0 -65
- package/lib/phase_2_completion_pack.js +0 -113
- package/lib/phase_2_decision_record_pack.js +0 -66
- package/lib/phase_2_decision_resolution_pack.js +0 -69
- package/lib/phase_2_eth_runtime_pack.js +0 -70
- package/lib/phase_2_evm_base_runtime_pack.js +0 -73
- package/lib/phase_2_evm_runtime_pack.js +0 -71
- package/lib/phase_2_flip_preview_pack.js +0 -60
- package/lib/phase_2_freeze_review_pack.js +0 -99
- package/lib/phase_2_gate_pack.js +0 -77
- package/lib/phase_2_payment_rails_pack.js +0 -71
- package/lib/phase_2_usdc_runtime_pack.js +0 -71
- package/lib/phase_3_brc_runtime_pack.js +0 -81
- package/lib/phase_3_bsv_teranode_runtime_pack.js +0 -83
- package/lib/phase_3_closeout_pack.js +0 -62
- package/lib/phase_3_completion_pack.js +0 -94
- package/lib/phase_3_decision_record_pack.js +0 -64
- package/lib/phase_3_decision_resolution_pack.js +0 -69
- package/lib/phase_3_freeze_baseline_pack.js +0 -67
- package/lib/phase_3_freeze_review_pack.js +0 -80
- package/lib/phase_3_gate_pack.js +0 -76
- package/lib/phase_3_metanet_runtime_pack.js +0 -81
- package/lib/phase_3_native_bsv_pack.js +0 -91
- package/lib/phase_3_native_continuity_pack.js +0 -82
- package/lib/phase_4_attestation_runtime_pack.js +0 -75
- package/lib/phase_4_closeout_pack.js +0 -45
- package/lib/phase_4_completion_pack.js +0 -94
- package/lib/phase_4_decision_record_pack.js +0 -54
- package/lib/phase_4_decision_resolution_pack.js +0 -45
- package/lib/phase_4_erc8004_runtime_pack.js +0 -76
- package/lib/phase_4_freeze_baseline_pack.js +0 -67
- package/lib/phase_4_freeze_review_pack.js +0 -68
- package/lib/phase_4_gate_pack.js +0 -58
- package/lib/phase_4_identity_registry_runtime_pack.js +0 -75
- package/lib/phase_4_identity_trust_pack.js +0 -73
- package/lib/phase_4_trust_continuity_pack.js +0 -86
- package/lib/phase_5_antelope_runtime_pack.js +0 -76
- package/lib/phase_5_closeout_pack.js +0 -44
- package/lib/phase_5_completion_pack.js +0 -82
- package/lib/phase_5_constellation_dag_runtime_pack.js +0 -76
- package/lib/phase_5_decision_record_pack.js +0 -54
- package/lib/phase_5_decision_resolution_pack.js +0 -45
- package/lib/phase_5_digibyte_dgb_runtime_pack.js +0 -76
- package/lib/phase_5_freeze_baseline_pack.js +0 -67
- package/lib/phase_5_freeze_review_pack.js +0 -68
- package/lib/phase_5_gate_pack.js +0 -58
- package/lib/phase_5_hedera_hbar_runtime_pack.js +0 -76
- package/lib/phase_5_kaspa_kas_runtime_pack.js +0 -76
- package/lib/phase_5_major_rails_continuity_pack.js +0 -86
- package/lib/phase_5_major_rails_pack.js +0 -110
- package/lib/phase_5_metal_runtime_pack.js +0 -76
- package/lib/phase_5_polkadot_dot_runtime_pack.js +0 -76
- package/lib/phase_5_proton_xpr_runtime_pack.js +0 -76
- package/lib/phase_5_solana_runtime_pack.js +0 -76
- package/lib/phase_6_autogen_runtime_pack.js +0 -72
- package/lib/phase_6_closeout_pack.js +0 -46
- package/lib/phase_6_completion_pack.js +0 -77
- package/lib/phase_6_decision_record_pack.js +0 -54
- package/lib/phase_6_decision_resolution_pack.js +0 -53
- package/lib/phase_6_framework_continuity_pack.js +0 -81
- package/lib/phase_6_framework_runtime_pack.js +0 -68
- package/lib/phase_6_freeze_baseline_pack.js +0 -68
- package/lib/phase_6_freeze_review_pack.js +0 -65
- package/lib/phase_6_gate_pack.js +0 -59
- package/lib/phase_6_langchain_runtime_pack.js +0 -72
- package/lib/phase_6_langgraph_runtime_pack.js +0 -72
- package/lib/phase_6_semantic_kernel_runtime_pack.js +0 -72
- package/lib/phase_7_closeout_pack.js +0 -45
- package/lib/phase_7_completion_pack.js +0 -85
- package/lib/phase_7_decision_record_pack.js +0 -53
- package/lib/phase_7_decision_resolution_pack.js +0 -53
- package/lib/phase_7_event_system_continuity_pack.js +0 -89
- package/lib/phase_7_event_system_pack.js +0 -76
- package/lib/phase_7_freeze_baseline_pack.js +0 -74
- package/lib/phase_7_freeze_review_pack.js +0 -65
- package/lib/phase_7_gate_pack.js +0 -58
- package/lib/phase_7_kafka_runtime_pack.js +0 -74
- package/lib/phase_7_mqtt_runtime_pack.js +0 -74
- package/lib/phase_7_nats_runtime_pack.js +0 -74
- package/lib/phase_7_webhook_event_bus_runtime_pack.js +0 -74
- package/lib/phase_8_closeout_pack.js +0 -46
- package/lib/phase_8_completion_pack.js +0 -82
- package/lib/phase_8_decision_record_pack.js +0 -54
- package/lib/phase_8_decision_resolution_pack.js +0 -53
- package/lib/phase_8_external_receipt_import_runtime_pack.js +0 -74
- package/lib/phase_8_external_result_import_runtime_pack.js +0 -74
- package/lib/phase_8_freeze_baseline_pack.js +0 -71
- package/lib/phase_8_freeze_review_pack.js +0 -64
- package/lib/phase_8_gate_pack.js +0 -58
- package/lib/phase_8_proof_bridge_continuity_pack.js +0 -86
- package/lib/phase_8_proof_bridges_pack.js +0 -72
- package/lib/phase_8_proof_bundle_normalization_runtime_pack.js +0 -74
- package/lib/phase_9_closeout_pack.js +0 -46
- package/lib/phase_9_completion_pack.js +0 -82
- package/lib/phase_9_custody_refs_runtime_pack.js +0 -74
- package/lib/phase_9_decision_record_pack.js +0 -54
- package/lib/phase_9_decision_resolution_pack.js +0 -53
- package/lib/phase_9_freeze_baseline_pack.js +0 -71
- package/lib/phase_9_freeze_review_pack.js +0 -64
- package/lib/phase_9_gate_pack.js +0 -58
- package/lib/phase_9_operator_accounting_bridges_runtime_pack.js +0 -74
- package/lib/phase_9_treasury_connectivity_pack.js +0 -72
- package/lib/phase_9_treasury_continuity_pack.js +0 -86
- package/lib/phase_9_treasury_destinations_runtime_pack.js +0 -74
- package/lib/phase_program_pack.js +0 -120
- package/lib/pricing_optimization_contract.js +0 -775
- package/lib/protocol_lane_contract.js +0 -117
- package/lib/provenance_lane_contract.js +0 -54
- package/lib/provider_lane_contract.js +0 -240
- package/lib/provider_network_contract.js +0 -149
- package/lib/provider_payout_execution.js +0 -155
- package/lib/provider_registry.js +0 -852
- package/lib/provider_runtime_journey_contract.js +0 -183
- package/lib/public_surface_policy_contract.js +0 -111
- package/lib/publish_plan.js +0 -51
- package/lib/rate_limiter.js +0 -81
- package/lib/record_queries.js +0 -48
- package/lib/release_candidate.js +0 -50
- package/lib/release_center.js +0 -1093
- package/lib/release_history.js +0 -205
- package/lib/release_manifest.js +0 -113
- package/lib/release_pack.js +0 -453
- package/lib/request_rate_limit.js +0 -144
- package/lib/resource_views.js +0 -31
- package/lib/revenue_launch_path_contract.js +0 -326
- package/lib/route_matchers.js +0 -34
- package/lib/route_params.js +0 -19
- package/lib/runtime_bridge.js +0 -124
- package/lib/runtime_operations_worker.js +0 -282
- package/lib/runtime_state_store.js +0 -495
- package/lib/settlement_bsv_live.js +0 -600
- package/lib/settlement_bsv_teranode.js +0 -117
- package/lib/settlement_lane_contract.js +0 -111
- package/lib/shared_signals_lane_contract.js +0 -54
- package/lib/signed_audit_provenance_contract.js +0 -83
- package/lib/soft_launch_pack.js +0 -78
- package/lib/stablecoin_lane_contract.js +0 -76
- package/lib/stripe_mpp_lane_contract.js +0 -96
- package/lib/stripe_mpp_payment_front.js +0 -258
- package/lib/telemetry_lane_contract.js +0 -54
- package/lib/treasury_destinations_contract.js +0 -764
- package/lib/treasury_egress_policy_contract.js +0 -91
- package/lib/treasury_lane_contract.js +0 -84
- package/lib/trust_portability_boundary_contract.js +0 -72
- package/lib/x402_facilitator.js +0 -198
- package/lib/x402_lane_contract.js +0 -136
- package/lib/x402_settlement_recovery.js +0 -175
- package/scripts/buyer_events_daily_report.js +0 -79
- package/scripts/registry_cli.js +0 -275
- package/scripts/state_backup_offsite.js +0 -196
- package/scripts/verify_a2a_rpc.js +0 -131
- package/scripts/verify_adapters.js +0 -554
- package/scripts/verify_agent_identity.js +0 -153
- package/scripts/verify_all.js +0 -4963
- package/scripts/verify_bolt_adapter.js +0 -128
- package/scripts/verify_buyer_event_log.js +0 -128
- package/scripts/verify_buyer_safety.js +0 -141
- package/scripts/verify_cdp_facilitator.js +0 -110
- package/scripts/verify_checkout_processor.js +0 -109
- package/scripts/verify_commerce_bridge.js +0 -177
- package/scripts/verify_control_plane_contracts.js +0 -34
- package/scripts/verify_control_plane_routes.js +0 -70
- package/scripts/verify_delivery_summary.js +0 -112
- package/scripts/verify_examples.js +0 -19
- package/scripts/verify_execution_dedupe.js +0 -189
- package/scripts/verify_execution_surfacing.js +0 -76
- package/scripts/verify_external_execution_retry.js +0 -140
- package/scripts/verify_final_activation.js +0 -191
- package/scripts/verify_first_run_conversions.js +0 -81
- package/scripts/verify_framework_provider_promotion.js +0 -152
- package/scripts/verify_full_catalog.js +0 -174
- package/scripts/verify_integrations.js +0 -620
- package/scripts/verify_l402_adapter.js +0 -86
- package/scripts/verify_lifecycle_continuity.js +0 -96
- package/scripts/verify_lifecycle_spend_binding.js +0 -88
- package/scripts/verify_market_lane_depth.js +0 -94
- package/scripts/verify_market_lane_promotion.js +0 -103
- package/scripts/verify_market_lane_traces.js +0 -98
- package/scripts/verify_market_lanes.js +0 -102
- package/scripts/verify_mpp_adapter.js +0 -128
- package/scripts/verify_operator_observability_boundary.js +0 -83
- package/scripts/verify_pricing_experiment_plan.js +0 -124
- package/scripts/verify_production_readiness.js +0 -268
- package/scripts/verify_provider_network.js +0 -819
- package/scripts/verify_provider_runtime_breadth.js +0 -109
- package/scripts/verify_provider_runtime_journeys.js +0 -111
- package/scripts/verify_rate_limiter.js +0 -52
- package/scripts/verify_refund_credit.js +0 -106
- package/scripts/verify_revenue_launch_paths.js +0 -105
- package/scripts/verify_runtime_durability.js +0 -52
- package/scripts/verify_runtime_state_guard.js +0 -117
- package/scripts/verify_service.js +0 -15421
- package/scripts/verify_settlement.js +0 -116
- package/scripts/verify_tooling.js +0 -1412
- package/scripts/verify_treasury_public_boundary.js +0 -97
- package/scripts/verify_verify_execute_settle.js +0 -209
- package/scripts/verify_x402_facilitator.js +0 -307
- package/scripts/verify_x402_settlement_recovery.js +0 -153
- package/server.js +0 -12245
package/REAL_PAYMENT_SETUP.md
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
# Real Payment Setup
|
|
2
|
-
|
|
3
|
-
This guide explains how to move `xytara` from local placeholder payment acceptance into a production-usable payment posture.
|
|
4
|
-
|
|
5
|
-
## What Changed
|
|
6
|
-
|
|
7
|
-
`xytara` supports three payment-acceptance modes. `local_signed` is the default; `presence` and `x402_facilitator` are opt-in.
|
|
8
|
-
|
|
9
|
-
- `presence`
|
|
10
|
-
- development/demo mode only, enabled with `XYTARA_PAYMENT_VERIFICATION_MODE=presence`
|
|
11
|
-
- payment headers are required, but not cryptographically verified
|
|
12
|
-
- the server logs a warning at startup when this mode is active
|
|
13
|
-
|
|
14
|
-
- `local_signed`
|
|
15
|
-
- the default and the production-oriented built-in mode
|
|
16
|
-
- signed payment payloads are cryptographically verified against a configured wallet registry
|
|
17
|
-
- quote replay and nonce replay are blocked
|
|
18
|
-
- accepted payments are routed into your configured merchant treasury destination posture
|
|
19
|
-
|
|
20
|
-
- `x402_facilitator`
|
|
21
|
-
- trustless, on-chain, pay-per-call, the same mechanism proven live on the MCP executor
|
|
22
|
-
- the `/x402/commands/execute` and `/x402/mcp/tools/invoke` routes return a `402` that
|
|
23
|
-
advertises the configured `accepts` (network, asset, amount, payTo) in the
|
|
24
|
-
`PAYMENT-REQUIRED` header; a buyer signs a gasless x402 USDC authorization (EIP-3009)
|
|
25
|
-
- on the paid retry, a facilitator verifies the payment and settles it on-chain before any
|
|
26
|
-
work runs; the response carries a `PAYMENT-RESPONSE` settlement receipt
|
|
27
|
-
- fails closed: if the facilitator is unreachable or the payment does not settle, nothing runs
|
|
28
|
-
- the buyer needs no native gas token; the facilitator broadcasts the transfer
|
|
29
|
-
- enable with `XYTARA_PAYMENT_VERIFICATION_MODE=x402_facilitator` and the x402 env below:
|
|
30
|
-
|
|
31
|
-
```env
|
|
32
|
-
XYTARA_PAYMENT_VERIFICATION_MODE=x402_facilitator
|
|
33
|
-
# what buyers pay, advertised in the 402 (Base Sepolia test USDC shown):
|
|
34
|
-
XYTARA_X402_ACCEPTS_JSON=[{"scheme":"exact","network":"eip155:84532","asset":"0x036CbD53842c5426634e7929541eC2318f3dCF7e","amount":"1000","payTo":"<your-evm-address>","extra":{"name":"USDC","version":"2"},"maxTimeoutSeconds":60}]
|
|
35
|
-
XYTARA_X402_FACILITATOR_URL=https://x402.org/facilitator
|
|
36
|
-
# optional:
|
|
37
|
-
XYTARA_X402_FACILITATOR_HEADERS_JSON={}
|
|
38
|
-
XYTARA_X402_FACILITATOR_TIMEOUT_MS=15000
|
|
39
|
-
XYTARA_X402_SETTLE=true
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Confirm the facilitator settles every network you advertise, and verify the mode end to end
|
|
43
|
-
against a mock facilitator with `npm run verify:x402-facilitator`. The payment a buyer signs
|
|
44
|
-
is identical to the one in `services/mcp-execution-target/buyer-demo/` (an EIP-3009 USDC
|
|
45
|
-
authorization in a `PAYMENT-SIGNATURE` header); only the request body differs, since the main
|
|
46
|
-
runtime takes a command-execute body rather than an MCP JSON-RPC call.
|
|
47
|
-
|
|
48
|
-
### Self-serve credits top-up
|
|
49
|
-
|
|
50
|
-
Beyond paying per call, a buyer can convert a single x402 payment into spendable
|
|
51
|
-
runtime credits with no operator grant, via `POST /x402/credits/topup`:
|
|
52
|
-
|
|
53
|
-
- without a `PAYMENT-SIGNATURE`, it returns `402` advertising the top-up `accepts` (each
|
|
54
|
-
per-call amount x `XYTARA_X402_TOPUP_AMOUNT_MULTIPLIER`, default 100: $0.01 -> $1.00),
|
|
55
|
-
`credits_per_topup` and a `topup_options` list (network, amount, credits)
|
|
56
|
-
- with a valid payment, the facilitator settles it on-chain and the runtime mints the
|
|
57
|
-
credits to the account, returning the grant, the new balance, a `PAYMENT-RESPONSE`
|
|
58
|
-
settlement receipt and — when the credits went to the paying address — a
|
|
59
|
-
`spend_credential` (`Bearer xytara_spend_...`, shown once) for spending them
|
|
60
|
-
- credits land on the paying wallet address by default; credits sent to another `account_id`
|
|
61
|
-
are a gift and carry no spend credential
|
|
62
|
-
- replays are idempotent: the payment nonce keys the grant, so re-sending the same settled
|
|
63
|
-
payment never mints twice
|
|
64
|
-
|
|
65
|
-
Credits are derived from what was paid: amount / `XYTARA_CREDIT_UNIT_PRICE_ATOMIC` (default
|
|
66
|
-
2500 base units = $0.0025 per credit, so $1.00 buys 400 credits; a task costs 1–8 credits by
|
|
67
|
-
tier). A matched `accepts` entry's `extra.credits` may lower that, never raise it. Testnet
|
|
68
|
-
networks (Base Sepolia) cannot buy credits unless `XYTARA_X402_TESTNET_TOPUP=1`. Spend them with
|
|
69
|
-
`payment_preference: "credits_first"` and the spend credential as the bearer — on a hosted
|
|
70
|
-
deploy a bare `account_id` is never authority. The route is live only in `x402_facilitator`
|
|
71
|
-
mode with `XYTARA_X402_ACCEPTS_JSON` set, and credits persist only when runtime state
|
|
72
|
-
persistence (`XYTARA_SUPABASE_*` or `XYTARA_STATE_FILE`) is configured. A runnable buyer is in
|
|
73
|
-
`services/mcp-execution-target/buyer-demo/x402-credits-topup-demo.js`.
|
|
74
|
-
|
|
75
|
-
### Going to Base mainnet (real USDC)
|
|
76
|
-
|
|
77
|
-
Base Sepolia uses test USDC. To accept real value, advertise a Base mainnet profile and
|
|
78
|
-
settle it through a mainnet-capable facilitator.
|
|
79
|
-
|
|
80
|
-
Important: the default `https://x402.org/facilitator` settles **Base Sepolia only** (its
|
|
81
|
-
`/supported` list has no `eip155:8453`). Pointing a mainnet `accepts` entry at it fails
|
|
82
|
-
closed and the route is unpayable. For mainnet use a mainnet-capable facilitator, such as
|
|
83
|
-
Coinbase CDP (`https://api.cdp.coinbase.com/platform/v2/x402`), which is supported natively:
|
|
84
|
-
create a CDP Secret API Key (Ed25519) and set its id and secret, and the runtime mints a
|
|
85
|
-
fresh short-lived CDP Bearer JWT per facilitator call (CDP rejects static tokens).
|
|
86
|
-
|
|
87
|
-
```env
|
|
88
|
-
# advertise mainnet (real USDC on Base); you can keep a Sepolia entry in the array too
|
|
89
|
-
XYTARA_X402_ACCEPTS_JSON=[{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"10000","payTo":"<your-evm-address>","extra":{"name":"USDC","version":"2"},"maxTimeoutSeconds":60}]
|
|
90
|
-
# point at the CDP-hosted facilitator and supply the CDP Secret API Key:
|
|
91
|
-
XYTARA_X402_FACILITATOR_URL=https://api.cdp.coinbase.com/platform/v2/x402
|
|
92
|
-
CDP_API_KEY_ID=<your-cdp-key-id>
|
|
93
|
-
CDP_API_KEY_SECRET=<your-cdp-ed25519-secret-base64>
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
The CDP key must use the **Ed25519** signature algorithm (not ECDSA). `CDP_API_KEY_ID` /
|
|
97
|
-
`CDP_API_KEY_SECRET` are the CDP-standard names; `XYTARA_X402_CDP_KEY_ID` /
|
|
98
|
-
`XYTARA_X402_CDP_KEY_SECRET` are accepted as overrides. `amount` is in the asset's base units
|
|
99
|
-
(USDC has 6 decimals, so `10000` = 0.01 USDC). Verify the CDP auth path locally with
|
|
100
|
-
`npm run verify:cdp-facilitator`. Once mainnet is live, buyers spend real USDC.
|
|
101
|
-
|
|
102
|
-
## Minimum Production-Oriented Configuration
|
|
103
|
-
|
|
104
|
-
Set these environment variables:
|
|
105
|
-
|
|
106
|
-
```env
|
|
107
|
-
XYTARA_PAYMENT_VERIFICATION_MODE=local_signed
|
|
108
|
-
XYTARA_PAYMENT_MAX_AGE_SECONDS=300
|
|
109
|
-
XYTARA_WALLET_REGISTRY_JSON=[{"wallet_id":"<wallet-id>","secret":"<shared-secret>","account_id":"<account-id>"}]
|
|
110
|
-
XYTARA_TREASURY_DESTINATION_ID=merchant_treasury_primary
|
|
111
|
-
XYTARA_TREASURY_DESTINATION_KIND=merchant_treasury
|
|
112
|
-
XYTARA_TREASURY_ACCOUNT_ID=merchant-main
|
|
113
|
-
XYTARA_TREASURY_EXTERNAL_REF=merchant-usd-main
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
You can also load the wallet registry and treasury map from files through:
|
|
117
|
-
|
|
118
|
-
- `XYTARA_WALLET_REGISTRY_PATH`
|
|
119
|
-
- `XYTARA_TREASURY_DESTINATIONS_PATH`
|
|
120
|
-
|
|
121
|
-
For multi-rail treasury landings, use:
|
|
122
|
-
|
|
123
|
-
- private treasury source of truth: `your private treasury source-of-truth file outside the repos`
|
|
124
|
-
|
|
125
|
-
Important:
|
|
126
|
-
|
|
127
|
-
- yes, for rails you actually want to receive and store value on, you should enter real receiving destinations
|
|
128
|
-
- in `xytara`, that is the `external_ref` field for each rail
|
|
129
|
-
- for practical purposes, `external_ref` is where the real landing address / paymail / custody account / external receiving reference goes
|
|
130
|
-
|
|
131
|
-
Examples:
|
|
132
|
-
|
|
133
|
-
- `bsv_teranode`
|
|
134
|
-
- BSV address or paymail
|
|
135
|
-
- `evm` / `base`
|
|
136
|
-
- EVM address
|
|
137
|
-
- `hedera_hbar`
|
|
138
|
-
- Hedera account id
|
|
139
|
-
- `kaspa_kas`
|
|
140
|
-
- Kaspa address
|
|
141
|
-
- `polkadot_dot`
|
|
142
|
-
- Polkadot address
|
|
143
|
-
- `usdc` / `dai`
|
|
144
|
-
- the stablecoin receiving address on the intended chain
|
|
145
|
-
- `monero`
|
|
146
|
-
- Monero address, only if you are explicitly enabling the internal optional privacy reserve
|
|
147
|
-
|
|
148
|
-
Recommended file-driven setup:
|
|
149
|
-
|
|
150
|
-
```env
|
|
151
|
-
XYTARA_TREASURY_DESTINATIONS_PATH=./TREASURY_DESTINATIONS.production.json
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Then upload the privately maintained treasury file from `your private treasury source-of-truth file outside the repos` as the Render secret file named `TREASURY_DESTINATIONS.production.json`, and keep only public receive destinations in it.
|
|
155
|
-
|
|
156
|
-
## Fastest Live Multi-Rail Activation Path
|
|
157
|
-
|
|
158
|
-
If you want the public runtime to move from readiness-only treasury breadth into stronger live-landing truth before `3.0.0`, use this exact operator sequence:
|
|
159
|
-
|
|
160
|
-
1. update the private treasury source-of-truth file at `your private treasury source-of-truth file outside the repos`
|
|
161
|
-
2. upload that file to Render Secret Files as `TREASURY_DESTINATIONS.production.json`
|
|
162
|
-
3. set:
|
|
163
|
-
|
|
164
|
-
```env
|
|
165
|
-
XYTARA_TREASURY_DESTINATIONS_PATH=./TREASURY_DESTINATIONS.production.json
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
4. redeploy `xytara`
|
|
169
|
-
5. verify:
|
|
170
|
-
|
|
171
|
-
```text
|
|
172
|
-
GET /v1/treasury-destinations/summary
|
|
173
|
-
GET /v1/payment-rail-truth/summary
|
|
174
|
-
GET /v1/autonomous-entry/summary
|
|
175
|
-
GET /v1/business-cockpit/summary
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
You can automate that launch-truth check with:
|
|
179
|
-
|
|
180
|
-
```env
|
|
181
|
-
XYTARA_VERIFY_BASE_URL=https://xytara.onrender.com
|
|
182
|
-
XYTARA_EXPECTED_BSV_RUNTIME_MODE=arc
|
|
183
|
-
XYTARA_EXPECTED_LIVE_RAILS=bsv_teranode,evm,base,solana_payment,usdc,dai
|
|
184
|
-
XYTARA_EXPECTED_READINESS_ONLY_RAILS=hedera_hbar,kaspa_kas,polkadot_dot,digibyte_dgb,constellation_dag
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
Then run:
|
|
188
|
-
|
|
189
|
-
```text
|
|
190
|
-
npm run verify:final-activation
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
Optional operator-depth verification:
|
|
194
|
-
|
|
195
|
-
```env
|
|
196
|
-
XYTARA_ACCOUNT_AUTH_BEARER_TOKEN=<operator-bearer-token>
|
|
197
|
-
XYTARA_VERIFY_ACCOUNT_ID=<the same internal xytara account_id you use for live quotes/payments; usually XYTARA_TREASURY_ACCOUNT_ID>
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
What you want to see:
|
|
201
|
-
|
|
202
|
-
- a healthy `GET /business-cockpit` page once operator auth is in place
|
|
203
|
-
- a healthy `GET /v1/business-cockpit/summary` machine summary alongside the treasury and payment truth summaries
|
|
204
|
-
|
|
205
|
-
- `public_claimable_profile_count > 0`
|
|
206
|
-
- `public_live_landing_rail_count > 0`
|
|
207
|
-
- the desired rail family changes from readiness-only to live claimable
|
|
208
|
-
|
|
209
|
-
What must not happen:
|
|
210
|
-
|
|
211
|
-
- no real `external_ref`
|
|
212
|
-
- no custody ref
|
|
213
|
-
- no provider ref
|
|
214
|
-
|
|
215
|
-
should appear on any public surface
|
|
216
|
-
|
|
217
|
-
## What This Gives You
|
|
218
|
-
|
|
219
|
-
With `local_signed` enabled:
|
|
220
|
-
|
|
221
|
-
- `POST /x402/commands/execute` challenges for payment
|
|
222
|
-
- the client signs the exact payment payload
|
|
223
|
-
- if the quote is using native `bsv_teranode`, the payment payload can also carry BSV/Teranode merchant and settlement-reference hints
|
|
224
|
-
- the server verifies:
|
|
225
|
-
- wallet registration
|
|
226
|
-
- HMAC signature validity
|
|
227
|
-
- quote id
|
|
228
|
-
- amount
|
|
229
|
-
- currency
|
|
230
|
-
- settlement binding
|
|
231
|
-
- timestamp freshness
|
|
232
|
-
- nonce uniqueness
|
|
233
|
-
- accepted payments are recorded into:
|
|
234
|
-
- `payment-ledger`
|
|
235
|
-
- `activity-ledger`
|
|
236
|
-
- `treasury-summary`
|
|
237
|
-
- `rail-summary`
|
|
238
|
-
- `treasury-egress-policy`
|
|
239
|
-
- `reconciliation-report`
|
|
240
|
-
|
|
241
|
-
## What It Does Not Do By Itself
|
|
242
|
-
|
|
243
|
-
The built-in path gives you verifiable payment acceptance and merchant treasury routing posture inside `xytara`.
|
|
244
|
-
|
|
245
|
-
It does not by itself:
|
|
246
|
-
|
|
247
|
-
- move fiat into a bank account
|
|
248
|
-
- broadcast on-chain settlement
|
|
249
|
-
- replace an external processor or custodian
|
|
250
|
-
|
|
251
|
-
For actual external custody, connect `xytara` to the real rail you want behind the payment and settlement boundary.
|
|
252
|
-
|
|
253
|
-
That is where:
|
|
254
|
-
|
|
255
|
-
- your payment rail integration
|
|
256
|
-
- your settlement integration
|
|
257
|
-
- your merchant treasury destination
|
|
258
|
-
|
|
259
|
-
become the actual real-world landing point for accepted funds.
|
|
260
|
-
|
|
261
|
-
For native `bsv_teranode`, the runtime can now:
|
|
262
|
-
|
|
263
|
-
- create settlement records automatically when payment is accepted
|
|
264
|
-
- auto-submit them when settlement runtime material is available
|
|
265
|
-
- auto-refresh them toward observed or confirmed state through the background runtime worker
|
|
266
|
-
|
|
267
|
-
That still does not remove the need for real merchant identity, real transport, and real operator-controlled destinations.
|
|
268
|
-
|
|
269
|
-
So the short operational rule is:
|
|
270
|
-
|
|
271
|
-
- no, you should not leave treasury rails as abstract names only
|
|
272
|
-
- yes, you should configure real landing destinations for each rail you claim is operational
|
|
273
|
-
- if a rail does not yet have a real destination, keep it visible as supported architecture, but do not claim it as an active treasury landing path
|
|
274
|
-
- public treasury surfaces now expose `public_claim_status`, `public_claim_allowed`, and `public_claim_boundary`; only rails with `public_claim_allowed: true` should be described as live landing paths
|
|
275
|
-
- rails with `readiness_template_only`, `partial_configuration_not_public_claim`, or `fallback_not_public_multi-rail_claim` are architecture/readiness surfaces until real per-rail destinations exist
|
|
276
|
-
- `internal_policy_gated_not_public` rails must stay out of public live-landing claims
|
|
277
|
-
|
|
278
|
-
## Best Current Public Model
|
|
279
|
-
|
|
280
|
-
Use the stack like this:
|
|
281
|
-
|
|
282
|
-
- `x402` route = payment admission lane
|
|
283
|
-
- `local_signed` = real verifiable acceptance posture in the public package
|
|
284
|
-
- `bsv_teranode` = native first-party settlement base when you want the public stack to expose BSV/Teranode-aware payout posture
|
|
285
|
-
- configured treasury destination = merchant-facing landing posture in the runtime
|
|
286
|
-
- external rail / settlement integration = actual custody and payout layer
|
|
287
|
-
|
|
288
|
-
If you want the native BSV continuity path specifically, continue with BSV_TERANODE_PLATFORM_DISCONTINUITY_RUNBOOK.md.
|
|
289
|
-
|
|
290
|
-
All activated treasury rails now follow one centralized operator path:
|
|
291
|
-
|
|
292
|
-
- maintain the real receive destinations in your private treasury source of truth outside the repos
|
|
293
|
-
- expose only public-safe claim/readiness truth through `xytara`
|
|
294
|
-
- verify the live activation boundary with `npm run verify:final-activation`
|
|
295
|
-
|
|
296
|
-
That means the treasury activation path for `hedera_hbar`, `kaspa_kas`, `polkadot_dot`, `digibyte_dgb`, `constellation_dag`, `xpr_payment`, `metal_payment`, and `antelope_payment` is now centralized here rather than split across separate per-rail setup files.
|
|
297
|
-
|
|
298
|
-
## Operator Visibility
|
|
299
|
-
|
|
300
|
-
After acceptance, inspect:
|
|
301
|
-
|
|
302
|
-
- `GET /v1/payment-ledger`
|
|
303
|
-
- `GET /v1/activity-ledger`
|
|
304
|
-
- `GET /v1/economics/accounts/:account_id/treasury-summary`
|
|
305
|
-
- `GET /v1/economics/accounts/:account_id/rail-summary`
|
|
306
|
-
- `GET /v1/treasury-destinations`
|
|
307
|
-
- `GET /v1/treasury-destinations/operator-pack`
|
|
308
|
-
- `GET /v1/treasury-egress-policy`
|
|
309
|
-
- `GET /v1/reconciliation-report`
|
|
310
|
-
|
|
311
|
-
These tell you what was accepted, where it was routed in the runtime model, and what still needs reconciliation against the underlying real-world rail.
|
|
312
|
-
|
|
313
|
-
If `XYTARA_ACCOUNT_AUTH_BEARER_TOKEN` is configured, the operator-only routes above require that bearer token.
|
|
314
|
-
|
|
315
|
-
Public/private boundary:
|
|
316
|
-
|
|
317
|
-
- `GET /v1/treasury-destinations` is the safe readiness surface
|
|
318
|
-
- `GET /v1/treasury-destinations/operator-pack` is where real landing refs belong
|
|
319
|
-
- `GET /v1/autonomous-entry` is the compressed outside-agent view that now reflects payment breadth and public live-landing counts
|
|
320
|
-
- public website and public catalog surfaces should never expose actual treasury destination refs or custody-provider refs
|