Fat finger protection in the Baazaar

Many of us saw the unfortunate situation of a fren who lost a very nice gotchi due to fat fingering recently. While there may be some improvements we can do on the frontend UI to help prevent these issues, I’d also like to get the community’s input on another more permanent solution.

Idea: Add a two-minute window for all new listings in which they cannot be purchased, only cancelled by the listing creator.

The listings could appear in the Baazaar, or they could be hidden by default until the grace period has finished (except visible by the listing creator).

This would effectively prevent fat fingers, as the listing creator could see their mistake and react in time to remove the listing.

Potential side effect – those who manage baazaar bots could program their bots to purchase listings exactly when the grace period extends, essentially make it impossible for human participants to purchase undervalued listings in the baazaar.

What do you think frens?

7 Likes

I think a frontend solution is more appropriate. Or maybe a separate contract can be implemented that the frontend would by default use that implements this solution. The options interface could be used to toggle between the “safe” mode and the “danger” mode so that people that would like their listing to be shown immediately don’t lose that ability. I think the ability to list items right away especially during turbulent sale times like after a raffle is an important feature to keep for power users.

It would also help to make the decimal vs thousands unambiguous for our European frens. 5.555 reads as 5,555 to them, and the check box doesn’t help (nor might a 2 minute timer, since they don’t even realize they set a low price).

2 Likes

This may be a bit extreme, but would it be wise to simply prevent any listings that are priced at less than half the existing floor or last sell price?

Main downsides of this are:

  • Dev work required, probably not trivial
  • Market regulations go slightly against the spirit of “free market”
  • Opportunities for price manipulation

However, I can’t envision a case where anyone would want to sell something for less than half the previous trade price. Can even include protection for illiquid assets – maybe this regulation only matters if there are 5 or more units currently listed?

As an aside, there are similar safeties in place in the stock market (not that we’re looking to model after it) where trades can be “busted” if it’s clear they occurred due to a fat finger or other mistake.

Yeah I think this is the main problem. what if we just used 1’234.5? It’s what we use here and I believe it creates the least confusion (vs. 1,234 or 1.234).

1 Like

I’ve never seen this and I’m positive it would create a lot more confusion than any of the other systems :joy:

IMO the most fool-proof way would be to:

  • Put a notice in the UI that a dot should be used for decimals and no commas should be used in the input field (neither for thousands nor for decimals)
  • Return an error if you find any character in the input field that is neither a digit nor a dot (no commas allowed).
  • If the price in the input field does not include decimals, add ‘.0’ to the price that is displayed after the “Confirm price” checkbox (NOT in the input field).
  • if the price in the input field is >= 1000, add the comma to the price that is displayed after the “Confirm price” checkbox (NOT in the input field).

This has been happening for a long long time already due to the on-chain events. Bots listen for them and purchase very cheap item/portals/gotchis before you can even see the listing on the website.

I don’t think the 2 minutes would help a lot. If you are so much on “autopilot” while creating a listing that you miss the wrong price next to the “Confirm price” checkbox, how would you even realize that you set the wrong price in the next 2 minutes? I believe people would only realize after the item is gone and their balance did not increase by as much as they expected.

As I mentioned before, I think the way numbers are displayed should be changed.

For example, it can be 10 000, 200 000, and 2.5 to be consistent

Furthermore, numbers should be written, like “three thousand $GHST or six thousand dollars”

Maybe we also need to show the value in dollars for the newcomers as they are not familiar with $GHST’s price

2 Likes

Spacing with a smaller font for decimals? e.g.

image

I like the idea of using words to denote the value at the “confirm” part of your listing transaction too as a further safeguard. i.e. “Confirm you would like to list for fifty-three thousand and fifty GHST ninety five”

I think listing in any currency but GHST would be super confusing as there’s so many other currencies you’d have to add as potential options. We should be treating GHST as the core currency in the gotchi verse and leave it to users to figure out what that translates to in their local currency.

2 Likes

about price converting, it will be used once aavegotchi accepts buying with credit card I think (to onboard new users)

I don’t know how easy or hard this may be, but creating a UI warning/flag/banner for price variance- is it possible?

System is already tracking item prices- maybe people could get a warning if they’re listing something with 50% or more variance (on the high or low side) from historical/comparative pricing.

Edit: Similar to those fields that go from red to green on some sites- ranking the strength of your password, the UI could give reactionary feedback as person enters characters to provide some color/relativity to the price they’re entering in the price field.

My idea for this is that if botters are able to code simple things like “IF price below 1 GHST per BRS THEN buy” why can’t we code similar logic into our UI so that it becomes clearer to users they’re about to throw a gotchi or item into the piranha tank.

2 Likes