The official pool was initialized with two numbers: a 0% transaction tax and a 1% Hook fee. At least one trading terminal returned a third number to users. That number exceeded 1%, and the gap between a contract configuration and a user-facing readout became a public dispute. On September 9, Ozzy, founder of the Pons token project, denied that the project had modified its tax rate after issuance. That denial may be true. It may also be untestable, because nothing in the public record allows an outside observer to verify it at the machine level.
This is not a small distinction. It is the entire dispute. Users who saw a fee above 1% assumed that a founder had changed a parameter after launch. The founder says the fee was never changed and that the extra cost came from terminals routing orders into pools they should not have touched. Both statements can be true simultaneously. The industry will not learn anything useful if it splits into two camps: one defending the founder, the other treating every token project as guilty until audited. The correct move is to examine the technical conditions that made this confusion possible. Those conditions predate Pons, and they will outlive this news cycle.
I approach this from a specific habit. In 2017, I spent six months tracing EVM opcode execution paths after the DAO incident. That work fixed a permanent bias in my reading of blockchain events: I do not evaluate what a project claims about its intent. I evaluate what a user can verify, at what cost, and through which interface. This article applies that method to Pons. The conclusion is uncomfortable. The tax-rate controversy is not primarily a tax problem. It is an identity problem in the Uniswap V4 ecosystem, and it will keep producing victims until the ecosystem builds a pool-authentication layer that does not exist today.
The V4 Hook Pool
Uniswap V4 is the first Uniswap generation to make pool-level customization a first-class primitive. A Hook is an external contract that executes custom logic at defined points in a pool's lifecycle. Hooks can alter fees, add dynamic behavior, or enforce restrictions that go beyond the standard swap fee model. This is a genuine architectural advance over V3's static fee tiers. It is also a new coordination burden.
Pons, a DeFi token project, deployed its official liquidity pool on Uniswap V4 with a specific fee configuration: a 0% transaction tax plus a 1% Hook fee. The term 'tax' usually refers to a fee taken by the token contract itself during transfers. The term 'Hook fee' refers to a fee collected through the pool's Hook logic during a swap. They are different mechanisms with different collection points. For a user, however, the effect is similar: a portion of the trade leaves the swap. The user does not care which contract collects it. The user cares that the total cost stays predictable.
This is where Pons encountered trouble. The stated design is 0% plus 1%. In practice, some users saw costs above 1%. The project's response contains several claims. First, it does not support changing the tax rate after token issuance. Second, some terminals routed buy or sell orders into higher-fee pools. Third, malicious actors attempted to 'vamp' pools, causing display anomalies. Fourth, the founder asked the relevant terminals to correct the problem. Fifth, if a user sees a rate above 1%, that cost probably did not come from the official pool.
Notice what is missing from this response. There is no audit report cited. There is no open-source contract repository linked. There is no pool authentication scheme described. There is no method for a user to confirm, inside a terminal, that the pool being quoted is the official Pons pool. The founder's narrative may be correct in every detail. But the user is still being asked to believe, rather than to verify. Zero knowledge, maximum proof is the standard this industry claims to live by. This incident does not meet that standard.
Fee Structure: Zero Tax Is Not Zero Cost
Start with the economic configuration, because it explains why the dispute gained traction. The official pool collects 0% transaction tax. That number sounds cheap. In practice, it is misleading. The pool also collects 1% through its Hook fee. A user who swaps on the official pool pays roughly 1% per trade. A user who swaps in and then swaps out pays roughly 2% round trip, plus slippage and network costs. This is not a low-cost structure. Uniswap V3 offers fee tiers of 0.05%, 0.30%, and 1.00%. The 1% level is the highest standard tier in V3. Pons chose that level for its Hook fee.
The 0% tax, in that context, functions as a marketing signal more than a cost signal. Many token projects, especially in the meme-coin segment, embed 5% to 10% transfer taxes. Those taxes are visible and often unpopular. Pons may have selected 0% transaction tax to distance itself from that pattern while still collecting recurring revenue through the Hook fee. That is a strategic choice, not evidence of malicious intent. But the design carries a perception risk: users hear 'zero tax' and assume low cost. They do not always understand that the Hook fee is a separate charge. When terminals route them to an even higher-fee pool, the perception gap becomes a cash loss.
The more important structural issue is fee distribution. The source material does not disclose how the 1% Hook fee is allocated. If the entire fee flows to the project, then liquidity providers in the official pool receive zero trading income from the 0% tax. Their incentive to supply liquidity depends entirely on token price appreciation or external rewards. If the fee is split with LPs, the ratio is undisclosed. This is not a trivial omission. A fee structure that starves LPs can produce shallow liquidity, which in turn produces worse execution for users. A depth problem is easy to misread as a tax problem when the user sees an unexpectedly costly swap.
One Token, Multiple Pools, No Passport
The deeper cause of the dispute is not the official pool's fee level. It is the existence of multiple pools for the same token. Uniswap V4 permits multiple pools for the same token pair, each with different Hook addresses, fee tiers, or tick spacing. This was also true in V3, where multiple fee tiers could coexist. But V4's Hook mechanism widens the difference between pools. Two pools can carry the same token pair and appear interchangeable while enforcing completely different fee logic.
Terminals and aggregators must decide which pool to route through. Their routing logic usually optimizes for price, liquidity, or a combination of both. What routing logic does not reliably optimize for is authenticity. When a terminal sees two pools for the same token, it has no universal method to determine which pool is the project's official deployment. Some terminals may prefer the pool with deeper liquidity. Some may prefer the pool with lower displayed fee. If a malicious actor creates a pool with a similar token pair and a higher fee, and if that pool receives enough liquidity or enough integration, terminals can route users into it. The user sees a >1% cost and blames the project.
This is the exact failure mode described in the Pons response. The founder claims that some terminals misrouted trades into high-fee pools. The claim is plausible because the infrastructure allows it. Uniswap pools are permissionless. Anyone can deploy a pool for any token pair, with any fee configuration, without asking the token project for permission. There is no on-chain registry that marks a pool as 'official.' There is no terminal-level standard that requires a project signature before a pool is listed. The absence of that standard is not a Pons bug. It is a protocol-ecosystem gap.
Reading the Vampire Attack
The project response refers to malicious actors attempting to 'vamp' pools. In standard DeFi vocabulary, a vampire attack is a strategy that uses incentives to drain liquidity from an existing protocol into a competitor. But the context here suggests a different mechanism. If the outcome is that terminals display higher fees, the attack more likely involved creating a deceptive pool that mimics the official one or exploits routing preference, then steering trades into it. This is not a classic vampire attack. It is closer to a phishing-pool attack. The attacker creates a pool with parameters that look acceptable to a router, collects higher fees from misrouted trades, and leaves the token project to explain the discrepancy.
This distinction matters because it changes the defense. A project cannot prevent an attacker from deploying a fake pool. Permissionless systems do not allow that kind of exclusion. The only meaningful defense is to make the official pool verifiable. If the official pool has a cryptographic or metadata-level identifier that independent tools can check, then terminals can filter out impostors. Without such an identifier, every token project on V4 is exposed to the same attack. The Pons incident is not an isolated event. It is a demonstration of a systemic vulnerability.
The Terminal Is the Trust Boundary
Let me be direct about where the responsibility sits. The token contract and the pool contract are not the weakest link in this story. The weakest link is the terminal. A terminal is a user-facing interface that builds swap transactions. It decides which pool to quote, which price to show, and which fee to display. When a user approves a swap, they are trusting the terminal's route selection. They cannot see every pool in the market. They cannot audit every Hook address. They rely on the terminal to choose the correct destination.
That reliance is not grounded in any formal assurance. In my 2021 standard-compliance stress tests of NFT marketplaces, I found that a large percentage of platforms failed to implement optional royalty standards correctly even when the underlying token standard contained the relevant metadata. The lesson was simple: an interface is a place where standards die. A contract can be standards-compliant while the front-end that presents it to users is not. The Pons dispute is that same lesson applied to Uniswap V4 routing. The pool's fee parameters may be correct at the contract level, but the terminal's routing and display layer failed to represent them accurately.
This is not an excuse for the project. A project that launches on new infrastructure has a duty to understand how that infrastructure integrates with existing tools. Pons may have failed to test how terminals displayed its pool. The founder may not have monitored integration quality after deployment. Those are legitimate criticisms. But they are different from the accusation that the project changed its tax rate after launch. The distinction matters for the project's reputation and for the ecosystem's learning process.
What a Pool-Identity Standard Would Look Like
If the industry wants to prevent this incident from repeating, it needs a mechanism that lets terminals distinguish the official pool from impostors. The mechanism does not need to be centralized. It can be built from existing primitives. A token project could publish its official pool address in its token metadata or in a lightweight registry contract. Terminals could query that registry before listing a pool and mark results accordingly. A Hook contract could include a known interface identifier that wallet providers and aggregators recognize. None of these proposals require a protocol-level fork. They require coordination and adoption.
Until that coordination happens, users are exposed to a trust deficit. Every new token project on V4 must hope that terminals route correctly. Every terminal must hope that it has correctly identified the official pool. Every user must hope that the displayed fee matches the executed fee. That is not a security model. It is a chain of unverified assumptions. Trust is a bug, not a feature. In this case, the bug is distributed across the entire tooling ecosystem rather than concentrated in a single contract.
The Unanswered Security Questions
The public record on Pons is thin. The source material does not disclose whether the project's smart contracts have been audited. It does not confirm whether the code is open source. It does not describe the Hook contract's implementation details. It does not state whether administrative privileges exist, whether a timelock protects critical parameters, or whether a multi-signature wallet controls the deployment. These are not optional details. They are the minimum evidence required for a technical evaluation.
I have seen this pattern before. During a 2020 audit of zero-knowledge proof circuits for a privacy-focused lending protocol, my team spent months verifying hundreds of thousands of constraint gates. We found a mismatch in public-input encoding that could have allowed false proofs. The protocol's documentation looked clean. The high-level description was accurate. But the arithmetic circuit contained a detail that contradicted the documentation. We caught it only because we refused to accept the project's self-description and traced the constraints ourselves.

