Votes on-chain Statuses read 17–20 Oct 3,356,242 fids

Farcaster vote, counted

On 15 Oct Network School (NS), which is buying Farcaster, asked farcaster.xyz users to vote: stay under its new rules, or leave. A stay vote mints a VOTE token on Base, Coinbase’s blockchain, so stays can be counted in full. A leave vote writes nothing on-chain that I can find. It could only be read through the app’s API, and since 19 Oct the API no longer returns it.

Farcaster counts IDs called fids. One person can hold several, and many belong to bots or were never used. This page counts what can be counted from outside and shows where the count stops. No opinion, just public facts I haven’t seen in one place.

Signed
24,578
VOTE token holders on Base, counted in full
Not signed
99.3%
Of 3,356,242 fids. About half never had a farcaster.xyz key
Restricted
263
Marked moderated_out at the last read, 20 Oct. Every fid that has cast was read, bar 1,125 failed reads and the 942 newest
Left by 19 Oct
481
Read as “voted to leave” before the API stopped showing it. A minimum; 57 have since signed

The four overlap: the 263 restricted and the 424 leavers without a token are inside the 99.3%, and 57 of the 481 now hold VOTE. The app’s API reports each fid as opted_in (signed), opted_out (voted to leave), moderated_out (restricted; no reason is given, so spam and conduct cases share it) or pending (no answer, the default).

Who was restricted, and who left, by hub followers

Restricted: last read 20 Oct; 276 fids were ever read as restricted, 10 have since signed and 3 now read pending; 5 of the 263 carry the operator’s test-account names. Left: read as leaving by 19 Oct, a minimum, without VOTE on 20 Oct. Hub followers run ~2.9× the app’s. verified

Disclosure: I voted stay on 16 Oct; NS accepted me on 17 Oct, I haven’t booked yet; I’m in the Telegram of Hypersnap, a fork of the Farcaster node software.

On-chain every VOTE mint on Base, 15–20 Oct

24,578 stay votes, all on-chain; three in four came in the first 48 hours

Stay is the only vote written on-chain, so this count is complete: every mint and burn of the token, pulled twice from two providers. By the last day about 120 fids signed per hour.

  1. 1
    Vote announced.
  2. 2
    @balajis.eth: “94.4% support” with “10,000+ votes counted”. 13,287 fids held VOTE at that moment.
  3. 3
    19 Oct, 09:36–09:44 UTCThe app’s API stops returning leave votes. Next section.
10,566held VOTE 24 h after the announcement (43%)
18,136after 48 h (74%)
2,932signed in the last 24 h before the count

New accounts675 signers (2.7%) registered after the announcement. 343 of them, 1.4% of all signers, come from one address’s batch of 758 fids. Who registered them, and why, can’t be told from outside. verified for 675, one method for 343

Who signedIn a sample of 800 of the first 17,817 signers, 57% had not cast since before July (interval 53.5–60.4%, 17 Oct). Among fids with 100+ app followers, 14% of 300 sampled signers had been idle for 60+ days, against 95% of 300 sampled non-voters (18 Oct). samples

Signing mints a VOTE token, tokenId = fid. Every Transfer event, pulled twice from two providers: 24,596 mints, 18 burns (tokens later removed), 0 transfers. No mints on 16 Oct between and ; the cause isn’t visible from outside. verified

Signers per day, as a table
DaySigned that dayHolding VOTE at day’s end
Status reads 17–20 Oct

Since 19 Oct, leave votes can’t be seen from outside

On 19 Oct, 09:36–09:44 UTC the farcaster.xyz API stopped returning leave votes. Leaving writes nothing on-chain that I can find, so nobody outside can count leavers now.

481 fids had voted to leave. On 20 Oct the API shows none of them as leavers

Read by 19 Octbefore 09:36 UTC
481 voted to leave
Re-read 20 Octthe same 481 fids
425 no vote56
Now pending, like non-voters: 425Now opted_in: 56Still opted_out: 0

Re-read 20 Oct, 03:23–03:26 UTC. 57 of the 481 hold VOTE: the 56, plus one who signed at , after the re-read. verified

Leave answers after the change
0

in 417,518 status reads, 19 Oct, 09:36 – 20 Oct, 04:39 UTC. verified

Expected if nothing had changed
~25–29

Before the change there was about one leave answer for every 45 opted_in answers (299 in 743,532 reads of the 300k–1.55M scan). Reads after it were mostly of quieter fids and returned 1,137 opted_in answers, so ~25–29 leave answers were due; about 6 even at the most cautious rate. estimate

Before to
Re-reads of known leavers
60+none turned pending
After the change
Former leavers in my own logged-in session
5 of 5pending, 20 Oct, 10:08–10:11 UTC
opted_in and moderated_out
still returned

481 is a minimum: most fids with casts above ~1.43M were read only after the change, so more leave votes were likely cast by 19 Oct than I could read. 57 have since signed, 34 of them before the change.

