
Building @Verdict_Finance The Rating, Risk, and Coverage Protocol for onchain finance.
London
Joined May 2019
- Tweets3.5K
- Following856
- Followers973
- Likes7.6K
Charles Holmes retweeted
We are the cows of the future.
Cows don’t know money exists, yet the bond market runs their lives. When AI agents build a financial system more sophisticated than we can follow, that’s us.
We need to see what agents are exposed to, in real time.
That’s Verdict.
1) 54% of Uniswap V4 hooks are malicious
but the scariest bugs are not the obvious scams they are the subtle accounting errors in legitimate hooks that pass every audit checklist
Here are the 7 failure patterns every V4 builder needs to know
1) Anyone can call your hook
Hook callbacks are external functions. If you don’t check the caller, an attacker calls them directly with malicious parameters.
Fix: use BaseHook + onlyPoolManager modifier
The Cork exploit (~$12M) happened because an untrusted path reached hook logic
2) Pool creation is permissionless
Anyone can deploy a pool with your hook address. If you trust a user-supplied PoolKey without validation, the attacker controls the currencies
Fix: allowlist pools by PoolId. Never trust a PoolKey you didn’t create.
3) Custom accounting leaks value silently
The PoolManager only checks that deltas settle to zero at the end of a session. Your internal accounting can still be wrong
Bunni exploit ($8.4M): rounding bug in idle-balance accounting. 44 tiny withdrawals drained the pool. Settlement invariant passed every time.
4) beforeSwap sees pre-swap state. afterSwap sees post-swap state
Code that is correct in one hook is unsafe in the other
putting logic that needs the final swap result in beforeSwap is one of the most common bugs in V4 hook audits
6) The hook address IS the API
Permission bits are encoded in the deployed address itself.
If afterSwapReturnDelta bit is missing: Your hook records a fee PoolManager ignores the delta Every swap reverts with CurrencyNotSettled()
Keep getHookPermissions() in sync with what your hook actually does.
6) Optional code can block exits
If reward distribution or oracle reads revert inside afterRemoveLiquidity: Users cannot exit their positions Funds are locked
Wrap optional code in try/catch. Never let cleanup logic block a safe exit.
7) State changes between callbacks
beforeSwap and afterSwap run in the same tx. If your hook calls external contracts in between, shared storage can change mid-sequence
Key temporary state by PoolId + caller clear it after use Test nested swaps across pools that share the same hook.
8) The PoolManager guarantees settlement. It does not guarantee your hook is correct
Security responsibility for:
Authorization → you Pool validation → you Value accounting → you External integrations → you
Full breakdown by @nisedo_ at Trail of Bits: blog.trailofbits.com/2026/07…
Charles Holmes retweeted
Replying to @cholmes
Some of what's live:
- A set of content sites that an AI agent maintains on its own. It fixes problems, redeploys and reports to me daily
- Crypto trading tools: an order-flow dashboard, a rug scanner, a market data recorder and a paper-trading bot
- Optimization algorithms in Rust, competing on $TIG.
- A YouTube channel that makes and schedules its own videos
- An Android TV app
- A live dashboard for my meat-curing chamber, built by reverse-engineering the controller
- A browser game, a recipe site and a booking site
Create the deal: 0.01 $LINK
Deposit $10M: 0.01 $LINK
Borrow $5M: 0.01 $LINK
Repay: 0.01 $LINK
Same fee every time in Chainlink's Fulcrum demo. It doesn't scale with the size of the deal. It scales with the number of actions.
Real price or placeholder? Chainlink hasn't said.
Charles Holmes retweeted
ethereum:0x514910771af9ca656af840dff83e8264ecf986ca
Was indeed a fakeout on the last push, and we've seen price drift lower since.
Primary count (First two charts):
Tracking this as an ending diagonal to complete the larger wave 2 correction before continuing higher.
Alternate count (Third chart):
Last high was an ugly fifth wave instead of an expanded B wave. Don't like counting the fifth like that on peaking volume, but it's a valid option.
Would likely lead to corrective PA through November.
How price bounces out of this move down will help with further expectation:
Primary - Strong bounce towards new high.
Alternate - Gradually slowed down PA towards the previous high.
Charles Holmes retweeted
how about all the private chains
I shared this privately in a $LINK chat but since its both Sibos month and #Samtember - what the heck.
Stinky.
1/
Why is @LoganPaul's former agent patenting Powerball?
The CAA agent who sold brands on Logan Paul in 2017 is now the applicant on a blockchain lottery: tokenized tickets, smart-contract payouts, an oracle feeding the winning numbers.
One oracle network is named. $LINK 🧵
Introducing Forge simulations.
Forge runs real agents against your APIs and records their journey to identify where they drop off or face friction.
Post-simulation it provides actionable suggestions to fix confusing docs, schema or site-structure.
Overtime, this helps us convert more agent visitors into paying customers.
We are offering free credits for anyone to run simulations on their APIs and improve conversion rates.
try it out at forgeintel.co
Charles Holmes retweeted
On Oct 9th, chainlink load tested hundreds of CRE workflows talking to AWS using the Key Value Store (AWS S3) workflow. It relies on SigV4 so the DON can read and update S3 objects without putting AWS keys onchain
This is how you build the universal golden record at scale
sepolia.etherscan.io/txs?a=0…
1/
@Fidelity just had a patent granted for putting your résumé onchain.
Follow-up to the filing I broke down in February. It cleared today.
Degrees, licenses, certs as tokens. Revoked on fraud. Verified by anyone. The oracle in the spec? $LINK
xitter.cf/arcamids/status/202191…
Charles Holmes retweeted
Most well-known chains, infrastructure projects, and DeFi protocols are quietly getting ready for quantum attacks.
The work is happening behind closed doors. Key scheme audits, post-quantum migration planning, architecture reviews. The teams that understand what’s coming aren’t waiting for it to be urgent.
We’re already working with protocols on exactly this. Mapping quantum exposure, identifying vulnerable cryptographic dependencies, and building a path to post-quantum readiness before it becomes a crisis.
Is your protocol doing the same?
Quantum readiness is a Verdict rating criterion. DM us to find out how we can help you quantum-proof your protocol.
Charles Holmes retweeted
why would you use defi for yield today when tradfi is offering 4.1% on 3 month bills which is infinitely scaleable and safe?
0 reason until defi yields are back >10% and dems are back in power to debank us again
Charles Holmes retweeted
We can now correlate all this institutional adoption of Chainlink directly to $LINK token usage:
From the public GitHub PRs (first two screenshots attached):
🔹 "cre:workflow:compute (ms)": compute is its own billable resource.
🔹 "emitted for successful and failed executions": every run is billed.
🔹 "bills them from the enclave's own measurement": confidential workflows are billed too, by time inside the enclave (trusted execution environment for private/confidential computations).
From the DTCC Demo we can see that those CRE Orchestration fees are paid in LINK (screenshots 3 and 4 attached as examples).
So:
- Institutions adopt Chainlink through CRE.
- Each workflow, as seen in the DTCC AppChain demo, consists of multiple orchestration fees (+ CCIP fees), each paid in LINK.
- In the DTCC demo, there were 4 separate orchestration fees and 1 CCIP fee - that's 5 separate LINK fees in total.
- If there were any margin calls or collateral swaps, more thorough compliance checks, or any Confidential Compute required in that demo, that would likely require further Orchestration/CCIP fees.
- The Chainlink Github shows that CRE billing for each execution is proportional to the compute time in milliseconds required. Therefore:
- The more separate workflow steps where the user signs, the more orchestration fees incurred.
- The more computations in a workflow, the more orchestration fees incurred.
- The more complex those computations, the more orchestration incurred.
- Data Feeds/Streams also required in DTCC Demo for continuous collateral pricing, which is another Chainlink service used (usually subscription-based, per-use based if AI Agents using CRE.
In summary:
Institutional adoption up > LINK fees up
$LINK token absolutely needed
🚨🚨🚨 Chainlink CRE fees may be much higher than we initially estimated 🚨🚨🚨
👀 We were assuming that there's only 1 orchestration fee in this DTCC transaction, but it looks like there's actually 4 separate orchestration fees, plus a CCIP fee too 👀
𝐓𝐡𝐚𝐭'𝐬 𝟓 𝐬𝐞𝐩𝐚𝐫𝐚𝐭𝐞 𝐟𝐞𝐞𝐬 𝐩𝐚𝐢𝐝 𝐢𝐧 𝐋𝐈𝐍𝐊 𝐢𝐧 𝐭𝐡𝐢𝐬 𝐨𝐧𝐞 𝐭𝐫𝐚𝐧𝐬𝐚𝐜𝐭𝐢𝐨𝐧. 🔥🔥🔥
The CRE orchestration fee isn't charged once per transaction. It's charged on every workflow step a user signs (see attached images - blurry because they're screenshots from the live demo).
In the DTCC demo at Sibos, every wallet signature shows "Orchestration fee 0.01 LINK":
13:30 Create financing contract
14:48 Deposit $10m tUSD
17:22 Request $5m loan against MSFT
29:44 Repay loan
That's 4 separate Orchestration fees, paid in LINK.
On top of that there's a separate CCIP fee (20:15) for bridging the collateral to the DTCC AppChain.
Repo + securities lending is $20T+ a day.
Even a tiny share, with multiple LINK fees per transaction, adds up fast.
The scaling is clear: more steps in a workflow means more fees.
$LINK
Charles Holmes retweeted
>>>If you want to learn how to make your own diesel for 9p per litre see 🔗 appended
This is a great tax avoidance scheme, it’s legal to make 2,500 litres per year for personal use, that’s 5K if you use your wife’s allowance
Stay tuned for more useful money saving tips that Martin Lewis won’t tell you about












