That experience shaped my rule: a project's own statement about its code is a hypothesis, not a finding. The Pons founder's denial of tax-rate changes is the same kind of statement. It deserves scrutiny, not because the founder is dishonest, but because a denial is not evidence. Code doesn't lie; audits do. In this case, there is no published audit to check. There is no verifiable contract walkthrough. There is only a founder's word, and a founder's word is a single point of failure.
The absence of these artifacts does not prove wrongdoing. It does, however, create an information asymmetry. Users are asked to trust a project that has not given them the tools to verify the project's central claim. The claim may be true. But in a market that has been burned repeatedly by honeypots, hidden owner functions, and post-launch parameter changes, 'trust us' is not a persuasive argument. The default response from rational users is to sell first and ask questions later.
Market Consequences and Price Dynamics
This dispute belongs to a known class of events. A controversy emerges. Users panic. The founder denies the accusation. The market waits for additional data. The source material contains no price data, no volume data, and no on-chain flow analysis. It is impossible to measure the dispute's market impact from the available information. What can be inferred is that the controversy itself signals a trust problem. When users believe a project can change its fee structure after launch, they reassess the project's risk profile. That reassessment rarely produces buying pressure.

The absence of price data is itself a reminder of how little information is disclosed in this type of news event. A market brief that reports a founder's denial without any on-chain context is not a full analysis. It is a transcript. To evaluate whether the denial is credible, a reader would need to inspect the token contract, the pool initialization parameters, the Hook implementation, and the terminal routing logs. None of that data appears in the report.
The Regulatory Dimension
Regulators care about this dispute for a reason that has nothing to do with the fee level. If a token project can unilaterally adjust its tax rate after issuance, that project exercises ongoing control over the token's economic properties. Under the Howey test framework, the presence of ongoing managerial efforts that affect investor returns can support a finding that a token is a security. A project's ability to change fees is a measure of centralization. The more control the project retains, the stronger the case for regulatory classification.
This explains why Pons would issue a public denial. The denial serves two purposes. It reassures users, and it distances the project from the kind of post-launch intervention that regulators treat as evidence of ongoing control. But a denial is not a technical limitation. Whether the code prevents fee changes is a question for a compiler, not a spokesperson. Without a published contract and a clear description of its administrative privileges, the denial carries only rhetorical weight.
The routing failure also raises a separate concern. If terminals direct user transactions to pools that charge undisclosed higher fees, the user is paying a cost that was never transparently communicated. In some jurisdictions, this could be framed as a consumer-protection failure, depending on whether the terminal qualifies as a financial service provider. DeFi projects often assume that front-end operators escape liability because they are only interfaces. This incident is a reminder that interfaces control the user's economic outcome. A front end that routes a user to the wrong pool is not a neutral display. It is a decision engine with consequences.
The Contrarian Angle: The Denial Is Not the Defense
Now the contrarian position: the founder's denial may be true and still insufficient to protect users. The category of harm here is not limited to post-launch tax changes. A project can leave its tax rate locked forever and still cause users to lose money through routing failures. The rate is only one variable. The identity of the pool is another. The correctness of the terminal route is a third. Locking the first variable may reassure regulators, but it does nothing about the second or third.
This is where I disagree with both sides of the dispute. Users who accuse Pons of changing its tax rate are drawing a conclusion that is probably incorrect. The more likely explanation is terminal misrouting or the presence of a deceptive higher-fee pool. But project supporters who treat the founder's denial as a complete defense are making an equally serious error. They are assuming that the absence of a tax change means the absence of risk. The actual risk is much broader. It sits in the routing layer that neither the user nor the project fully controls.
The phrase 'we did not change the tax rate' is not a security guarantee. A token contract can be immutable while its surrounding ecosystem remains chaotic. Users can be routed into toxic pools even when the official contract is perfectly safe. The official pool can be exactly as advertised while users still overpay on every trade. These outcomes are not contradictions. They are separate failure modes in the same system. The industry's focus on tax-rate modification obscures this distinction.

