{"id":1067,"date":"2025-07-08T11:50:41","date_gmt":"2025-07-08T09:50:41","guid":{"rendered":"https:\/\/ackee.xyz\/blog\/?p=1067"},"modified":"2025-07-08T11:50:41","modified_gmt":"2025-07-08T09:50:41","slug":"watt-protocol-audit-summary","status":"publish","type":"post","link":"https:\/\/ackee.xyz\/blog\/watt-protocol-audit-summary\/","title":{"rendered":"Watt Protocol Audit Summary"},"content":{"rendered":"<p class=\"p1\">Watt Protocol allows users to stake their LP tokens obtained from providing liquidity. Stakers collect rewards from wrapping &amp; unwrapping tokens, and transaction fees.<\/p>\n<p class=\"p1\">Watt engaged Ackee Blockchain Security to perform a security review with a total time donation of 10 engineering days in a period between May 28 and May 13, 2025.<\/p>\n<p class=\"p1\">A second, fix review was performed of the fixes from the previous revision, and took place between June 25 and June 27.<\/p>\n<h2><span style=\"font-weight: 400;\">METHODOLOGY<\/span><\/h2>\n<p class=\"p1\">We began our review by familiarizing ourselves with the core concepts and main functionality of the protocol, including reading through the documentation provided by the client. In this initial phase of the audit, we aimed to gather comprehensive information about the protocol\u2019s expected operation, logic, and potential vulnerability spots.<\/p>\n<p class=\"p1\">In the second phase, we started digging deeper into the codebase. We began writing Proof of Concept (PoC) tests to verify the core functionality of the protocol, observe its behavior, and test our vulnerability hypotheses. During this phase, we paid special attention to ensuring:<\/p>\n<ul>\n<li class=\"p1\">the core protocol functionality is correct and works as expected;<\/li>\n<li class=\"p1\">user funds are always safe;<\/li>\n<li class=\"p1\">all Cross Program Invocations (CPIs) are correctly implemented and validated;<\/li>\n<li class=\"p1\">all accounts entering the instructions are properly used, modified, and validated;<\/li>\n<li class=\"p1\">the protocol behaves fairly to all users;<\/li>\n<li class=\"p1\">no excessive admin rights are in place; and<\/li>\n<li class=\"p1\">all computations are correct.<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">SCOPE<\/span><\/h2>\n<p>The audit was performed on commit <code class=\"codehl\">78128cf<\/code> and the scope was the following:<\/p>\n<ul>\n<li>Watt Protocol, excluding external dependencies.<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">FINDINGS<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The classification of a security finding is determined by two ratings: <\/span><b>impact<\/b><span style=\"font-weight: 400;\"> and <\/span><b>likelihood<\/b><span style=\"font-weight: 400;\">. This two-dimensional classification helps clarify the severity of individual issues. Issues which would be rated as <\/span><i><span style=\"font-weight: 400;\">medium<\/span><\/i><span style=\"font-weight: 400;\"> severity, but which would be likely discovered only by the team, are typically decreased by the likelihood factor to the <em>W<\/em><\/span><i><span style=\"font-weight: 400;\">arning<\/span><\/i><span style=\"font-weight: 400;\"> or <em>I<\/em><\/span><i><span style=\"font-weight: 400;\">nformational<\/span><\/i><span style=\"font-weight: 400;\"> severity ratings.<\/span><\/p>\n<p class=\"p1\">Our review resulted in 20 findings, ranging from Info to Critical severity. The fix review resulted in one new finding (W5).<\/p>\n<p class=\"p1\"><strong>All Critical, High and Medium severity findings have been fixed by the client, and all Warning and Informational severity findings have been either fixed, partially fixed or acknowledged by the client.<\/strong><\/p>\n<h3><span style=\"font-weight: 400;\">Critical severity<\/span><\/h3>\n<p>C1: Mismatched LP token and pool state validation leads to inflated rewards<\/p>\n<p>C2: Incorrect return statement can cause incorrect liquidity accumulation<\/p>\n<p>C3: Possibility to accumulate additional fees from users through Amplifier Config repeated initialization<\/p>\n<p>C4: Unstake function allows full withdrawal while maintaining staking position<\/p>\n<p>C5: Repeated unstake-stake cycle enables unlimited liquidity multiplication<\/p>\n<p>C6: Missing FeeConfig validation allows zero-fee mint creation<\/p>\n<p>C7: Possibility to use fraudulent Raydium pool to stake worthless LP Tokens and receive staking rewards for legitimate token<\/p>\n<h3><span style=\"font-weight: 400;\">High severity<\/span><\/h3>\n<p>H1: Division by zero in unstake due to uninitialized global accumulator<\/p>\n<p>H2: Protocol state reset discards accumulated fees<\/p>\n<p>H3: Preemptive lamport transfer blocks mint initialization<\/p>\n<p>H4: Unrestricted fee configuration allows excessive fees<\/p>\n<h3><span style=\"font-weight: 400;\">Medium severity<\/span><\/h3>\n<p class=\"p1\">M1: Unvalidated Token-2022 extensions enable vault draining<\/p>\n<p>M2: Unvalidated freeze authority enables permanent fund lockup<\/p>\n<p>M3: Unvalidated fee configuration can prevent token unwrapping<\/p>\n<h3><span style=\"font-weight: 400;\">Low severity<\/span><\/h3>\n<p>No Low severity issues were found.<\/p>\n<h3><span style=\"font-weight: 400;\">Warning severity<\/span><\/h3>\n<p>W1: Zero distribution rate initialization blocks fee claims<\/p>\n<p class=\"p1\">W2: Inconsistent naming between epoch field and slot data<\/p>\n<p class=\"p1\">W3: Single field updates require complete configuration reentry<\/p>\n<p>W4: Mint authority validation placed in wrong instruction<\/p>\n<p>W5: FeeConfig account not updated when transfer fees are updated<\/p>\n<h3><span style=\"font-weight: 400;\">Informational severity<\/span><\/h3>\n<p class=\"p1\">I1: Unnecessary \/ Unusual source code<\/p>\n<p class=\"p1\">I2: Use Raydium SDK instead of own implementation if possible<\/p>\n<h2><span style=\"font-weight: 400;\">TRUST MODEL<\/span><\/h2>\n<p class=\"p1\">Watt does not implement any Role-Based Access Control (RBAC) mechanism. However, there are two roles used within the protocol.<\/p>\n<p class=\"p1\">Users must trust the following entities:<\/p>\n<ul>\n<li class=\"p1\">protocol admin, to fairly and correctly update the <code class=\"codehl\">FeeConfig<\/code>, which contains all important fee parameters and rates of the protocol;<\/li>\n<li class=\"p1\">admin, to correctly update the <code class=\"codehl\">Metadata<\/code> of the Watt tokens;<\/li>\n<li class=\"p1\">admin, to appoint <code class=\"codehl\">Amplifiers<\/code> fairly, responsibly, and correctly; and<\/li>\n<li class=\"p1\">the server, to not overly censor the tokens initialized into the protocol, as the signature of this entity is required for introducing new tokens.<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">CONCLUSION<\/span><\/h2>\n<p class=\"p1\">Ackee Blockchain Security recommends Watt Protocol to:<\/p>\n<ul>\n<li>Fix the issues found during the audit before proceeding to production deployment.<\/li>\n<\/ul>\n<p><b><a href=\"https:\/\/ackee.xyz\">Ackee Blockchain Security<\/a>\u2019s full Watt Protocol audit report can be found <a href=\"https:\/\/3846336298-files.gitbook.io\/~\/files\/v0\/b\/gitbook-x-prod.appspot.com\/o\/spaces%2FuyGEXzcSijKdoMiaeYqE%2Fuploads%2FJCL1SVUREhoXDV2w5Uwd%2Fackee-blockchain-watt-protocol-report.pdf?alt=media&amp;token=9bf42b95-d9f5-4966-86c4-606ffa650af1\">here<\/a><\/b><b>.<\/b><\/p>\n<p data-atomic=\"true\" data-lastedited=\"1749638433489.5\" data-sessionid=\"0d22f414-73be-471c-af6d-1efc00064dd3\" data-id=\"8cd026da-6619-4d7b-beb3-9e95ce7f5610\" data-pm-slice=\"1 1 [&quot;atom&quot;,{&quot;lastEdited&quot;:1749638433489.5,&quot;sessionId&quot;:&quot;0d22f414-73be-471c-af6d-1efc00064dd3&quot;,&quot;id&quot;:&quot;4e55bfde-654e-4271-a5f6-0cb4c402e73b&quot;,&quot;media&quot;:[],&quot;charCount&quot;:209,&quot;poll&quot;:null,&quot;isThreadFinisher&quot;:false,&quot;quoteURL&quot;:null,&quot;hideLinkPreview&quot;:false,&quot;linkPreview&quot;:null,&quot;numbering&quot;:null}]\">We were delighted to work with Watt and look forward to working with them again in the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Watt Protocol allows users to stake their LP tokens obtained from providing liquidity. Stakers collect rewards from wrapping &amp; unwrapping tokens, and transaction fees. Watt engaged Ackee Blockchain Security to perform a security review with a total time donation of 10 engineering days in a period between May 28 and May 13, 2025. A second, fix review was performed of the fixes&hellip;<\/p>\n","protected":false},"author":30,"featured_media":1070,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,5,113],"tags":[21,89,6],"class_list":["post-1067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audits","category-solana","category-trident","tag-audit","tag-audit-summary","tag-solana"],"aioseo_notices":[],"featured_image_src":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2025\/07\/Watt-1-600x400.png","featured_image_src_square":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2025\/07\/Watt-1-600x600.png","author_info":{"display_name":"Tom\u00e1\u0161 Kova\u0159\u00edk","author_link":"https:\/\/ackee.xyz\/blog\/author\/tomas-kovarik\/"},"_links":{"self":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/1067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/comments?post=1067"}],"version-history":[{"count":0,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/1067\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media\/1070"}],"wp:attachment":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media?parent=1067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/categories?post=1067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/tags?post=1067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}