Options for SmokeSignal's Core Token

Right now, SmokeSignal is written such that users must have DAI to burn or tip on SmokeSignal. But it’s worth discussing some other options here. I’ll start by going over the pros and cons of the current setup.

DAI as the Core Token

When I see that a post has $100 burned, that feels like something to me. I can grasp it, I have a great idea of how much that is. If, instead, it’s 0.2 ETH, well… I can “feel” the range of that number, but it’s not as exact of a feeling. And for users who don’t care about crypto and only care about uncensorability, it will be completely opaque–a google search away, which in the context of UX design, is actually quite far. And the volatility means that you can’t just look it up one time, fix the exchange rate in your head (“1 ETH is about $500”) and use that forever; the rule of thumb rapidly becomes outdated.

This applies to all dapps, not just SmokeSignal. When values are denominated in a USD stablecoin, it’s instantly legible to all users. As soon as we move to any non-stable or obscure crypto, that benefit is lost and we have another significant barrier to a user feeling at home in the dapp UX.

(Now we could, for example, burn ETH and display the DAI value of that burned ETH - but when do we price that? When the user posted, or the moment the viewer sees it? Either way we run into weird issues. Let’s say I burn 0.2 ETH for a post today, and ETH grows by 100x in a year. Then do we display “$100,000 burned”, or “$100 burned”? Both are pretty critically inaccurate. When we burn DAI directly we avoid this problem entirely.)

ETH as the Core Token

Using ETH instead would lower the barrier to entry, and simplify usage of the platform. The user would only have to manage one balance, ETH; and tips would directly go into that balance–which would pay for both the burn value and the gas of the transactions.

Also, this would lower gas fees if I understand correctly, because we won’t need to use the ERC20 contract.

FRY as the Core Token

An obvious benefit to the user having to burn FRY, is that then this becomes a token sink for FRY, leading to an upward pressure on the value/price of FRY proportional to the usage of the SmokeSignal platform. This makes it very attractive, but there are a number of problems too.

First, the legibility of the value is even worse than listing in ETH, because FRY will be even more obscure and volatile than ETH. What does it mean to say that I burned 100k FRY on a post? Most people won’t have any idea what this question even means, and even I would have to go look at the price of FRY to even give a ballpark estimate.

Also worse is the onboarding: the user must be educated as to how to buy FRY and how to add it to their wallet.

Another issue is that this makes SmokeSignal a little less neutral, and the neutrality of SmokeSignal is at the very core of its unique value proposition. Foundry the entity can choose to use SmokeSignal essentially for free, because FRY holders benefit indirectly when FRY is burned.

Best of all worlds…?

@sjalq had some ideas about how to combine a lot of these together. It has to do with accepting any token on the front-end; then using UniSwap in the background to exchange for FRY and burn it; and encoding the current DAI value in the post data itself (and showing this value to the user). This would make it a sink for FRY (nice), keep the DAI denomination on the interface (nice), and allow users to operate with only ETH (nice).

However, this would increase the gas prices quite a bit, unless the user already had FRY, in which case it’d be about the same price as it is now.

Another downside is that this would be more complex to implement than any of the simpler solutions above.

@sjalq did I do your suggestion justice? Anything you want to add?

1 Like

@coinop-logan the best of all worlds I like a lot, is there any other crosschain swap protocol we could use that would in essence do the same thing with something other than gas fees?

One option would be to run the whole thing on xDai. It would be WAY faster and cheaper, and in fact would neatly collapse the whole dilemma between showing USD denominations vs using the gas token - because on xDai they’re the same!

But, it would increase the barrier to entry. A user would need to do this to get Metamask working on xDai–see “Step I” from this page. They’d also need to get xDai, which in my estimation is a bit more difficult than just getting DAI, but maybe not by much.

