# ⚔️ Raid Guild Proposal <> Titan Maker ⚔️ - November 2022 ![](https://i.imgur.com/Ay0dnc4.png) ### Scope of work: Raid Guild will design & develop the Smart Contracts, CMS, and develop the UI for Titan Maker, an NFT Game Launchpad focusing on the Cronos EVM Ecosystem. ### Timeline: **Project Start:** Dec 15th 2022 *Escrow must be completed by this date **Project End:** March 15th 2023 *These are estimates based on if deliverables are recieved in a timely manner. ## Current Client Provided Assets - [Figma](https://www.figma.com/file/nUilhkuXx3GbHgiuBSZpCc/Launchpad-v1?node-id=1724%3A740&t=SESeLmTddPT50k76-0) file of all UI designs except for TitanMaker Team CMS - [DAO Maker](https://daomaker.com/) as a competitor's/reference model - [Send In Blue](https://www.sendinblue.com/) email service with API keys + docs ## Features ### Website Pages / Page Templates #### Global - Header - Dropdown States - Footer #### Home - Featured Content Slide - Project Launching Soon Section - Display card grid view of `Upcoming Project` records - Card - Image - Title - 2 Line Description - Up to 4 social links (Website, Discord, Telegram, Twitter) - Learn More link to project page - Pagination - Launched Project Table - Display table view of `Launched Project` records - Filter table view by specific tags - All - Web3 - Defi - Layer2 - Metaverse - Move to earn - Gaming - DAO - Sort by - Name (A-Z, Z-A) - Participants (Hi-Lo, Lo-Hi) - Total Raised (Hi-Lo, Lo-Hi) - Current Price (Hi-Lo, Lo-Hi) - Ended Date (Hi-Lo, Lo-Hi) - Search - String for name - Paginate Results - Collect Leads - Link to application form for IDO offers - Subscribe email for token purchasers #### Project Page - Hero - Display Project Title, Project Description, Social Links, and Apply For Sale Button - Display Token Logo, Token Ticker, Network (Preset Networks from choice in CMS), Token Supply, Projected Valuation, Initial Token Circulation, Initial Market Cap, Background Image - Product Details (stored as an array of Json objects) - JSON Structure: ``` [{ heading: "Example Heading Value", body: "Markdown Goes Here"},{ heading: "Example Second Heading Value", body: "Markdown Goes Here"} ]``` - Sidebar of Headings, when clicked change body of scrollable Markdown container - Road Map (stored as an array of Json objects) - JSON Structure: ``` [{ heading: "Example Heading Value", body: "Markdown Goes Here"},{ heading: "Example Second Heading Value", body: "Markdown Goes Here"} ]``` - Sidebar of Headings, when clicked change body of scrollable Markdown container - Team & Partners (stored as an array of Json objects) - JSON Structure: ``` [{ heading: "Example Heading Value", body: "Markdown Goes Here"},{ heading: "Example Second Heading Value", body: "Markdown Goes Here"} ]``` - Sidebar of Headings, when clicked change body of scrollable Markdown container - Tokenomics (stored as an array of Json objects) - JSON Structure: ``` [{ heading: "Example Heading Value", body: "Markdown Goes Here"},{ heading: "Example Second Heading Value", body: "Markdown Goes Here"} ]``` - Sidebar of Headings, when clicked change body of scrollable Markdown container Details Panel will have two sections: 1) Top and Sidebar nav 2) Markdown Viewer #### Sales Page ##### Apply For Sales Flow - Pull Data specific project data from DB - Icon - Title - Short Description - Sales Details - Token Ticker - Address Copy & Paste / Add to Metamask - Ask user to connect wallet - Scan wallet for any `tickets` - If user holds `tickets`, offer to Redeem Ticket - If user redeems `ticket`, store in `Project`'s `Confirmed Users` array - If user holds no tickets or elects to not redeem ticket, store in `project`'s `Unconfirmed Users` array - After submitting user, display confirmation page **NOT SCOPED BUT REQUIRED AS PER DESIGN DOC** - Direct user to either login or account creation if not logged in - If logged in, ask user to select verified wallets to apply with - If logged in and not KYC'd, alert user they must complete KYC or wait for KYC to be completed ##### Sales Flow - Display All project metadata as per design doc - Plus amount sold (not live) - Plus % sold (calculated from amount sold x total supply as per db record) - Buy Panel - Ask user to connect wallet - Verify wallet's ability to mint as per projects confirmed users array - Stablecoin dropdown (BUSD, USDT, USDC) - Display balanceOf for each Stablecoin Address - Price field (uneditable) - Amount field (uneditable, stateful depending on below slider) - Slider to move through [20%, 40%, 60%, 80%, 100%] of user's allotted supply - Total field (uneditable, stateful depending on above slider * price) - Buy Button (executes tx based on stateful parameters) - Add to metamask button - Link to deployed smart contract - If sold out, Display only Token Symbol, Ticker, Link to deployed smart contract, link to add to metamask, and balanceOf smart contract address - Plus link back to home to explore other projects - After user completes purchase, Display only Token Symbol, Ticker, Link to deployed smart contract, link to add to metamask, and balanceOf smart contract address - Plus link to claim page #### Staking Page Staking page drawing needs updating. Indicates APY emission for staking, but client indicated staking rewards simply increase Whitelist allocation likelihood. - Read how much TitanMaker coin user has staked - Allow user to withdraw coin - Allow user to deposit coin - Use same slider UI as Sales Page described above in `Buy Panel` ### Back End CMS - `Featured Content` Table - ID - Order-ID (1-5) - Image - Project Title - Array of Links - Learn More Link Location - `Projects` Table - ID - Metadata - Project Title - Project Cover Image - Project 2 Line Description - Array of Social Links - Token Data - Token Name - Token Ticker - Token Address - Sales Contract Implementation Address - Network - Preset Networks with Dropdown - Total Raised - Amount Sold - TGE Finished Time - TGE Start Time - Background Image Upload - Contract Data - Token Address - Amount Allotted per Ticket List (Gold, Diamond, Platinum) - `Project Details` Table - Project ID (Key to project table) - Metadata - Token Logo, Token Ticker, Network, Token Supply, Projected Valuation, Initial Token Circulation, Initial Market Cap - Product Details - Array of {heading, body} JSON - Road Map - Array of {heading, body} JSON - Team & Partners - Array of {heading, body} JSON - Tokenomics - Array of {heading, body} JSON - `Project Users` Table - Project ID (Key to project table) - Confirmed Users - `[{address, amount}]` array - Unconfirmed Users - `[{address, timestamp}]` array ### Admin / CMS #### Hero / Featured Content Manager - 5 Identical Forms containing Order Index, Image, Title, Array of Social Links, Brief Description, and Learn More Link - Save button that saves to DB #### Project -> Create - Create a new project, supply with all data described in `Projects` & `Project Details` tables - Also launches either ERC721 TitanMaker Sales Contract or ERC20 depending on token details populated with same form #### Project -> Edit - Edit a project saved in DB, allowing access to each item in `Projects` & `Project Details` tables - Submit any relevant data to smart contract on save #### Project -> Delete - Delete a project saved in DB - Cannot delete smart contracts, but will be unsearchable/unusable otherwise #### Project -> Smart Contract Edit - Allow Data Scientist to upload {address, amount} tuple array to DB and Smart Contract - Divesting controls ### Smart Contracts #### Tickets - Standard ERC1155 implementation - 3 Items (Gold, Diamond, Platinum) - Transferable to Sales Contract, ie Burnable for guaranteed Allowlist (handled off contract) - Mintable for variable prices #### TitanMaker Factory Deployer Contract - Collects information to pass as args to Sales Implementation contracts - If Token is ERC20 or ERC721 - Token Address - Total Supply expected - Price per Token - TGE Time (Unix Epoch) - Team wallet address (IDO Partner) - How many tokens per Gold, Diamond, or Platinum Ticket #### ERC20 TitanMaker Sales Contract - RBAC Tooling (Admin, Roles to share access to and manage specific variable controls) - `tokenAddress` variable to hold the ERC20 Token address (editable) - Receives and holds `tokenAddress` ERC20 Tokens - `Price` variable per token (editable) - `Trade` function that accepts BUSD, Tether, USDC in exchange for token at `Price` - `Swap` function that converts all stablecoins to one type - `amountPurchased(address => uint256)` mapping that tracks how many tokens a user purchased - `Refund` function that returns the core Stablecoin to the user in exchange for the `expected` ERC20 Token, not in excess of `amountPurchased` - `Divest` function that TitanMaker team can call to send arbitrary stable amounts to IDO team (accepts uint256 `amount`) #### ERC721 TitanMaker Sales Contract - RBAC Tooling (Admin, Roles to share access to and manage specific variable controls) - `tokenAddress` variable to hold the ERC721 Token address (editable) - Receives and holds `tokenAddress` ERC721 Tokens - `Price` variable per token (editable) - `Trade` function that accepts BUSD, Tether, USDC in exchange for token at `Price` - `Swap` function that converts all stablecoins to one type - `purchasedTokens(address => uint256[])` mapping that tracks which tokens a user minted - `Refund` function that returns the core Stablecoin to the user in exchange for the `expected` ERC721 Tokens, as per `purchasedTokens` - `Divest` function that TitanMaker team can call to send arbitrary stable amounts to IDO team (accepts uint256 `amount`) #### ERC20 TitanMaker Coin Contract - Standard ERC20 contract - Need initial emission schedule from client - Need max supply from client #### TitanMaker Staking Contract - Allow user to Send above TitanMaker coin and no others - Return the number of TitanMaker coins a user has staked ## Pricing & Timelines Timelines are presented in both time and dollar costs - Dollar costs are fixed estimates, time costs are not-fixed estimates. Time costs are meant as an estimation for feature completion scheduling/divestment for each feature. Features may take longer than estimated. Time estimates are unrelated to cost estimates - different tasks have different complexity and attention requirements, some tasks are easy but need a lot of review and some tasks simply require many hours of focus. There is no hourly rate. ### Website #### Client Side Client Side rendering depends on Data availability and should be done after Admin/CMS - **Develop Chakra UI Theme + Common Components** - 1,000 DAI half week - **Home** - 2,500 DAI 2 weeks - **Project Details Template** - 1,750 DAI half week - **Project Sales Template** - 2,500 DAI 1 week - **ERC20 Staking Page** - 2,000 DAI 1 week #### Admin/CMS - **Hero/Featured Content Manager** - 1,750 DAI half week - **Project Create, Update, Delete integration** - 1,750 DAI 1 week - **Project Smart Contract Deployment, Interaction, Editing** - 1,750 DAI 1 week ### Backend - **Setup, Deployment, Connecting API Keys to Front End** - No Charge ### Smart Contracts - **Tickets**: 5,000 DAI 1 week - **TitanMaker Factory Deployer Contract**: 6,500 DAI 2 weeks - **ERC20 TitanMaker Sales Contract** + **ERC721 TitanMaker Sales Contract**: 6,500 DAI 2 weeks - **Titanmaker ERC20 coin** + **TitanMaker Coin Staking Contract**: 2,000 DAI 1 week ### Total: 35,000 DAI ### Total Man Hours: 13.5 weeks ### Estimated Completion Time: March 15th 2023 Must be completed in a specific order (estimates based on Dec 15 start): 1) Smart Contracts (estimated delivery: Jan 15) 3) Admin/CMS (estimated delivery: Feb 15) 4) Consumer Side (estimated delivery: March 15) ## Excluded from current scope - User Account Management ($3,000 DAI / 2 week estimate) - Signup/Login Flow ($4,000 DAI / 2 week estimate) - KYC ($1,000 DAI estimate / 1 week) - Bridge ($4,000 DAI estimate / 3 week estimate) - Claim Page (No Drawing, unsure)