> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Descripción general

> Descubre cómo funciona Helius Privacy, incluidos los flujos de usuario, qué permanece público o privado en una transferencia y los anillos con políticas personalizables.

<span id="introduction-to-rings" />

## Introducción

Todas las transacciones en Solana son legibles públicamente: las direcciones, los saldos y el historial de transferencias son visibles para cualquiera.
Para los anillos de privacidad de Solana, definimos dos niveles de privacidad:

* **Confidencialidad** – cifra el activo y el monto
* **Anonimato** – cifra el activo, el monto, el remitente y el destinatario

<img src="https://mintcdn.com/helius/ITnDOhn5GRfQ1FQW/images/privacy/transaction-visibility-cards.svg?fit=max&auto=format&n=ITnDOhn5GRfQ1FQW&q=85&s=2569051cac1c7cba10d4ffabf254577c" alt="Confidential transfers hide the asset and amount. Anonymous transfers also hide the sender and recipient. The transaction hash remains public." width="880" height="248" data-path="images/privacy/transaction-visibility-cards.svg" />

## Anillos de privacidad de Solana

Los anillos son un fondo protegido programable con saldos cifrados en cadena y ejecución directa en Solana.
Coexisten distintos tipos de anillos:

<CardGroup cols={2}>
  <Card title="Default Ring" icon="lock">
    * Confidencial
    * Autocustodiado
    * Sin permisos
    * Sin visibilidad para auditores
  </Card>

  <Card title="Custom Enterprise Rings" icon="building" href="/docs/es/privacy/integration/enterprise">
    * Confidencial o anónimo
    * Autocustodiado
    * Cumplimiento normativo personalizado
    * Visibilidad para auditores
  </Card>
</CardGroup>

Para la mayoría de las aplicaciones, recomendamos el anillo predeterminado, confidencial y sin permisos.

Usa un anillo personalizado cuando tu aplicación necesite controles de cumplimiento normativo personalizados y acceso para auditores.
Los anillos personalizados son programas de Solana que definen los permisos de transferencia y cualquier autoridad adicional, de forma similar a Token-2022.

El anillo predeterminado proporciona la base para aplicaciones DeFi confidenciales y otras aplicaciones.
Los anillos personalizados independientes pueden usar aplicaciones existentes o crear las suyas mientras definen sus propias políticas,
el acceso para auditores y las autoridades, que solo se aplican a los saldos dentro de su anillo.
Los anillos son interoperables de forma predeterminada y comparten liquidez en todo el ecosistema DeFi confidencial de Solana.

<img src="https://mintcdn.com/helius/ITnDOhn5GRfQ1FQW/images/privacy/privacy-rings-workshop.png?fit=max&auto=format&n=ITnDOhn5GRfQ1FQW&q=85&s=c549ef2c514a89c73af25da87ac0a8cf" alt="Saldos públicos y privados en Solana, con un anillo sin permisos junto al anillo personalizado 1, el anillo personalizado 2 y el anillo personalizado n." width="850" height="370" data-path="images/privacy/privacy-rings-workshop.png" />

## Propiedades clave

* **Velocidad nativa de Solana** – se generan <Tooltip tip="Groth16 ZK-SNARKs let Solana verify private transactions without revealing their private data. Proofs are generated server-side using GPUs, or can be generated locally.">pruebas de conocimiento cero</Tooltip> concisas en decenas de ms, lo que conserva una experiencia de usuario familiar. Considéralo como otra llamada RPC.
* **Ejecución en cadena** – Los saldos cifrados permanecen en Solana. No hay libros contables fuera de la cadena, cadenas laterales ni secuenciadores centralizados.
* **Cifra cualquier activo** – Los anillos admiten SOL, tokens SPL y tokens Token-2022.
* **Saldos autocustodiados** – Las transacciones privadas siempre requieren la firma del propietario.
* **Compatibilidad con cuentas inteligentes** – Los anillos pueden admitir cuentas inteligentes con su propia lógica de autorización.
* **Componibilidad de Solana** – combina cualquier programa de Solana en una sola transacción.
* **Privacidad programable** – Crea depósitos en garantía privados en programas de Solana.

