OnChess

OnChess

Onchain Chess Game

OnChess

OnChess

Onchain Chess Game

The problem OnChess solves

OnChess allows players to play chess in a decentralized way, with a betting system backed by ERC-20 (USDC). It makes progress in UX research by leveraging important new features like passkeys and session keys.

Turn based games provide a huge challenge for blockchain games in terms of UX. Asking a signature from the user for every move is a huge usability barrier. We leveraged the power of smart wallets to implement ERC-7715. We chose ZeroDev as the application embedded wallet, as the Coinbase Wallet still don't have support for ERC-7715. We opted to support only Passkeys as signers, to improve usability as well.

Cartesi provides a great environment for reusing pre-existing software. It allowed us to use a popular javascript chess engine, so we didn't need to reimplement any chess logic. ELO ranking implementation is also included.

The application uses the PGN (portable game notation) format for storing games. So even if it doesn't have all the features that popular online chess platforms provide nowadays, it's possible to interoperate with other services.

Challenges I ran into

ERC-7715 is a very new proposal, and there are not so many implementations. Fortunately ZeroDev provides a working solution and good examples.

Embedded wallets connectivity is still also very new, and it's still unclear how users will feel confortable using passkeys conveniently to sign transactions without a standard way of explaining the transaction (blindness).

Asynchronicity and proper user feedback was one of the most challenging issues. I took inspiration from some bridge UIs that evolved a lot recently.

Tracks Applied (2)

Paymaster and Bundler

Chess is a turn based game, like many others. All movements are sent to the chain, that guarantees data availability in ...Read More

Gaming Track

Chess is among the most classic games. Now you can play it in a decentralized way, backed by crypto bets. The game is bu...Read More

GAMING with thirdweb

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion