Fact check · trading agents · checked 2026-10-07
Did a Brazilian dropout’s Claude bot make $794,000 on Polymarket in 14 months?
What was claimed?
“A Brazilian college dropout moved into his parents garage and built a Polymarket trading bot using only open-source AI agents - it earned him $794,000 in 14 months. He didn't write a single line of code. Claude Opus wrote it all. … Wallet handle: Bonereaper. 40,266 trades. Total stack cost: $10/month.”
The same post describes the set-up: “BRAIN - Claude Opus 4.7 via API. … RUNNER - Hetzner VPS. $5.99/month. Runs 24/7.” and “The bot trades BTC 5-minute Up/Down markets on Polymarket. 288 windows per day. One trade every 81 seconds.” It also says: “You read Telegram reports in the morning, approve the next session, and go back to sleep.” And it closes: “Or just copy BoneReaper trades using this TG bot - his algorithm has been perfected over 14 months and literally has no equal”.
“Un universitario brasileño que dejó la carrera, se mudó de vuelta al garaje de sus padres y construyó un bot de trading para Polymarket usando un AI agent open source. En 14 meses, ganó $794,000. … El código lo escribió básicamente Claude Opus. … La wallet se llama Bonereaper. 40,266 operaciones.”
In numbers: a profit of $794,000; 40,266 trades; 14 months; a stack costing $10 a month. No starting amount and no dates. No version names the person or cites a source for the story. The wallet’s public profile has no bio, no linked X account and no verified badge. We found no statement by whoever runs it.
The story travelled. We found 52 posts in 2026 that carry the $794,000 figure with a mark of this story (“14 months”, “Bonereaper” or “40,266”). They are in English, Spanish and Chinese, with about 1.1 million views between them as read 2026-10-07. The two accounts named on this page account for 849,202 of those views. Reposting accounts are not named; the search rule is in the recipe.
Five weeks earlier, on 2026-04-16, @antpalkin had described this wallet as one of “three wallets” using “the same math”. That post has no Brazilian student, no 14 months and no Claude. @antpalkin and the same referral code also appear in our check of the fired-Citadel-quant claim.
What did we check, and how?
The posts name the account, so its record is public: polymarket.com/@bonereaper, wallet 0xeebde7a0e019a63e6b476eb425505b7b3e6eba30. We read each
post’s exact time from its post ID and its text from the X API. From Polymarket’s public APIs we pulled the account’s first activity, its deposits and
withdrawals, its hourly and daily profit-and-loss, its full list of 307,108 positions (to count markets), its daily cumulative fill count,
every sell, and every fill on ten sample days. We opened all 68 Internet Archive captures of the profile. All calls were made 2026-10-07;
the exact URLs are in the recipe.
The account has about 8.9 million fills. A fill is one matched order, and one position can take many. That is too many to pull one by one. Fill counts come from Polymarket’s own daily counter. We checked that counter against the ten sample days: it was within 44 fills each day.
What does the record show?
| Question | The claim says | The public record says |
|---|---|---|
| How much | “it earned him $794,000” | Recomputable. Polymarket’s older profit-and-loss series for the wallet: $785,808.30 at 00:00 UTC on 2026-05-22, $794,039.60 at the hourly point labelled 11:00 (the first at or above it), and $795,634.80 at 15:00, the hour of the post. The profile displayed this series at the time. Of the 68 archived captures, 67 carry figures. From 2026-04-27 on, each archived figure equals an adjacent hourly point within $0.05 (14 captures). The 50 earlier captures sit within $3,262.63 of the nearest hourly point, which fits movement inside the hour. The chart in each of the 12 captures from 2026-05-04 to 2026-08-21 matches this series point for point. No capture exists for 2026-05-22. The last before the post, 2026-05-19 18:24 UTC, read 38,113 predictions and $767,833.35; the next is 2026-08-21 15:49 UTC. The $794,000 matches the series the profile showed at the time. Polymarket’s newer figures for the same day are much lower (see below). |
| How many | “40,266 trades” | Recomputable. The profile counter now reads “Markets Traded”; in archived captures it was labelled “Predictions”. Both count markets. Ordering the account’s markets by first entry in Polymarket’s positions list, number 40,266 was entered at 12:21 UTC on 2026-05-22. The list and the counter are close but not identical. In the 11 May captures the counter ran 6 to 13 below the list (38,113 against 38,121 on 2026-05-19, the last). With that lag, the counter would have reached 40,266 between about 12:30 and 12:45 UTC. Today the list holds 171,325 markets and the profile shows 171,871. Fills by the start of 2026-05-22: 3,266,989. The number matches the market count around midday that day. It counts markets, not trades. |
| How long | “in 14 months”; “perfected over 14 months” | Recomputable. Account created 2026-03-25 05:55 UTC. First activity 2026-03-25 06:25 UTC (DEPOSIT $9.98). First trade 2026-03-25 07:11 UTC, in “Bitcoin Up or Down - March 25, 3:00AM-3:15AM ET”. On the day of the first post the account was 58 days old. On 2026-07-18, when the claim was re-posted with 14 months again, it was 115 days old. The time span does not hold. |
| The later versions | The same two numbers on 2026-05-26 and 2026-07-18; credited to “Claude Fable 5” from 2026-07-18 | Recomputable. On 2026-05-26 the older series read $837,595.44 and the account had 42,999 markets. On 2026-07-18 it read $1,189,300.00, with 95,360 markets. Claude Fable 5 was announced on 2026-06-09 at 17:08 UTC. The older series passed $794,000 18 days before that. |
| How it traded | “BTC 5-minute Up/Down markets … One trade every 81 seconds”; enter when “p ≥ 0.87” | Recomputable. Markets by length: 75.0% 5-minute, 22.2% 15-minute, the rest hourly, 4-hour or unclassified (254 markets). On the sample days, 67.9% of fills were in Bitcoin markets and 24.7% in Ethereum. On 2026-05-15 the account made 56,681 fills in 740 markets. On 2026-05-25 it made 54,747 fills in 784 markets. It held both outcomes in 79.2% of its markets. It has sold 2,898 times in all, none after 2026-04-29. We did not test entry prices. On those days it filled an order about every one and a half seconds and entered a new market about every two minutes. Neither is one trade every 81 seconds. |
| Win rate | “67% win rate” (a copy of 2026-05-23; “67% de Win Rate” in a Spanish copy of 2026-07-27) | Recomputable. By the profit-and-loss field of the positions list, 88,905 markets were net positive at fetch time, 82,281 net negative and 139 at zero: 51.9% of the markets with a result were positive. 7 positions were still open. The field sums to −$121,671.84, within $58.19 of Polymarket’s own position total. The older daily series fell on 28 of 195 days. The largest fall, −$15,987.10, came during 2026-08-08 UTC. The posts do not define their 67%. By markets, 51.9% were net positive. |
| Money in and out | Not stated | Recomputable. Deposits: 56 rows, $106,508.94, of which $88,024.63 on 2026-03-25. Withdrawals: 15 rows, $459,088.00, from 2026-03-26 to 2026-08-28; $114,023.00 of it before the first post. Withdrawals exceed deposits by $352,579.06. Direct transfers in are not classified as deposits, so the starting sum may be larger than the deposit rows show. |
| Who, and with what | A Brazilian college dropout in his parents’ garage; no code; Claude Opus (or Claude Fable 5) and Hermes; $10 a month for the whole stack, including a $5.99 Hetzner server; a nightly self-rewrite | Unverifiable by nature. Nothing in a ledger shows a person, a country, a program or a server bill. The profile has no bio and no linked account. |
Profile page as displayed 2026-10-07 05:22:35 UTC: “Joined Mar 2026 · 314.5K views”, positions value “$1,553.94”, biggest win “$22.0K” (the API value is $21,997.53), “171,871 Markets Traded”, “Total PnL +$1.3M”, “Total Volume 257.1M”. The last trade at fetch time was 2026-10-07 05:24 UTC; the account is still trading.
Which profit figure does the claim match?
The $794,000 matches Polymarket’s older profit-and-loss series. Polymarket also publishes newer figures for this wallet, and they disagree with the older series by large amounts. The profile showed the older series in every archived capture from April to August 2026. It read $1,465,015.50 at 05:00 UTC today.
By 2026-10-03 the profile had switched to a newer figure. Polymarket’s data labels it trade_pnl. The captures of 2026-10-03 show it in both the
headline and the chart. Today’s profile shows it as “+$1.3M” ($1,263,650.02).
The newer data has two more totals, labelled position_pnl and economic_pnl. At 00:00 UTC on 2026-05-22 the four figures read:
older series $785,808.30; trade_pnl $595,488.69; economic_pnl $78,453.04; position_pnl $34,759.69. The older series stood
$707,355.26 above economic_pnl that day.
Today’s split, as of 2026-10-07 04:44:29 UTC, adds up as follows. trade_pnl ($1,263,650.02) equals position_pnl
(−$121,613.65) minus fees_paid (−$1,385,263.67).
economic_pnl ($411,770.99) equals position_pnl plus wallet_income
($533,384.64). Wallet income is maker rebates ($154,486.24), taker rebates
($374,087.82), rewards and referrals. Both sums check to the cent. We found no Polymarket document that defines each field,
so we print the arithmetic and not a reading of it. How much the account earned depends on which figure you use.
What does this prove, and what does it not?
- It proves that the account exists and that both numbers in the posts match its public record around midday UTC on 2026-05-22, a few hours before the first post. The $794,000 matches the older profit series, which the profile displayed at the time. The 40,266 matches the account’s market count. No archived capture exists for that day; the nearest, on 2026-05-19 and 2026-08-21, both show the older series.
- It does not prove how much the account earned. Polymarket’s own figures for the start of that day run from $34,759.69 to $785,808.30.
- It proves that the time span is wrong. The account opened on 2026-03-25. The older series passed $794,000 about eight weeks later, not fourteen months. 49 of the 52 posts in our count repeat the 14 months.
- It proves that 40,266 is a count of markets. The account made about 3.3 million fills to reach it, mostly buying both outcomes of short Bitcoin and Ethereum markets.
- It does not prove what placed the trades or who runs the wallet. Claude Opus, Claude Fable 5, Hermes, the garage, the student and the server bill have no public record. The first post’s own set-up has the user read reports and “approve the next session”.
- What would change the status: a public record that ties this wallet to trading that began 14 months before the posts, around March 2025, under another address; or a public record tying a person or a program to the wallet. We would re-run the recipe and amend this page visibly.
How did the claim change as it spread?
- The figures never moved: every version we read that gives them says $794,000 and 40,266, from May into September. The account’s own figures moved a long way. By 2026-07-18 it had 95,360 markets; today the profile shows 171,871.
- The 14 months held in 49 of the 52 posts. @antpalkin’s own follow-up of 2026-05-23 drops it and says “you spent that same year” instead.
- The model changed. The May versions say Claude Opus (“Claude Opus 4.7 via API”). From 2026-07-18 @robrtcode re-ran its own claim with “Claude Fable 5” (@robrtcode, 2026-07-18, 72,229 views): “DEJÓ LA UNIVERSIDAD, VOLVIÓ AL GARAJE DE SUS PADRES, CONSTRUYÓ UN BOT QUE HA GANADO $794,000 EN POLYMARKET Y TODO GRACIAS A CLAUDE FABLE 5”. Smaller copies followed.
- Details were added. A copy of 2026-05-23 adds a “67% win rate”. A Spanish copy of 2026-07-27 adds “Automatización total sin supervisión humana” (full automation, no human supervision). The first post’s own set-up has the user “approve the next session”.
- Another story was told about the same wallet. A July post put it at “+$1,202,150 in 4 months”, built “with Claude”. We did not check that version.
- The first post links the profile with a referral code (
?via=cvxv666) and a copy-trading page under the same code. Copies carry other Polymarket referral codes and Telegram copy-trading bot links.
Recompute it yourself
- Post times come from the post IDs: milliseconds since 1970 = (id >> 22) + 1288834974657. 2057852690395230661 → 2026-05-22 15:54:49 UTC (first post); 2059247093475070380 → 2026-05-26 12:15:40 UTC (widest version); 2078472517438906410 → 2026-07-18 13:30:38 UTC (Claude Fable 5 version); 2058171494849544243 → 2026-05-23 13:01:38 UTC (the first poster’s follow-up); 2044751808224964620 → 2026-04-16 12:16:35 UTC (the earlier description of the wallet); 2064394146916229443 → 2026-06-09 17:08:13 UTC (the Claude Fable 5 announcement, which the 18 days rest on); 2058161377190322418 → 2026-05-23 12:21:25 UTC and 2081883337686466703 → 2026-07-27 23:24:01 UTC (the “67% win rate” copies); 2080411386161815891 → 2026-07-23 21:55:01 UTC (the “+$1,202,150 in 4 months” post); 2057840731826405747 → 2026-05-22 15:07:17 UTC (the X Article the first post quotes). Post texts and view counts: GET https://api.fxtwitter.com/status/<id>. In quotes on this page, line breaks are collapsed to a space, “…” marks omitted text, and leading “> ” marks are dropped.
- Reach: GET https://api.fxtwitter.com/2/search?q=<terms> (paged by cursor) for the terms 794,000 / $794,000 / 794,000 bot / 794,000 Claude / $794,000 polymarket / $794K polymarket / 79.4万 polymarket / 794 Fable / 40,266 / bonereaper (latest and top) / bonereaper Fable / brasileño polymarket 794, plus from:<account> searches and https://api.fxtwitter.com/2/profile/<user>/statuses for the two named accounts and one reposting account (2,368 distinct posts collected). Keep posts created in 2026 whose text carries the 794 figure ($794,000, 794,000, $794K or 79.4万) and at least one mark of this story: “14 months” in any language, “Bonereaper”, or “40,266”. That leaves 52 posts and 1,106,918 views as read 2026-10-07; the post IDs are listed in this page’s data file.
- Open polymarket.com/@bonereaper; the address repeated in the page source (45 times) is the proxy wallet, 0xeebde7a0e019a63e6b476eb425505b7b3e6eba30. The same data gives createdAt 2026-03-25T05:55:18Z.
- GET https://data-api.polymarket.com/activity?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&limit=5&offset=0&excludeDepositsWithdrawals=false&sortBy=TIMESTAMP&sortDirection=ASC — the first rows: a DEPOSIT of 9.98 USDC at 2026-03-25 06:25:55 UTC; first TRADE 07:11:51 UTC.
- GET https://user-pnl-api.polymarket.com/user-pnl?user_address=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&interval=all&fidelity=1h — hourly cumulative profit-and-loss (the older series). The first hourly point at or above 794,000 is the one labelled 2026-05-22 11:00 UTC (794,039.60); 15:00 UTC reads 795,634.80. Use fidelity=1d for the daily series (197 points from 2026-03-26; each daily point is the 00:00 UTC value, so a change between two points happened during the earlier day).
- GET https://web.archive.org/cdx/search/cdx?url=polymarket.com/@bonereaper*&filter=statuscode:200&fl=timestamp,original,length (61 captures) and https://web.archive.org/cdx/search/cdx?url=polymarket.com/profile/0xeebde7a0e019a63e6b476eb425505b7b3e6eba30*&filter=statuscode:200&fl=timestamp,original,length (7 captures) — 68 in all. Open every one as https://web.archive.org/web/<timestamp>id_/<original>. In the page data, the /api/profile/userData query holds the counter (“trades”, shown as “Predictions”) and the /api/profile/volume query holds the profit figure; the portfolio-pnl queries hold the profile chart. 67 captures carry figures (63 before the first post, 4 after); the last before the post is 2026-05-19 18:24 UTC and the next is 2026-08-21 15:49 UTC. Compare each figure with the hourly points on either side, and each chart with both series.
- GET https://data-api.polymarket.com/v2/positions?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&status=CLOSED&limit=1000, then again with &cursor=<next_cursor> until has_more is false; repeat with status=OPEN (308 calls, 307,108 rows, 171,325 distinct condition_id values). For each market take the earliest first_entry_at across its rows (95 markets have none and are left out of the ordering) and sort: market number 40,266 was first entered 2026-05-22 12:21 UTC. Count markets with first_entry_at before 2026-05-22, 05-26 and 07-18 00:00 UTC for the 39,851, 42,999 and 95,360. Classify each market’s length from its slug (-updown-5m-, -15m-, …) or the time range in its title; markets that fit neither are unclassified. A market counts as both outcomes held when it has rows for both outcome_index values. Sum each market’s total_pnl across its rows: above +$0.005 is net positive, below −$0.005 net negative, the rest zero. A second pull of the same list later on 2026-10-07 gave the counter comparison: the counter in each archived capture against the number of markets first entered before that capture’s page-data time.
- GET https://data-api.polymarket.com/v2/user-pnl?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&interval=all&fidelity=1d — Polymarket’s newer daily series. Its trade_count field is cumulative fills (3,266,989 at 2026-05-22 00:00 UTC); trade_pnl, position_pnl and economic_pnl are the three newer profit figures. GET https://data-api.polymarket.com/v2/user-stats?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30 — today’s split of trade_pnl, position_pnl, fees and wallet income.
- GET https://data-api.polymarket.com/activity?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&type=DEPOSIT,WITHDRAWAL&excludeDepositsWithdrawals=false&limit=500&offset=0&sortBy=TIMESTAMP&sortDirection=ASC — 56 deposits and 15 withdrawals.
- GET https://data-api.polymarket.com/activity?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&type=TRADE&side=SELL&limit=500&offset=0&sortBy=TIMESTAMP&sortDirection=ASC (paged) — 2,898 sell fills in all, the last on 2026-04-29.
- Day samples: GET https://data-api.polymarket.com/activity?user=0xeebde7a0e019a63e6b476eb425505b7b3e6eba30&type=TRADE&start=<day 00:00 UTC>&end=<day 23:59:59 UTC>&limit=500&offset=0&sortBy=TIMESTAMP&sortDirection=ASC, paged, for 2026-03-26, 04-15, 05-15, 05-25, 06-15, 07-15, 07-17, 08-15, 09-15 and 10-06 (486,892 fills). Classify each fill by the market title’s length (5-minute, 15-minute, hourly, 4-hour) and asset.
Statuses used on this site are defined on the fact-check index. This page
carries ClaimReview structured data that matches its text.