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.
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.
01 · The gap
Seeker ships a self-custody wallet in the phone. There is nowhere to use it with other people, inside a conversation.
Phone AI agents are bots for one person. They cannot hold value, pay anyone or work inside a group as a peer.
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.
02 · The insight
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.
03 · Solana Mobile Stack
Your Ed25519 did:key is generated on the device and kept in its secure store. It is never uploaded.
The wallet checks Bond's Digital Asset Links against the release signing key and shows Bond as verified.
Wallet and did:key both sign the binding. It is re-verified on every load and version-checked.
The device key signs chat, the wallet signs payments. Bond never sees the wallet's key.
Real device: signed APK on Android 15, Solana Mobile's reference test wallet, devnet.
04 · The product
People and agents share one room. Each carries a signed identity, and each can be paid.
A mention starts a real tool-calling turn. Every tool call and result lands as its own node.
USDC over Mobile Wallet Adapter, landing as a receipt that is re-checked on chain.
MayaVerified
RPC bill came in. 5 USDC each?
YouVerified
@Bond how much USDC do I have on devnet?
BondAGENT
calledsolana_get_balance
owner: AugM…FD22 · mint: USDC
returned
uiAmount: 12.4 · cluster: devnet
You hold 12.40 USDC on devnet. Enough to cover Maya.
YouVerified
PAYMENTConfirmedSettling
5.00USDCdevnet
ToMaya · 7xKX…9fQ2
Re-checked on chain · Explorer
$Send USDCSettles on Solana devnet
TOMaya · 7xKX…9fQ2
5.00USDC
Over your limit: PIN first
Scripted replay of the real flow, built in HTML.
05 · Agents
Streamed into the thread as server-sent events
solana_get_balancedevnet readsolana_transfer_usdcdevnet, cappedsolana_priceJupiter, mainnet readsolana_swap_quotequotes, never signsskill toolsunlocked on chainmcp_*imported, private hosts refusedThe caps live in server code and are reserved atomically, never in a prompt. The system prompt is fixed on the server.
Model-agnostic: MiniMax today, any OpenAI-compatible API. Adapters for Hermes and OpenClaw.
06 · Many agents
Every agent you make gets a unique handle and a persona it keeps in every reply.
Type its @username, with suggestions as you type. Only the agents you name reply, and each knows which replies were its own.
Add the same agent to another room by @username. Same identity and persona, a job of its own for that room.
Real device: three agents in one room, addressed by @username.
07 · The core idea
No accounts, no license server, no NFT mint. The chain is the database.
01 · Buy
Bond asks for your biometric or PIN before the wallet sees anything. The wallet signs over Mobile Wallet Adapter.
02 · One transaction
2.00 USDC in one transaction. Both legs settle, or neither does.
03 · Agent turn
04 · Unlocked
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.
08 · Live on devnet
Devnet transaction 3DqUdGZt…JAksTzdK
slot 507,807,070 · 2026-10-05 17:29:04 UTC
The purchase signature is the proof of purchase.
Real device and live server. Tx Explainer is a seeded sample listing; the payment is real.
09 · SKR
Every listing shows its SKR equivalent from a live Jupiter quote on Solana mainnet.
Hold SKR and get the creator's discount: 10% by default, hard-capped at 25%, read from your real mainnet balance.
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
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
SKR mint SKRbvo6G…NPGZhW3 · mainnet, read only
10 · Protection
| When | Default factor |
|---|---|
| Spend 1 USDC or more | Biometric |
| Use the signing key | Biometric |
| Run a skill | Off, raise it any time |
| Open the app | Off, raise it any time |
Real device: the PIN pad shuffles every time, then a confirmed receipt.
11 · Design
One system runs through the app, the website and this deck.
Colour with meaning
Type
AaGeist and Geist MonoSIL OFL 1.1, one family per weight
One physics: Reanimated springs
Damping and stiffness per token. Reduce-motion is honoured everywhere, and ambient loops settle after three cycles.
12 · Proof
Real Solana devnet transactions recorded demo run, 5 Oct 2026 UTC
| What | Signature | Slot |
|---|---|---|
| Skill purchase · Tx Explainer2.00 USDC: 1.60 to the creator, 0.40 platform | 4Zb9eFr6…wHdkqZuP | 507,897,796 |
| Human payment · PIN-gated1.50 USDC, signed over Mobile Wallet Adapter | yWEKn9us…EoAp4CGH | 507,898,608 |
| Agent-initiated refund1.00 USDC from the agent's own keypair | 62UKC2ZM…RA9u7EDA | 507,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
13 · Security
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.
14 · Why it sticks
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.
The thread is the loop. Payments, agent actions and skill purchases all land in the room they already use, not in another app.
80% of every skill sale, paid on chain the moment it settles. No invoices, no license server.
A 20% platform fee, inside the same atomic transaction.
Bond has no users yet. This deck makes no adoption or retention claims.
15 · Status
did:key identity, signing, verify on readSeeded for the demoThe four marketplace listings and their creators are samples. Everything that moves money settles on devnet.
16 · Roadmap
NowLive on devnet
01Talk
02Hire
03Pay
04Own
05Everywhere
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.
Swipe on touch screens. Prefer paper? The same deck as a PDF.
Turn your phone sideways to see the whole slide.