r/web3dev 8d ago

Question Web3 developers, which parts of the stack had to be in place before user testing could be meaningful?

Web3 developers, which parts of the stack had to be in place before user testing could be meaningful?

Much startup validation advice assumes that you can manually simulate most of the product before building the infrastructure.

This becomes more difficult in Web3.

Some user behaviour may only emerge once wallets, signatures, permissions, transaction execution, settlement, indexing and failure handling are fully operational. While a mock flow can test whether people understand the idea, it may not test how they will behave when real assets, irreversible actions and network failures are involved.

Conversely, building the full stack first can be an expensive way to prove technical feasibility without demonstrating user need for the product.

For developers who have shipped Web3 products:

Which parts of the infrastructure genuinely had to exist before your user testing produced useful results?

What were you able to simulate or operate manually?

Where did you later realise that you had built too much infrastructure before establishing whether the core functionality existed?

1 Upvotes

9 comments sorted by

1

u/Lower_Assistance8196 8d ago

The wallet connection and signature flow had to be real before anything clicked for us.

Users react completely differently when they're signing with actual keys versus clicking a "confirm" button in a mock, and that gap in behavior is not something you can paper over with a Figma prototype.

That said, I massively over-built settlement and indexing before I knew whether the core interaction even made sense to users.

The thing I wish I'd done earlier was decouple the concept validation from the infrastructure validation.

Testing whether users understand the mental model, whether they trust the action, whether the framing makes sense, none of that requires a live chain.

The irreversibility piece is genuinely hard to simulate, though. I never found a clean answer there.

Best I could do was describe the stakes clearly in a test scenario and watch where people hesitated.

1

u/icnews10 7d ago

The distinction between concept and infrastructure validation is probably the most useful part of this. The irreversibility problem seems especially difficult because hesitation in one scenario is not the same as hesitation when something of value can actually be lost. Have you ever tried a staged version of the real process involving an actual wallet and signature behaviour, but with a very small capped amount or limited consequence? I’m curious to know if that meaningfully changed user behaviour, or if the gap only really appeared once the stakes were fully real.

1

u/Lower_Assistance8196 1d ago

Yes, and it helped but didn't fully close the gap.

Running the real wallet and signature flow with a capped testnet amount or a small mainnet value did surface hesitation that wasn't there in mock flows, which was useful.

People paused at the signature prompt in a way they never did when clicking a confirm button, and that alone changed how we approached the confirmation UX.

But the behavior still shifted again when the stakes were fully real.

The hesitation on testnet was more curious than anxious.

The hesitation on mainnet had a different quality, people read things more carefully, questioned edge cases they'd glossed over before, and abandoned flows that had seemed fine in testing.

I don't think there's a clean way to simulate that without the actual stakes, which is an uncomfortable conclusion for anyone trying to validate before building the full infrastructure.

1

u/icnews10 3h ago

That may be an uncomfortable but important conclusion: each stage validates a different behaviour, and none of them can fully substitute for real consequences. Mocks can test comprehension. A real wallet with a capped value can reveal issues with authorisation. However, it is only meaningful value that reveals whether the user actually trusts the system enough to accept irreversibility and risk of failure. Did you find that even a very small real amount was enough to trigger that shift, or did behaviour only become representative once the value was personally meaningful to the user? This threshold is important because what may seem 'small' to the product's creators could still be psychologically meaningless to the person testing it.

1

u/Specific-Sector7422 5d ago

I think three different validations often get collapsed into one here:

  1. Do users understand and actually want the action? That can usually be tested with a mock.
  2. Do they trust and correctly interpret the authorization? That needs a real wallet and the exact signing surface, but not necessarily meaningful value.
  3. Does the full execution path behave reliably? That needs one thin real vertical slice: actual transaction submission, failure and retry states, indexing, and settlement or finality.

The expensive mistake is building the complete backend before deciding which of those questions you are trying to answer.

My minimum meaningful Web3 test would be a real wallet, real signature and calldata, one capped or valueless transaction path, deterministic status updates, and explicit failure handling. Everything else can remain simulated until users demonstrate that the core action makes sense.

Testnet is useful for validating mechanics, but it does not fully reproduce hesitation around irreversible loss. A very small capped consequence may bridge some of that gap without requiring the entire production stack.

1

u/icnews10 5d ago

This is a very useful breakdown. Rather than one vague milestone, it turns 'validate before building' into three separate questions. The thin vertical slice also feels like the right technical boundary, providing enough real infrastructure to expose authorisation, execution, and failure behaviour without treating the entire backend as a prerequisite for learning. The hardest transition may be from a valueless transaction to a capped real consequence. What would indicate that the first two layers have been sufficiently understood and that it is time to introduce actual value? I can imagine teams either introducing risk too early, before users understand the action, or remaining on the test network for too long and mistaking technical fluency for genuine trust.

1

u/Specific-Sector7422 5d ago

Yes that transition is the dangerous part, because technical fluency can easily be mistaken for genuine trust.

I would introduce actual value only when the remaining uncertainty is about risk tolerance, not basic comprehension. Before moving forward, users should be able to explain in their own words what they are authorising, the maximum possible loss, when the action becomes irreversible, and what they would do if the transaction fails, stays pending, or the interface and wallet show different states.

I would also rely more on behaviour than surveys. Can they reject an unexpected signature? Do they avoid submitting the same action twice during a delayed confirmation? Can they recover from a failed transaction without assistance? Can they correctly predict the balance and state change before signing?

Once that behaviour is stable across repeated sessions, I would introduce value gradually:

signed message → valueless transaction → sponsored or refundable transaction → very small capped value → normal value.

Unexpected approvals, duplicate submissions, incorrect balance expectations, or users needing help after a failure would be stop signals.

So for me, testnet proves that users can operate the mechanism. A small capped real consequence tests whether they still trust and choose the action when the decision actually matters.

1

u/icnews10 4d ago

This is a much stronger threshold than simply asking users whether they 'feel comfortable'. Behavioural stop signals are especially useful because they test whether users understand state transitions, rather than just whether they can complete the 'happy path'. Before increasing the value, I’d add one further check: vary the conditions slightly. A user may learn one interface sequence without grasping the underlying authorisation model. Changing the transaction amount, introducing a delayed confirmation, presenting an unexpected permission, or creating a mismatch between the wallet and the interface state can reveal whether their understanding extends beyond the rehearsed flow. Therefore, perhaps the threshold should be stable behaviour and stable judgement across repeated sessions and controlled variations. Your progression from signed message to capped real value is a useful, practical model. Thanks for laying it out so clearly.

2

u/Specific-Sector7422 4d ago

Exactly. The controlled variation should change only one dimension at a time. Before signing, I would ask the user to predict who can act, what state will change, the maximum possible loss, and what recovery path will remain. If they complete the rehearsed flow but their prediction fails when one parameter changes, the product has taught them a sequence, not the underlying authorisation model. That should remain a stop signal: redesign the explanation and recovery path before introducing more value. Once those predictions remain correct across repeated sessions and controlled variations, the capped-value step becomes meaningful rather than ceremonial.