Points of Focus
- Kaito Pulse’s consent notice says it collects no device fingerprints.
- Its code uploads a hardware fingerprint with every event batch.
- Open-sourcing will not expose the server-side attestation template.
Kaito, a crypto AI and analytics platform, launched Pulse on Aug. 18, a Chrome extension that pulls trading positions, sentiment, and a reputation layer called Aura onto the X timeline.
Introducing Kaito Pulse – a social layer for the internet, starting with X.
The internet was built around what people post.
It's now increasingly shaped by what people build, trade and back. Most of that never reached the timeline.
Until today: https://t.co/lMWQ3btaho pic.twitter.com/HHBlhhRqlo
— Kaito AI 🌊 (@KaitoAI) August 18, 2026
Within roughly twelve hours, an analyst who goes by “Ultra” pulled the extension apart and posted what he found. Within another twelve hours, Kaito co-founder Yu Hu published a five-point response and committed to open-sourcing the code within a week.
so i was looking at the source code of kaito pulse and found some interesting things:
– it fingerprints your device. it hashes how your gpu renders an invisible image, your gpu model, and how your hardware handles a test tone. that combo is unique to your laptop and it doesn't… https://t.co/asIyh93cqx pic.twitter.com/EfjwLfAtza
— ultra (@0x_ultra) August 18, 2026
That sequence has been read as a scandal and as a nothingburger, depending on who is reading it. Both readings miss what matters. Strip out the panic and the defense, and one contradiction survives untouched by either.
Pulse’s consent popup tells users it does not collect device fingerprints. Pulse’s code computes one and uploads it with every batch of events it sends. Kaito’s co-founder does not dispute the second half of that sentence. He confirms it and argues the purpose was misread.
What the Kaito Pulse code audit actually found
Ultra read kaito-pulse 1.0.1 from disk rather than from the Chrome listing, and the fingerprinting stack he describes is specific enough to check.
The extension renders an offscreen canvas and hashes the pixels, producing a canvasHash. It pulls webglVendor and webglRenderer through WEBGL_debug_renderer_info. It builds an audioHash by pushing a triangle oscillator through an OfflineAudioContext DynamicsCompressor and summing the output. It also collects user agent, platform, languages, timezone, screen dimensions, color depth, hardwareConcurrency, and deviceMemory.
Collection happens in content-scripts/twitter.js, is stored locally as kaito.attn.fingerprint, and uploaded as context.fp with every batch posted to /api/v1/extension/attention/event-batches. Two properties make it consequential. It arrives with the X account ID attached, so multiple accounts used on one machine resolve to the same hardware signature. And because it is recomputed from hardware rather than stored as a generated value, there is nothing for a user to clear.
Set that against the consent notice Pulse displays before tracking begins, quoted verbatim in Ultra’s breakdown:
“Kaito Pulse does not collect: the full text of online posts; direct messages; search content or other user-entered content; cookies, authentication headers or session credentials; or device fingerprints or information used for cross-site or cross-device tracking.”
The same notice does disclose impression timestamps, dwell time, click events, page URL, viewport, and scroll position, so this is not a company hiding its telemetry wholesale. It discloses a great deal. It then denies the one category its code implements.
How Kaito answered the Pulse data collection claims
Yu Hu’s five-point reply is more forthcoming than most crisis communications in this sector, and it concedes ground on two fronts.
appreciate the scrutiny here. these are important discussions, and we’d love to be active contributors to the broader conversation around the future of social interoperability and privacy.
from the beginning, Pulse was designed around data minimization and user-controlled… https://t.co/rhoq7mMOFt
— Yu Hu 🌊 (@Punk9277) August 19, 2026
On fingerprinting, he does not deny it exists. He argues the purpose: ‘device fingerprinting is used solely for anti-abuse,’ deployed against ‘farming, Sybil behavior, automated scraping, and other forms of abuse,’ and ‘not used for analytics or other purposes.’
That is a defensible engineering position. Sybil resistance in an attention-rewards system requires machine-level signals, and Kaito’s model depends on separating real engagement from farmed engagement. But it is a different claim from the one the consent notice makes, and both cannot be accurate.
Regarding permissions, he concedes outright. Pulse ships with “<all_urls>” plus cookies, webRequest, and scripting. Hu states ‘the permission scope currently shown by Chrome is broader than how Pulse actually uses those permissions’ and commits to correcting it in the next version. Ultra’s finding sharpens why the fix matters less than it sounds: the extension registers no content scripts dynamically, touches only twelve domains today, and auto-updates. A later version reaching new domains needs no fresh permission prompt.
On the verification flows, Hu holds firm and is largely right. Nothing reaches Kaito unless a user starts a verification. He credits Ultra for saying the same.
Kaito Pulse auditor corrected his own viral thread
The most consequential thing Ultra did happened after his thread spread.
He publicly walked back the interpretation it had acquired, clarifying that installing Pulse does not automatically ship a user’s Binance and ChatGPT data to Kaito and saying he should have drawn a sharper line between what gets logged in raw form and what gets converted into approved attestations. He also said he was looking forward to open-sourcing.

