# 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