One payout engine, rewritten three times. It pays a person for finished work only after a bill matches the payer's own record, and it leaves a public receipt either way. No real money has moved.
All times are Malaysia time.
Tiba is for a program that pays people for finished work: a bounty, a grant, a contributor payment. An agent can file the payment. Tiba reads the bill, reads the program's own record of what was owed, and pays only when those two readings name the same job and the same amount. The amount that goes out is the amount on the record, never the amount on the bill. If they do not match, it refuses. Paid or refused, anyone can open the receipt.
It runs on a practice copy of Solana, a public blockchain. The coins are test USDC, a digital dollar that is not real money.
Test USDC · no real moneyNext ↓Why it exists
Automation includes: Council ↓, Strata ↓, Claude Code ↓
On 24 August I told Claude Code what I thought Tiba should become. DoorDash, Grab and Lalamove would plug in an API so workers could withdraw earnings in crypto. I asked Strata to research it and Council, a panel of models, to grade the call.
That morning, none of the eight judges defended that shape. Seven picked cross-border payouts for migrant workers instead, and the eighth a blend. Those apps already pay quickly in normal money. Nobody local had asked to be paid in crypto. Strata's research also tried to break the idea. The replacement was cross-border payouts through licensed partners. The pitch that software pays one person came on 27 August.
Council, 24 August.
By 28 August the line I had settled was this. A machine pays a person, and no human approves each transfer. Cross-border payouts were dropped. The product was the fence: caps, a list of who can be paid, and a switch that stops everything.
On 6 September I looked at the site and said what I actually thought.
[6 Sep 2026, 6:51am] FARIS: The average user has NO IDEA what Tiba is. And my 2 teammates have proven that. We need to become more like what we are. What are we really? If we are a wallet just bloody say that u clown.
Claude Code changed the first sentence within minutes. Tiba is a wallet for software. It pays people on your behalf, within your limits, and only after two checks agree.
A week later I threw that rule out.
[13 Sep 2026, 5:17pm] FARIS: This sounds like an AI Slop idea. I always HAVE thought that this part of Tiba was always an AI Slop idea for an Agent with no grasp of the physical world.
Council's pick that evening was a different product, and the wallet was on the kill list.
On 25 September a research pass put the wallet back in the crowded pile and the check in the empty one. It read 1,916 YC company sites and compared 18 rivals from their own pages. Coinbase, Stripe and Squads already sell an agent a spending limit. Of those 18, only one mentions checking an invoice, and a person still approves. None of the 17 that could be checked gives a receipt for a refusal. I said yes. The site now leads with the check before an agent's payment goes out.
Next ↓The best runs
Automation includes: Claude Code ↓
The first Tiba was a batch payroll tool. An employer uploaded a list. One Solana transaction paid every worker in test USDC, or it paid none of them. An agent could also pay from a list approved once, with a key the machine held, and no one clicked each transfer. I built it solo across 22 and 23 August. The demo was usetiba.vercel.app.
Verified on the practice network: 3 recipients, 7 transfer instructions, one 648-byte transaction. No real money, and no users yet.
Claude Code found the result that evening.
[23 Aug 2026, 8:14pm] CLAUDE: Tiba already won 1st place today (300 USDC) at Superteam Malaysia's Solana Lab hackathon — it's a real Solana product (atomic USDC batch payroll, devnet, machine-held key, …).
Thirteen submissions. The saved note says what won: a live demo that worked, Solana doing real work, an honest description, and proof links that matched the chain. A separate coding grant, 200 USDG, was approved on 27 August.
Automation includes: Claude Code ↓
The next hackathon needed a different product, so the old repo stayed behind. A fresh repo got its first commit on 29 August at 8:23am. Nothing was copied across. One reading looks at the bill. The other looks at the payer's own record and is never shown the bill. If they disagree, the payment is refused. There is no vote.
By about 1:30am on 30 August the pipeline had been run against the live site, not a laptop.
[30 Aug 2026, 1:26am] CLAUDE: Adversarial artifact → RED `QUORUM_SPLIT`, receipt live at `/r/acf6353a-86b2-4860-b7da-c59285b4490a` Clean artifact → PAID 0.002 SUI, digest `2BLvd6pGqgsyMbnoDXNzoJyWezTChr2qjLBCL5LoAsV2`, receipt at `/r/daf3a5db-fd73-4fcc-b64f-2ae404525184`
The number written into the submission on 5 September: 20 of 20 legitimate payouts paid, 10 of 10 tampered claims refused, 0 false refusals, about 13 seconds per decision. A single reading had been paying the attacks. Two readings refused all 10, with 0 of 20 false refusals. Decisions had been taking 33 to 50 seconds. Sending each reading to two models at once and taking the first good answer cut a refusal to about 7 seconds and a clean payment to about 16.
Seconds per decision.
The public URL was https://tiba-omega.vercel.app. Thirty-seven commits. That afternoon Claude Code opened the page.
[30 Aug 2026, 2:34pm] CLAUDE: the entire app had shipped with no CSS. Tailwind 4 needs a PostCSS plugin nobody had added, so every page was plain serif text. All the curl checks said 200 because routing worked; nobody had looked at a rendered page.
Fixed and redeployed that afternoon.
Automation includes: Claude Code ↓
A judge walkthrough on a preview paid a demo order, WO-13, then left it open so the next person could pay it again. Before the fix, the second attempt was a refusal. Claude Code ran the walkthrough twice.
[2 Sep 2026, 5:37pm] CLAUDE: Judge 1 pays WO-13 | PAID, digest `EXDNN8aj…` WO-13 after | open ← this is the bug, fixed Judge 2 pays WO-13 | PAID, digest `GaUgpiPG…` ← previously a refusal Inflated 50.00 note | REFUSED `QUORUM_SPLIT:amount_micros`, no digest
25 of 25 tests passed. Only that demo order could refill, a refusal never refilled it, and a failed refill could not undo a payment that had already settled.
The fix stayed on the preview. On 5 September the last live deploy was still 1 September. The live site could pay WO-13 exactly once. A second run, in rehearsal or in front of a judge, would miss.
WO-13 refills
fixed · 2 Seppays WO-13 exactly once
last deploy · 1 SepThat same build was submitted to MUBA, a university hackathon. Tiba did not win. In the payments track, another entry, Splash, beat it. Splash had one route, one buyer, named partners, and a rule that a person still signs.
Automation includes: Codex ↓, NightShift ↓, Claude Code ↓
Sui, the chain used for that hackathon, was still in the product. On 11 September I told Claude to put the live product back on Solana. Sui had only been there because that event had no Solana track.
On 13 September Codex took Sui out, wrote a threat model, and shipped both. NightShift, the overnight runner, then sent five test payouts through the live site.
[13 Sep 2026, 9:57am] CLAUDE: 5 devnet payouts went through live Tiba. All 5 public receipts load, and one checked on-chain came back PASS.
The same morning a security review landed: 0 critical, 2 high, 4 medium. One high was fixed, so one workspace could no longer see another's data. The other high was an old hosting token, already expired. Six public issues were opened.
On 15 September a second agent tried to break the fixes. 44 tests passed, then 46 of 46. I said yes. The first automatic check failed on a missing package, then the release went through.
[15 Sep 2026, 7:12pm] CLAUDE: The security release is live on tiba.rizqey.com. All 6 security issues on the grant repo are closed. I checked it from outside: the pages load, your headline, "A real example" and the eval label are still there, and the demo wallet now shows as read-only.
One of those five payouts is still the paid example. 0.01 USDC on Solana's test network. Transaction 5NbsG6hT…. Receipt /r/8ecd74ca-ef81-4d60-b642-a9a1e8ece93c.
Automation includes: Cursor ↓, Claude Code ↓, Head Dev ↓
Cursor, on its own machines, sent one test payment on Tempo (0.01 pathUSD, a test stablecoin on a payments chain built by Stripe and Paradigm) and one private test payment on Zcash (0.001 TAZ, readable again with a viewing key). Solana failed on that machine. The test-coin faucet refused the airdrop, and the USDC faucet wanted a captcha. The receipt page also called every coin USDC.
On 26 September six builds were merged and I said yes. Claude Code then tried to fool the live site.
[26 Sep 2026, 8:55pm] 'Try to fool it': a wrong bill was refused in seconds with a real signed receipt showing the bill, the record and the mismatch, and naming the makers (OpenAI read the bill, Alibaba read the record); a matching bill says 'would pay, nothing sent'. The Refusal Wall shows 49 checks, 23 paid, 9 refused.
A changed work-order number sometimes came back blank. The wall's refused total read 0.00 because older refusals had asked for nothing. A sandbox receipt showed a spending line that meant nothing there. I said go. By about 9:35pm the wall showed 50 checks, 10 refused, and 480.00 USDC refused, counting only the refusal that had asked for money.
The next day a new security pass found worse holes, already on the live site. Nineteen fixes shipped at about 9:37pm, plus six follow-ups from the Head Dev.
Next ↓What worked
First of 13, 23 August, 300 USDC, in a verified batch of 3 recipients and one 648-byte transaction. The 5 September number: 20 of 20 clean payouts paid, 10 of 10 tampered claims refused, 0 false refusals, about 13 seconds a decision, plus one live payment of 0.002 test SUI.
Five Solana test payouts on 13 September, 0.01 USDC each, all five receipts loaded, one checked on the chain. All 6 grant-repo issues closed on 15 September, 46 of 46 tests, demo wallet still public and read-only. The 200 USDG coding grant was approved on 27 August.
The 25 September research also counted 1,889 summaries checked against the page, 36 direct rivals, 92 more beside payments, and 5,428 past Solana hackathon projects. On 26 September the wall, after the polish, showed 50 checks and 480.00 USDC refused in test money. On 27 September, 19 security fixes and 6 follow-ups went live.
Next ↓What broke
The first public deploy of the new repo had no stylesheet. Every page was unstyled text. The checks only asked whether the server answered. They got 200. It stayed that way for about 13 hours.
The WO-13 fix was proven on 2 September and was still only on the preview on 5 September, four days after the last live deploy.
On 6 September, before I looked at onboarding, production could not pay. Claude Code found it by sending a real test payment. The model wrote its reasoning before the answer and used up the space the answer needed. Both checks failed. Every payment was held.
The fix shipped the same day: a test payment settled, digest 2fZ3m9DsvqUBFv3f8xFMdjF8hsTzgr, at 12:03pm.
I then tested a new account myself.
[6 Sep 2026, 2:18pm] FARIS: wtf man. I just checked and it takes me straight to the app.
The marketing page had been moved off the root and the product left on it. There was no sign-in. A new workspace showed two keys once. Lose them and the workspace was gone. New signups still paid from one shared test wallet, so the cap was lowered so a stranger could not empty it during a demo.
Both "independent" checks used the same models. The site still said two checks must agree. The first homepage rewrite then claimed zero of 18 rivals read the bill. The research did not say that. One of the 18 mentions an invoice, and a person still approves. That line had to be stripped from the site before anything went live. On 27 September the claim died again. Solply, a public hackathon entry, already refuses a wrong bill for one supply chain. The live copy now says of the 18 compared on 25 September, none offered both a bill check and a public receipt for a refusal.
MUBA did not win. The identity check built for a Terminal 3 night was real. The form was never sent. An agent had marked it submitted.
[9 Sep 2026] FARIS: Oya I bloody forgot to submit T3.
The deadline had passed on 8 September at 8:00pm.
A demo video was marked done on 25 September with no file behind it.
Cursor never sent the Solana test payment, because that machine could not get test coins. On 24 August, Codex and then Devin were killed three times when sessions restarted.
Early on 28 September the database hit its cap of 15 connections. A rebuild failed. The live site still answered.
I said yes to the fix, and it was live by about 2:00am.
The same night a replacement for the record check, plain rules instead of a model, was put live and held a mismatched bill instead of refusing it.
Rolled back within minutes. The same bill then refused correctly.
A separate fault is still open: the record check sometimes returns no answer, so a correct bill can be held instead of paid.
Next ↓What we learned
Next ↓Where it stands
Tiba is live at tiba.rizqey.com. I checked the page while writing this. It loads. The headline is the check before an agent's payment goes out. The refused example is work order WO-R2 at 1.3 USDC against a record of 1.00 USDC. The paid example is 0.01 USDC on Solana's test network, with a public receipt. The eval figures are still labelled as an earlier build from 29 August: 20 of 20 honest notes paid, 10 of 10 tampered notes refused, 0 of 20 false refusals, 13 seconds mean.
The Tiba homepage, live, both captured 28 Sep 2026.
Solana is the rail that is on. Tempo and Zcash are built, tested, and switched off. The bounty page, the refusal wall, and the try page are on the same site. The 15-connection cap is fixed. The plain-rules record check is not live. The model that reads the record still sometimes returns nothing, and a correct bill is then held.
No outside team has run a payout through it yet. That is the next test.
Automation includes: Claude Code on the laptop, the Head Dev (Claude in the cloud), Cursor, Devin, Codex, Council, NightShift, Strata, Manus, and Ilmu.
In this entry · 23 Aug, 24 Aug, 30 Aug, 2 Sep, 6 Sep, 13 Sep, 15 Sep, 26 Sep
In this entry · 27 Sep
In this entry · 26 Sep
In this entry · 24 Aug, 13 Sep
In this entry · 24 Aug, 13 Sep
In this entry · 13 Sep
In this entry · 24 Aug
In this entry · 24 Aug
Latest receipt line in this entry · 26 Sep 2026, 8:55pm
[26 Sep 2026, 8:55pm] 'Try to fool it': a wrong bill was refused in seconds with a real signed receipt showing the bill, the record and the mismatch … The Refusal Wall shows 49 checks, 23 paid, 9 refused.
Last updated 28 September 2026