CLOCK IN Solana Mobile Hackathon 2026
Pitch deck · zkasuran · October 2026

Bond

Humans and AI agents, as paid peers.

A Seeker group chat where every member, human or agent, holds a key that is also a Solana wallet. Talk, delegate and pay in USDC, right in the thread.

  • Live on devnet · signed APK 1.3.6
  • 369 + 95 tests · ALL GREEN
  • MWA · Seed Vault · SKR
ROOM · SEEKER BUILDERS 3 humans · 1 agent 5.00 USDC @Bond tool_call +1.60 to creator agent pays 1.00 Solana devnet BOAGENT YOYou MAMaya PFPixel Forge · creator

01 · The gap

Seeker put a wallet in every pocket. Nobody gave it a room.

A wallet with no room

Seeker ships a self-custody wallet in the phone. There is nowhere to use it with other people, inside a conversation.

Agents are single-player

Phone AI agents are bots for one person. They cannot hold value, pay anyone or work inside a group as a peer.

Builders are paid nothing

Agent skill catalogs are free, so the builders behind the skills earn nothing when their work gets used.

Bond puts people, agents and the wallet in one thread, where anyone can pay anyone.

Bond02 / 18

02 · The insight

The key that signs your messages is already a Solana wallet.

Ed25519 public key 32 bytes

Made on the device. The private half is kept in its secure store.

As a did:key your chat identity

did:key:z6MkpMwQ…PavARoQ

multibase(base58btc, 0xed01 || key) Signs every message you send: Ed25519 over RFC 8785 canonical JSON, re-verified on every read.

As a Solana address your wallet

AugMQy69…cuFD22

base58(key) Anyone in the room, human or agent, can pay it in USDC.

Decode both: the same 32 bytes. Real values from the device on the next slide.
Bond03 / 18

03 · Solana Mobile Stack

Connect a Seeker wallet. One signature binds it.

  1. 1

    A key made on the phone

    Your Ed25519 did:key is generated on the device and kept in its secure store. It is never uploaded.

  2. 2

    Mobile Wallet Adapter

    The wallet checks Bond's Digital Asset Links against the release signing key and shows Bond as verified.

  3. 3

    One signed challenge

    Wallet and did:key both sign the binding. It is re-verified on every load and version-checked.

  4. 4

    Seed Vault signs value

    The device key signs chat, the wallet signs payments. Bond never sees the wallet's key.

The You tab on a real device: Bond identity card with a Verified badge, the decentralized identifier did:key:z6MkpMwQ…PavARoQ and, below it, the same key as a Solana address.
One Ed25519 key, two encodings
Solana Mobile's reference test wallet asking to authorize Bond at https://bond.zkasuran.dev on devnet, with Status: Verification successful.

Real device: signed APK on Android 15, Solana Mobile's reference test wallet, devnet.

Bond04 / 18

04 · The product

One thread is the social surface and the economy.

  • Same kind of member

    People and agents share one room. Each carries a signed identity, and each can be paid.

  • Agents work in the open

    A mention starts a real tool-calling turn. Every tool call and result lands as its own node.

  • Pay without leaving

    USDC over Mobile Wallet Adapter, landing as a receipt that is re-checked on chain.

Signed nodeEd25519 · jcs-v1
tool_call→ Solana devnet
transferCheckedre-checked on chain

Scripted replay of the real flow, built in HTML.

Bond05 / 18

05 · Agents

Mention @Bond. It runs real tools, in the open.

Streamed into the thread as server-sent events

  1. turn_start
  2. text
  3. tool_call
  4. tool_result
  5. text
  6. turn_end
  7. done
  • solana_get_balancedevnet read
  • solana_transfer_usdcdevnet, capped
  • solana_priceJupiter, mainnet read
  • solana_swap_quotequotes, never signs
  • skill toolsunlocked on chain
  • mcp_*imported, private hosts refused
100USDC per transfer
500USDC per process
8tool steps per turn

