The 8:15 train is crushed. The 8:45 has empty seats. CrowdShift pays the exact commuters whose 10 to 15 minute delay clears the overloaded stretch, verifies that each one actually moved, and settles the payout automatically. An event operator or a transit authority funds one crowded window, because they are the ones already paying for that crush. CrowdShift charges a campaign fee plus 5% of verified payouts. One founder sells and configures the campaign. Software agents run it. A human approves every commitment.
📊 Pitch deck: 11 slides, PDF + PPTX · 👤 Solo builder: @Iamsohungrynow
On the live site, the landing page, the live crowd feed, the market and the clearing engine all run in your browser. Verification and payment need the local API, and the page says so rather than faking an exchange it cannot perform.
Built for BUIDL_OPC_Hackathon_SG. Theme: One Person Companies through Agentic Services, where human judgment guides AI execution.
Singapore already pays commuters to travel off peak, and it works. LTA reported in March 2026 that 8% of North East Line commuters shifted out of the morning peak, freeing capacity equivalent to two trains. The Ministry of Transport put the cost of the nationwide Morning Pre-Peak Fares discount at about S$40 million per year in 2023.
The budget is real. The targeting is not. Blanket rewards pay everyone who travels off peak, whether or not their trip helped, cannot aim at one overloaded segment, and never verify that a specific paid-for shift happened.
CrowdShift asks a narrower question: can one operator procure the cheapest set of voluntary, verified shifts for a specific cohort, corridor and window, and earn revenue only when a shift verifies?
- Signal. A live LTA DataMall feed opens a relief window on one corridor.
Every value on screen is labelled
LIVE,CACHEDorDEMO. - Deal. A commuter picks a later train and a minimum price. The private reason stays on the device. A P-256 key generated in the browser signs the limits and the payout address.
- Clearing. Integer-cent dynamic programming computes the exact minimum-cost set of shifts that reaches the target inside the funding cap. No profile, story or language model enters the calculation.
- Approval. The market proposes one shift. The commuter approves it. Nothing moves without that click.
- Proof, then payment. The completed shift is attested, the pool agent
receives
HTTP 402, pays the signed payout address over x402, and receivesHTTP 200plus a receipt.
Full sequence and trust boundaries: docs/ARCHITECTURE.md.
The test for a buyer is simple: do they pay for this crush today?
| Buyer | Already spending on it? | Status |
|---|---|---|
| Event operator (stadium, expo, concert) | Yes. Crowd control staff, extra shuttles, egress-time targets. | The wedge. One decision maker, a dated problem, a result visible that night. |
| Transit authority and operators | Yes. The S$40M a year above. | The real budget, at procurement speed. Expansion, never a launch dependency. |
| Large employer or business park | Perhaps. They fund shuttles from the station and run staggered-hours policies with no enforcement and no proof. | A hypothesis, not a claim. Unvalidated. |
Schools and campuses are not on this list. They do not own the trains and carry no cost when their people are crushed at 08:15, so they have no reason to buy.
| Line | In the demo campaign |
|---|---|
| Incentive pool | S$24, capped at 60¢ from each of 40 riders |
| Cheapest valid set bought | Exact minimum-cost procurement across 100 offers |
| Campaign fee to CrowdShift | S$50, billed to the sponsor |
| Success fee to CrowdShift | 5% of the verified payout. A S$0.74 reward yields S$0.04 |
| Operator revenue recorded | S$50.04, separate from the pool and from rewards |
Commuter rewards and the incentive pool are never CrowdShift revenue. The demo also shows an optional bounded co-funding mechanism, where 40 urgent riders authorise at most 60¢ each and are charged only the verified clearing cost, with every unused cent released. Pricing is a hypothesis until a pilot buyer validates it.
The founder sells the campaign, sets the corridor, funding cap and approved attestation partner, and handles exceptions. Six software agent roles do the repeat work:
| Agent | Job |
|---|---|
| Signal | Ingests and labels the crowd forecast |
| Commuter | Filters campaigns against owner-signed limits |
| Pool | Enforces bounded maximum contributions |
| Clearing | Computes and explains the exact winning set |
| Settlement | Buys only an attested proof, prevents duplicate payment |
| Reporting | Produces the auditable campaign record |
Agentive does not mean an LLM is trusted with money. Eligibility, prices, signatures, allocation and settlement are ordinary deterministic code. The submitted build contains no runtime LLM call. Every commitment passes through an explicit human approval gate.
This is the credibility section. Nothing below is decorated.
| Real and verifiable | Explicitly simulated |
|---|---|
Live LTA DataMall forecast and realtime adapter, with LIVE → CACHED → DEMO degradation |
The trip attestation. A signed simulator stands in for an operator or employer attestor |
| Browser P-256 session key. The same fingerprint shown at sign-in signs the mandate | The 100 flexible offers and 40 urgent authorisations. Deterministic synthetic fixtures |
| Signed mandate binds campaign, expiry, limits, key fingerprint and payout address. Tampering fails verification | Projected relief. A scenario target, not a measured congestion outcome |
| Exact minimum-cost pay-as-bid procurement, integer-cent dynamic programming, with a per-offer decision record | Demo-credit settlement. Cryptographically signed, idempotent, and valueless |
Proof-gated x402: 409 → 402 → PAYMENT-SIGNATURE → 200, idempotent receipts |
The S$50 campaign fee and 5% success fee ledger. A business-model view, never sent onchain |
One funded Base Sepolia settlement: 0.001 test USDC, public receipt |
|
| 17 passing tests, 7 of 7 automated demo-flow checks |
No real commuter data is used. No measured congestion reduction is claimed. LTA DataMall is a registered public data source, not a partnership or endorsement.
| Alternative | What it does | What CrowdShift does differently |
|---|---|---|
| Fixed off-peak rewards, such as LTA Travel Smart | Offers a set reward to every eligible commuter | Procures a bounded, corridor-specific, minimum-cost set. Complementary to a public scheme, not a replacement |
| Journey and crowd-information apps | Tell people when it is busy | Turns private willingness into an authorised, verified, paid commitment |
| Employer staggered-hours programmes | Coordinate by policy and email | Automates limits, selection, proof, payout and audit |
Defensibility today is a hypothesis, not a moat. What compounds: verified cost and elasticity data that only a verifying operator can collect, trusted attestation integrations with cohort operators, and settlement audit history. The clearing code is a weekend. The attestation partnerships are a year.
- No pilot yet. Synthetic agents are test fixtures, not traction.
- Pricing is unvalidated. The campaign fee and 5% rate are a hypothesis.
- Revocation is session-local. Production needs a durable revocation registry or a passkey and wallet identity.
- Attestation needs a partner. No public developer API exposes an individual's transit journey. A first pilot requires an event operator or an employer to act as a privacy-minimised arrival attestor. See docs/DATA_SOURCES.md.
Requirements: Node.js 20+ and pnpm 10+.
pnpm install
pnpm dev # app on :4173, private API on 127.0.0.1:4174pnpm test # 17 unit and integration tests
pnpm build
pnpm demo:check # 7 end-to-end demo-flow checks, while pnpm dev runs
pnpm start # serve the production build and API from one originLive LTA data and onchain settlement are optional. Without keys the app runs on a labelled fallback and valueless demo credits.
LTA_DATAMALL_ACCOUNT_KEY=
CROWDSHIFT_DATA_MODE=demo
X402_FACILITATOR_URL=https://x402.org/facilitator
X402_EVM_PAY_TO=
X402_BUYER_PRIVATE_KEY=Secrets stay server-side. Never place them in a VITE_* variable. Never use a
production key.
| Date | Gate | Evidence required |
|---|---|---|
| Jul 2026 | Problem validation | 10 commuter interviews, 3 buyer interviews, signed pilot hypothesis |
| Aug 2026 | No-money shadow pilot | One closed cohort, holdout design, acceptance and revocation metrics |
| Sep to Oct 2026 | Prefunded supervised pilot | Approved attestor, bounded sponsor pool, zero duplicate payouts |
| Nov to Dec 2026 | First paid repeat customer | Three repeat campaigns, measured cost per incremental shift, one paying repeat customer |
| Q1 2027 | Paid OPC service scales | Second and third site, documented support workload |
3-month gate: a funded, supervised pilot with a real attestor. End of 2026: one paying repeat customer and a measured cost per shift.
Detailed plan: docs/IMPLEMENTATION_PLAN.md.
Transit is the beachhead, not the ceiling. The reusable sequence is: observe a congested resource, collect signed flexibility, clear the cheapest valid set, verify, settle, charge the fee. Adjacent markets already fund this behaviour. Singapore had 30,500 EV charging points by March 2026 and targets 60,000 by 2030. EMA reported 166 MW of registered demand-response capacity. Each new domain still needs its own signal, policy schema and trusted proof. CrowdShift only enters a resource when the peak is costly and recurring, the sponsor repeats, and the shift is machine verifiable.
src/domain/ identity, mandate signing, exact procurement, fee ledger, policy
src/components/ landing, key ceremony, departure board, clearing room
server/ validated API, LTA adapter, signed simulation, x402 integration
docs/ architecture, data sources, plan, pitch, demo script, evidence
- Funded Base Sepolia x402 transaction and local evidence record
- Architecture and trust boundaries
- Verified data-source inventory and attestation plan
- Pitch script and judge Q&A · 90-second demo script
- Build-window provenance
- LTA: 8% of NEL commuters shifted out of the morning peak
- MOT: Morning Pre-Peak Fares cost about S$40 million per year in 2023
- JTC: one-north has over 400 companies and 50,000 knowledge workers
- LTA DataMall dynamic datasets
- x402 client and server model
Technical validation and commercial validation are separate, and this repository says which is which. Commuter cohorts and trip attestation are synthetic. Target coverage is modelled. Base Sepolia uses valueless test assets.
AI coding assistants, including Claude Code and OpenAI Codex, were used for research, implementation, UI iteration, tests and documentation. They are tooling, not team members and not runtime operators.
The submitted snapshot includes work created before the public 11:00 SGT hackathon start. It is not represented as having been created entirely inside the event window. See build provenance and confirm eligibility with the organiser.