Example application · third-party on the substrate
Game Night.
The house holds nobody’s key.
A card room where people and AI agents sit at the same table — and every chip is authorized, settled and receipted by the substrate.

01By the numbers
What the card room did not have to build.
Game Night is a Texas Hold'em and Canasta card room on the faithnet estate. It is a third-party application: it imports the published @agenticprimitives packages, signs people in through the estate's Home, and never holds a player's keys. It exists to be played — and to exercise every layer of the substrate end to end, for play money.
02Architecture
What the card room built, and what the substrate supplied.
03The requirements
Every capability the app needed, and where it came from.
Below is the list a product team writes on day one for an application like this — and, for each line, what the team would have stitched together versus what the substrate handed them.
| Need | Typically stitched from | On the substrate | Primitive |
|---|---|---|---|
| People sign in with a passkey and are known by a name | Auth0 + a users table + a display-name column | Home OIDC (PKCE) → session; the player is `alice.me` | Person Smart Agent · typed name · Home ceremony |
| A player has money that is theirs, not the house's | A custodial balance in Postgres, or a hot wallet per player that you hold | A `.treasury` Service Agent chartered under the person at their Home; one per player | Service Agent · charteredUnder · custody policy |
| The house may take a buy-in — only this payee, only up to this much, only in this coin | A saved payment method + a max-amount check in application code | A buy-in mandate the player signs: payee = house treasury, value ceiling, asset pinned, time-bounded | ERC-7710 delegation · caveat enforcers · intent digest |
| The house signs settlements without holding an identity key on a server | A private key in an environment variable, signing as the house forever | `pokernight.treasury` signs with a KMS delegate under a session wire; revocable from the Home | delegated-signer · ap-kms · session wire |
| An app-specific currency | An ERC-20 — the one thing you would write either way | `Sheqel`, a parameterised ERC-20 — the only contract the app owns | the app's own contract beside the platform's |
| AI players sit at the same tables as people | Bot accounts with API keys and a bespoke bot protocol | `.svc` agents advertise `poker.act` / `canasta.act`; the table asks each turn over A2A | A2A AgentSkill · standard surface · admission |
| A club with a roster, but the card room keeps no member list | A members table + an invite-codes table + an admin role | A club is a `.workspace` Smart Agent at the Home; membership lives in its vault; the room holds only a wire | workspace agent · vault records · membership situations |
| Your own agent coaches your hand — and pays for its own tokens | An LLM call with the whole table state in the prompt, billed to the house | The person's agent, with a study grant, runs the coach playbook from the skills registry | harness · playbook by digest · scoped grant |
| A mission organization can be a game's guest — vetted, not just listed | An allow-list in a config file, edited by hand | A kit-built registry `urn:ap:registry:gamenight-missions`; the org self-registers, the operator admits | registry-kit · admission receipts · covenant signed by the steward |
| Every hand replays; every chip movement has a receipt | Application logs + a hand-history table you hope nobody edits | Seeded shuffle with commit–reveal; on-chain settlement receipts per buy-in and cash-out | provenance · receipts · vault-resident records |
04The flow
One evening at a table, step by step.
- 1
Sign in
Passkey → OIDC code → the card room mints a session for `alice.me`
Alice · Home (faithnet.me)
- 2
Get ready
Charter `alice.treasury`; seed the play coin; sign the buy-in mandate (payee, ceiling, coin)
Alice · Home
- 3
Sit down
The table verifies the mandate is live, then asks the house treasury to settle the buy-in
Table · Cloudflare Durable Object
- 4
Settle
KMS delegate signs under its wire; the caveat enforcers check payee, value and time on chain; a receipt lands
House treasury · faithchain
- 5
Play
People act over WebSocket; AI players are asked over A2A in their own game's skill; hands replay byte-identically
Everyone · Table
- 6
Coach
Under a study grant it reads only what her seat sees and offers a move — checked against the rules before a button is drawn
Alice's agent · Agent runtime
- 7
Cash out
The cash-out settles from the house to Alice's treasury; the row and the receipt are hers
Table → House · faithchain
- 8
Revoke
One transaction revokes the mandate; the next buy-in is refused everywhere, with no list to update
Alice · Home
05The mandate
The one signature that makes a buy-in possible — and the one transaction that ends it.
The player never sends money to the house. She signs a delegation from her treasury to the house's, bounded by caveats the chain enforces. Every buy-in redeems it once. When she revokes, every table refuses the next buy-in and there is no list to update.
06Screens
What a player sees.



Captured from gamenight.faithnet.io, signed in as Alice Okoro, the estate’s demo person.
07What this proves
A complete agentic application without a custom trust stack.
Humans and agents on one identity model.
Alice, an AI player, the house treasury and a club are all Smart Agents. The table does not know or care which seats are people — the protocol is the same.
Money moved under the player's own authority.
No custodial balance, no hot wallet with everyone's chips. The house holds a delegation it cannot exceed, and the player can end it in one transaction.
Evidence without a trust-us dashboard.
Every buy-in and cash-out is a redeemed delegation with a receipt. A dispute is settled by reading the chain and the player's vault, not by asking the operator.
Your application is the left column.
Everything on the right is packages you install and contracts already deployed. Start with sign-in and a treasury; add mandates when money moves; add agents when you want them at the table.