---
# System prepended metadata

title: ⚔️ Raid Guild Proposal <> Titan Maker ⚔️ - November 2022

---

# ⚔️ 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)

