How it works
Every Monday at the bell, Bellhaul buys the stocks reporting that week. Friday it sells. Profit burns $HAUL.
The cycle
Every Monday at the 13:30 UTC opening bell, one public wallet buys the Robinhood stock tokens of the companies that report earnings that week. They are held through the reports and sold back to ETH on Friday after the close. If the week ends above cost, the profit buys $HAUL on Pons and burns it.
Picks
The largest Robinhood stock tokens on Robinhood Chain with a liquid USDG pool whose company reports that week; max 3–5 names; equal dollar weight; chosen by hand on Sunday.
This week (W44): MSFT and GOOGL report Wednesday 28 Oct, AMZN Thursday 29 Oct, all after the close. Report dates and their sources are on the board's Reports this week strip.
Route
ETH → USDG → stock on Uniswap V3 on Robinhood Chain, 3% max slippage, sold the same way back to ETH on Friday.
Prices on the board are read from those same pools (USDG treated as $1). They are labelled "RC pool price · unofficial" because a pool can drift from the stock's market price, especially when US markets are closed.
Fridays & loss
- Friday after 20:00 UTC the whole basket is sold to ETH.
- Above cost (ETH received is more than ETH put in, both as recorded): the profit buys $HAUL on Pons and sends it to 0x000000000000000000000000000000000000dEaD. The burn tx is recorded on /proof. The cost basis rolls into next Monday.
- Below cost: nothing burns. The loss is shown as it is, and everything rolls into Monday.
No yield, no promise of profit. The first Friday is 30 Oct; until then nothing has been sold or burned.
Week 1: $5 from the team, small on purpose. Later weeks: topped up by hand from creator fees. Not automatic, no amount promised. Every top-up is a public tx on /proof.
Stock tokens
Robinhood stock tokens are tokenized exposure to the stock issued by Robinhood; not shares, no voting rights; not offered to US persons.
robinhood.com/eu · token pages: MSFT GOOGL AMZN
HOOD
Robinhood itself reports Tuesday after close (not in the basket: there is no official HOOD stock token on Robinhood Chain). It is on the calendar as a story, nothing more.
API
JSON · no key · CORS open · no-storeThe board reads these four endpoints. You can too.
GET /api/haul · the board: holdings, live pool prices, totals, next event
{
"ok": true,
"week": "2026-W44",
"weekLabel": "W44",
"weekStart": "2026-10-26",
"wallet": "0x3392C95A8cbf771Cc9ABE9C1AcE15E4F3Db98f24",
"ethUsd": 2320.94,
"priceSource": "Uniswap V3 pools on Robinhood Chain (USDG quote), live, unofficial",
"holdings": [
{
"symbol": "MSFT",
"name": "Microsoft",
"token": "0xe93237C50D904957Cf27E7B1133b510C669c2e74",
"pool": "0xeb60bCD1D920ad6E102690CCFC6fB488899E1510",
"poolFee": 3000,
"amount": 0.003174531416015281,
"entryUsd": 525.01,
"costUsd": 1.67,
"spotUsd": 524.43,
"valueUsd": 1.66,
"pnlUsd": -0.01,
"pnlPct": -0.11,
"reportsAt": "2026-10-28T20:00:00Z",
"reportsLabel": "WED 28 OCT · AFTER CLOSE",
"reported": false,
"resultsUrl": null,
"buyTx": "0x51a31c9cf882cbe6ba9306a4f5ae583a9ebd0923f23b90b675b7b70c364aaf9e"
},
"…"
],
"totals": {
"costUsd": 5.01,
"valueUsd": 4.99,
"pnlUsd": -0.02,
"pnlPct": -0.4
},
"nextEvent": {
"kind": "report",
"symbol": "MSFT",
"label": "MSFT reports",
"at": "2026-10-28T20:00:00Z"
},
"friday": {
"sellAt": "2026-10-30T20:00:00Z",
"status": "pending"
},
"updatedAt": "2026-10-26T06:01:12Z",
"stale": false,
"error": null
}GET /api/weeks · every week: funding, buys, sells, burns, result
{
"ok": true,
"current": "2026-W44",
"weeks": [
{
"week": "2026-W44",
"label": "W44",
"start": "2026-10-26",
"end": "2026-10-30",
"bellAt": "2026-10-26T13:30:00Z",
"sellAt": "2026-10-30T20:00:00Z",
"fundingNote": "$5 from the team, small on purpose.",
"ethUsdAtBuy": 2317,
"funding": [
"…"
],
"buys": [
"…"
],
"sells": [],
"burns": [],
"result": null
}
]
}GET /api/calendar · report dates with sources
{
"ok": true,
"timezoneNote": "All times UTC. 'After close' = 20:00 UTC while the US is on EDT (until 1 Nov), 21:00 UTC after.",
"weeks": [
{
"week": "2026-W44",
"events": [
{
"symbol": "MSFT",
"name": "Microsoft",
"at": "2026-10-28T20:00:00Z",
"label": "WED 28 OCT · AFTER CLOSE",
"inBasket": true,
"source": "https://www.stocktitan.net/earnings/MSFT/",
"resultsUrl": null
},
"…"
]
}
]
}GET /api/healthz · is the reader up, when did it last read the chain
{
"ok": true,
"service": "bellhaul-server",
"chainId": 4663,
"rpcOk": true,
"lastReadAt": "2026-10-26T06:01:12Z",
"stale": false,
"week": "2026-W44",
"uptimeSec": 123
}When the chain cannot be read, the last good values are served with stale: true and the time of the last successful read. Prices are never replaced by zeros.
FAQ
- Is this a fund?
- No.
- Can I withdraw?
- No, $HAUL has no claim on the basket.
- Who runs it?
- One person, by hand.
- Where is the contract?
- There is none, it is a wallet: 0x3392C95A8cbf771Cc9ABE9C1AcE15E4F3Db98f24
- What is burned?
- $HAUL bought on Pons with the Friday profit, sent to dEaD.
- Why so small?
- See Why small: $5 this week. Small on purpose. It grows only when creator fees are added by hand. Not automatic, no amount promised.
Bellhaul is a public wallet run by hand. Not financial advice. Stock tokens are issued by Robinhood and are not shares; not available to US persons. Small amounts, real txs. $HAUL has no claim on the basket.