@rozoai/checkout 0.1.1 → 0.1.2

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/docs/safety.md CHANGED
@@ -58,9 +58,13 @@ reviewing or extending the code.
58
58
  never become a second transfer. Transactions are signed before broadcast so
59
59
  the hash is known in advance; on an ambiguous result the scripts look that
60
60
  exact transaction up instead of rebroadcasting.
61
- - **Hot-wallet controls.** Keys come from the environment only
62
- (`ROZO_CHECKOUT_EVM_KEY`, `ROZO_CHECKOUT_SOL_KEY`), are never printed and
63
- never accepted on the command line; library and RPC errors are redacted
61
+ - **Hot-wallet controls.** A signing key is read from a local key file (a
62
+ solana-keygen keypair, or an encrypted V3 keystore whose passphrase is
63
+ prompted) or from the environment for unattended runs. A key file that is
64
+ readable by other users, or tracked by git, is refused — as is a `.env`
65
+ carrying the same settings, which is parsed as plain text and never
66
+ evaluated by a shell. Keys and passphrases
67
+ are never accepted on the command line, and are never printed; library and RPC errors are redacted
64
68
  before display, including credential-bearing provider URLs, bearer tokens and
65
69
  key-shaped strings. The scripts refuse to run when any `.env`/`.env.*` in the
66
70
  working directory is git-tracked, and refuse just as hard when git cannot
package/llms.txt CHANGED
@@ -25,8 +25,38 @@ usdc-ethereum, usdt-polygon, usdc-polygon, usdc-base, usdc-stellar, btc-lightnin
25
25
 
26
26
  DEFAULT PATH NEEDS NO KEY: `pay` prints a deposit address for the user to pay from
27
27
  any wallet. No private key, no environment variable, no configuration. Only the
28
- optional --send flag signs locally, and only that flag reads
29
- ROZO_CHECKOUT_EVM_KEY / ROZO_CHECKOUT_SOL_KEY (from the environment, never argv).
28
+ optional --send flag signs locally. Its key comes from the first source that
29
+ exists: --keyfile <path>; then ~/.config/solana/id.json (the keypair
30
+ solana-keygen already wrote) for Solana or ROZO_CHECKOUT_EVM_KEYSTORE (an
31
+ encrypted V3 keystore, passphrase prompted, never argv) for EVM; then a raw key
32
+ in ROZO_CHECKOUT_SOL_KEY / ROZO_CHECKOUT_EVM_KEY, which is the unattended-
33
+ automation option. Those settings may also come from a .env in the working
34
+ directory (or --env-file <path>): only ROZO_CHECKOUT_* keys are read from it, it
35
+ is parsed as text and never shell-evaluated, and the real environment wins.
36
+ Key files and .env must be chmod 600 and untracked by git.
37
+
38
+ ## Local wallet setup for --send (not needed for the default keyless path)
39
+
40
+ .env keys (only ROZO_CHECKOUT_* are read; real env wins; chmod 600; gitignore):
41
+ ROZO_CHECKOUT_SOL_KEY base58 string OR JSON byte array
42
+ ROZO_CHECKOUT_EVM_KEY 64 hex chars, 0x prefix optional
43
+ ROZO_CHECKOUT_EVM_KEYSTORE path to an encrypted V3 keystore
44
+ ROZO_CHECKOUT_KEYSTORE_PASSPHRASE unattended runs only; else prompted
45
+ ROZO_CHECKOUT_RPC_<chainId> e.g. ROZO_CHECKOUT_RPC_8453 (Base),
46
+ ROZO_CHECKOUT_RPC_900 (Solana)
47
+
48
+ Where the material comes from:
49
+ - Solana: `solana-keygen new` -> ~/.config/solana/id.json, found automatically
50
+ (preferred). Phantom exports base58; Solflare exports base58 (current) or a
51
+ JSON byte array (older). Both accepted.
52
+ - EVM: MetaMask/Rabby export 64 hex chars with no 0x prefix; paste as-is, the
53
+ prefix is optional. For an encrypted keystore, Foundry's
54
+ `cast wallet import <name> --interactive` writes a V3 keystore to
55
+ ~/.foundry/keystores/<name>; `geth account import` also writes one. Browser
56
+ wallets do not export keystores, only raw keys.
57
+ - Hardware wallets, WalletConnect-only wallets and exchange accounts CANNOT be
58
+ used with --send. Those users take the default keyless path, which works with
59
+ any wallet.
30
60
  With --send, one limit applies: a single payment may not exceed $1,100, with no
31
61
  override; larger invoices go through the keyless path.
32
62
 
@@ -46,6 +76,12 @@ chainId "1" Ethereum (USDC, USDT) · "56" BNB Chain (USDC, USDT; 18-decimals) ·
46
76
  amounts in integer satoshis via source.amountUnit=="sats").
47
77
  Native SOL/ETH/BNB are NOT supported — stablecoins (or Lightning BTC) only.
48
78
 
79
+ WALLET: one wallet on one of these chains is enough — not one per chain. Any
80
+ wallet, or an exchange withdrawal, can fund the deposit address; nothing
81
+ connects to a site. Stellar is the exception that must be able to set a memo,
82
+ and Lightning pays a BOLT11 invoice rather than an address. Only --send needs a
83
+ private key (EVM and Solana only); every other path is keyless.
84
+
49
85
  ## Flow (4 HTTP calls, all public)
50
86
 
51
87
  1) Quote (read-only, safe):
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rozoai/checkout",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "description": "Pay an OpenRouter Coinbase Payment Link with BTC Lightning, or USDT/USDC on Solana, BNB Chain, Ethereum, Polygon, Base or Stellar.",
6
6
  "license": "MIT",