We’d also be staking (no pun intended) SmokeSignal’s resiliency on the xDai chain. This might be a hairy issue, because SmokeSignal uses “event logs” to post data, and fetching these from a web3 api provider has caused issues in the past. In short, the node you’re communicating with needs to not only keep all the data (be an “archive node”, which is technically optional for miners) but it also needs to be indexed somehow to make event retrieval fast.

On top of that, we’d have to figure out another api provider, because Rivet doesn’t support xDai. That’s too bad because they’re reliable for fetching event logs! I’ll send an email to Rivet now to ask if supporting xDai is possible or likely.

Oh, I think I misunderstood your question a bit. Let me give another answer.

The only way we can move away from gas fees entirely, for any operation, is to use some dedicated server (which itself would have operational costs, although minimal). Then we’d lose the unkillable nature of the system.

Did that answer the question?

Paging @sjalq, he has had a lot of thoughts on lowering the gas footprint of SmokeSignal.

If only there can be a way to do this without any risk, it will be a real deal for FRY.
I wonder if it’s possible to have the options to select between Dai and FRY. Or what if there is a fiat on-ramp to directly buy FRY?

assuming $10 is needed for a post, then user directly buy FRY and instead of the FRY being sent to the wallet connected, it will be sent to the Burn address?

I don’t know if it’s possible, just spitballing

I guess the major issue with the fiat on ramp would be the necessity for foundry to interact with legacy banking system. @coinop-logan look at what the Nix team are developing with their bridge having spoken to their team on discord what they are building might be usable to interact with for SmokeSignal. Rather than paying gas fees, there is a flat rate paid in NIX or wrapped NIX as an erc20 token, its a privacy swap protocol which does sit nicely with the anonymous spirit of foundry. It may be possible to burn dai and pay the burn fee in NIX might be worth a convo?

The problem with getting a fiat on ramp working with SmokeSignal is fundamentally one of scope, which is particularly bad with SmokeSignal because it must remain unkillable and pseudonymous.

A trustless, pseudonymous, unkillable fiat on ramp is still largely an unsolved problem in the space. We have DAIHard, and there is Bisq, but they each have their problems. DAIHard has not yet been marketed and refined from user feedback, and has no volume, so while it’s functionally complete, you couldn’t call it reliable for end-users.

That’s not to say we shouldn’t work on that problem, but I think it’s best to consider it separate from SmokeSignal; and between SmokeSignal and DAIHard (or some other attempt at an on-ramp), SmokeSignal really feels like the thing to go after urgently.

I haven’t taken a close look at NIX, and it seems like a lot for me to dive into at the moment. I wonder if any Fryers could take a deeper dive into it, and prepare something of a presentation for the community?

Their scaling solution is greek to me, and that would be a key. It’s not worth hooking up to some other tech to solve gas fees if their scaling solution isn’t solid and ideally somehow proven on a mainnet of some sort. To involve another chain would be a lot of technical work, even if interopability is one of their main selling points. We get a fuckton of things for free by sticking to Ethereum or EVM chains - we’d need a comparably brilliant and trustworthy set of claims to justify building a bridge away from that.

Also, keep in mind what we’re really doing is paying to immortalize data. It could be that we never find a truly cheap way to do that, or at least not soon enough to be relevant to us. We’re lucky that Ethereum lets us pay a single one-time fee to do so - or, depending on your viewpoint, unlucky, because I suspect this is something of a loophole that Ethereum will have to solve in the future. In fact @sjalq was saying in a call that Eth 2.0 requires a “rental fee” for storing data.

Here’s maybe a good way to make this a little more actionable. Can someone find any other blockchain solution to store a piece of arbitrary text? And does that tech give us reason to believe that any “cheap fee” claims will last even if the chain gets a lot of usage?