The caps live in server code and are reserved atomically, never in a prompt. The system prompt is fixed on the server.

A real Bond room: the agent answers a Jupiter quote request, notes that the unsigned transaction is never signed or submitted, and shows collapsed tool cards: called solana_swap_quote and returned.
Each step lands as its own node

Model-agnostic: MiniMax today, any OpenAI-compatible API. Adapters for Hermes and OpenClaw.

Bond06 / 18

06 · Many agents

Type @scout. Only Scout answers.

  • An @username and a persona

    Every agent you make gets a unique handle and a persona it keeps in every reply.

  • Talk to one, or to several

    Type its @username, with suggestions as you type. Only the agents you name reply, and each knows which replies were its own.

  • Bring it into any room

    Add the same agent to another room by @username. Same identity and persona, a job of its own for that room.

A real Bond room with three agents. You wrote @scout and @bond each say one word; Bond replied Ready and Scout replied AHOY in its pirate persona. Typing hey @s shows the suggestion Scout @scout above the agent chips.
Creating an agent in room settings: name Ledger, username @ledger, persona A strict accountant who answers in three bullets.
Name, @username, persona

Real device: three agents in one room, addressed by @username.

Bond07 / 18

07 · The core idea

The payment is the license.

No accounts, no license server, no NFT mint. The chain is the database.

01 · Buy

Unlock, then the wallet

MWA

Bond asks for your biometric or PIN before the wallet sees anything. The wallet signs over Mobile Wallet Adapter.

02 · One transaction

An atomic 80/20 split

1.60creator 80%0.4020%

2.00 USDC in one transaction. Both legs settle, or neither does.

03 · Agent turn

The server re-reads it

  • Transaction succeeded
  • The buyer's USDC went down
  • Creator paid their cut
  • Platform paid its fee
  • Buyer proved the wallet

04 · Unlocked

The skill joins the turn

Its tools join the agent's turn, for this skill and this buyer only.

Reuse the signature for another skill

Nothing unlocks. That transaction never paid this skill's creator.

Replay someone else's public purchase

Nothing unlocks. A claim needs a fresh did:key signature and the wallet binding.

BondSolana devnet, no real funds08 / 18

08 · Live on devnet

The agent uses the skill on the transaction that bought it.

Devnet transaction 3DqUdGZt…JAksTzdK

slot 507,807,070 · 2026-10-05 17:29:04 UTC

Buyer paid
2.00 USDC4L91…MFK4
Creator, Pixel Forge · 80%
1.60 USDC6jRF…9fQS
Platform fee · 20%
0.40 USDCE523…uwL
Network fee
0.000005 SOL
Result
succeeded, one atomic transaction
Installed. Your agent can call this skill. Proof of purchase: 3DqUdGZt…JAksTzdK. View on Solana Explorer (devnet).

The purchase signature is the proof of purchase.

A real Bond room named Skill check: you ask the agent to use your Tx Explainer skill on the transaction that bought it, and the agent decodes the purchase: buyer, skill, creator Pixel Forge, total 2 USDC, creator share 1.6 USDC, platform fee 0.4 USDC, network fee, time and result.
The skill explains its own sale

Real device and live server. Tx Explainer is a seeded sample listing; the payment is real.

Bond09 / 18

09 · SKR

SKR, built into every listing.

  • Priced in SKR, live

    Every listing shows its SKR equivalent from a live Jupiter quote on Solana mainnet.

  • Holders pay less

    Hold SKR and get the creator's discount: 10% by default, hard-capped at 25%, read from your real mainnet balance.

  • Read-only, on purpose

    Nothing is signed and no SKR moves in this build. The sale itself settles in USDC on devnet.

Next, with mainnetPay in SKR · SKR-staked creator listings

The Tx Explainer price card from the signed APK: price 2.00 USDC, SKR equivalent about 111.58 SKR, creator 80 percent 1.6 USDC, platform fee 20 percent 0.4 USDC, delivered by the Bond runtime.

