Smart Contract Security Audit Report
February 26, 2026 — Internal Security Review v1.1
All withdrawals require a valid Ed25519 signature. The signed hash includes
sender address, amount, and nonce — preventing signature
theft, amount manipulation, and replay attacks.
Nonce-based protection using on-chain map<Int, Bool>. Each nonce is permanently
stored after use. Duplicate transactions are rejected with "Nonce already used" error.
All 6 administrative functions are protected by owner-only access checks:
SetJettonWallet, SetPublicKey, TransferOwnership,
SetPaused, Claim, WithdrawTON.
Contract can be paused/unpaused by the owner in case of emergencies. User withdrawals are blocked during pause, while admin functions remain accessible.
Enforces minimum 1 TASTE withdrawal to prevent dust attacks and gas drain.
Token transfers follow the TEP-74 standard format with proper destination,
responseDestination, and forwardTonAmount fields.
Ownership transfer is single-step (no confirmation required). Risk of accidental transfer to wrong address. Mitigated: Owner key is secured. 2-step transfer recommended for future versions.
Used nonces are stored indefinitely, causing gradual storage growth. At current scale, this has negligible impact. Gas costs are paid by the withdrawing user.
Maximum withdrawal limit (10 TASTE) is enforced at the backend level, not on-chain. Mitigated: Backend signature is mandatory — users cannot bypass the limit.