The change was on the server. The app’s opt-in endpoints and the vote page text are the same as on 16 Oct, and none of those endpoints lets a user turn a leave vote into pending. I found no announcement (team casts, /farcaster, web; Hypersnap Telegram to 19 Oct, 15:54 UTC). I can’t tell whether the stored leave votes changed or the API only stopped showing them. A leaver’s own view is untested.

Hub keys read 19 Oct; fids counted 20 Oct

About half of all fids never had a farcaster.xyz key

The vote ran only in farcaster.xyz and needed its key. A key is what lets an app post for a fid. Hubs, the public servers that store every Farcaster message whichever app sent it, record which apps ever held a key for a fid.

All 3,356,242 fids

Base App keys only
~1.65M49%

Only ever had Base App keys (estimate 1.59M–1.70M). None signed. estimate

2023 bulk registration
163,2995%

One operator’s keyless registration of 13 Oct 2023. No key, so no casts and no vote. verified

Other, not signed
~1.52M45%

Everything else that hasn’t signed, active or not.

Signed
24,5780.7%

VOTE holders, 20 Oct. verified

Above fid 1.5M, the 12 signers whose first key came from Base App had all added a farcaster.xyz key (census of all 1,841 signers there, 19 Oct). @suji pointed out on 17 Oct that fids 1.5M–3M are likely Base App accounts.

Shares one vote, six denominators

94.4% of votes, 0.7% of fids: it depends on what you divide by

Both numbers describe the same vote. The top two rows divide by votes, the four below by fids.

Share of votes
≤98.3%
Stay, of the votes I could see: 24,578 stays now against 424 leaves read by 19 Oct with no VOTE. A ceiling: leave votes I couldn’t see would only push it lower. estimate
94.4%
Balaji’s figure, 17 Oct, 02:00 UTC, with “10,000+ votes counted”. His count, not reproduced here; 13,287 fids held VOTE at that moment.
Share of fids
31.8%
Fids with 10k+ hub followers. 861 of 2,709 with a known status. verified
9.5%
Fids with 1k+ hub followers. 7,646 of 80,797 with a known status. verified
~1.7%
Fids above 300k with a farcaster.xyz key. 18,858 of ~1.1M (1.62–1.77%). Below fid 300k I have no such denominator. estimate
0.7%
All fids. 24,578 of 3,356,242; about half never had a farcaster.xyz key. verified

Every row uses its own numerator and denominator. The hatched bar is someone else’s figure.

By hub followers: where 31.8% and 9.5% come from

A third of fids with 10k+ hub followers signed and two thirds show no vote. Among 1k+, nine in ten show no vote.

10k+ followers2,739 fidsstatus known 98.9%
Signed 31.8% 861Left by 19 Oct 1.1% 29Restricted 1.6% 44No vote 65.5% 1,775
1k+ followers81,168 fidsincl. the 10k+status known 99.5%
Signed 9.5% 7,646Left by 19 Oct 0.16% 133Restricted 0.12% 98No vote 90.3% 72,920

Followers are hub counts, ~2.9× the app’s, so 10k+ here is roughly 3k+ in the app. Shares of fids with a known status. Left: read “voted to leave” before , no VOTE on 20 Oct. No vote: pending at the last read, which can include leave votes the API no longer shows. verified

Logged-out reads and public hubs 18–20 Oct

Hidden in the app, kept on the network

In every case I checked, farcaster.xyz didn’t show new casts from fids that haven’t signed, restricted or not. Public hubs still carry those casts.

“Search and feeds only show users who have opted in.”
@quazia, Farcaster engineering,

Logged out on 19 Oct, user search still found pending accounts; feeds weren’t tested from outside.

“Your account will become read-only within this client, but nothing is deleted.”
farcaster.xyz vote page, text shown for “Vote to leave” and “Not now”

Where a new cast from a fid that hasn’t signed shows up

Public hubssnap.farcaster.xyz and Hypersnap’s node
Stored

Messages of 103 of 103 posters checked had the same hashes on both nodes (19 Oct).

farcaster.xyzlogged out
Not shown

In every case checked: all 46 active non-signers among 101 hand-picked bots and agents (19 Oct). Spot check of 15 former leavers: 0 of their 169 hub casts since 15 Oct, 17:00 UTC (20 Oct). Profiles still load; in the one case checked, the casts came back after the account signed.

farcaster.xyzlogged in
Untested

I didn’t check logged-in feeds.

Cast lists read logged out, mostly bots and agents. one method The rest of the 99.3% wasn’t checked one by one.

Some restricted accounts still post through other clients. Of the 194 restricted on 18 Oct, 27 posted after the announcement, and at least 16 of them posted between two restricted reads. Of 255 restricted by 19 Oct ~22:00 UTC, 34 posted; 29 of those never minted VOTE later.

