ubiquity / business-development

Grant and Proposal documents
1 stars 4 forks source link

Taiko ZK grant application #62

Closed Hodlatoor closed 1 year ago

Hodlatoor commented 1 year ago

submitting grant on Taiko by Aug 30th 2023.

ubiquibot[bot] commented 1 year ago

@Hodlatoor The time limit for this bounty is on Sun, 20 Aug 2023 03:14:40 UTC

0x4007 commented 1 year ago

You should just do what the DevRel specifically stated is their need. No research required just need to jump through their hoops for submitting a grant on adding a feature for issuing permits with NFTs.

@rndquu issuing payment permits for POAPs rfc

rndquu commented 1 year ago

Questions:

  1. To clear the terminology, POAP is a simple ERC-721 NFT, right?
  2. To apply for Taiko's grant we somehow need to integrate "NFT rewards" in our contracts, right?
  3. Must these "NFT rewards" be connected to payout permits or we could create a simple contract like "issue NFT for every bounty hunter who solved at least 1 issue" ?
0x4007 commented 1 year ago
  1. Yes
  2. Yes
  3. Would be most elegant if we did a permit (same flow)
Hodlatoor commented 1 year ago

there we go. more of what I needed - thanks!

rndquu commented 1 year ago

Regarding the "NFT permits" feature.

Pros:

Cons:

We could add "NFT permits" in addition to our uniswap's permits (and configure the desired permit behaviour from the bot's config).

Under the hood it would work this way:

  1. Deploy our own instance of ERC-721 token for permits.
  2. When a bounty hunter solves an issue he gets a permit URL
  3. When bounty hunter claims a permit at https://pay.ubq.fi then: a) NFT permit is minted for him b) NFT permit is redeemed (i.e. burned) and then payout is transfered to the bounty hunter's address

So we will need to top-up the "NFT permit" contract balance from time to time.

Step 3 is divided in 2 substeps: mint NFT and burn NFT. When bounty hunter is about to claim his payout NFT at https://pay.ubq.fi he will have 2 options: 1) Mint and redeem (this way bounty hunter will get a payout instantly but NFT will be burned) 2) Just mint (this way bounty hunter will be able to pass his payout to some other account for redeeming)

0x4007 commented 1 year ago

I don't understand why the bot can't carry a balance of NFTs and we permit a transfer of a single NFT? I assume this isn't possible with the current permit architecture?

Otherwise the next obvious solution would be to just have the bot pay for regular transfers.


To be clear I don't personally care all that much for POAPs/NFTs in this context, but usually startups should listen to users and accommodate in order to find product-market fit so it's important to be open minded, especially if a customer is willing to pay for its development.

What if Takio rejects a proposal? Then we would need to refactor everything back.

Coding starts after the grant is transferred.

rndquu commented 1 year ago

I assume this isn't possible with the current permit architecture?

This is not possible with the current uniswap's permit2 contracts because they work only with ERC20 tokens

but usually startups should listen to users and accommodate in order to find product-market fit

I haven't noticed bounty hunters who were willing to get NFT payouts. Seems like everybody is comfortable with plain old ERC20. That is why I don't want to break the existing permit2 functionality but propose to add "NFT permits" in addition to "ERC20 permits".

So if we want to have NFT permits then we need to modify uniswap's permit2 contracts.

Hodlatoor commented 1 year ago

@rndquu @pavlovcik based on this - what is the scope for the grant application we all think is useful and easy to develop?

for eg: payment in nfts or just POAP additions by the bounty master which hunter earns alongside ERC20 payments?

@pavlovcik also need to finish setting labels

0x4007 commented 1 year ago

I haven't noticed bounty hunters who were willing to get NFT payouts.

We never offered the option. Also from what I understand, POAP NFTs are the only compensation for the community in https://github.com/taikoxyz/taiko-mono/pulls?q=is%3Apr. This repository is a clear example of significant community developer activity incentivized by NFTs.

This is interesting to explore now that I think about it more because minting an NFT is more cost effective than acquiring stablecoins.

Hodlatoor commented 1 year ago

so are we (easily) able to, from a technical point of view, to deploy the option of POAP NFTs as a form of payment because that seems to be the scope for the grant at the moment. need confirmations to proceed.

On Tue, Aug 15, 2023, 4:36 PM アレクサンダー.eth @.***> wrote:

I haven't noticed bounty hunters who were willing to get NFT payouts.

We never offered the option. Also from what I understand, POAP NFTs are the only compensation for the community in https://github.com/taikoxyz/taiko-mono/pulls?q=is%3Apr. This repository is a clear example of significant community developer activity incentivized by NFTs.

This is interesting to explore now that I think about it more because minting an NFT is more cost effective than acquiring stablecoins.

— Reply to this email directly, view it on GitHub https://github.com/ubiquity/business-development/issues/62#issuecomment-1678663227, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5CGQTGW2SMHPJ6II2JSBYDXVM7H7ANCNFSM6AAAAAA3OLEEWY . You are receiving this because you were mentioned.Message ID: @.***>

rndquu commented 1 year ago

I haven't noticed bounty hunters who were willing to get NFT payouts.

We never offered the option. Also from what I understand, POAP NFTs are the only compensation for the community in https://github.com/taikoxyz/taiko-mono/pulls?q=is%3Apr. This repository is a clear example of significant community developer activity incentivized by NFTs.

This is interesting to explore now that I think about it more because minting an NFT is more cost effective than acquiring stablecoins.

We could introduce an NFT similar to sushi's furo streams. When a bounty hunter solves his 1st issue then he can mint an NFT from which he can withdraw tallied up payouts from time to time (related issue).

So if we save permits in a DB, then when a bounty hunter solves a few issues he could call a new bot's command like /payout and get a URL to https://pay.ubq.fi/ which calls smth like NFT.withdraw() (i.e. sum of unclaimed payouts). If this is the 1st time a bounty hunter claims a reward then a new NFT is also minted via the Multicall contract.

This would be a custom contract (i.e. modified uniswap's permit2 for usage with ERC721) which would be responsible for rewards.

Again, this feature should go in addition to our existing URL permits.

Hodlatoor commented 1 year ago

Finished this up and submitted. Thanks for everyone's input.

https://github.com/taikoxyz/grants/issues/38

ubiquibot[bot] commented 1 year ago

[ CLAIM 200 WXDAI ]

0x5c747b83...b37227Dfe

If you enjoy the DevPool experience, please follow Ubiquity on GitHub and star this repo to show your support. It helps a lot!