Tactyra
PROJECT PAPER · LOCAL DEMO

A small game.
A public agreement.

Tactyra is no-stakes tic-tac-toe for two wallets. The point is not a prize. It is a short, inspectable agreement about whose turn it is and what counts as a result.

Play, without the wager.

A tiny onchain game does not need to introduce a token, reward economy or deposit. Tactyra keeps the recognizable game and makes the state transitions explicit: an invitation, an acceptance, alternating moves and a finished board.

This is for two people who already have each other's wallet addresses and want to inspect the same rules. It is not a matchmaking service or a private chat. A wallet is not proof of a real-world identity.

From invite to final move.

  • The creator supplies a different, nonzero opponent address and creates an invitation. The creator plays X.
  • Only that opponent can accept and become O. Before acceptance, only X may cancel.
  • X moves first. The two participating wallets alternate moves into empty squares.
  • Three marks in a row, column or diagonal ends the game with a winner. A full board without a line ends in a draw.
  • An active player may resign, ending the game in the other player's favor. A finished or cancelled game cannot resume.

There is no built-in timer or automatic timeout. An opponent can stop responding and leave a game waiting. The current contract does not offer a dispute process or a way to force another player to move.

The contract keeps the agreement.

TactyraBoard records the two participant addresses, nine cells, current turn, move count, status and winner. The sender of each transaction determines who is acting. The page cannot grant an outsider permission to play.

The contract has no administrator, owner, proxy, treasury or payout path. Business actions are nonpayable; there is no deposit, token approval, pool, prize or refund promise. The rules are plain enough to read alongside the interface.

Read the contract source ↗

Network costs. Public moves.

Connecting a wallet only shares its selected public address and network. A future configured deployment will require an independent wallet confirmation for every write. Each confirmed invitation, acceptance, move, cancellation or resignation consumes native network Gas. Tactyra does not add an entry fee.

Gas estimates depend on the selected network and current state. The interface must show the action, selected account, estimated Gas and maximum estimated network fee before requesting the transaction. It must reject a changed account, wrong network, mismatched deployed code or unrelated receipt.

On a public network, participant addresses, moves and outcomes may be indexed by anyone. A finished game is not deleted. Do not use it to make claims about a person's real identity or private activity.

Prepared is not deployed.

The same project contains this long website, the independent game room, TactyraBoard source, pinned local compilation and local business tests. The tests use a temporary in-process chain; they do not prove the contract was deployed to a public network or independently audited.

No network, public contract address or explorer has been selected. Reads, fee estimation and writes remain disabled. Connecting a wallet does not bypass this boundary. The project's X account is still pending.

Keep old boards legible.

This first contract is not upgradeable. A future change in rules uses a new version and a new address, with the old boards left readable. The interface must name the active version and explain any migration rather than silently replace it.

Before any public deployment, the network, public deployer account, code artifact, Gas budget and runtime hash must be reviewed. The local deployment preview creates only an unsigned transaction. A separately authorized controlled signer is needed to sign and broadcast. No private key belongs in this website.

Possible later work includes read-only game history and clearer invitation sharing. Matchmaking, ranking rewards and a token are not current promises.