## Flujos de usuario y garantías de privacidad

Los usuarios mantienen su saldo cifrado en una billetera privada. Pueden entrar en un anillo, realizar transferencias privadas dentro de él o salir del anillo, además de combinar la operación con otros programas de Solana en una sola transacción.

<img src="https://mintcdn.com/helius/df3Lmw7POmPkuUJN/images/privacy/privacy-rings-lifecycle.svg?fit=max&auto=format&n=df3Lmw7POmPkuUJN&q=85&s=54d057b2674ad3a194575858d35db167" alt="Public and fiat balances enter a Ring, tokens move between private balances, and users withdraw or off-ramp." width="1420" height="240" data-path="images/privacy/privacy-rings-lifecycle.svg" />

<span id="deposit-to-a-private-balance-what-is-private" />

Los usuarios envían tokens a una dirección de billetera de Solana, al igual que con los saldos públicos.
Cualquiera puede depositar en cualquier billetera privada con solo conocer la dirección de la billetera del destinatario.

### Depositar en un saldo privado

Los usuarios pueden depositar en un saldo privado de dos maneras:

1. Convertir un saldo en moneda fiduciaria en un saldo privado de criptomonedas
2. Depositar desde un saldo público de criptomonedas en uno privado

<Tabs>
  <Tab title="On-ramp from fiat balance">
    | Campo | Visibilidad |
    | - | - |
    | Activo | Privado. Cifrado en cadena. |
    | Cantidad | Privada. Cifrada en cadena. |
    | Remitente | El proveedor de rampa de entrada. Público en un anillo confidencial; privado en un anillo anónimo. |
    | Destinatario | El usuario. Público en un anillo confidencial; privado en un anillo anónimo. |
    | Nota (opcional) | Privada. Cifrada en cadena. |
    | Saldo en moneda fiduciaria y pago | No están en cadena. El pago en moneda fiduciaria se realiza a través del proveedor de rampa de entrada. |

    A diferencia de depositar desde un saldo público, usar una rampa de entrada hacia un saldo privado mantiene privados el activo y la cantidad. El proveedor transfiere los fondos desde su billetera privada a la tuya. En un anillo confidencial, solo las direcciones del remitente y del destinatario son públicas.
  </Tab>

  <Tab title="Deposit from public crypto balance">
    | Campo | Visibilidad |
    | - | - |
    | Activo | Pública. Visible en el depósito público. |
    | Cantidad | Pública. Visible en el depósito público. |
    | Remitente | Pública. La dirección de la billetera de origen es visible en el depósito público. |
    | Destinatario | Pública. La dirección de la billetera de destino es visible en el depósito público. |
    | Nota (opcional) | Pública. Se emite con el depósito público. |
    | Saldo privado resultante | Privada. Cifrado en cadena. |
  </Tab>
</Tabs>

<span id="private-transfer-what-is-private" />

### Transferir entre saldos privados

Los usuarios pueden enviar una transferencia privada de dos maneras:

1. Transferir dentro del mismo anillo
2. Transferir a otro anillo

