Voting TX Fee higher than potential reward


Based on just what I am seeing in Caleb’s daily email, only 4 out of 17 POIs have been voted on that have been challenged with the minimum of 50 tokens at stake. I realize that the voting periods for these are all ongoing, but it seems like there might be a trend here.

A rational cartographer would be wise to not vote on these (at least with a standard gas price) because the cost of the voting transaction fee is often higher than the potential voting reward at this price of FOAM token (~$.03). I know I have intentionally not voted on some of these for this reason. Here’s a list of transaction fees over the last week for interacting with the voting contract at “standard” gas prices (equal to or greater than 4 Gwei):

TX Hash - Gas Price - TX Fee
0xa615039a997c44783e48d02c11c484125f0f4cb4c86c15936749ab7713088f3a - 10 Gwei - $0.32
0x1b79f0cfc220e8298a8eeae8254a2fcc58524225dd456e08dc529ed8618652e2 - 4 Gwei - $0.14
0xc7881669cb18afaf7ac95dd90735beea66e18ec26b0abae82f8ba04ade5849f6 - 10 Gwei - $0.32
0x76ddf854bfe5b1baae122cc89a33bd745faf7fb260348ab95d2af5eda7e0001d - 5 Gwei - $0.16
0x680956eb33ec46ecfea70329eaccfc8f200902c16463b79a0e9738bddec4a218 - 10 Gwei - $0.33
0x58d7be1a23efe47198658d4e639de485f0f9317f1357991e7014b764cf2dfa9c - 4 Gwei - $0.13
0x156f07d630d6df02974c56a2b83e0955bc830aeb6d4c5e0938437077fd52cd6b - 5 Gwei - $0.16
0x07886dc44438a7ab3bd391b342b540e762e64077b7c7e265aef844efcee362df - 4 Gwei - $0.13

When you consider that the voting reward pool is 20 FOAM worth approximately $0.60 at current price, with an average transaction fee of $0.15, it only takes 4 voters to make this transaction unprofitable. We would not want to encourage as few as 4 votes per POI, anyways, would we? That doesn’t seem like an optimized amount of input.

If this continues, should we consider raising the minimum staking threshold?


I was thinking the same thing, I spent the previous month trying out voting on almost every challenge, most of which I just used 1 Gwei and reduced gas limits to really minimize my cost. (Which took forever to confirm, some days I’d just leave it pending overnight)

I don’t think it matters how many people vote, more like the amount of FOAM that is in the vote and how much you personally have or can use to vote with. The rewards are split according to the token weight.

I also noticed that 200000 Gas Limit works most of the time rather than the 500000 that Metamask suggests.


Don’t forget that voting is at least 2 transactions (and as many as 4):

  1. The initial vote
  2. The reveal
  3. Resolving the POI (if no one else does it)
  4. The acceptance of the voting reward (if one wins)


(Edit) – Oh, these are voting contract interaction costs not standard transactions?


@nameloceroom what is the lowest gas that can be used on these voting contracts? (edit)


Is there a difference? It’s the transaction fee for executing the contract. Just a standard external account pinging a contract to execute to full completion.

It looks like those transactions I listed use up around 200,000 gas.


Gwei determines the speed for the transaction to be completed
Gas Limit is basically the max amount you’d agree to be used up

Yes, there’s a slight difference in fees
Token Transfer transactions will cost less than Contract Transactions usually
In turn, the fees for contract transactions will depend on what computations is needed etc

Personally, I usually set my Gas Limit to be 200000 for contract Transaction which works most of the time.


Interesting thread, I’m often fighting with myself between the reward (for the sake of the minimum transaction cost) and the rage many time I feel when voting. I don’t care I’m losing money sometimes , I just need to rise my hand and let them notice “I can’t take this anymore” (cit.)… there are so many useless POIs out there…
Anyhow most of the time my wallet wiseness really stop me to waste money in transactions for things that are so dumb that anybody else with a common sense will vote in my place…

