@zkp2p/cash 0.6.2 → 0.6.3-rc.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/AGENTS.md CHANGED
@@ -61,6 +61,12 @@ deposit-level integration share instead of applying maker L1/L2.
61
61
  - **Cash App is non-chargebackable.** Cash App cash-outs stay public, do not
62
62
  attach a Peer Pay merchant policy, and never require dispute-protection stake.
63
63
 
64
+ - **X Money supports USD.** Use `platform: 'xmoney'` and a receiving X username
65
+ with X Money enabled. Raw string payees accept a leading `@` and normalize to
66
+ the bare lowercase handle; structured `offchainId` values must already be
67
+ normalized. Curator does not verify account existence or X Money enrollment.
68
+ No identity attestation or Peer Pay merchant policy is required.
69
+
64
70
  - **Wise, PayPal, and Alipay** carry `requiresIdentityAttestation: true`. A new curator
65
71
  registration needs a signed maker identity attestation this SDK cannot mint
66
72
  (first-party Peer web obtains it through the Peer TEE browser extension).
package/README.md CHANGED
@@ -323,10 +323,17 @@ See the [full appearance options](https://www.npmjs.com/package/@zkp2p/sdk#popup
323
323
  | Venmo | Peer Pay merchant policy attaches for that payment method | Curator validates the live handle |
324
324
  | PayPal | Same method-scoped Peer Pay follow-up | Requires a Peer TEE browser-extension identity attestation |
325
325
  | Cash App | No access-policy follow-up; non-chargebackable and no stake required | Curator validates the live handle |
326
+ | X Money (USD) | No access-policy follow-up | Bare lowercase X username; X Money must be enabled on the receiving account |
326
327
  | Wise | No access-policy follow-up | Requires a Peer TEE browser-extension identity attestation |
327
328
  | UPI | No access-policy follow-up | Any valid UPI ID; no account connection or identity attestation |
328
329
  | Other supported rails | No access-policy follow-up; use `capabilities()` for currencies and format | Follow the `payeeHint`; live-validation behavior is described in the integration guide |
329
330
 
331
+ Use `receive: { platform: 'xmoney', currency: 'USD', payee: '@YourHandle' }`
332
+ for X Money. Raw handles are trimmed, lowercased, and stripped of a leading `@`;
333
+ structured payee data must already use `offchainId: 'yourhandle'`. Registration
334
+ normalizes the handle but does not verify that the X account exists or can receive
335
+ X Money. Confirm that the receiving account has X Money enabled before cashing out.
336
+
330
337
  No platform requires an atomic access-policy flow. `cashout()` and `prepare()`
331
338
  work with any viem `WalletClient`, including a local or externally connected
332
339
  EOA; no Privy wallet or signer API is required. The deprecated
package/dist/index.cjs CHANGED
@@ -618,6 +618,7 @@ var PAYEE_HINTS = {
618
618
  mercadopago: "Mercado Pago alias or CVU",
619
619
  monzo: "Monzo.me username",
620
620
  chime: "ChimeSign (e.g. $andrew)",
621
+ xmoney: "X username with X Money enabled, with or without the leading @ (e.g. @andrew)",
621
622
  luxon: "Luxon Pay ID or account email",
622
623
  n26: "MoneyBeam email or phone number",
623
624
  alipay: "Email address linked to your Alipay account",
@@ -1893,6 +1894,8 @@ function normalizeCashPayee(platform, payee) {
1893
1894
  switch (platform) {
1894
1895
  case "venmo":
1895
1896
  return { offchainId: trimmed.replace(/^@+/, "") };
1897
+ case "xmoney":
1898
+ return { offchainId: trimmed.replace(/^@/, "").toLowerCase() };
1896
1899
  case "cashapp":
1897
1900
  return { offchainId: trimmed.replace(/^\$+/, "") };
1898
1901
  case "chime":
package/dist/index.js CHANGED
@@ -597,6 +597,7 @@ var PAYEE_HINTS = {
597
597
  mercadopago: "Mercado Pago alias or CVU",
598
598
  monzo: "Monzo.me username",
599
599
  chime: "ChimeSign (e.g. $andrew)",
600
+ xmoney: "X username with X Money enabled, with or without the leading @ (e.g. @andrew)",
600
601
  luxon: "Luxon Pay ID or account email",
601
602
  n26: "MoneyBeam email or phone number",
602
603
  alipay: "Email address linked to your Alipay account",
@@ -1400,6 +1401,8 @@ function normalizeCashPayee(platform, payee) {
1400
1401
  switch (platform) {
1401
1402
  case "venmo":
1402
1403
  return { offchainId: trimmed.replace(/^@+/, "") };
1404
+ case "xmoney":
1405
+ return { offchainId: trimmed.replace(/^@/, "").toLowerCase() };
1403
1406
  case "cashapp":
1404
1407
  return { offchainId: trimmed.replace(/^\$+/, "") };
1405
1408
  case "chime":
package/dist/tools.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // package.json
4
4
  var package_default = {
5
- version: "0.6.2"};
5
+ version: "0.6.3-rc.0"};
6
6
 
7
7
  // src/tools/index.ts
8
8
  var bigintString = {
package/dist/tools.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // package.json
2
2
  var package_default = {
3
- version: "0.6.2"};
3
+ version: "0.6.3-rc.0"};
4
4
 
5
5
  // src/tools/index.ts
6
6
  var bigintString = {
@@ -16,6 +16,8 @@
16
16
  * no Privy wallet is required. Venmo and PayPal attach their access
17
17
  * policy in a confirmed follow-up transaction. Override the demo corridor with:
18
18
  * CASH_PLATFORM=revolut CASH_CURRENCY=EUR CASH_PAYEE=your-revtag
19
+ * CASH_PLATFORM=xmoney CASH_CURRENCY=USD CASH_PAYEE=@your-x-username
20
+ * X Money requires an enrolled receiving account; registration does not check enrollment.
19
21
  */
20
22
  import { createWalletClient, http } from 'viem';
21
23
  import { privateKeyToAccount } from 'viem/accounts';
package/llms.txt CHANGED
@@ -56,6 +56,11 @@ Key facts:
56
56
  fillStats() separately.
57
57
  - capabilities() exposes one Zelle platform. A zelle cashout attaches only the
58
58
  generic Zelle payment method to the on-chain deposit.
59
+ - X Money supports USD with `platform: 'xmoney'`. Raw payees such as
60
+ '@YourHandle' become 'yourhandle'; structured offchainId values must already
61
+ be normalized. The receiving account must have X Money enabled; registration
62
+ does not verify account existence or enrollment. No identity attestation or
63
+ Peer Pay merchant policy is required.
59
64
  - UPI/INR is available without feature flags. For example, use
60
65
  `createCashClient({ environment: 'preproduction' })`.
61
66
  Any valid UPI ID from any bank can receive without a seller login,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkp2p/cash",
3
- "version": "0.6.2",
3
+ "version": "0.6.3-rc.0",
4
4
  "description": "Peer Cash - offramp-only SDK for routing Relay or NEAR Intents assets to Base USDC, then cashing out to fiat at zero-spread Chainlink market rates.",
5
5
  "license": "MIT",
6
6
  "author": "Peer (https://peer.xyz)",
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "dependencies": {
110
110
  "@relayprotocol/relay-sdk": "^7.0.1",
111
- "@zkp2p/sdk": "0.14.3",
111
+ "@zkp2p/sdk": "0.14.5-rc.0",
112
112
  "zod": "^4.4.3"
113
113
  },
114
114
  "peerDependencies": {
@@ -188,6 +188,12 @@ UPI ID from any bank; do not add a seller bank-login, extension, identity
188
188
  attestation, or pre-registration step. Buyers pay and verify through Amazon Pay using standard UPI; UPI Lite and
189
189
  merchant payments are unsupported.
190
190
 
191
+ X Money accepts `receive: { platform: 'xmoney', currency: 'USD', payee: '@YourHandle' }`.
192
+ Raw handles normalize to the bare lowercase username. Structured payee data must
193
+ already use `offchainId: 'yourhandle'`. Confirm that the receiving account has
194
+ X Money enabled: registration does not verify account existence or enrollment.
195
+ No identity attestation or Peer Pay merchant policy is required.
196
+
191
197
  ## 4. Order management - indexer-native
192
198
 
193
199
  - A cash order IS a deposit; the chain is the database. No storage layer.