<Tabs>
  <Tab title="Default Ring">
    | Campo | Visibilidad |
    | - | - |
    | Activo | Privado. Cifrado en la cadena. |
    | Cantidad | Privada. Cifrada en la cadena. |
    | Remitente | Público. El Anillo predeterminado es confidencial. |
    | Destinatario | Público. El Anillo predeterminado es confidencial. |
    | Nota (opcional) | Privada. Cifrada en la cadena. |
  </Tab>

  <Tab title="Custom Rings">
    | Transferencia | Activo | Cantidad | Remitente | Destinatario | Nota (opcional) |
    | - | - | - | - | - | - |
    | Dentro de un Anillo personalizado confidencial | Privado | Privada | Público | Público | Privada |
    | Dentro de un Anillo personalizado anónimo | Privado | Privada | Privado | Privado | Privada |
    | Del Anillo predeterminado a un Anillo personalizado confidencial o viceversa | Privado | Privada | Público | Público | Privada |
    | De un Anillo confidencial a un Anillo personalizado anónimo | Privado | Privada | Público | Privado | Privada |
    | De un Anillo personalizado anónimo a un Anillo confidencial | Privado | Privada | Privado | Público | Privada |

    Un retransmisor envía las transferencias desde Anillos anónimos, por lo que el registro público no revela la billetera privada de origen. El ID del programa del Anillo personalizado permanece público.

    Las transferencias entre Anillos deben cumplir la política del Anillo de origen. Una transacción puede combinar saldos del Anillo predeterminado y de un Anillo personalizado. Una transferencia entre dos Anillos personalizados se enruta a través del Anillo predeterminado.
  </Tab>
</Tabs>

<span id="withdraw-from-a-private-balance-what-is-private" />

### Retirar a un saldo público

Los usuarios pueden retirar fondos de un saldo privado de dos maneras:

1. Convertir criptomonedas privadas en un saldo en moneda fiduciaria
2. Retirar criptomonedas privadas a un saldo público de criptomonedas

<Tabs>
  <Tab title="Off-ramp to fiat balance">
    | Campo | Visibilidad |
    | - | - |
    | Activo | Privado. Cifrado en la cadena. |
    | Monto | Privado. Cifrado en la cadena. |
    | Remitente | El usuario. Público en un Ring confidencial; privado en un Ring anónimo. |
    | Destinatario | El proveedor de conversión a fiat. Público en un Ring confidencial; privado en un Ring anónimo. |
    | Nota (opcional) | Privada. Cifrada en la cadena. |
    | Pago en fiat | No se realiza en la cadena. El pago en fiat se procesa a través del proveedor de conversión a fiat. |

    A diferencia de retirar fondos a un saldo público, convertir a fiat desde un saldo privado mantiene privados el activo y el monto. Transfieres fondos de tu billetera privada a la billetera privada del proveedor, y este te paga en fiat. En un Ring confidencial, solo las direcciones del remitente y del destinatario son públicas. El resto de tu saldo privado permanece privado.
  </Tab>

  <Tab title="Withdraw to public crypto balance">
    | Campo | Visibilidad |
    | - | - |
    | Activo | Público. Visible en el retiro público. |
    | Importe | Público. Visible en el retiro público. |
    | Remitente | Público en un Ring confidencial; privado en un Ring anónimo. |
    | Destinatario | Público. La dirección de la billetera de destino es visible en el retiro público. |
    | Memo (opcional) | Privado cuando se adjunta a una salida cifrada. |
    | Saldo público resultante | Público. Se mantiene en la cuenta pública del destinatario. |
    | Saldo privado restante | Privado. Cifrado en cadena. |
  </Tab>
</Tabs>

## Programabilidad y depósitos en garantía privados

Los programas de Solana pueden usar depósitos en garantía privados para crear aplicaciones DeFi confidenciales.

* **Depósitos en garantía privados** – Los programas ZK de Solana pueden mantener saldos privados en garantía y definir las condiciones para liberarlos
* **Componibilidad de Solana** – Combina transacciones privadas con otros programas de Solana en una sola transacción
* **Liquidez compartida** – Los programas ZK de todo el ecosistema DeFi confidencial pueden compartir liquidez

**Qué puedes crear**