Tx Explainer price card, signed 1.2.x APK. The SKR equivalent is a live mainnet quote; the listing is a seeded sample.

SKR holder discount

0%10% default25% hard cap

SKR mint SKRbvo6G…NPGZhW3 · mainnet, read only

Bond10 / 18

10 · Protection

Protection you choose. It fails closed.

WhenDefault factor
Spend 1 USDC or moreBiometric
Use the signing keyBiometric
Run a skillOff, raise it any time
Open the appOff, raise it any time
  • A wrong PIN never reaches the wallet.
  • No factor available means no spend.
  • Five wrong PINs lock for 30 s, doubling to 15 min, on a monotonic clock a date change cannot rewind.
  • Weakening a guard needs a factor that existed before the request.
  • Choose the app lock on first open. The PIN pad shuffles every time.
A real device: Bond 1.3.6 locked, the PIN pad reads Enter your PIN to unlock Bond with its digits in a shuffled order: 8 0 5, 3 1 2, 6 4 7, 9.
A confirmed payment receipt in a Bond room: 1.5 USDC on devnet, PIN-gated, with a View on Solana Explorer link.
Then a confirmed receipt

Real device: the PIN pad shuffles every time, then a confirmed receipt.

Bond11 / 18

11 · Design

Designed as one material.

One system runs through the app, the website and this deck.

Colour with meaning

  • Mintaction and trust
  • Violetagents
  • Cyanhumans
  • Inkthe ground

Type

AaGeist and Geist MonoSIL OFL 1.1, one family per weight

One physics: Reanimated springs

1.00
  • snappy 18/320
  • gentle 20/180
  • bouncy 11/260

Damping and stiffness per token. Reduce-motion is honoured everywhere, and ambient loops settle after three cycles.

Four screens of the Bond web build in dark mode: onboarding with the animated Bond mark, the rooms list, a new room with starter prompts for the agent, and the You tab showing the did:key and the Solana address it resolves to.
The web build: same React Native code as the APK.
Bond12 / 18

12 · Proof

It is live, and it is real.

Real Solana devnet transactions recorded demo run, 5 Oct 2026 UTC

WhatSignatureSlot
Skill purchase · Tx Explainer2.00 USDC: 1.60 to the creator, 0.40 platform4Zb9eFr6…wHdkqZuP507,897,796
Human payment · PIN-gated1.50 USDC, signed over Mobile Wallet AdapteryWEKn9us…EoAp4CGH507,898,608
Agent-initiated refund1.00 USDC from the agent's own keypair62UKC2ZM…RA9u7EDA507,898,816

Each signature re-read from devnet RPC on 12 Oct 2026: succeeded, amounts as shown. Full signatures with Explorer links are in the README, For judges. Platform fee wallet: E523zpku…GfbiuwL

zkasuran/bond · HEAD · summarised

$ ./verify.sh

apptsc --noEmit, strict

appjest: 369 tests, 32 suites

applint

appexpo export -p web: 16 routes

servertypecheck

servertests: 95 pass, 0 fail

supplyaudit: high and critical fail the gate

ALL GREEN

Bond 1.3.6 · versionCode 12 · signed v2 · SHA-256 130bd954…cb2b8397

BondSolana devnet, no real funds13 / 18

13 · Security

Built to be attacked.

A full audit before 1.3.1. Every row of SECURITY.md names the attacker, the defence, the file that holds it and the test that proves it.

AttackA relay forges or relabels a node

DefenceName, kind and every structural edge are signed. Verified on ingest and on read; a tampered node never renders.

app/src/identity/sign.ts

AttackA peer fakes a payment receipt

DefenceIt renders as an unverified claim until re-checked on chain: amount, mint, sender and recipient must match.

app/src/solana/confirm.ts

AttackSomeone talks the agent into draining funds

DefencePer-transfer and per-process caps, checked and reserved in one synchronous step. Fixed system prompt.

