Contracts
Stores & storefronts
Collect the contracts you issue under one handle.
A store is your personal storefront — a single page that collects the contracts you issue under one handle, so takers can browse everything you offer in one place. Each user has at most one store.
Creating your store
Go to Your store (/store) and fill in the form (POST /api/v1/stores).
| Field | Rules |
|---|---|
| Handle (slug) | 2–40 lowercase letters, numbers, or hyphens; can't start or end with a hyphen. Must be unique. Cannot be changed after creation. |
| Title | Required, up to 120 characters. |
| Description | Optional, up to 2,000 characters. Tell takers what you issue. |
| Public store | Toggle. On = anyone can find and view it. Off = invite-only. |
| Invite code | Shown only when private. Leave blank to auto-generate one. |
When you save a private store with no code, the server auto-generates an invite code for you.
Public vs private stores
| Public store | Private store | |
|---|---|---|
Listed in the public directory (/stores) |
Yes | No |
| Shown on your profile | Yes | No (invite code is stripped from profile data) |
| Viewable by URL | Anyone | Only with the matching invite code (owner and admins exempt) |
| Invite code | None | Required (auto-generated if you leave it blank) |
The invite code is never echoed back to anyone but the owner.
Listing contracts on your store
There are two ways to attach a contract to your store. In both cases the server checks that you own the target store — you can only list your own contracts on your own store.
- At creation. The Create form shows a List on my storefront checkbox (on by default) once you have a store. It sends your store's ID as
storeId. - By editing an unaccepted contract. Use the contract's edit action (
PATCH /api/v1/markets/:id) to setstoreIdto reassign it onto your store, or to an empty value to remove it. As with all edits, this is only allowed while the contract has no takers.
Only PUBLIC, non-cancelled contracts appear on a store page. Private contracts you issue are not surfaced through the store.
Editing your store
Reopen /store to edit (PATCH /api/v1/stores/:id, owner only). You can change the title, description, and public/private toggle. The handle is fixed.
- Switching to public clears the invite code.
- Staying/switching private with no existing code auto-generates one.
What a visitor sees
A store page lives at /stores/:slug and shows:
- Store title, description, and owner (display name + reputation).
- The store's open public contracts, newest first.
- An aggregate capacity figure summed across the open contracts: total collateral and total max exposure, plus the open-bet count.
For a private store, a visitor without the right invite code gets a "Store not found" response — the store's existence isn't leaked. Owners can always preview their own store without supplying the code. See invites-and-private-contracts for how to share the link.