* **Pagos privados condicionales** – Mantén activos cifrados en garantía y libéralos según un cronograma o después de las aprobaciones requeridas. Esto permite gestionar nóminas, adquisición gradual de derechos, pagos por hitos y flujos de trabajo multifirma privados.
* **Intercambios y operaciones** – intercambia tokens envueltos, SOL, memecoins, acciones y RWA mediante depósitos en garantía privados, como en intercambios de tokens u operaciones OTC.
* **Staking y rendimiento** – crea aplicaciones privadas que generen rendimiento, como fondos de staking, tesorerías tokenizadas u otras bóvedas de rendimiento.
* **Préstamos** – mantén garantías en depósitos en garantía privados, por ejemplo, para préstamos de stablecoins respaldados por activos tokenizados.

<img src="https://mintcdn.com/helius/ITnDOhn5GRfQ1FQW/images/privacy/programmability.svg?fit=max&auto=format&n=ITnDOhn5GRfQ1FQW&q=85&s=1ead5d736db986e9fedd4a0e51d5a730" alt="Private balances connected by transfer, swap, and lending, with yield and staking above them inside Helius Privacy Rings." style={{ width: "100%" }} width="1000" height="680" data-path="images/privacy/programmability.svg" />

## Flujo de transacciones de alto nivel

<a id="overview" />

Una transferencia privada funciona de forma similar a las transferencias públicas y se ejecuta en una sola transacción de Solana.

