on-chain follow

Priority
P4
Description
Web2 follow
Developer
Bruce Darcy
Flag for upcoming standup
Notes
Business case for off-chain follow? DJ3N token for moat in decentralized environment?
Related to Tasks (Related SMS PRD)
Related to Tasks (Related SMS PRD) 1
Related to Tasks (Related SMS PRD) 2
Related to Tasks (Related SMS PRD) 3
Related to Tasks (Related SMS PRD) 4
Status
Not started
User Story
As a fan, I want to follow my creators on DJ3N

@Bruce Darcy with the update!

-Aggregate off chain follows into merkle tree daily posted to chain with original off chain follow timestamps.

-Users approve dj3n to follow for them (One time approval)

-To claim tokens or airdrops, users submit merkle proof of their follow to “Update it into the chain”. -

-Assisted by ui, users should never hear or know about merkle tree. Proof automatically generated for them to submit through backend + frontend

Archive

Centralized case:

The stickiness is the platform experience and content on the platform.

Decentralized case:

Lego piece effect?

Decentralized questions?

On-follow, need “Permission” to view fans balances to selectively airdrop? Gasless signature?

Technical comments (Eddie): ”Writing” could be token gated (DJ3N token)

“Reading” could be difficult.

TG convo

DakBuk.eth, [Aug 26, 2022 at 2:39:12 PM]:

Here's the idea I'm spitballing for users being able to follow without making a transaction

Users do signature to follow. Signatures aggregated by us, make merkle tree out of signatures. Post new following merkle tree daily. If a user wants to upgrade their follow to offical on chain (or claim tokens) they can do so by sumbitting the proof that their signature was part of the merkle tree for a given day that they followed. Then we post one transaction daily that represents an aggregated list of all follows for that day, for only needing to store merkle root on chain.

That's assuming that user's can do the signature relatively easily when following, and that's not too bad ux like doing a transaction is

Do we have to redirect to aaron's app to get signatures?

That would be a fully trustless version since we cant fake users signatures

We could debate on how to do a trustful implementation without signatures, and what that would mean/how it would work potentially if we need to, but we also need to understand the decentralization tradeoffs of that

Maybe we have user's produce a one time signature that we can follow or unfollow anyone on their behalf, and then that goes on chain

"Approval for follows"

lol

Eddie Atter, [Aug 26, 2022 at 2:50:24 PM]:

What's the volume here? About how many follows could we handle in a transaction? What's the gas like?

DakBuk.eth, [Aug 26, 2022 at 2:51:04 PM]:

Unlimited, its stored into a merkle tree, so no matter how many we have we only need to submit one 32 byte data field

To claim though, users will need to submit the proof, which scales logarithmically with size of merkle tree, so also not a big deal

We could presumably need to do this daily though

or however often we want to "record" followers on chain, but I would recommend daily, especially on cheap harmony

Eddie Atter, [Aug 26, 2022 at 2:54:11 PM]:

Okay, so potentially best of both worlds. We'll have our web2 database anyway, and we aggregate and update the chain every so often.

What if:

- user changes their wallet address

- another dapp wants to write to our tree (after receiving user approval)

DakBuk.eth, [Aug 26, 2022 at 2:55:32 PM]:

1. User changing their wallet may need some sign off from the old wallet for transferring.

2. We can lock down the dapp to only allow us to follow on other behalf. Theoretically I think we could open it up to allow anyone to submit these merkle trees of following on other behalf, but I think that introduces a lot more variables to think about

Also, presumably we would have an on chain way to users to block their previously submitted off chain signature approval in the event they want to or our keys are stolen