I propose, instead of a minimum stake (I don’t think it could solve the problem) a “batch claim” for rewards so that all those smallsmallsmall rewards (ie 0.05 FOAM :scream:) could be claimed in one transaction only. I already proposed it some thread ago.
Another technical solution could be a maximum number of voters allowed, proportional to the challenge staked tokens. Proportion could be evaluated autonomously with a ratio that keeps the minimum reward an integer (1). This is a flash idea that just came to my mind so maybe is dumb enough… sorry for that!


Same. And we might be missing a trick…

Here is some exploration from the last ~2 weeks of Validator activity on the map:

  1. This topic might be a more noticeable because of a recent spike in gas price being paid for map actions.
  2. As others said, the default gas estimates are way off – the default gas limits are much higher than what is actually being used.
  3. The average gas paid by verifiers is 0.000312 ETH ($0.05) and median 0.000171 ETH ($0.028).

Using the simple $0.05 average, a vote costs $0.10-$0.20. And a challenge costs $0.05-$0.15 (Challenge, Resolve, Claim).


Have a look at voting contract transactions at

You will see huge variation in fees. On the same page we have, paying $0.05 and, paying $0.0009 - that’s more than 50 times less for the same operation.

Since voting is not a race and voting on one challenge does not prevent voting on other challenges, there is no reason to pay premium fees suggested by Metamask and ethgasstation.

One caveat with cheap voting is that, I think, your salt is not remembered by web app until transaction is confirmed, so it’s better to save it somewhere manually (@Daryl_Foam, maybe something for developers to look into).


The thing we aren’t accounting for is time.

Sure it might be technically profitable to take down a bad POI that is staked at 50 Foam, but is it actually worth it?


So just to clarify, all of those TX fees that I listed above are actuals (gas used x gas price), not estimates (gas limit x gas price).

@foam_cs, based on your data, it costs an average of $0.10 (0.000571 ETH) to cast a vote. Then another $0.03 to reveal. Note that these averages include the people going into the advanced tab on MetaMask and turning their gas price down to 1 gwei. That comes to a total of $0.13, on average, to vote (cast and reveal). That still means that if there are more than 4 votes on the winning side, and all of the votes are cast with a similar number of tokens, each voter is losing money.

In terms of only explicit incentives, it makes no sense to vote on these. The only means of resolving this that I can think of or have seen proposed are (1) changing the smart contract to make it more efficient like this:

(2) Users intentionally turning gas prices down
(3) Increasing the staking minimum

The problem will probably continue to grow in the short and medium term, since scaling the Ethereum base layer with 1.x is moving slowly.

This is a great point. Other resources are at waste as well, including the time and effort required to validate and vote.

This all really circles back to the debate about explicit vs implicit rewards, and right now the map relies pretty heavily on the implicit ones.


I didn’t realized this until some days ago I saw the browser wasn’t remembering the salt. Thanks for the tip about the minimum gas… Didn’t think about it and make completely sense! Luckily I’m still taking notes of the salt code at every vote but sometimes I forget to do so…


Agreed, the dynamics of the launch network and initial proof of use is behind us. We must look for emphasizing the synergies of the FOAM ecosystem. Those mutual benefits must be laid in place to bring value to each of the individual components of the platform. POI’s must have an interaction / requirement component with the other components of FOAM for a virtuous cycle to emerge.

What is clearly missing is the dPOL and Zone Anchor mechanics that would make this clearly a value to the contributors. Until we are at that phase; I am reluctant to implement fundamental changes that may seem like a good idea without the explicit virtuous cycle I believe will emerge between all the components of the FOAM ecosystem.

Looking forward longer term, how can what we currently see as requirements in the existing FOAM ecosystem be further automated to eliminate human interaction as a bottleneck? I mean a lot of the conversation around current POI’s requires fact checking and ‘design’ choices. How would this be streamlined so that at the minimum, challenges are not required for things like phone numbers, or location of address?


The Devs are looking in to this issue. Thanks for bringing it up!


@foamspacer Thanks for brining this to our attention! We have merged a fix for this so SALT is saved in cache right away that will be pushed shortly to main net.