<Tabs>
  <Tab title="Private transfer">
    1. El saldo SOL o SPL del usuario se cifra en cadena.
    2. Obtén el estado cifrado y descífralo localmente, o permite que un proveedor delegado lo descifre y proporcione el estado descifrado.
    3. La billetera establece el monto y el destinatario y, luego, solicita una prueba ZK.
    4. De forma predeterminada, el proveedor RPC genera la prueba ZK y la devuelve. Un anillo personalizado también requiere una prueba de política.
    5. La billetera crea la transacción de Solana. Las pruebas ZK se verifican sin revelar el estado cifrado. Los programas invocados y quién firma y envía la transacción dependen del anillo:

    | | Anillo confidencial sin permisos | Anillo confidencial personalizado | Anillo anónimo personalizado |
    | - | - | - | - |
    | Programas invocados | Programa de privacidad de Solana | Programa del anillo personalizado y programa de privacidad de Solana | Programa del anillo personalizado y programa de privacidad de Solana |
    | Firmante | El remitente firma. Un patrocinador de gas puede pagar la comisión. | El remitente firma. Un patrocinador de gas puede pagar la comisión. | Un retransmisor, para que el remitente no quede vinculado a la transacción. |

    6. La aplicación realiza un seguimiento del estado mediante el hash de la transacción de Solana.

    <Tabs sync={false}>
      <Tab title="Permissionless Confidential Ring">
        ```mermaid theme={"system"}
        %%{init: {
          'theme': 'base',
          'themeVariables': {
            'lineColor':           '#FF6B35',
            'primaryTextColor':    '#737373',
            'primaryBorderColor':  '#9CA3AF',
            'actorBkg':            '#FFFFFF',
            'actorBorder':         '#9CA3AF',
            'actorTextColor':      '#737373',
            'signalColor':         '#FF6B35',
            'signalTextColor':     '#737373',
            'labelBoxBkgColor':    '#FF6B351F',
            'labelBoxBorderColor': '#FF6B35',
            'noteBkgColor':        '#F5F5F5',
            'noteTextColor':       '#737373',
            'noteBorderColor':     '#9CA3AF'
          }
        }}%%
        sequenceDiagram
            participant Wallet
            participant RPC as RPC Provider
            participant Solana

            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Local
                Wallet->>RPC: Fetch encrypted state
                RPC-->>Wallet: Encrypted state
                Note over Wallet: Decrypt locally
            end
            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Delegated
                Wallet->>RPC: Get private balance
                Note over RPC: Decrypt and serve decrypted state
                RPC-->>Wallet: Decrypted state
            end

            Note over Wallet: Set amount and recipient
            Wallet->>RPC: Request ZK proof
            Note over RPC: Generate ZK proof
            RPC-->>Wallet: ZK proof
            Note over Wallet: Build transaction, sign

            Wallet->>RPC: Submit Transaction
            RPC->>Solana: Forward transaction
            Note over Solana: Verify signatures
            Note over Solana: CPI Solana Privacy Program
            Note over Solana: Verify ZK proof
            RPC-->>Wallet: Transaction signature
        ```
      </Tab>

      <Tab title="Custom Confidential Ring">
        ```mermaid theme={"system"}
        %%{init: {
          'theme': 'base',
          'themeVariables': {
            'lineColor':           '#FF6B35',
            'primaryTextColor':    '#737373',
            'primaryBorderColor':  '#9CA3AF',
            'actorBkg':            '#FFFFFF',
            'actorBorder':         '#9CA3AF',
            'actorTextColor':      '#737373',
            'signalColor':         '#FF6B35',
            'signalTextColor':     '#737373',
            'labelBoxBkgColor':    '#FF6B351F',
            'labelBoxBorderColor': '#FF6B35',
            'noteBkgColor':        '#F5F5F5',
            'noteTextColor':       '#737373',
            'noteBorderColor':     '#9CA3AF'
          }
        }}%%
        sequenceDiagram
            participant Wallet
            participant RPC as RPC Provider
            participant Solana

            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Local
                Wallet->>RPC: Fetch encrypted state
                RPC-->>Wallet: Encrypted state
                Note over Wallet: Decrypt locally
            end
            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Delegated
                Wallet->>RPC: Get private balance
                Note over RPC: Decrypt and serve decrypted state
                RPC-->>Wallet: Decrypted state
            end

            Note over Wallet: Set amount and recipient
            Wallet->>RPC: Request ZK proof
            Note over RPC: Generate ZK proof and policy proof
            RPC-->>Wallet: ZK proof and policy proof
            Note over Wallet: Build transaction, sign

            Wallet->>RPC: Submit Transaction
            RPC->>Solana: Forward transaction
            Note over Solana: Verify signatures
            Note over Solana: CPI Custom Ring Program
            Note over Solana: Verify policy ZK proof
            Note over Solana: CPI Solana Privacy Program
            Note over Solana: Verify SPP ZK proof
            RPC-->>Wallet: Transaction signature
        ```
      </Tab>

      <Tab title="Custom Anonymous Ring">
        ```mermaid theme={"system"}
        %%{init: {
          'theme': 'base',
          'themeVariables': {
            'lineColor':           '#FF6B35',
            'primaryTextColor':    '#737373',
            'primaryBorderColor':  '#9CA3AF',
            'actorBkg':            '#FFFFFF',
            'actorBorder':         '#9CA3AF',
            'actorTextColor':      '#737373',
            'signalColor':         '#FF6B35',
            'signalTextColor':     '#737373',
            'labelBoxBkgColor':    '#FF6B351F',
            'labelBoxBorderColor': '#FF6B35',
            'noteBkgColor':        '#F5F5F5',
            'noteTextColor':       '#737373',
            'noteBorderColor':     '#9CA3AF'
          }
        }}%%
        sequenceDiagram
            participant Wallet
            participant RPC as RPC Provider
            participant Relayer
            participant Solana

            rect rgba(255, 107, 53, 0.06)
                Note left of Wallet: Delegated
                Wallet->>RPC: Get private balance
                Note over RPC: Decrypt and serve decrypted state
                RPC-->>Wallet: Decrypted state
            end

            Note over Wallet: Set amount and recipient, sign
            Wallet->>RPC: Request ZK proof
            Note over RPC: Generate ZK proof and policy proof
            RPC-->>Wallet: ZK proof and policy proof
            Note over Wallet: Build transaction

            Wallet->>Relayer: Submit Transaction
            Relayer->>Solana: Forward transaction
            Note over Solana: Verify signatures
            Note over Solana: CPI Custom Ring Program
            Note over Solana: Verify policy ZK proof
            Note over Solana: CPI Solana Privacy Program
            Note over Solana: Verify SPP ZK proof
            Relayer-->>Wallet: Transaction signature
        ```
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="Solana transfer">
    1. El saldo SOL o SPL del usuario es público en cadena.
    2. La billetera lee el estado público, crea una transferencia y el propietario firma.
    3. El entorno de ejecución de Solana verifica las firmas e invoca el Programa del Sistema o el Programa de Tokens, que actualiza el saldo público.
    4. La aplicación realiza un seguimiento del estado mediante el hash de la transacción de Solana.

    ```mermaid theme={"system"}
    %%{init: {
      'theme': 'base',
      'themeVariables': {
        'lineColor':           '#FF6B35',
        'primaryTextColor':    '#737373',
        'primaryBorderColor':  '#9CA3AF',
        'actorBkg':            '#FFFFFF',
        'actorBorder':         '#9CA3AF',
        'actorTextColor':      '#737373',
        'signalColor':         '#FF6B35',
        'signalTextColor':     '#737373',
        'labelBoxBkgColor':    '#FF6B351F',
        'labelBoxBorderColor': '#FF6B35',
        'noteBkgColor':        '#F5F5F5',
        'noteTextColor':       '#737373',
        'noteBorderColor':     '#9CA3AF'
      }
    }}%%
    sequenceDiagram
        participant Wallet
        participant RPC
        participant Solana

        Wallet->>RPC: Get public balance
        RPC-->>Wallet: Public state
        Note over Wallet: Build transfer, owner signs
        Wallet->>RPC: sendTransaction
        RPC->>Solana: Forward transaction
        Note over Solana: Verify signatures
        Note over Solana: CPI System / Token Program
        Note over Solana: Update balance
        RPC-->>Wallet: Transaction signature
    ```
  </Tab>
