# Welcome

Introduction to 3gm

3gm is an Ethereum NFT focused data science group working within the Discord ecosystem.

We offer three main services:

[3gm Discord Bot](/3gm-discord-bot/commands)

[3gm Notification Services](/3gm-notification-services/alerts)

[3gm Minting Services](/3gm-minting-services/3gm-contract-minting)

For detailed information on the respective services, please visit the links above.

You can find 3gm here:\
\
Twitter: [https://www.twitter.com/3gmdev](https://twitter.com/3gmdev)

Discord: [https://discord.gg/3gm](https://discord.com/invite/3gm)

Website: [https://3gm.dev](https://3gm.dev/#/) and [https://mint.3gm.dev](https://mint.3gm.dev/)

Opensea: <https://opensea.io/collection/3gm-genesis-pass><br>

![](https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2F1eAdwm8KSbqoZk0W3lAk%2Fimage.png?alt=media\&token=87e9c98a-74f2-4074-b2cd-793cc4a5d044)<br>

Opensea: <https://opensea.io/collection/3gm-bot-pass>

<div align="left"><figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FywFUy4W78llFcnfu9HQ9%2Fimage.png?alt=media&amp;token=bd7d5ebe-90ea-4c7c-aad1-ba1e7e7043e3" alt=""><figcaption></figcaption></figure></div>


# Access

How to get access to 3gm


# Commands


# /access

Bot access information

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FUQ3JNh3uHvXzb2LHqfnP%2Fimage.png?alt=media&amp;token=ae663b78-a88a-4a92-9e78-a9125201449c" alt=""><figcaption></figcaption></figure>


# /alerts

Manage alerts

This command allows you to manage both alert types, **contract** and **wallet**.

{% embed url="<https://bot.3gm.dev/3gm-notifications/alerts-contract-interactions>" %}

{% embed url="<https://bot.3gm.dev/3gm-notifications/alerts-wallet-notifications>" %}


# /webhooks

Setup and manage webhooks. Currently 4 advanced webhooks are supported by 3gm. Please note, webhooks are only allowed in servers with less than 25 users.

Please open a ticket for more information if you are interested in webhooks for a server over 25 users.

{% embed url="<https://bot.3gm.dev/3gm-notifications/webhooks-verified-contracts>" %}

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2F4jw0MSqS6UEprh5lL1s0%2Fimage.png?alt=media&amp;token=968806df-0098-4e06-9041-2d8145e0285f" alt=""><figcaption></figcaption></figure>


# /blur

Various blur data

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FyYmE4v8OLphLE5Nj4V10%2Fimage.png?alt=media&amp;token=e33ce8c6-5c2e-4d8f-9bfc-e077a05031fc" alt=""><figcaption></figcaption></figure>


# /changelog

View recent changes to the bot

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FDBK0qU6xQ8bfiTkko0ma%2Fchangelog.png?alt=media&amp;token=0a9fc828-1dcc-4333-9c4d-2853de7bfcab" alt=""><figcaption></figcaption></figure>


# /coins profit

View ERC20 Profit/Loss


# /contract

/contract mint\
\
**Version 1 Only:** \
This command generates data to use on the 3gm mint contract for contract minting. Read more: <https://bot.3gm.dev/3gm-contract-minting>

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FWGipNFIf5ABTiAPqIODs%2Fimage.png?alt=media&amp;token=167d4f83-2fb2-4c08-b2b4-5c3aedd148cb" alt=""><figcaption></figcaption></figure>


# /find

Find all tokens of a collection across all of your wallets

## Inputs:

* *collection*: opensea collection link, opensea slug or contract address of the collection

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FT2crUWMYmXTvu75ZKYq5%2Ffind.png?alt=media&amp;token=40b39c22-e84a-4389-9a6f-a51d159d5d6f" alt=""><figcaption></figcaption></figure>


# /friendtech profile


# /friendtech activity


# /friendtech profit


# /friendtech holders


# /friendtech trades


# /gas

Calculate costs of a transaction for an upcoming mint.

## Inputs:

* *gas-usage*: **gas units** used by a mint transaction
* *mint-price*: **eth value** of your transaction
* *quantity*: **amount** of NFTs per transaction
* *max-gas*: highest **gas fee** to base the table on

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FlzZ2GxqKVFgLYQ9tAJdv%2Fgas.png?alt=media&amp;token=1be000cc-e5e2-4e7c-a59b-f1f77ac4de28" alt=""><figcaption></figcaption></figure>


# /history

Profit command history. This command tracks profit command usage starting from the beginning of September 2022. Each time you run a command it will add or replace an entry from your history.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FXhj1M0uK2bGsnvfCad75%2Fhistory.png?alt=media&amp;token=8239d7ab-5911-4021-b8ac-c63f72ad1c10" alt=""><figcaption></figcaption></figure>


# /info

Shows available commands

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FcaeboHTdNroJ6wBOlcPh%2Fimage.png?alt=media&amp;token=485d7749-8d9a-430a-92e8-48de7a305217" alt=""><figcaption></figcaption></figure>


# /invite

As a perk to 3gm Genesis Pass holders, an invite is granted that allowed any discord user full access to the 3gm Bot while the inviter holds a Genesis Pass

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FxlacGGOAP4RD5uYDWvNp%2Fimage.png?alt=media&amp;token=9a081f50-07d6-4cbf-b816-683ec49fc618" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FqvXFXpQkSlHQ3wHPUxhe%2Fimage.png?alt=media&amp;token=5e12c618-a632-44f7-8d5c-97db0694f034" alt=""><figcaption></figcaption></figure>


# /listings

View all of your opensea listings  of a specific project

## Inputs:

* *collection*: opensea collection link, opensea slug or contract address of the collection

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2Fpd09twG9VilN8giBc2db%2Flistings.png?alt=media&amp;token=0471f580-c9e7-46de-99c3-a95266fc6661" alt=""><figcaption></figcaption></figure>


# /mints

Get an overview of all your mints in the past day and past week.

## Subcommands:

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2Fu5QT0JCk0BtbjMmGMwKx%2Fimage.png?alt=media&amp;token=c704754d-575d-4e26-a7d9-1bb7c40110ba" alt=""><figcaption></figcaption></figure>

## Details:

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2Fs2fVCudGJBn6ozLGh0Uq%2Fimage.png?alt=media&amp;token=bc84d42f-3ce9-4fd7-bb5e-344a4e40f962" alt=""><figcaption></figcaption></figure>


# /node

Access information of a purchased 3gm Node

**Subcommands:**\
/node info\
/node status

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FStgxNDGE8j06niMRryNR%2Fnode.png?alt=media&amp;token=57e605f6-15a6-49e8-b4c0-0f6b7730dc3c" alt=""><figcaption></figcaption></figure>


# /portfolio

Track value of all tokens in your wallets

## Subcommands:

* /portfolio all
* /portfolio wallet

## Details:

* ERC721, ERC20 tokens
* Sort collections by value, floor price, token count and various volume parameters
* Hides collections with no volume

## Inputs:

* *all*: command will run on **all** wallets
* *wallet address*: command will run on specified wallet

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2Fq6RgdYFB5rOgDyssaBIH%2Fportfolio.png?alt=media&amp;token=78b6d242-8dfd-4913-99f4-e65c5f7a9109" alt=""><figcaption></figcaption></figure>


# /privacy

The privacy command allows you to toggle between public and private command mode. Read the details closely

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FcjQsoLXfP8JHPc6xS9HY%2Fimage.png?alt=media&amp;token=6aa01ded-df3f-47df-973e-8b02c000dd07" alt=""><figcaption></figcaption></figure>


# /profiles

The profiles command allows you to create and delete wallet profiles as well as toggle between your active profile. Management of the profile's wallets remains with the /wallets commands.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2F75MqkRzqIWqtuUL4GKGn%2Fimage.png?alt=media&amp;token=af628396-c33e-4df2-9c26-61a0ed10269f" alt=""><figcaption></figcaption></figure>


# /profit

Calculate profit/loss of mints and secondary purchase of a specific project

## Details:

* No limit on wallets
* Supports ERC721 and ERC1155 contracts
* Supports Opensea, X2Y2, LooksRare, Sudo, Blur, Alpha Sharks, and Element marketplaces
* Supports Gem, Genie and Blur sweeps
* Support Blur Bidding
* Tracks mints, buys, and sells, including WETH and BLUR Pool
* Support for contract minters.&#x20;
* Accounts for gas costs for minting, buying, approvals, transfers and reverts
* Has refresh button for easy updates
* Has share button for easy sharing

## Inputs:

* *collection*: opensea collection link, opensea slug, contract address of the collection, blur links, nerds, etc

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FMLQ9GA8tD6UZR4xLcfWE%2Fimage.png?alt=media&amp;token=0fb4ba7c-d2e3-4bd4-a844-6c2bc501379e" alt=""><figcaption></figcaption></figure>


# /sales

Track your most recent NFT sales

## Subcommands:

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FCAAquHUAYe9DLI6oeVUd%2Fimage.png?alt=media&amp;token=78eb5871-1de3-45aa-ae5f-7976d768df0a" alt=""><figcaption></figcaption></figure>

## Details:

* Supports all marketplaces

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FWS2t0KsUhRtnf3C5ry67%2Fimage.png?alt=media&amp;token=6402b815-baee-4e98-983c-1501bb199769" alt=""><figcaption></figcaption></figure>


# /stats

Opensea stats for a collection

## Inputs:

* *collection*: opensea collection link, opensea slug or contract address of the collection

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FHL9NqE73zCcsUqQpWyDM%2Fstats.png?alt=media&amp;token=5f590b1b-76ce-45da-bafc-5e269bc4bc67" alt=""><figcaption></figcaption></figure>


# /search

Opensea stats for a collection

## Subcommands:

![](https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2Fhz9vvHRT8yjN6LpK8t6J%2Fimage.png?alt=media\&token=b4b942a2-a504-4e2d-bc32-49a4bf139e1d)

## Inputs:

* *input*: twitter user URL, twitter handle, twitter id

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FY88M7EVNuWZoiugIxbfo%2Fimage.png?alt=media&amp;token=297d7f96-3f2d-4b7f-aa02-df54a4ef7bf4" alt=""><figcaption></figcaption></figure>


# /tokens

View tokenIds that you hold for a given collection

## Inputs:

* *collection*: opensea collection link, opensea slug or contract address of the collection

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FFGzxF3Hbn8VtWpBzwFIZ%2Fimage.png?alt=media&amp;token=8c3dcf60-40ee-419b-b9cc-4bcd4c7f062c" alt=""><figcaption></figcaption></figure>


# /verify

The verify command allows you to verify ownership of an Ethereum address holding a 3gm access token. This functionality operates in the same manner as Vulcan Authentication.

The bot will ask you to place text within your OpenSea profile bio to confirm ownership. Once completed you can delete the text.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2Fpb1QD8eviOpcgq1c7yPp%2Fimage.png?alt=media&amp;token=6253fff0-1856-4af6-87f6-c39139db2058" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FeB7UFxmjAhUm4ib6LajS%2Fimage.png?alt=media&amp;token=12a01203-502d-49cd-9e6b-34acbbada536" alt=""><figcaption></figcaption></figure>


# /wallets

Usually the first step when interacting with the bot for the first time. Manage your wallets to further interact with the bot

## **Subcommands:**

* /wallets add \<input>
* /wallets remove \<input>
* /wallets reset
* /wallets list

## Inputs:

* *add*: add up to **60 wallets** via text input
* *remove: remove up to **60 wallets*** via text input
* *reset*: reset all your wallets
* list: **view** all of your added wallets

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FrStgMeiejKCryQZB49dc%2Fimage.png?alt=media&amp;token=185cd1ba-202c-4126-889f-836dee630a9b" alt=""><figcaption><p>Add via text input or file</p></figcaption></figure>

Note: ENS is supported.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FEl2CXhOoQZoiZkDpDl0C%2Fwallet%20view.png?alt=media&amp;token=447f9d91-289a-41a5-8a9e-6ccf93f8c5d6" alt=""><figcaption></figcaption></figure>


# /watchlist

Track opensea floors of your added collections

## **Subcommands:**

* /watchlist add
* /watchlist remove
* /watchlist reset
* /watchlist list

## Inputs:

* *add*: add a **collection** to your list
* *remove:* remove a **collection** from your list
* *reset*: reset your list
* *view*: show the floor of your list

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FRW6iLnFxjlU79uR5MFiR%2Fwathclist.png?alt=media&amp;token=7b66e8c1-d118-4fe6-90ab-2b845d5c9c11" alt=""><figcaption></figcaption></figure>


# Commands


# /friendtechbot wallet


# /friendtechbot trades


# /friendtechbot search


# Alerts


# Wallet Notifications

Monitor activity of a wallet and receive webhook notifications.

### Features:

* highly performant (5-20s faster than existing solutions)
* supports advanced transaction types
* supports Blur bidding system
* three display modes

### Setup:&#x20;

1. Create new alert group

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FCnL39Lgb2FHxQWKnXQib%2Falerts.png?alt=media&amp;token=db0bd7e1-47ea-4f5f-bcf1-513c1df838cf" alt=""><figcaption></figcaption></figure>

* Description - Add a description to remind you what the alert is for.
* List of Addresses - Wallet addresses to track. Can be any format, commas, spaces, etc.&#x20;
  * Format: address, address, address, ens, ens, ens
* List of Address Names - Replaces wallet address or ENS in the alert with your custom name.
  * Format: address:name1, address:name2, address:name3
* Discord Webhook URL / Telegram chat ID&#x20;
  * <https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks>
  * <https://www.alphr.com/find-chat-id-telegram/>
* Discord Ping Role - Adds a role ping to the alert. Must be the UID of the role.  <https://discordhelp.net/role-id>

### Alert Modes

* Mints - any NFT mints with optional quick task tool field
* Buys - secondary buys
* Sells - secondary sells
* Transfers - currently supports only basic ETH transfers
* Contract Deploys - self explanitory&#x20;
* Contract Calls - contract interactions from wallets that aren't other categories
* Coins - ERC20 token swaps

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FtPc7uT4EeuY5aaZLFBd1%2Fimage.png?alt=media&amp;token=56d1891c-2804-42e4-a0f6-4e951ffb7563" alt=""><figcaption></figcaption></figure>

### Display Modes

* Full embed - Text message with full discord embed
* Small embed - Text message with compact discord embed
* No embed - Text message only

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FY1X2fIJiLj4u6jcza2A9%2Fimage.png?alt=media&amp;token=70400029-a498-443a-9008-20e61247440c" alt=""><figcaption></figcaption></figure>

### Telegram Setup

Create a Telegram Group

Invite 3gm bots (all 5)

* @ThreeGMAlerts1Bot
* @ThreeGMAlerts2Bot
* @ThreeGMAlerts3Bot
* @ThreeGMAlerts4Bot
* @ThreeGMAlerts5Bot

Get Telegram Chat ID by inviting bot @RawDataBot <https://www.alphr.com/find-chat-id-telegram/>

* get ID from&#x20;

```
    "chat": {
        "id": -907304945,
```

* Use the ID in the Discord Alerts setup
* remove @RawDataBot from your group


# Contract Interactions

Monitor activity on a smart contract and receive notifications on Discord or Telegram.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FeJJQlf75OaF8FPyxU44Q%2FalertSet.png?alt=media&amp;token=fd50e076-d1f3-41cc-9c26-120c3533dee6" alt=""><figcaption></figcaption></figure>

### Setup: Create new alert

* Contract Address - Any **contract address** on the ethereum chain
* Description - User's own information about the contract.&#x20;
* Custom Settings
* Discord Webhook URL or Telegram Chat ID - Where user receives the alerts
* Discord Ping Role - Adds a role ping to the alert. Must be the UID of the role.&#x20;

### Alert Modes

* User Calls - Monitor any transactions to a contract by a set wallet address
* Block Mints - Get a summary of mints in a block
* Block Secondary - Get a summary of sales in a block

## Custom Settings

* filter - Function name of verified contract or function hex to filter
  * setPaused or 0xf2d12b12 or \*
* owner - Wallet address to monitor, default value picked up from owner() function
  * wallet address or \*
* min mints - Minimal amount of mint transactions in a block to send alert
  * 0 or positive integer
* sale type - Get alerted only if specific type of sale happens
  * 0 - all
  * 1 - orders
  * 2 - offers
* min sales - Minimum amount of sales of chosen type
  * 0 or positive integer
* min volume - Minimum volume of chosen type of sale
  * 0 or positive float(0.2, 0.35, 1, 5)

### Telegram Setup

Create a Telegram Group

Invite 3gm bots (all 5)

* @ThreeGMAlerts1Bot
* @ThreeGMAlerts2Bot
* @ThreeGMAlerts3Bot
* @ThreeGMAlerts4Bot
* @ThreeGMAlerts5Bot

Get Telegram Chat ID by inviting bot @RawDataBot <https://www.alphr.com/find-chat-id-telegram/>

* get ID from&#x20;

```
    "chat": {
        "id": -907304945,
```

* Use the ID in the Discord Alerts setup
* remove @RawDataBot from your group

<div><figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FzmFxNwzHg27R2NxAiQw7%2FgemMints.png?alt=media&amp;token=d50b40af-32fd-4f4c-8e8b-32d432699465" alt=""><figcaption></figcaption></figure> <figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FbCrCBf4rmHjXf1uczgWB%2FgemSales.png?alt=media&amp;token=a710dfb4-be9a-4328-bf06-48a9808cf026" alt=""><figcaption></figcaption></figure> <figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FNfVIbwCAV7Jqr2cCLTGC%2FuserCall.png?alt=media&amp;token=04becaf2-c1ef-4e38-88e0-5b93fe0e2a4c" alt=""><figcaption></figcaption></figure></div>


# Monitors


# Verified Contracts

Overview of newly deployed and verified contracts.

Details:

* Find new projects before others
* Deep insights on contracts verified on etherscan.
* Deployed history and related actions
* Insights on linked 3rd party applications like twitter
* Functions
* Variables
* Rug notices and tactics

## Categories:

Each category has its own webhook url. User can choose to divide them or send them to a single channel.

* Verified contracts
* Proxy contracts - Embed colours signal different type of proxy contract, which is mentioned in Notes sectionManifold contracts

<div><figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FErsJupGWvw9tsiPG8CfF%2Fproxy.png?alt=media&amp;token=012ad75d-35b7-420a-b544-a66a03ddcdd3" alt=""><figcaption><p>Proxy Contract</p></figcaption></figure> <figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FD99zR4vv8m0bn1Bi57ob%2Fvercontracts.png?alt=media&amp;token=7807e187-5146-4726-bd76-e2b7ae9e070b" alt=""><figcaption><p>Verified Contracts</p></figcaption></figure></div>


# Manifold Calendar

Overview of claims on Manifold.

Details:

* Collection information
* Claim settings
* Deployer information

Optional role tag for free and paid live claim

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FwahzA2svFOPFG7AKFHls%2Fmanifold.png?alt=media&amp;token=bdd5e4c3-4dfb-4e2b-9f62-b8d2b80dc4de" alt=""><figcaption></figcaption></figure>


# NFT Mint

Consists of 2 types of alerts about live or upcoming mints.

## New NFT

Notifies of a collection having its first NFT minted. \
Displays most useful information from the transaction. \
Links to Opensea/Contract of the collection.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FUgZcuv40BJuiWjsEQlxK%2Fnewnft.png?alt=media&amp;token=86fa9cf9-5bfb-4d19-bab6-22419086b4c5" alt=""><figcaption><p>example of New NFT alert</p></figcaption></figure>

## Live Mint

Notifies of a collection having started its public sale. \
Shows the first transaction that is able to be minted by any wallet address. \
Alerts differ between paid and free mint and also notifies of a collection going from a paid to a free sale.\
Displays transaction information and quick task links for various minting bots.

* Mint To Sender - Red circle signals that the transaction input contains the NFT receiver's address
* Contract Mintable - Green circle signals that the NFT contract allows other contracts to mint from it

Darker embed colour means the token is of type ERC1155, lighter colour is ERC721.\
Green embed colour is free mint, red is paid mint.

Quick tasks for some bots might not be available depending on the NFT contract.

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FVISYIwChVm3mqBEqb9FR%2Fnewmintable.png?alt=media&amp;token=33c87793-fcdd-4733-8aac-afa22b06ba27" alt=""><figcaption></figcaption></figure>


# 3gm Contract Minting

Mint multiple NFTs with one transaction through a contract

## 🤖 Benefits

* Replacing multiple transactions with a single contract mint significantly reduces gas usage
* In case of a revert upon sell out or other reasons, reverts for a small fee

## 🤖 Functionality

User deploys contracts that can execute functions on NFT contracts. Main controller contract sends instructions to the contracts all in one transaction.&#x20;

## 🤖 Setup

* Get started at <https://mint.3gm.dev/>
* Purchase access with purchaseAccess(uint256 months) function.
  * 0.12 eth per month for non-3gm pass holder
  * 0.06 eth per month for 3gm Bot Pass
  * 0.03 eth per month for 3gm Genesis Pass
  * Purchase any amount of months
  * Access is fully extended if renewing an active subscription
  * Hold 3gm bot pass or 3gm genesis pass in your active wallet to maintain discount.
* Deploy contracts through deployClones(uint256 amount) function
  * One contract costs around 42,000 gas units to deploy
  * Deploying wallet is the only one with control over the contracts
  * Contracts are reusable
  * Contracts get saved from index 0 (50 deployed contracts is 0-49 range)
* Mint an NFT contract with any available mint function
* Withdraw NFTs with withdraw function if needed
* ABI in discord

## 🤖 3gm Browser Extension

Web: <https://mint.3gm.dev/>

Link to download: See Discord


# Minting functions

Explanation of all possible ways to mint with the contract.

Main functions to use are **mintAdvanced** and **mintTransfer**. They have only one difference and that is auto withdrawal during the mint transaction. This consumes less gas than mint + withdraw separately, but using it during gas war will cost more in gas fees overall.&#x20;

Functions **mintData** and **mintTokenGate** has a rare usage.

* use **Data** in contracts with mintTo(wallet address), token ID or unique value parameters.
* use **TokenGate** in contracts that whitelist a wallet through balanceOf check for different NFT.
  * example: A wallet can mint once if it holds any Azuki token, without it restricting the ID of the same Azuki token for next wallet mint.

## Legend for special variables

* **Value Per One**
  * Default value > 0
  * If the value is 0, the mint price will be funded with the ETH sent from the main wallet.
  * Input mint price of one mint in WEI to fund mint price directly from clones.
    * Using eth from clones will save around 5k gas per clone, it is a huge difference during gas wars, but on low gas it is not important.
      * around 0.125 ETH saved on a 50 clone mint on 500 gwei
  * Use disperseEth to fund your clones, you can withdraw them whenever with withdrawEth.
* **Transfer Type**
  * Default value > 0
  * 0 > executes transfers with transferFrom() function
    * usaully cheaper
  * 1 > executes transfers with safeTransferFrom() function
* **Total Supply Modifier**
  * Default value > 0
  * mintTransfer function utilizes totalSupply() value to find correct token IDs to transfer out. Keep this at 0 unless the token counting doesn't start from 0 or 1
  * example: NFT contract starts from Token ID 2, use TotalSupplyModifier > 1
* **Force Exit**
  * Default value > True
  * In case of unique data mints, user might not want to exit whole process after one failed task. In that case use Force Exit > False
    * example: Try to mint a contract with token ID param, mint 50 tasks from ID 120-170, continue mint process even if some of them are already minted.&#x20;
    * Can consume gas without minting any tokens.

### function mintAdvanced

* Parameters
  * NFT contract (address)
  * Mint input/calldata (bytes)
  * Starting contract index (uint256)
  * Amount of contracts (uint256)
  * Repeat per contract (uint256)
  * Value Per One (uint256) \[wei value]
* Usage
  * Change contract index to mint NFT to adjust which contracts will be used
  * Change repeat per wallet based on individual NFT contract mint conditions

### function mintTransfer (ERC721 only)

All mints happen on first contract, after each repeat all the NFTs minted get transferred to recipient's address, which allows the process to loop.

* Parameters
  * NFT contract (address)
  * NFT recipient (address)
  * Mint input/calldata (bytes)
  * Starting contract index (uint256)
  * Repeat per contract (uint256)
  * Amount of contracts (uint256)
  * Tokens per Task (uint256)
  * Value per One (uint256) \[wei value]
  * Transfer Type (uint256)
  * Total Supply Modifier (uint256)
* Usage
  * Mint + transfer out in one transaction

### function mintData

* Parameters
  * NFT contract (address)
  * Nested array Mint input/calldata (bytes\[]\[])
  * Total amount of tasks on all contracts (uint256)
  * Starting contract index (uint256)
  * Value per One (uint256)
  * Force Exit (boolean)
* Usage
  * NFT contract with mintTo parameter
  * NFT contract with other parameter that is unique in every transaction

### function mintTokenGate

Get access to mint through holding the gate NFT and transfer it to next contract to mint it again

The first contract needs to hold the specified gate NFT IDs, gate NFTs can be withdrawn after the mint is over from the last contract that minted with regular NFT withdraw function

You need to have one more deployed contract after your loop so the token can be transferred to it and withdrawn manually after at the end.

* Parameters
  * NFT contract (address)
  * Token Gate contract (address)
  * Array of Token Gate IDs (uint256\[])
  * Mint input/calldata (bytes)
  * Starting contract index (uint256)
  * Amount of Contracts (uint256)
  * Repeat per Contract (uint256)
  * Value per One (uint256)
* Usage
  * NFT contracts with balanceOf check for other NFT contract and no limit restrictions on IDs

### function mintTokenGateData

Combination of mintData and mintTokenGate

* Parameters
  * NFT contract (address)
  * Token Gate contract (address)
  * Array of Token Gate IDs (uint256\[])
  * Nested array Mint input/calldata (bytes\[]\[])
  * Total amount of transactions on all contracts (uint256)
  * Starting contract index (uint256)
  * Value per One (uint256)
  * Force Exit (boolean)
* Usage
  * NFT contracts with balanceOf check for other NFT contract and no limit restrictions on IDs with a parameter that is unique in every transaction


# Additonal functions

### function disperseEth

* Parameters
  * Starting contract index (uint256)
  * Amount of Contracts (uint256)
* Usage
  * Disperse ETH to contracts

### function disperseERC20

This function requires manual preapproval through the ERC20 contract of the controller contract 0x33333333334b217d50c4459d8da6c7481b097fae to be able to access your tokens.

* Parameters
  * ERC20 token (address)
  * Starting contract index (uint256)
  * Amount of Contracts (uint256)
  * Value to send to each contract from main wallet (uint256)
* Usage
  * Disperse ERC20 to contracts

### function approveERC20

The ERC20 needs to be already dispersed on your contracts.

* Parameters
  * ERC20 token (address)
  * NFT contract to allow as spender (address)
  * Starting contract index (uint256)
  * Amount of Contracts (uint256)
  * Value to approve for spending on each contract (uint256)
* Usage
  * Mint needing ERC20 token as payment


# Withdrawal functions

Withdraw functions for any types of tokens + ETH

### function withdraw721

* Parameters
  * NFT contract (address)
  * NFT recipient (address)
  * Starting contract index (uint256)
  * Amount of contracts (uint256)
  * First token ID (uint256)
  * Amount of tokens per contract (uint256)
  * Transfer Type (uint256)
* Usage
  * Withdraw erc721 tokens which ID's are in numerical order and in same amounts per Contracts

### function withdraw721Advanced

* Parameters
  * NFT contract (address)
  * NFT recipient (address)
  * Array of contract indexes (uint256)
  * Nested array token IDs (uint256\[]\[])
  * Transfer Type (uint256)
* Usage
  * Withdraw erc721 tokens which need custom setting for their location, IDs or amounts per Contract

### function withdraw1155

* Parameters
  * NFT contract (address)
  * NFT recipient (address)
  * Starting contract index (uint256)
  * Amount of contracts (uint256)
  * token ID (uint256)
  * Amount per contract (uint256)
* Usage
  * Withdraw a single ID of erc1155 tokens

### function withdrawBatch1155

* Parameters
  * NFT contract (address)
  * NFT recipient (address)
  * Starting contract index (uint256)
  * Amount of contracts (uint256)
  * Array of token IDs (uint256\[])
  * Array of amounts per token ID (uint256\[])
* Usage
  * Withdraw multiple IDs of erc1155 tokens

### function withdrawEth

* Parameters
  * Recipient (address)
  * Starting contract index (uint256)
  * Amount of contracts (uint256)
  * Amount to withdraw from contract(uint256)
* Usage
  * Withdraw all eth present on the specified contracts

### function withdrawERC20

* Parameters
  * ERC20 token(address)
  * Recipient (address)
  * Amount of contracts (uint256)
  * Starting contract index (uint256)
* Usage
  * Withdraw ERC20 token present on the specified contracts


# 3gm Node

Information about the 3gm Ethereum Nodes

<figure><img src="https://1532932898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDrg7tTMIIOxFzo5DXJ9F%2Fuploads%2FWc0DjZUyQTLOZfAjDlpB%2Fimage.png?alt=media&amp;token=a901769a-d7ea-4dd0-91db-d6de83e64f9f" alt=""><figcaption></figcaption></figure>

Contract: <https://etherscan.io/address/0xf1f4e4b290d1150cfe583b8f22352eca57cbc198>