Of the same 194, 81% had cast in the 60 days before 15 Oct. After the announcement, 4 restricted fids made 52 casts with the farcaster.xyz key, all while the fid held VOTE (19 Oct).

These activity checks ran 18–19 Oct and were not rerun on the final 263.

Both readings of the same data

What the data gives each side

For NS

  • These are app rules on an open protocol: public hubs keep the casts the app doesn’t show, and some restricted fids still post through other clients. ↑ Hidden in the app
  • Of the votes I could see, at most 98.3% are stay. ↑ Shares
  • Formal restrictions run in the hundreds: 263 at the last read, 5 of them carrying the operator’s test-account names. ↑ Hidden in the app
  • About half of all fids never had a farcaster.xyz key, and none of those signed. Among fids with 100+ app followers, 95% of sampled non-voters had been idle for 60+ days. ↑ Keys
  • Status can change: 10 fids once read restricted, and 57 of the 481 leavers, have since signed. ↑ Leave votes

For the Hypersnap fork

  • Signing puts your past posts under the rules (vote page) and is one-way for the signer. The vote page says you can change your vote later, but the app’s code shows no leave button after a stay vote, and revoking the token needs the operator’s signature. ↓ Method
  • Since 19 Oct, 09:36–09:44 UTC the API returns no leave votes (0 in 417,518 reads); the change was on the server and I found no announcement. ↑ Leave votes
  • In every case checked, the app shows no new casts from fids that haven’t signed, restricted or not. ↑ Hidden in the app
  • Where the key existed, few signed: ~1.7% of the ~1.1M fids above 300k with a farcaster.xyz key. Two thirds of fids with 10k+ hub followers show no vote. ↑ Shares
  • Restricted accounts include active ones: 81% of the 194 restricted on 18 Oct had cast in the 60 days before. ↑ Hidden in the app

Open343 signers come from one address’s batch of 758 fids. Who registered them, and why, can’t be told from public data.

How this was counted

Method and limits

Votes

Every VOTE Transfer event on Base, pulled twice from two providers. tokenId = fid. I found no public source for the VOTE contract. Its revoke reverts unless the operator signs, tested from the holder, the owner and a random address; 5 of its functions are unresolved.

Statuses

client.farcaster.xyz/v2/user?fid=N, logged out, latest read wins, read-only, one scanner at a time, ~7 requests/s in total. Plus 5 profile views in my own logged-in session, 20 Oct.

Coverage

Every fid that has cast, bar 1,125 failed reads and the 942 newest. 0 restricted among 42,849 never-cast fids read. 5,437 fids gave only 404s and are counted apart: the API gives no reason for a 404 or a restriction.

Hubs

haatz.quilibrium.com (Hypersnap’s public node) and snap.farcaster.xyz (a validator labelled Merkle).

App code

The farcaster.xyz web bundle and the vote page text, saved on 16, 19 and 20 Oct and compared. The opt-in endpoints are the same, and none resets or cancels a vote; after a stay vote the app offers no leave button.

How sure

Verified: two of my own methods or passes agree; no outside re-check yet. Estimate: a range or “~”. Status values in code type are the API’s own.

Credits

@suji flagged fids 1.5M–3M as likely Base App accounts (17 Oct). @0xael.eth (Allthing) and @duckfacts.eth showed the status endpoint before me.

Who

@guy-do-or-die on Farcaster, fid 321301. AI-assisted analysis.

Data

Every number on this page is in the repo with its date, method and status: data/final-numbers.json, data/page-figures.json and data/vote-hourly.json. Aggregates only, no per-account lists.

Every headline number, with its time and how it was counted
FigureValueAs of (UTC)How counted
Signed24,57820 Oct, 04:28Verified: every VOTE Transfer, pulled twice: 24,596 mints, 18 burns, 0 transfers
Restricted (moderated_out)26320 Oct, 03:23–03:39Verified, one API; the recheck and a separate sampler agree on 29 of 29 shared fids; none holds VOTE
Left by 19 Oct (opted_out)48117 Oct, 03:00 – 19 Oct, 09:36Verified minimum
Not signed99.3%20 Oct, 04:28–04:42Verified: 3,331,664 of 3,356,242 fids (two RPCs); includes the 424 read as leaving by 19 Oct with no VOTE, and the 263 restricted
Stay share of the votes seen≤98.3%20 Oct, 04:28Estimate and ceiling: 24,578 of 25,002
Signers registered after the announcement67520 Oct, 04:28Verified: 2.7% of signers; 343 from one address’s 758-fid batch (one method, a minimum)
Turnout, fids above 300k with a farcaster.xyz key~1.7%20 Oct; keys 19 OctEstimate: 18,858 of ~1.1M (1.62–1.77%)
Base App keys only~1.65M19 OctEstimate from hub keys: 1.59M–1.70M
2023 bulk registration163,29919 OctVerified: one operator’s keyless registration of 13 Oct 2023