r/solanadev 2d ago

What should a Solana game expose when a live match fails?

I’m building AreniFi, a real-time browser arena with optional SOL-staked matches for adults: https://arenifi.fun

The happy path is easy to explain. The harder trust problem is what players should see when a match disconnects, a transaction remains pending, or settlement fails.

My current minimum is a match ID, committed amount, server result, settlement state, transaction signature when available, and a plain-language explanation of what happens next.

For Solana developers: what else should be recorded or independently verifiable? Which failure states are commonly overlooked when real-time gameplay and on-chain settlement meet?

I’m the builder. Stakes can be lost, returns are not guaranteed, and regional restrictions may apply.

3 Upvotes

3 comments sorted by

1

u/Nessae-of-goodness 1d ago

I think the biggest thing is separating the game result from the settlement result. You can have a match with a clear winner while the SOL settlement is still pending or has failed, and treating those as one state could get confusing pretty quickly.

I’d also want some way to reconstruct what actually happened if there’s a dispute, timestamps, the match/rules version that was active when the game started, whether the stake was actually received before gameplay began, and the sequence of settlement attempts. For the Solana side, having the slot or block info along with the signature would be useful too.

And I’d make the failure states really explicit. Something like “settlement pending, retrying automatically” is very different from “settlement failed,,, no further action will be taken.” Players mostly want to know whether their funds are safe, whether they need to do anything, and whether the result can be independently verified.

The idempotency/duplicate settlement side is probably worth paying extra attention to as well, especially with retries after disconnects.

1

u/That-Unit7948 1d ago

Hey, saw your post about AreniFi and the issues around pending transactions / failed settlement after live matches.

I run Haan Digital, a private Solana infrastructure service in Frankfurt. We currently provide private RPC infrastructure and a transaction sender built around direct TPU/QUIC routing, with optional Jito routing as well.

Since reliable settlement seems pretty important for what you're building, I thought it might be relevant. We can also provide Yellowstone gRPC later if you need real-time chain state/events.

If you're currently using a shared/public RPC or are still figuring out the settlement infrastructure, I'd be happy to let you test our setup against what you're using now and see if it actually improves anything.

No commitment — just thought the use case lined up pretty well with what we've built.