Todas las explicaciones

2026-05-26

¿Cómo verifico que mi depósito llegó?

Después de hacer clic en depositar, nacen tres artefactos independientes. Cualquiera de ellos basta para confirmar que tus fondos están en el pool. Juntos te permiten verificar el depósito sin confiar en absoluto en la interfaz de SolMask, que es el nivel de paranoia correcto para un protocolo de privacidad.

Deberías comprobar al menos el primero y el tercero. Si estás siendo cuidadoso, comprueba los tres.

Comprobación uno: la firma de la transacción on-chain

La instrucción de depósito es una transacción normal de Solana. Cuando se confirma, la interfaz te muestra una firma —una cadena en base58 de aproximadamente 88 caracteres. Esa firma es el recibo canónico de que el depósito ocurrió.

Puedes verificarla con la CLI de Solana:

solana confirm <signature>

Una respuesta Finalized significa que la transacción es permanente e irreversible. Cualquier otra cosa (Confirmed, Processed o sin resultado) significa que el clúster todavía se está poniendo al día; espera unos segundos más.

También puedes pegar la firma en cualquier explorador de bloques de Solana —Solscan, SolanaFM o el oficial explorer.solana.com— e inspeccionar la instrucción. Deberías ver una secuencia de CPI que transfiere tu activo desde la cuenta de tokens de tu wallet a dos destinos: el fee_vault del pool (recibiendo el 0,23% de tu depósito) y el vault del pool (recibiendo el 99,77% restante). También deberías ver una línea de log DepositEvent que incluye tu hash de compromiso, el índice de hoja y la cantidad que realmente fue blindada. Ese mismo evento incluye además un blob de recuperación cifrado para tu wallet (encrypted_note) que permite que la misma wallet vuelva a descubrir la nota en cualquier dispositivo.

Si la transacción está on-chain y finalizada, tus fondos están en el pool. La criptografía no depende de la creencia de la interfaz sobre lo que pasó: depende de lo que realmente está on-chain.

Comprobación dos: la hoja en el endpoint Merkle del relayer

A los pocos segundos de la confirmación, el indexador de SolMask recoge el DepositEvent de tu depósito y añade el compromiso a su espejo del árbol de Merkle. Puedes verificarlo directamente consultando el endpoint de hojas del relayer para el mint de tu activo:

GET /merkle/<mint>/leaves?from=<your-leaf-index>&limit=1

El índice de hoja se imprimió en el evento de depósito y se mostró en el toast de "depósito exitoso" de la interfaz. La respuesta es un pequeño blob JSON que contiene tu compromiso como cadena hex y el slot en el que fue indexado. Si el compromiso en el JSON coincide con el compromiso que la interfaz te mostró en el momento del depósito, el indexador lo tiene y tu retiro será posible en cuanto se alcance tu slot de desbloqueo.

En un RPC saludable de mainnet, el indexador suele ponerse al día en unos cinco segundos tras la finalización. Pools silenciosos y caídas de tráfico de fin de semana pueden empujar eso a quince o veinte segundos. Si tu hoja no ha aparecido tras un minuto, el relayer puede estar atrasado: tu depósito sigue seguro on-chain, pero tendrás que esperar a que el indexador se ponga al día antes de poder retirar.

Hay un endpoint paralelo que devuelve solo el tree_size actual de un pool —útil si quieres confirmar que tu índice de hoja está dentro de los límites del árbol vivo, sin enumerar las hojas.

Comprobación tres: la recuperación con tu wallet

Esta es la comprobación que demuestra que de verdad puedes gastar el depósito más adelante — y, a diferencia de diseños más antiguos, no hay ningún archivo que guardar ni ninguna contraseña que recordar.

Cuando depositas, tu navegador deriva los cuatro secretos de la nota —el secreto de gasto, el nullifier secret, la cantidad y el slot de desbloqueo— a partir de tu wallet. Lo hace pidiéndole a la wallet que firme un mensaje fijo; la firma es determinista, así que la misma wallet siempre reproduce los mismos secretos, y nada se escribe en un archivo. El depósito también cifra un pequeño blob de recuperación —{ leaf_index, amount, unlock_slot }— con una clave que solo tu wallet puede derivar, y ese texto cifrado se publica on-chain dentro del DepositEvent como encrypted_note.

Para verificar que la recuperación funciona, desconecta y vuelve a conectar tu wallet (o abre la app en un perfil de navegador nuevo) y deja que vuelva a escanear. SolMask obtiene cada blob de recuperación del pool, intenta descifrarlos, y los que están cifrados para tu wallet iluminan tu saldo — incluido el depósito que acabas de hacer. Si tu saldo aparece en un dispositivo que nunca vio el depósito, la recuperación queda confirmada de extremo a extremo.

Como la autoridad es tu wallet, el modo de fallo es distinto al de un esquema con contraseña: no hay nada que perder salvo el acceso a la propia wallet. Guarda la seed phrase de la wallet a buen recaudo como lo harías siempre — ese único secreto reconstruye cada nota. SolMask no almacena nada que pudiera recuperar tus notas; solo tu wallet puede descifrarlas, que es exactamente lo que mantiene el protocolo no custodial.

Cómo se ve "verificado"

Has verificado un depósito cuando las tres cosas son ciertas: la firma de la transacción se finaliza on-chain, el endpoint de hojas del relayer devuelve tu compromiso en tu índice de hoja, y tu saldo reaparece al reconectar la misma wallet —lo que prueba que el blob de recuperación on-chain se descifra para ti.

En ese punto puedes cerrar la pestaña. El pool guardará tus fondos durante todo el tiempo que quieras —no hay caducidad— y lo único que se interpone entre tú y un retiro es el retraso de privacidad que elegiste en el momento del depósito, más reconectar la misma wallet, que vuelve a derivar la nota automáticamente.

¿Cómo verifico que mi depósito llegó? · SolMask