This line of thought has a history. The DAO was a warning we ignored. After that incident, the industry learned to audit smart contract code for reentrancy and other execution-level flaws. It built tools to detect vulnerable patterns. It is still remarkably bad at auditing the user-facing layers that sit between humans and contracts. The Pons dispute is a fresh reminder that the dangerous abstraction is not the one inside the compiler. It is the one between the user's intention and the route the user's transaction actually takes.
If I were designing a security review for this project, I would not begin with the tax rate. I would begin with the following questions. What addresses are allowed to call the Hook contract? Does any address retain the ability to change the Hook's parameters or fee logic? Is there a timelock on those changes? What data do terminals use to authenticate the official pool? How many independent terminal operators have listed the pool? What fee does each terminal display? These questions expose the structural risks that a single denial cannot address. They require code-level answers, not tweets and not statements of intent. A project that cannot provide those answers on record is not ready to be a trusted custodian of user funds, regardless of its fee settings.
The public response should be judged by its reproducibility. If the Pons team publishes its Hook contract, its token contract, and a verification guide that lets any user confirm the official pool address, then the market can settle the question. If the team only issues denials and asks terminals to fix their routing, the uncertainty will persist. Every day without verifiable evidence is another day in which users must choose between believing the project and protecting their capital. In a market as unforgiving as DeFi, users will choose to protect their capital.
Takeaway
The Pons dispute is not a story about a dishonest founder changing a tax rate. It is a story about an ecosystem that has not yet built the authentication layer required by its own infrastructure. Uniswap V4 allows complex, customizable logics for pools. But permissionless customization without canonical identification is a loaded weapon. Terminal misrouting is not a rare bug. It is the expected behavior of a system that lacks a pool-identity layer. Whether those responsible for the source of this dispute succeed or fail in their technical execution matters. But the deeper issue will remain: every custom V4 pool launched without authenticating itself will be a trap waiting for the next user.
The corrective action is not to blame the founder, nor to trust the founder. It is to demand an upgrade in the verification infrastructure. Pool identity, route histories, and fee accounting need to be inspectable at the interface level. Until they are, each new token launches with the same fragile guarantee: the rate is fixed, but the route isn't. And the route is what actually reaches the user's wallet.