---
# System prepended metadata

title: NFT42 Bot Requirements

---

# NFT42 Bot Requirements

## Out of the box

* verification of discord user with signed ETH 712 message
    * Presume need a role for this? *KO Unlock*? 
* Assign role based on number of NFTs
    * `0xFBeef911Dc5821886e1dda71586d90eD28174B7d` KODA v2 contract
        * 1 KODA - *KO Collector* role
        * 10 KODA - *KO Collector ⭐* role
        * 100 KODA - *KO Collector 👑* role
    * There is a v1 and there will be a v3 this year...
* Assign roles based on quantity of ERC20 tokens
    * We don't have a token yet...but will need this

_Owl - anything else we can use out of the box?_

Cost 0.5 ETH for maintenance and core support

## Bespoke requirements

* If account has a KO profile then give the *KO User* role - check this on verify step
    * `https://us-central1-known-origin-io.cloudfunctions.net/main/api/network/1/accounts/:address/profile/tiny`
    * If just address returned do nothing - they have not created a profile
    * If `username` exists then add: *KO Profile* role


* Check smart contract to see if artist (from access controls contract)
    * `https://etherscan.io/address/0xec133df5d806a9069aee513b8be01eeee2f03ff0#readContract`
    * `isEnabledForAccount` is true then add: *KO Artist* role

* Subgraph driven roles
    * `https://thegraph.com/explorer/subgraph/knownorigin/known-origin?query=Collectors`
    
```
{
  mostEth: collectors(first: 100, orderBy: totalPurchaseEthSpent, orderDirection: desc, where: {totalPurchaseEthSpent_gt: 10}) {
    id
    address
    totalPurchaseCount
		totalPurchaseEthSpent
  }
}
```

* over 10 ETH spent a *KO Patron 🐋* role
    * would be good to potentially expand this
* would be good to have this generic to run GQL command to role?


_Owl all make sense?_

Cost 0.5 ETH? to add this extra functionality
    