Estado de Cuentas con Intereses y por Defecto
Las mints de Token-2022 con intereses acumulan rendimiento con el tiempo a través de un mecanismo de tasa en cadena. El estado de cuenta por defecto establece si las nuevas cuentas de token comienzan inicializadas o congeladas, controlando quién puede recibir transferencias hasta que se descongele.
Receta
# Menta con intereses
spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--decimals 6 \
--enable-interest-bearing \
--rate-authority <PUBKEY>
# Estado por defecto congelado para nuevas cuentas
spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--default-account-state frozenCuándo usar esto:
- Productos de estilo de ahorro en cadena que muestran APY
- Tokens de cumplimiento que requieren descongelación KYC antes de las transferencias
- Airdrops que los destinatarios deben reclamar a través del flujo de descongelación
- Tokens del tesoro que acumulan rendimiento nominal sin un programa de préstamos externo
Ejemplo Funcional
# Crear menta con intereses (tasa establecida en la inicialización de la extensión)
MINT=$(spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--decimals 6 \
--enable-interest-bearing | awk '/Creating token/{print $3}')
spl-token display "$MINT" --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEbuse anchor_lang::prelude::*;
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
#[derive(Accounts)]
pub struct ThawAfterKyc<'info> {
pub mint: InterfaceAccount<'info, Mint>,
#[account(mut)]
pub holder_token: InterfaceAccount<'info, TokenAccount>,
pub freeze_authority: Signer<'info>,
pub token_program: Interface<'info, TokenInterface>,
}
pub fn thaw_after_kyc(ctx: Context<ThawAfterKyc>) -> Result<()> {
// CPI ThawAccount después de la verificación KYC fuera de cadena
Ok(())
}// UI: leer la tasa de interés de la extensión de la menta; mostrar estimación del saldo acumulado
// Nota: el rendimiento mostrado puede usar un cálculo basado en marca de tiempo en el lado del clienteLo que esto demuestra:
- La autoridad de la tasa de interés puede actualizar los parámetros de APY según las reglas de la extensión
- El estado congelado por defecto bloquea las transferencias hasta
ThawAccountpor la autoridad de congelación - Las ATAs nuevas heredan el estado por defecto en el momento de la creación
Análisis Profundo
Cómo Funciona
- Con intereses: La tasa se almacena en la extensión de la menta; los saldos aumentan con la fórmula de tiempo definida por la especificación de Token-2022
- Estado de cuenta por defecto:
Initialized(normal) oFrozenpara cuentas nuevas - Se requiere autoridad de congelación para descongelar cuentas bloqueadas
- Las billeteras deben llamar a las instrucciones de actualización/refresco donde lo requiera la especificación
Comparación de Extensiones
| Extensión | Afecta | Autoridad |
|---|---|---|
| Con intereses | Crecimiento del saldo | Autoridad de la tasa |
| Estado de cuenta por defecto | Transferencias de cuentas nuevas | Autoridad de congelación |
Notas de TypeScript
// Antes de la transferencia: verificar el estado de la cuenta a través de RPC jsonParsed
// if (state === "frozen") solicitar al usuario que complete el flujo de descongelación KYCTrampas
- Visualización de APY sin actualización - montos de UI obsoletos. Solución: seguir la cadencia de instrucciones de actualización de Token-2022 en los clientes.
- Sorpresa de airdrop congelado - los usuarios no pueden mover tokens. Solución: documentar los pasos de reclamación + descongelación por adelantado.
- Centralización de la autoridad de congelación - el emisor puede bloquear a todos los tenedores. Solución: autoridad de congelación multisig o revocar después de la distribución.
- Intereses vs. rendimiento DeFi - la acumulación de la extensión difiere del APY del protocolo de préstamos. Solución: no confundir en el marketing.
- Pools DEX con estado por defecto congelado - las ATAs del pool pueden necesitar descongelación explícita al configurarse. Solución: probar el flujo de creación del pool de extremo a extremo.
Alternativas
| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Protocolo de préstamos externo | Rendimiento real de los prestatarios | Experiencia de usuario de ahorro simple de marca |
| KYC de gancho de transferencia | Verificaciones por transferencia | El bloqueo a nivel de cuenta es suficiente |
| Congelación manual por cuenta | Bloqueo selectivo | Todas las cuentas nuevas deben comenzar congeladas |
Preguntas Frecuentes
¿Qué es la extensión con intereses?
La configuración en la menta acumula saldo con el tiempo según la fórmula de tasa de Token-2022.
¿Qué es el estado de cuenta por defecto?
Si las cuentas de token recién creadas para la menta comienzan inicializadas o congeladas.
¿Quién descongela las cuentas congeladas?
La autoridad de congelación a través de la instrucción ThawAccount después de que su política KYC sea aprobada.
¿Puede cambiar la tasa de interés?
La autoridad de la tasa actualiza según las reglas de la extensión - documentar la gobernanza.
¿Todas las billeteras muestran los intereses acumulados?
El soporte varía - puede que necesite cálculos personalizados en la UI.
¿Compatible con comisiones de transferencia?
Sí, con una UX cuidadosa - las comisiones se aplican a las transferencias, los intereses se acumulan por separado.
¿Se puede establecer el estado por defecto en inicializado?
Sí - comportamiento estándar equivalente a las cuentas SPL clásicas.
¿Impacto en AMMs?
Las cuentas congeladas no pueden transferir - los pools deben usar cuentas inicializadas/descongeladas.
¿Es esto rendimiento DeFi real?
Solo matemáticas de extensión - no rendimiento de mercado de préstamos a menos que se integre fuera de cadena.
¿Pruebas en devnet?
Crear una menta de extensión en devnet; verificar las rutas de bloqueo de descongelación y transferencia.
¿Estado por defecto inmutable?
A menudo se establece en la inicialización de la menta - planificar antes de mainnet.
¿Relación con la autoridad de congelación?
El estado por defecto congelado requiere una autoridad de congelación activa para descongelar - igual que la congelación clásica.
Relacionado
- Autoridades - autoridad de congelación
- Delegado Permanente y No Transferible - extensiones de control
- Mejores Prácticas de Token-2022 - UX de bloqueo
Versiones de Stack: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.