x402-rack 0.9.0 → 0.9.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83c112f896c8b38c0ff23082aa0b58acd9ef094f805ff4710b34a0a6bc339f1d
4
- data.tar.gz: 3e41ede6ab8a4582218c7827683c54052c623ebcfef02adce42204f55c9d70cc
3
+ metadata.gz: 0b58759f4b9e4fa2eebbfbe0c683818760b1ca132e4777659f09937699fb0f49
4
+ data.tar.gz: eb918aae9181e4eeef958e722d9a016eae243a50961a1aa505d9b952c93ac355
5
5
  SHA512:
6
- metadata.gz: 2480062073f571af1d53fa0d62cea5dd11fd8c4c7990e1d2d7deb67776f87cd024818d59b182c60afa6ef9b46786180b8d87431919a72cb069f0600365c0852c
7
- data.tar.gz: 247f58444f749624d7b220085bbb063afde99212df8849b17486cf09534daa590c54ac4d7924b963dc89766c469cf1661ccb356ee65f8b0b3b4bf2fe0d7d7cf7
6
+ metadata.gz: 57d226beb1d421defa3993bb744947edd021f9c4e1abf435b6b2246aa43bc7f94755dc1548753bf3d894b6a415ff6fced35c97f7df9eb31210503d004c44a2c6
7
+ data.tar.gz: 9f00ac229e58c2f7c12436760e640de4ffd15767fbb9ee7498bc5a68142d72e5b6ece910701095156694dc73d7fce0d0400ace264582fb105139c025c4334128
data/CHANGELOG.md CHANGED
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.9.1] - 2026-04-13
9
+
10
+ ### Fixed
11
+
12
+ - Replace deprecated TAAL ARC endpoints with ARCADE (`arcade.gorillapool.io`, `testnet.arcade.gorillapool.io`) across all e2e specs, docs, and configuration examples (#139)
13
+
8
14
  ## [0.9.0] - 2026-04-13
9
15
 
10
16
  ### Added
data/README.md CHANGED
@@ -31,7 +31,7 @@ end
31
31
  use X402::Middleware
32
32
  ```
33
33
 
34
- ARC defaults to GorillaPool Arcade. The server holds no private keys — it derives unique payment addresses from the remote wallet's public key, broadcasts via ARC, then relays the settlement to the wallet for UTXO tracking.
34
+ ARC defaults to ARCADE. The server holds no private keys — it derives unique payment addresses from the remote wallet's public key, broadcasts via ARC, then relays the settlement to the wallet for UTXO tracking.
35
35
 
36
36
  ### With a local wallet (enables BRC-121)
37
37
 
@@ -60,7 +60,7 @@ end
60
60
  use X402::Middleware
61
61
  ```
62
62
 
63
- Both PayGateway and BRC121Gateway are auto-enabled. ARC defaults to GorillaPool Arcade.
63
+ Both PayGateway and BRC121Gateway are auto-enabled. ARC defaults to ARCADE.
64
64
 
65
65
  ### With a remote wallet for all gateways
66
66
 
@@ -93,7 +93,7 @@ Clients can pay using whichever protocol they support; the middleware dispatches
93
93
  | `BRC105Gateway` (BRC-105) | Yes (local or remote) | `config.enable :brc105_gateway` | Transitional |
94
94
  | `ProofGateway` (merkleworks) | No | `config.enable :proof_gateway` | Experimental |
95
95
 
96
- PayGateway is the only gateway that works without a wallet — it derives payment addresses from the operator's public key and relays settlement after broadcast. BRC-121 and BRC-105 require a wallet for `internalize_action`. ARC defaults to GorillaPool Arcade when no explicit `arc_url` is configured.
96
+ PayGateway is the only gateway that works without a wallet — it derives payment addresses from the operator's public key and relays settlement after broadcast. BRC-121 and BRC-105 require a wallet for `internalize_action`. ARC defaults to ARCADE when no explicit `arc_url` is configured.
97
97
 
98
98
  ## Advanced configuration
99
99
 
@@ -159,7 +159,7 @@ Backwards-compat alternatives still work: `config.server_wif = ENV["SERVER_WIF"]
159
159
 
160
160
  Four BSV settlement schemes are supported:
161
161
 
162
- - **BSV-pay** (Coinbase v2 headers) — server broadcasts via ARC (defaults to GorillaPool Arcade). Partial transaction template, unique derived addresses per payment. Works without a wallet via `operator_wallet_url`.
162
+ - **BSV-pay** (Coinbase v2 headers) — server broadcasts via ARC (defaults to ARCADE). Partial transaction template, unique derived addresses per payment. Works without a wallet via `operator_wallet_url`.
163
163
  - **BRC-121** (BSV Association simple) — stateless, BRC-100 wallet-native, zero config.
164
164
  - **BRC-105** (BSV Association authenticated) — settlement via `wallet.internalize_action`. Transitional; requires BRC-103 for spec compliance.
165
165
  - **BSV-proof** (merkleworks) — experimental; client broadcasts, server checks mempool.
data/docs/ecosystem.md CHANGED
@@ -56,7 +56,7 @@ These namespaces must not overlap. When designing new headers or gateway types,
56
56
 
57
57
  **x402-rack is a payment gate, not a wallet.** It verifies payments, broadcasts when required, and relays settlement events to the operator's wallet. It should never hold funds or require private key material on the server.
58
58
 
59
- **PayGateway** implements the Coinbase v2 header spec with BSV as the settlement network — BSV as a first-class citizen in the broader x402 ecosystem. It is the only gateway that works without a wallet: `operator_wallet_url` enables a keyless relay mode where the server derives unique payment addresses from the remote wallet's public key, broadcasts via ARC (defaulting to GorillaPool Arcade), and relays settlement to the wallet for UTXO tracking. With a wallet, PayGateway converges to the same `internalize_action` settlement engine as BRC-121 and BRC-105.
59
+ **PayGateway** implements the Coinbase v2 header spec with BSV as the settlement network — BSV as a first-class citizen in the broader x402 ecosystem. It is the only gateway that works without a wallet: `operator_wallet_url` enables a keyless relay mode where the server derives unique payment addresses from the remote wallet's public key, broadcasts via ARC (defaulting to ARCADE), and relays settlement to the wallet for UTXO tracking. With a wallet, PayGateway converges to the same `internalize_action` settlement engine as BRC-121 and BRC-105.
60
60
 
61
61
  **BRC121Gateway** implements the BSV Association's simple HTTP payment protocol — stateless, BRC-100 wallet-native, zero config. The most direct path to a working BSV-native x402 server.
62
62
 
data/docs/index.md CHANGED
@@ -38,7 +38,7 @@ end
38
38
  use X402::Middleware
39
39
  ```
40
40
 
41
- PayGateway is auto-enabled. ARC defaults to GorillaPool Arcade. The server holds no private keys.
41
+ PayGateway is auto-enabled. ARC defaults to ARCADE. The server holds no private keys.
42
42
 
43
43
  ### With a local wallet (enables BRC-121)
44
44
 
@@ -56,7 +56,7 @@ end
56
56
  use X402::Middleware
57
57
  ```
58
58
 
59
- Both PayGateway and BRC121Gateway are auto-enabled. ARC defaults to GorillaPool Arcade.
59
+ Both PayGateway and BRC121Gateway are auto-enabled. ARC defaults to ARCADE.
60
60
 
61
61
  ### With a remote wallet for all gateways
62
62
 
@@ -13,7 +13,7 @@ X402.configure do |config|
13
13
 
14
14
  config.gateways = [
15
15
  X402::BSV::PayGateway.new(
16
- arc_client: BSV::Network::ARC.new("https://arc.taal.com", api_key: "..."),
16
+ arc_client: BSV::Network::ARC.new("https://arcade.gorillapool.io", api_key: "..."),
17
17
  payee_locking_script_hex: "76a914...88ac"
18
18
  )
19
19
  ]
@@ -30,14 +30,13 @@ Both gateways need an ARC endpoint. The `bsv-sdk` provides `BSV::Network::ARC`:
30
30
 
31
31
  ```ruby
32
32
  arc = BSV::Network::ARC.new(
33
- "https://arc.taal.com",
33
+ "https://arcade.gorillapool.io",
34
34
  api_key: "your-api-key"
35
35
  )
36
36
  ```
37
37
 
38
- - **Testnet**: `https://arc-test.taal.com`
39
- - **Mainnet**: `https://arc.taal.com`
40
- - **API key**: free for low volume at https://console.taal.com
38
+ - **Testnet**: `https://testnet.arcade.gorillapool.io`
39
+ - **Mainnet**: `https://arcade.gorillapool.io`
41
40
 
42
41
  ## Rate Limiting
43
42
 
@@ -90,5 +89,5 @@ arc = BSV::Network::ARC.new(
90
89
  | Variable | Required | Description |
91
90
  |----------|----------|-------------|
92
91
  | `ARC_URL` | Yes | ARC broadcast endpoint |
93
- | `ARC_API_KEY` | TAAL requires it | TAAL ARC API key |
92
+ | `ARC_API_KEY` | Optional | ARCADE API key (if required by provider) |
94
93
  | `PAYEE_SCRIPT` | Yes | Payee locking script hex |
@@ -71,7 +71,7 @@ For high-traffic PayGateway deployments, consider HTTP connection pooling to ARC
71
71
  ```ruby
72
72
  # Use a persistent HTTP client
73
73
  http_client = Net::HTTP::Persistent.new
74
- arc = BSV::Network::ARC.new("https://arc.taal.com",
74
+ arc = BSV::Network::ARC.new("https://arcade.gorillapool.io",
75
75
  api_key: "...",
76
76
  http_client: http_client)
77
77
  ```
@@ -80,7 +80,7 @@ The minimal zero-config setup:
80
80
  X402.configure do |c|
81
81
  c.domain = "api.example.com"
82
82
  c.wallet = X402::Wallet.load # reads ~/.bsv-wallet/wallet.key
83
- c.arc_url = "https://arc.taal.com"
83
+ c.arc_url = "https://arcade.gorillapool.io"
84
84
  c.protect method: :GET, path: "/api/expensive", amount_sats: 100
85
85
  end
86
86
 
@@ -6,12 +6,10 @@ require_relative "remote_wallet"
6
6
  module X402
7
7
  # DSL for configuring X402 middleware, gateways, and protected routes.
8
8
  #
9
- # @example Minimal configuration
9
+ # @example Minimal configuration (relay mode — no keys on server)
10
10
  # X402.configure do |config|
11
11
  # config.domain = "api.example.com"
12
- # config.server_wif = ENV["SERVER_WIF"]
13
- # config.arc_url = "https://arc.taal.com"
14
- # config.enable :pay_gateway
12
+ # config.operator_wallet_url = "https://my-wallet.example.com/api/server-wallet"
15
13
  # config.protect method: :GET, path: "/api/expensive", amount_sats: 100
16
14
  # end
17
15
  class Configuration
@@ -396,7 +394,7 @@ module X402
396
394
  enable(:pay_gateway) if arc_available?
397
395
  end
398
396
 
399
- # Always true — ARC.default (GorillaPool Arcade) is available even
397
+ # Always true — ARC.default (ARCADE) is available even
400
398
  # when no explicit arc_url is configured. PayGateway is auto-enabled
401
399
  # whenever a wallet is present.
402
400
  def arc_available?
@@ -407,7 +405,7 @@ module X402
407
405
  if arc_url && !arc_url.empty?
408
406
  ::BSV::Network::ARC.new(arc_url, api_key: arc_api_key)
409
407
  else
410
- logger.info "[x402] using default ARC broadcaster (GorillaPool Arcade)"
408
+ logger.info "[x402] using default ARC broadcaster (ARCADE)"
411
409
  ::BSV::Network::ARC.default(testnet: @network == "bsv:testnet")
412
410
  end
413
411
  end
@@ -12,15 +12,10 @@ module X402
12
12
  # to the matching gateway for settlement.
13
13
  #
14
14
  # @example config.ru
15
- # X402.configure do |config|
16
- # config.domain = "api.example.com"
17
- # config.server_wif = ENV["SERVER_WIF"]
18
- # config.arc_url = "https://arc.taal.com"
19
- # config.enable :pay_gateway
20
- # config.protect method: :GET, path: "/api/expensive", amount_sats: 100
21
- # end
22
- #
15
+ # X402.configure { |c| c.operator_wallet_url = "https://..." }
23
16
  # use X402::Middleware
17
+ #
18
+ # @see X402::Configuration for full configuration options
24
19
  class Middleware
25
20
  # @param app [#call] next Rack app in the middleware stack
26
21
  def initialize(app)
data/lib/x402/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module X402
4
- VERSION = "0.9.0"
4
+ VERSION = "0.9.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: x402-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Bettison