Reading the chain.

The arcade server is not answering, and this page has not been told what is in the machine.

The claw is not yours yet.

Asking the arcade.

  1. A pull costs 500 PKL, taken from your arcade vault. Test PKL has no monetary value.
  2. The 500 PKL buys an attempt, not a piece. If you miss, it is gone.
  3. How many attempts a wallet gets is read off the contract and is not known here yet. A miss spends one of them.
  4. There are 500 pieces and every one is different. One taken is gone for everyone, and how many are left is not known here yet.
  5. Your driving decides whether you catch anything. It does not decide which piece you get.
  6. Which piece comes from a commitment the operator published before you pulled, and from the 32 random bytes this browser drew for you. Because that seed is yours and the commitment came first, nobody, the operator included, can name the piece your catch will yield. It can still move which one you get, by how it resolves the pulls in front of yours.
  7. The server judges the grab, and you are trusting it for that. This page will not call the game trustless.

Attempts left on this account: not read yet.

The chain has not been read yet, so nothing here is enabled.

Pieces left-

Taken-

Commitment-

Links under it-

A pull500 PKL

Your attempts-

The chain proves which piece. The operator publishes the hash of a secret before any pull, the contract refuses a secret whose hash is not that commitment, and it computes the piece from that secret, the 32 bytes your own browser drew, and the pull id, over the pieces still unclaimed. So for a seed that is yours, and that this page never reuses, nobody can NAME the piece your catch will yield, and nobody can choose it after the fact. Naming it and moving it are not the same thing: the piece is that hash modulo the pieces still in the machine, and every pull resolved in front of yours reshuffles what is left, so which piece you get can still be changed by how and when those pulls are resolved. Yours is fixed once every pull older than it is resolved. That condition is not decoration: whoever holds the chain knows the link your pull id will be fulfilled with, so anybody who took a seed from somebody else would be playing with a number that could have been ground against that link until it named a piece.

The server judges the grab, and you are trusting it. Whether the jaws closed on anything is computed by the arcade server from the intents you sent, exactly as the arena computes its collisions. The chain does not simulate the claw and this page will not pretend it does. A compromised server can grant a catch and it can deny one, and because it holds the link before it decides it can work out what each waiting pull would yield and report only the catches it likes: piece by piece that is a veto, and across a run it is a selection. What limits it is that a miss reveals its link too, so anyone holding the log can recompute the piece a denied catch would have produced and a pattern of denials is a public fact rather than a suspicion. That is the whole of the mitigation and this page will not write it up as anything stronger.

What stays trusted, said rather than buried: the operator sees your seed before it reveals, and could stall a pull it dislikes. Stalling blocks every player rather than one, is publicly visible, and a pull left unfulfilled past 300 EVM blocks is refundable by anyone at all. The chain's 250 ms EVM block interval is a scheduling target, so that delay is about seventy-five seconds rather than a promise. Past it the stall becomes a choice: refunding the pull at the head resolves it without spending its link, so that link can be passed to whoever is next. The skipped player loses only the wait, since the stake and the attempt both come back, and one public refund names them. Before the deadline pulls are fulfilled oldest first, and when the contract's own cursor falls behind, advance(steps) moves it and is open to anybody too.

How many attempts an address gets is read off the contract and is not known here yet. So one person with enough addresses can take the whole collection, and nothing in the contract can stop that on a public testnet. How many addresses that takes is this page's own arithmetic and it has not been told the numbers yet. Everyone gets a fair shot at the collection is not, and this page will not say it.

How it is decided sets out the same boundary at length, beside the arena's. Test PKL has no monetary value.

A pull is one transaction. The driving is not, or it would be a transaction per frame, so the claw is driven over the arcade server's socket and the server judges the grab. What the chain decides is which piece a catch yields, from a commitment published before you pulled and from 32 random bytes your own browser drew.

How it is decided sets out what the chain proves about this game, what the server judges, and what stays trusted.

Pickle Arcade runs on Pickle Chain Testnet, chain ID 78270. Test PKL and test ETH have no monetary value and are not redeemable for anything. Chain state may be reset without notice.