The correction traveled a fraction as far as the original, as is predictable in this kind of disclosure. By then, a user posting as Bala had installed the extension, read the thread, and escalated well past it on August 19, describing Pulse as worse than malware and full surveillance of a user’s entire digital life.
His remediation list told people to uninstall, cycle session cookies across every platform, change exchange passwords, and accept that the hardware fingerprint could not be undone without different hardware.
i installed the new kaito pulse extension this morning
but after seeing this post from ultra i went on a deep dive and i can say this extension is worse than malware
they didn't just collect your data. this is full surveillance of your entire digital life
key notes:
1) if you… https://t.co/ZVx2FIjCfv
— Bala 💀 (@BalaiBB) August 19, 2026
The fingerprint point matches Ultra’s findings, but the exchange-password advice does not. Ultra’s audit states that Pulse “never holds exchange api keys or credentials you type” and “works off requests your own logged-in session already made.” Rotating exchange passwords addresses a threat model this extension does not present.
What Pulse does do, once a user initiates verification, is broader than the word verification suggests.
- On Binance, binance-page-signed.js hooks window.fetch and XMLHttpRequest at document_start in the MAIN world, catches the signed private calls the user’s session makes, and re-sends them to reach wallet balances, futures balances and positions, daily PnL, referral commissions, and recent deposits and withdrawals. It clicks the Positions tab. The same hook covers OKX across four paths.
- On ChatGPT, scripting.executeScript walks the settings page to Usage without user navigation, reading plan type and rate limit percentage.
- On Claude, it reads plan status and five-hour and seven-day utilization. Conversations are not touched; the only ‘conversation’ strings in the bundle are Sentry SDK internals.
Why open-sourcing Kaito Pulse will not settle the question
Kaito’s answer to all of this is transparency, and the commitment is real. Most extensions never open their code under pressure, let alone within a week.
The release still cannot close the gap, for a structural reason buried in the audit. Pulse’s zkTLS layer is a fork of Primus, formerly PADO, and what any given attestation asserts is defined by a template the extension fetches from Kaito’s server at runtime. The template does not ship with the code.
I'm not installing @KaitoAI Pulse chrome extension until they fix the data permissions.
why does it need all read and write permission for all website?
I just think it's too much.
you could use a fresh browser profile for this, but I'm too lazy to do it tbh pic.twitter.com/gf6LqjmPRY
— Gomtu (@gomtu_xyz) August 18, 2026
So a published repository will show the hooks, the domains, the fingerprint routine, the batch endpoints. It will not show what Kaito instructs that machinery to retrieve on any particular day, or what changing the instruction would require. Auditors get the client and no view of the server directing it.
This is not unique to Kaito. It is the standing limitation of client-side transparency in any architecture where behavior is server-configured, and it applies with equal force to every zkTLS product now being marketed on privacy grounds. The technology genuinely limits what a verifier learns. It does not limit what the requester asks for.
Why Kaito moved data collection into the browser
None of this originates in a privacy debate. It originates in a dependency problem.
X revised its developer policies in January 2026, cutting off applications that rewarded users for posting. Kaito sunset Yaps and its open incentivized leaderboards, and the KAITO token fell sharply on the news. Kaito rebuilt around Katalyst, then secured a formal data agreement with X in July that restored platform-level access, though neither company published its scope, cost, duration, or exclusivity.
We are revising our developer API policies:
We will no longer allow apps that reward users for posting on X (aka “infofi”). This has led to a tremendous amount of AI slop & reply spam on the platform.
We have revoked API access from these apps, so your X experience should…
— Nikita Bier (@nikitabier) January 15, 2026
Pulse moves the collection point. Instead of depending on what X permits at the API layer, Kaito now reads engagement from inside the user’s browser, where X’s terms don’t apply the same way. That is a rational response to having been cut off once. It also shifts exposure from a corporate agreement between two companies to individual users installing a 30-megabyte extension with all-URLs permissions.

Every InfoFi platform faces this. Attention markets need behavioral data at a granularity no platform will license indefinitely, so the incentive to push instrumentation closer to the user compounds with every API restriction. Dwell time per post, what was served against what was actually seen, a presence ping every thirty seconds with idle detection after sixty, these are the inputs mindshare scoring requires. They cannot be sourced from public firehoses. Competitors building on the same premise face identical arithmetic.
Kaito isn’t unique for reaching this point; it’s unique for getting caught under a microscope and responding in 24 hours rather than 90 days.
The open-source release lands this week, while the consent notice takes an afternoon to fix. Which one comes first tells us more about the company’s true priorities than any audit could.
Unlock premium content
Create a free account to continue reading AlphaClub articles and access exclusive features.
Share


