Skip to content

Ecocerts' multi-currency support and funding goal calculation #61

@s-adamantine

Description

@s-adamantine

Problem

Image

Supporting donations in multiple currencies (stablecoins and volatile assets like CELO/ETH) makes it difficult to create one singular "hypercert price." For example, if we choose to sell the assets in CELO, then the "hypercert price/funding goal", and "amount contributed" would change depending on market conditions.

Displaying multiple currencies is possible, but will clutter the page.

How do other projects do it?

Gitcoin and Giveth choose to show the historical price of the user's donations. So on project page, and on the user's profile page, they would convert the amount that the user has donated to its equivalent price at the time of donation.

Image Image

examples from Gitcoin

Ecocerts also have the added complexity of a "hypercert price".

The easiest way is to only accept donations in stablecoins, but this would also leave a lot of funding options off the table.

Proposed Solutions

1. Each hypercert can only be sold in one currency.

Hypercert creators would be able to choose what currency they want to sell their hypercert in. Once they've chosen, they won't be able to change it.

Pros

  • Avoids mixed-currency complexity

Cons

  • Makes it more difficult for donors to fund the hypercert, as they might need to bridge or swap their funds to a different currency.

2. Historical USD Tracking

  • Convert all donations to USD at the time of transaction
  • Display total funds raised in historical USD on the individual ecocert pages/profile pages
  • User will still be able to see the original currency and its historical conversion in their "transaction history" (see second gitcoin screenshot)
  • The "hypercert price" is also given in historical USD at the time of mint

Pros

  • Can donate in multiple currencies per chain

Cons

  • It's likely that the price will not be accurate anyway, as the hypercert will be on sale for some time, and the market conditions could fluctuate between the first and the last buyer.
  • More complex price calculation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions