Padrões de Taxa e Tesouraria
Padrões de taxa retiram basis points em ações, direcionam para PDAs ou ATAs de tesouraria e documentam arredondamento. Use matemática verificada e limite fee bps configurável na config de admin.
Busque em todas as páginas da documentação
Padrões de taxa retiram basis points em ações, direcionam para PDAs ou ATAs de tesouraria e documentam arredondamento. Use matemática verificada e limite fee bps configurável na config de admin.
let fee = amount.checked_mul(config.fee_bps)?.checked_div(10_000)?;
let net = amount.checked_sub(fee)?;Quando usar isso:
pub fn split_fee(amount: u64, bps: u16) -> Result<(u64, u64), ProgramError> {
if bps as u64 > 10_000 { return Err(ProgramError::InvalidArgument); }
let fee = amount.checked_mul(bps as u64)?.checked_div(10_000)?;
let net = amount.checked_sub(fee)?;
Ok((net, fee))
}O que isso demonstra:
Floor de fee favorece protocolo ou usuário - documente a escolha.
ATA PDA dedicada por mint.
// u128 intermediate for large mul if needed.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Taxa off-chain | Não aplicável | Somente on-chain |
| Referral Jupiter | Taxas de parceiro | Taxa do seu programa separada |
| Doação opcional | Escolha de UX | Receita |
1 bp = 0,01%.
Mesma matemática em lamports.
Camada adicional.
Ix de admin.
Fixa no programa.
Conta de config.
Comum favorecer usuário.
Vetor de divisão de taxa - limite len.
Emita taxa cobrada.
Matemática + acesso à tesouraria.
Afirme valores de taxa.
Mesma matemática no handler.
Versões da stack: Esta página foi 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 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026