Tonalli RMZWallet (Vite + React + TypeScript) para eCash (XEC).
Configura estas variables en Vercel o tu entorno local:
VITE_PINATA_JWT(recomendado) oVITE_PINATA_API_KEY+VITE_PINATA_SECRETVITE_PINATA_GATEWAY(opcional) para render de imágenes IPFSVITE_XOLOSARMY_NFT_PARENT_TOKEN_ID(token padre NFT1 Group)VITE_NFT_MINT_FEE_RECEIVER_ADDRESS(tesorería para el fee de minteo)VITE_WALLETCONNECT_PROJECT_ID(principal, requerido para WalletConnect v2)VITE_WC_PROJECT_ID(legacy compatible; fallback si falta la principal)VITE_WC_ALLOWED_DOMAINS(opcional, lista CSV para warning anti-phishing en UI; sugerido:teyolia.cash,www.teyolia.cash)
- Namespace soportado:
ecash - Chain estándar soportada:
ecash:1 - Compat legacy: también se acepta
ecash:mainnetsi la dApp lo propone - Método principal:
ecash_signAndBroadcastTransaction - Método auxiliar:
ecash_getAddresses - Accounts CAIP-10:
<chain>:<address>(preferidoecash:1:<address>)
- Usuario rechaza:
{ code: 4001, message: "Rechazado por el usuario." } - Params inválidos (
offerIdooutputsrequeridos):{ code: -32602, message: "Params inválidos: offerId o outputs requeridos" } - Método no soportado:
{ code: -32601, message: "Método no soportado" } - Error interno de firma/transmisión:
{ code: -32000, message: "Error al firmar/transmitir" }
- Flujo intent-only: conectar Flipstarter -> Donar -> debe abrir modal de RMZWallet y firmar sin mostrar
Usa el formato txid:vout.cuando la request solo traeoutputs.
Ver pruebas manuales sugeridas en docs/nfts.md.