Here’s my suggestion for how we should go about burning funds on SmokeSignal:

  1. We should allow the burning of Ether, and use the USD price at the time of the post as the burn value of the post. I have already altered the smart contracts to look this value up from the MakerDAO price oracle.
  2. We should allow any token to be used for burning. In other words if the BAT community wanted to burn BAT we should allow that and use a combination of Uniswap prices and MakerDAO’s price oracle to tell us what the USD value at the time of the post was.
  3. We should not directly burn funds but send them to an accumulator contract where they can periodically be used to purchase $FRY from a DEX and then burn the $FRY.
  4. If a post is paid for in some other ERC20, we should burn 50% of that token and buy $FRY with the other 50% and burn that $FRY. This is so that we can attract other communities to use SmokeSignal because their token can increase its scarcity. It will also remove the incentive to attempt to fork SmokeSignal and capture the financial aspect.
  5. Tipping is a bit trickier since we can’t aggregate the tips. I still have to come up with an ultra gas efficient way to improve tipping.

I recommend we burn $FRY (as opposed to the tipping model) because it will maximally incentivize Foundry to build, improve and maintain SmokeSignal. It also doesn’t break the game theory since no single $FRY holder can benefit by burning $FRY in a post without suffering more of a financial loss.

1 Like

There’s a lot of positives to this proposal. But there’s one negative I want to point out.

Right now, it’s easy to say “SmokeSignal burns what you put into it”. This gives the platform a very neutral stance, and changes the feel from “I’m paying someone for exposure” to “I’m destroying money for exposure”. That’s an important distinction.

With Schalk’s proposed system, we are not “simply burning” tokens anymore. If a user comes with BAT to burn, the interface that says “Burn BAT” is 1. not entirely accurate, as some of it won’t be burned and 2. not as immediately provable, as the BAT will first go to some kind of holding contract.

When we burn only half of the BAT, and use the rest to buy and burn FRY, the motivation is that it’s good for Foundry. That should immediately alert you that what we’re doing is not simply “burning BAT”, and to market it as simply so would be dishonest. If we really were “burning BAT” (no matter how convoluted) then Foundry would not benefit. And this gets back to the neutrality of the platform.

Now, I’m not saying we shouldn’t make this move. But to make this change would remove some of the purity and simplicity of SmokeSignal as it currently is.

Personally I’m feeling split. If the community sentiment is generally still in favor of this change even taking into account the above, then I’m happy to go with you guys on this one.

I don’t think we have to compromise on the purity of the platform.

The basic guarantee we want is that the users should be able to know that

  1. No-one could burn a token without suffering a significant financial loss themselves
  2. The financial loss will in fact occur

The simplicity might have to fall by the wayside though. We can make educational materials detailing how we implement the above two guarantees.

1 Like

Hmm. Just thinking through this, what if I made a LoganCoin (LGN) in an attempt to get half off?

I could provide a DEX with LGN/FRY liquidity enough so that when I burn LGN on the interface, half of that LGN is sold for FRY, and both FRY and LGN is burned.

If I could also fool some oracles as to the price of LGN - something I understand is possible with weird liquidity games - then can’t I use SmokeSignal at a 50% discount?

You could get the 50% off if you made your own ERC20 and then provided Uniswap liquidity. You would not however be able to game the price as we can determine that from real liquidity on Uniswap. So if you burned say $10 worth of LGN, you could maybe mint $5 worth of LGN, but there would be a real burn of $5 that would occur in $FRY.

The question is if allowing the gaming of the 50% would be worth it to have all the other serious communities be able to burn their tokens?

One mitigation out the gate would be that whatever token you’re trying to burn would need at least 10k USD’s worth of ETH liquidity to be considered real. That would still allow an attacker to safe 50%, but they’d be incurring a significant opportunity cost.

That looks like a solution, keep it simple, whichever way you are looking at it you are burning for exposure, I don’t think the majority of users will really care that much how the transaction is processed. I do though think being clear in accessible documentation (an FAQ for example) for those that are, is important also.

1 Like

Yeah, for the user it will feel like either just spending some Eth, or approving an ERC20 and spending that