For the Agent-Native hackathon on @builderio , I built and Submitted Stigi ;The feedback board for product teams
Drop in hundreds of customer comments and an agent sorts them into themes. Drag two notes to correct it, and it re-sorts the rest to match.
Product managers and researchers struggle to turn hundreds of raw customer comments into themes. One-shot AI summaries fail because you can't correct them: fix one grouping by hand and the rest of the pile stays wrong.
Stigi lets you correct the agent's sorting by dragging two notes together. The agent names the theme, pulls in every matching note from across the board, and writes a one-line reason on each note it moved.
How it works
1. Load 200 sample comments (or import a CSV). The sample board starts imperfect: six clusters and 50 notes unsorted.
2. Drag two related notes into a new cluster, for example "which plan am I even on?" and "the billing page makes no sense".
3. The agent names the cluster and moves the matching notes in. In my recorded run it moved 14, each with an "Agent:" reason chip.
4. Click Sort with agent to file the rest in batches of 25, then Report for themes, quotes and a next step you can edit and export as Markdown.
- Corrections that stick: one drag teaches a theme, with no prompt to write.
- A reason on every move: the agent can't move a note without a one-line reason.
- An insight report: themes by size, verbatim quotes and a suggested next step.
- Safe to try: sign-in required, one private board per account, 40 agent turns a day.
How it uses Agent-Native:
the board UI and the agent call the same defineAction() actions (one move-notes for a drag and for an agent move, which must give a reason), share your selection through app-state and view-screen, and the agent opens the report with navigate.
Pre-existing work and what changed:
built on the Agent-Native "chat" template and toolkit (@agent-native/core 0.226.0) plus open libraries; everything Stigi-specific (actions, schema, board UI, agent skills, turn cap, landing page, logo, deployment) was built during the event on 2026-11-09.
App: stigi.suitz.xyz
Code: github.com/Dotman-Bei/stigi
Slide: stigi-slides.vercel.app/
Feedback welcome, especially on whether dragging two notes feels like enough to teach the agent a theme on your own data.
Below is the 1:38 minutes demo walkthrough @Steve8708
Picture a token community. The chat is full of "someone should build that." Weeks later, nothing exists. And if you do hand the job to an AI agent, you can't check what it did, what it touched, or what it cost.
I built Night Crew for @vibestarterxyz 02. $VIBES holders vote on what gets built, an AI crew builds the winner overnight, and every build gets a public receipt.
HOW IT WORKS
1. Open the site and connect a wallet. Holding $VIBES gives your vote weight. A wallet with none still counts as 1.
2. Sign a message to vote on a proposal or to propose your own. It costs no gas, and you can change your vote until the close.
3. At 22:00 UTC a GitHub Actions job closes the vote, runs the crew, verifies the result and publishes it.
4. The winner appears as a new floor in the tower, with a receipt attested on Base through EAS.
The agent has no authority. It has three tools: write a file, read a file, and run a floor check. It has no shell. A static gate checks its output in-process, and the crew job never executes anything the agent wrote.
Each floor is served as its own sandboxed page, under a hashed CSP, with no access to your wallet. A veto address can pull a bad one.
The receipt records the shift, the outcome, the model, the cost, and hashes of the transcript and the floor. Anyone can check it on EAS.
- 5 floors are lit.
- Shift 5 built a quiz: 6 of 6 tests passed, $0.07, attested.
- Each shift has cost between $0.06 and $0.10.
- 6 real wallets have voted or proposed, with 6 votes signed.
Live: nightcrew.suitz.xyz
Code: github.com/Dotman-Bei/nightc…
Below is the Demo wallthrough (94 s) @CyphrGM @ProlabCH
For the Flip the Switch Hackathon by @WeMakeDevs
and @switch_ai_ , I built and submitted Invoice airlock:
An accounts-payable desk on Switch that stays safe when the agent reading vendor invoices is hijacked: outside content stays in a room with no reach, only validated typed fields cross to the room that can pay, and only the controller can release money.
An AP desk on Switch that assumes the agent reading invoices is already hijacked. 9 attacks replayed, the ledger never moved.
The point is that Switch's rooms and owners hold when the agent is fooled.
For the full write-up, visit: medium.com/@bamigboyeemmanue…
Live app: invoice-airlock-site.vercel.…
Code: github.com/Dotman-Bei/invoic…
below is the 2:40 demo walkthrough.
#HowISwitch.
Strike's largest user vault holds $42,000 from 24 depositors. Its share price is 0.67. Everyone who joined at launch is down 33%.
following how a vault works on strike, you deposit, and a trader, the leader, trades the pool for you. You're buying their judgement. But you're also handing them total control. They can move your money into markets you never signed up for, take leverage you'd never accept, and keep trading straight through a drawdown. That vault holds 18 positions right now, 13 of them on a 20x setting. And the leader takes 25% of the upside while you carry all of the downside.
None of that means a leader is doing anything wrong. It means you have no way to hold them to your limits.
Your only real defence is to leave, and on Strike, leaving is slow. A withdrawal pays out a day after you request it, at whatever the vault is worth by then. So the damage isn't the moment the leader crosses your line. It's every hour after it, until you notice. If they break your rules at 3 a.m. and you file at 9, you've given them six more hours with your money, and your exit price pays for it.
Alerts don't fix this. An alert just tells you to start the clock yourself, after the fact.
So I built Rescind for the @strikeperps hackathon.
You set a mandate, four rules you'd hold any leader to: max effective leverage, allowed markets, max drawdown, and minimum leader stake. Rescind reads the vault every 5 seconds. The moment a rule breaks, confirmed on a second read so one bad read can't set it off, it files your withdrawal through the Strike API. Your exit clock starts about 10 seconds after the breach, not hours later.
And if the leader fixes it before payout, Rescind cancels the withdrawal. On Strike, that cancel is free. So filing on every breach and cancelling on every cure costs you nothing and always beats waiting. Strike's withdrawal design is effectively a free option, and Rescind is what exercises it for you.
It measures what a vault actually carries, not the label. Those 13 positions on a 20x setting add up to under 2x real exposure, and your rule fires on the real number.
Every action leaves a receipt that anyone can check against two public Strike URLs: the fill that broke your rule, and the withdrawal that answered it. No login, no trusting me.
Where it stands: detection runs live on mainnet against real vaults. My key is verified on Strike, and Strike accepts it on both the withdraw and cancel routes. The full breach → file → cure → free cancel cycle runs end to end against a simulated Strike. A live mainnet round trip just needs a funded account.
Self-hosted. Your key never leaves your machine, and Strike API keys can't withdraw to outside wallets.
Works on Mainnet.
Url: rescind-pi.vercel.app/
@sz8ng , @CardanoRami .
There are 1,969 Chog Genesis and about 982 people who own one. The difference is the audience almost every Chog app leaves out.
Open a holder-gated Chog game without a Chog and you get a guest mode, a practice mode, a "simulated judge" column. You watch. Someone else plays.
Lending looks like the fix for you to own yours to participate, but Chog Genesis has no rental role. It means an escrow, a wrapper, or setApprovalForAll, all of which give a contract power to move the NFT.
That power is how NFTs get lost: in one 2026 sweep, a single forgotten approval cost 3,033 wallets 25,994 NFTs.
So we asked: can someone without a Chog control one for a while, while the holder gives up nothing?
That is why we built Dybbo for the @ChogNFT chogathon.
It lets anyone possess any Chog for 1 to 10 minutes at 0.01 MON a minute by default. The whole fee goes into that Chog's escrow, and the NFT never moves.
While the timer runs, you haunt other Chogs with Boo, Slime or Hex, a mark shown beside their art for 24 hours and signed "by #1462, possessed". Holders haunt back with their own Chogs, never sign up, and whoever holds a Chog when they claim takes its escrow.
The contract only reads ownerOf from Chog Genesis and has no code path to approve or transfer. Every haunt re-checks ownership in the same transaction, so control ends in the block the lease expires or the Chog changes hands. No owner, no pause, no upgrade, no protocol fee. In the app, "Try to take it" asks the real Chog Genesis to move the Chog, and it refuses with ERC721InsufficientApproval.
Control without handing over power, enforced at every action on Monad.
Remove the Chog and nothing is left; it is the body, the payee and the off switch. Marks expire, haunts invite strike-backs and fees keep accruing, which gives people reasons to return.
Check it out : dybbo.vercel.app/
@benjanad , @Toadster69.
I used my free reset midweek and I’ve hit weekly limit again, I only use max tier for planning and lower tier to execute.
atp, I need another Claude acct or a max plan
gm.
We just built Portaj for the Find Your Way Hackathon on @StellarPassport .
Stellar smart wallets have a cash-out problem.
If your USDC sits in a passkey wallet (a C-address), you can’t send it to an exchange. Not “it’s hard”. The network rejects it.
Here’s why the rejection happens,
Exchanges use one shared Stellar deposit address for all users. The memo tells them whose deposit it is.
No memo = the funds land, but nobody credits you.
A smart wallet transfer is a contract call. that is why stellar-core rejects any memo on it:
“Soroban transactions are not allowed to use memo or muxed source account”
From the SDF’s own docs: It says, “transfers from contracts are not supported by exchanges today.”
The usual advice: move the USDC to a classic G wallet first.
But a new G account needs XLM for its reserve plus a USDC trustline. The user has no XLM. The place to buy XLM is the exchange.
That’s a loop. And now they hold a seed phrase, the exact thing passkeys removed.
Muxed M-addresses don’t fix it either.
The transfer is still a contract call, and 64-bit muxed IDs can’t carry the text memos many exchanges issue.
Now, the solution we built is Portaj
Portaj carries the USDC across that gap:
- Your passkey (WebAuthn PRF) derives your own G key in the browser. Same passkey, same G.
- A sponsor creates that G with 0 XLM + a USDC trustline
- Smart wallet → G via SEP-41 transfer
- G → exchange: classic payment + memo, fee-bumped
Result: your exchange credits the deposit.
-Your G holds 0 XLM, its reserves are sponsored, and you never see a seed phrase.
-Portaj never holds your keys or funds. The USDC sits in your G for one ledger.
Built only on Stellar primitives: sponsored reserves (CAP-33), fee bumps, passkey-kit smart wallets.
The gap only exists on Stellar, and so does the fix.
Live now at portaj.vercel.app
This is the 1:32 demo walkthrough
@thebu11runner , @bastiankoh , @StellarOrg , @BuildOnStellar
#HackMeridian2026
Both my build and my pitch my the @GenLayer agent tank was accepted and rewarded in Genlayer point.
It’s always fun building on Genlayer.
gm.