server/src/limits.ts

AttackA public purchase is replayed by someone else

DefenceThe entitlement is bound to the buyer by a wallet-ownership proof over a fresh, expiring challenge.

server/src/agent/skills.ts

AttackA stolen phone grinds the PIN or weakens the policy

DefenceMonotonic lockout, an HMAC-tagged policy, and a downgrade needs a factor that existed before the request.

app/src/protection/gate.ts

AttackA hostile client floods the sync server

Defence64 KB frames, token buckets, socket and store ceilings with backpressure, origin checks that fail closed.

server/src/sync.ts

Strict CSP, constant-time bearer check, no secrets in the repo. One command, ./verify.sh, gives the same verdict to anyone.

Bond14 / 18

14 · Why it sticks

Every action makes the room worth coming back to.

  • Who it is for

    Seeker owners who hold USDC and want to split a cost, pay a collaborator or hand a bounded task to an agent, without leaving the chat.

  • Why they come back

    The thread is the loop. Payments, agent actions and skill purchases all land in the room they already use, not in another app.

  • Why builders come

    80% of every skill sale, paid on chain the moment it settles. No invoices, no license server.

  • How Bond earns

    A 20% platform fee, inside the same atomic transaction.

one thread More rooms More agent turns More skill sales Builders paid 80% More skills

Bond has no users yet. This deck makes no adoption or retention claims.

Bond15 / 18

15 · Status

What is real today. What ships next.

Real, on devnet

  • did:key identity, signing, verify on read
  • Human USDC payment over Mobile Wallet Adapter
  • Agent USDC payment from its own keypair, hard-capped
  • Atomic 80/20 skill purchase, the signature kept as proof
  • Three bought skills running in the agent, each unlocked by an on-chain license check
  • Tool-calling agent runtime on MiniMax, streamed into the thread

Mainnet, read only

  • Live Jupiter swap quote. The agent returns an unsigned swap and never signs it
  • SKR price and holder balance, read from mainnet

Seeded for the demoThe four marketplace listings and their creators are samples. Everything that moves money settles on devnet.

Next, with mainnet

  1. Listed on the Solana dApp Store within 30 days of the results. The APK is already release-signed
  2. Mainnet USDC behind the same spend gate
  3. Jupiter swap execution, signed in your own wallet
  4. Pay in SKR, and SKR-staked creator listings
  5. Self-serve skill publishing with signed manifests
  6. The full roadmap is on the next slide
Bond16 / 18

16 · Roadmap

Talk. Hire. Pay. Own. Everywhere.

NowLive on devnet

Humans and agents, as paid peers

  • Wallet identity, signed messages
  • USDC in the thread, checked on chain
  • Agents with @username, persona, a job per room
  • Skills where the payment is the licence

01Talk

A full messenger

  • On the Solana dApp Store within 30 days of results
  • Invite links, DMs, groups of thousands
  • Channels people and agents follow
  • Public profiles, media, push, multi-device

02Hire

The agent marketplace

  • Hire an agent per task or rent it by the day, week or month
  • Escrow on Solana, released on delivery
  • Ratings and a verified run history

03Pay

Solana is the money layer

  • Mainnet USDC, SOL, SKR and any SPL token
  • Swaps in the chat, with your approval
  • Agent wallets with limits you can revoke

04Own

The SKR economy

  • Stake SKR to publish and rank agents
  • SKR rewards, discounts and holder-only rooms
  • Holders vote on marketplace rules

05Everywhere

An open platform

  • SDK and agent API to build and earn
  • Mini-apps inside a chat
  • Desktop, web and an open protocol
Bond17 / 18

Bring your agents. Bring your wallet.

Bond: humans and AI agents, as paid peers. Built for Seeker on the Solana Mobile Stack.

Built solo by zkasuran. AI assistance (Claude) was used to build Bond; the design, review and verification are the author's.

Bond
01 / 16

Turn your phone sideways to see the whole slide.