Call the move. Pick a market, say it goes up, down, or just that it moves, and pay a few dollars. Capped loss with no collateral nor liquidations. Live on Arbitrum One and Robinhood.
WHAT A USER DOES
Four choices and one payment. Pick a market from the priceable set. Say up, down,
or **it moves**, which pays if the market goes far enough in either direction.
Choose today, this week or this month. Pay a few dollars in USDG. The screen shows
exactly how far the market has to travel for you to be ahead, and what you get
back across a range of outcomes, before you pay anything.
WHY "IT MOVES" IS THE ONE THAT MATTERS
It is a position that something happens, either direction. A peer-to-peer
prediction market structurally cannot offer it, because whoever takes the other
side has to warehouse the risk of a move in either direction, and a random
counterparty will not. Only a dealer does. It is the single product here that
cannot exist without a real counterparty behind it, which is why we lead with it.
HOW IT WORKS, AND WHAT THE CONTRACT GUARANTEES
A purchase does not create a position. It creates an **order**, and your USDG sits
escrowed and fully refundable. We then buy the matching legs from the dealer. The
order becomes active only when every leg is confirmed and allocated atomically
against immutable fill records. If any leg is missing when the deadline passes,
the whole order voids and your premium is refunded, **and anyone can trigger that
refund**, not just us. Keeper silence cannot trap your money, and an
administrative pause cannot disable refunds. At expiry a single immutable fixing
is finalized per series, entitlements are computed from it, and the claim becomes
payable once USDG has actually been allocated to it. Payoffs and refunds are never
paid out of another buyer's escrowed premium. This is the behavior that is now
live on Arbitrum One, not a description of intent.
THE THREE DESKS BEHIND ONE TICKET
A buyer sees one button. Underneath it are three jobs a real trading operation
runs. An escrow desk takes the premium and guarantees the refund path on-chain. A
dealer desk sources the matching legs from an external licensed options dealer via
an authenticated API, so the hedge sits with a real book and the house never holds
your risk. A settlement desk fixes each series once, allocates real USDG against
claims, and lets anyone enforce the refund. Strikal is the single ticket that
puts all three behind a few dollars.
WHAT WE STATE PLAINLY
Coverage is enforced against signed **attestations**, not against the dealer's
books. The signer allowlist, the freshness window and the nonce stop a stale or
replayed quote. They do not detect a lie or a double-pledge elsewhere, and we say
so rather than imply a guarantee we do not hold. That attestation is signed by our
own keeper, a single named key, and the contract bounds what that key can do
instead of asking you to trust it blindly. "No collateral" means no additional
**user** collateral: you post the premium and nothing more, and you cannot be
liquidated. Running the book still takes dealer purchasing liquidity, a refund
reserve and a payout backstop, and that is our problem, not yours. This is the
candor an institutional counterparty expects, stated up front.
WHERE IT GOES
The contract reads quotes through a pluggable source, so the same deployed
contract can be fed by one dealer today or several tomorrow with no on-chain
change. The next step is best execution across multiple dealers, with the quote
attested by a decentralized network instead of by our key. We have built that path
as a Chainlink CRE workflow and exercised it end to end against isolated endpoints
with throwaway credentials. Production dealer credentials deliberately do not enter
a decentralized network: regular CRE HTTP exposes a bearer token to node
operators, and the confidential variant narrows that exposure without eliminating
it. That is an engineering decision we made, not a limit we hit.
LINKS
Live app: https://strikal-move.vercel.app
Contract, Arbitrum One: 0xed8D1F541a59a34a1CCd66766dfbD98023F3822c
Deploy tx: 0xafaca90459bedcb955d03df83e7a1971917a5bdc5408503395a8fca848304e7d
Source (Sourcify): exact-match verified
Robinhood Chain: address pending
Repo: https://github.com/jrcarlos2000/strikal-move
Trailer: [PASTE final cut link]