Ideamarket Docs
  • Introduction
  • 1-minute onboarding
  • Selling old tokens & unstaking
  • Navigating the app
    • How to make a good post
    • Citations
    • Post page
    • User Profile
    • Why rate posts?
  • $IMO token
  • So we've posted your thought
  • Offical T-Shirt
  • Join us on Discord
  • Build with us!
  • Use Cases
    • The New News
    • The Last Internet Argument
    • DeSci credibility, citations, and income
    • DAOs: Activism-for-profit
    • Prediction markets for public opinion
    • Crazy ideas
  • Roadmap
    • Partnerships & Integrations
    • Global knowledge graph
    • Bounties
  • PHILOSOPHY
    • Future epistemology (Ribbonfarm)
    • Status vs Truth
    • Summary of hypotheses
    • Heat Death of the Infoverse
    • Sun vs Wind
    • Bullshit recapture technology
    • Mirroring the world brain
    • Increasing population-scale comprehension
    • Journalism must become the trust-earning business
    • Exit the intellectual mafia
    • An Open Letter to Revolutionaries
    • Ideamarket Art
    • Does Ideamarket "measure truth"?
    • Beware "cryptographic truth" and the ledger of record
    • Meme Vault
  • FAQ
    • Why Arbitrum?
  • Past Experiments
    • Social account markets
    • The URL Market
  • Contracts
    • Quantstamp Audit
    • Overview
    • Bonding curve
    • IdeaTokenFactory
    • IdeaTokenExchange
    • InterestManager
    • IdeaTokenVault
    • MultiAction
    • IdeaTokenNameVerifier
  • Legal
    • Terms of Service
Powered by GitBook
On this page

Was this helpful?

  1. Contracts

IdeaTokenFactory

The main task of the IdeaTokenFactory is to manage the creation of new markets and IdeaTokens and storing the parameters of such.

  • addMarket: Adds a new market. This method may only be called by the admins.

    • string marketName: The name of the market (e.g. Twitter)

    • address nameVerifier: The address of the IdeaTokenNameVerifier for this market

    • uint baseCost: Bonding curve parameter, see bonding curve docs for more details

    • uint priceRise: Bonding curve parameter, see bonding curve docs for more details

    • uint hatchTokens: Bonding curve parameter, see bonding curve docs for more details

    • uint tradingFeeRate: The percentage trading fee collected on buy and sell operations. This value is denominated by 10,000, meaning to set a 1% trading fee the value 100 should be passed here since 100/10,000 = 1%

    • uint platformFeeRate: Same as above, just for the platform fee

    • bool allInterestToPlatform: If set to true all interest generated by the tokens in a market goes to the platform (e.g. Twitter) instead of being distributed to the owner of the individual token

  • addToken: Adds a new IdeaToken to a market. This method can be called by anyone.

    • string tokenName: The name for the token

    • uint marketID: The market id on which the token is to be listed

    • address lister: The account which is seen as lister of this token. Not stored in the contract, only emitted as event

When addToken is called it is checked that the name for the token does not already exist for another token in that market and that the name is valid. The name validity check is performed by the IdeaTokenNameVerifier which is unique to each market. If all checks are successful then a new MinimalProxy contract is created which points to the IdeaToken logic contract and ownership is transfered to the IdeaTokenExchange.

Additionally the factory offers other utility functions to query market and token details and also three admin-only setters:

  • setTradingFee: Changes the trading fee for a market

  • setPlatformFee: Changes the platform fee for a market

  • setNameVerifier: Changes the IdeaTokenNameVerifier for a market

PreviousBonding curveNextIdeaTokenExchange

Last updated 4 years ago

Was this helpful?