</Tabs>

<CardGroup cols={1}>
  <a href="https://www.helius.dev/privacy/demo" target="_blank" rel="noopener noreferrer" className="not-prose">
    <Card title="Launch Demo" icon="play">
      Prueba transferencias e intercambios confidenciales en devnet.
    </Card>
  </a>
</CardGroup>

<span id="private-wallet" />

<span id="creation-of-a-private-wallet" />

<span id="transfers-to-a-private-wallet" />

<span id="key-management" />

<span id="creating-a-shielded-keypair" />

<span id="integrating-a-shielded-keypair" />

<span id="decryption-modes-and-wallet-sync" />

<span id="local-decryption" />

<span id="delegated-decryption" />

<span id="indexer-serves-encrypted-state" />

<span id="private-wallet-balance" />

<span id="private-solana-token-accounts" />

<span id="on-concurrency" />

<span id="on-proof-generation-time" />

<span id="terms" />

<span id="custom-rings-are-programmable" />

## Más información

<CardGroup cols={2}>
  <Card title="Architecture" icon="diagram-project" href="/docs/es/privacy/concepts/architecture">
    Cómo interactúan las billeteras, los servicios RPC y los programas de Solana.
  </Card>

  <Card title="Private State and UTXOs" icon="database" href="/docs/es/privacy/concepts/utxo">
    Cómo se almacenan y gastan los saldos privados.
  </Card>

  <Card title="Encryption and Privacy Guarantees" icon="key" href="/docs/es/privacy/concepts/encryption">
    Cómo se cifran los activos y cuál es la función del par de claves protegido.
  </Card>

  <Card title="Custom Enterprise Rings" icon="building" href="/docs/es/privacy/integration/enterprise">
    Cómo configurar un anillo personalizado con controles de auditoría y cumplimiento normativo.
  </Card>
</CardGroup>

## ¿No encontraste lo que buscabas?

<Callout type="info">
  ¡Contáctanos! [Telegram](https://t.me/tilo_light) | [Correo electrónico](mailto:sales@helius.xyz) | [Contacto](https://www.helius.dev/contact)
</Callout>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.