---
# System prepended metadata

title: Syndicate Workshop - Deploy on Degen

---

# Syndicate Workshop - Deploy on Degen
### Feel free to reach out with any questions!
#### Telegram: WillPapper 
#### Warpcast: [Will](https://warpcast.com/will) 
#### Syndicate Warpcast Channel: https://warpcast.com/~/channel/syndicate
---

1. **Sign up on https://dashboard.syndicate.io/**

---

2. **Create a new project. Set the following:**

Name: `Deploy on Degen Workshop`

Environment: `Staging`

Chain: `Degen`

---

3. **Create your demo NFT:**

You can find `YOUR_PROJECT_ID` in the Settings under General

You can find `YOUR_API_KEY` in the Settings under API Keys.

For `0x_CONTRACT_OWNER`, you can put your own wallet address or the Transaction Wallet (typically people use Ledgers or multi-sigs, but this is just a demo):

---

Template for contract creation:
```
curl -H 'Authorization: Bearer YOUR_API_KEY' \
 -H "Content-type: application/json" \
  -d '{
  "projectId": "YOUR_PROJECT_ID",
  "contractAddress": "0xfBFeE6E588cbD17357F2651B67ef3c30DA5bcAEA",
  "chainId": 666666666,
  "functionSignature": "createWithOpenMint(address owner,string calldata name,string calldata symbol)",
  "args": {
    "owner": "0x_CONTRACT_OWNER",
    "name": "Deploy on Degen Workshop",
    "symbol": "DEPLOY"
  }
 }' \
 'https://api.syndicate.io/transact/sendTransaction'
```

---


Example of my transaction (use this if anything breaks, API key will be invalidated after the workshop):
```
curl -H 'Authorization: Bearer Vc3XL6qaM8DbnLJ7lLrX' \
 -H "Content-type: application/json" \
  -d '{
  "projectId": "59297242-769d-4faa-a36a-1124475ca71e",
  "contractAddress": "0xfBFeE6E588cbD17357F2651B67ef3c30DA5bcAEA",
  "chainId": 666666666,
  "functionSignature": "createWithOpenMint(address owner,string calldata name,string calldata symbol)",
  "args": {
    "owner": "0x670Ff38faD4D188C2F70f0611aD8706734A558c5",
    "name": "Deploy on Degen Workshop",
    "symbol": "DEPLOY"
  }
 }' \
 'https://api.syndicate.io/transact/sendTransaction'
```

---

4. **Gas is automatically added to your wallet. The transaction is broadcast!**

---

5. **Go to the dashboard and click the transaction hash.**

From the transaction hash, go to Internal Transactions. The `CREATE2` is your NFT. The `CREATE` is your mint module: https://explorer.degen.tips/tx/0x7f543bb3f489accf5411c605303996266f572371260193b0b81994371d2a7f2f?tab=internal

Copy the address of your `CREATE` contract call.

(I promise that this will become clearer to read after you broadcast your first mint!)


---


6. **Broadcast your mint.** `DEMO_MINT_MODULE_CONTRACT_ADDRESS` is the `CREATE` from before:

---

Template for the mint:
```
curl -H 'Authorization: Bearer YOUR_API_KEY' \
 -H "Content-type: application/json" \
  -d '{
  "projectId": "YOUR_PROJECT_ID",
  "contractAddress": "DEMO_MINT_MODULE_CONTRACT_ADDRESS",
  "chainId": 666666666,
  "functionSignature": "mint(address account)",
  "args": {
    "account": "0x3Cbd57dA2F08b3268da07E5C9038C11861828637"
  }
 }' \
 'https://api.syndicate.io/transact/sendTransaction'
```

---

Example of my transaction (use this if anything breaks, API key will be invalidated after the workshop):
```
curl -H 'Authorization: Bearer Vc3XL6qaM8DbnLJ7lLrX' \
 -H "Content-type: application/json" \
  -d '{
  "projectId": "59297242-769d-4faa-a36a-1124475ca71e",
  "contractAddress": "0xdEf186CDAE3a9B96cf0Ce41BCBe290C0430eeb56",
  "chainId": 666666666,
  "functionSignature": "mint(address account)",
  "args": {
    "account": "0x3Cbd57dA2F08b3268da07E5C9038C11861828637"
  }
 }' \
 'https://api.syndicate.io/transact/sendTransaction'
```

---

7. **The mint is broadcast!** Check your dashboard and click the transaction hash: https://explorer.degen.tips/tx/0x067bc4ff6638039e4ec87a18943f9c415464e0e9375047ff91438f1be801ce66. You’ll notice that the `CREATE2` from before is now recorded as a token on Blockscout.

---

8. **Let’s have some fun with this and run 100 mints!**
```
#!/bin/bash

api_key='Vc3XL6qaM8DbnLJ7lLrX'
project_id='59297242-769d-4faa-a36a-1124475ca71e'
contract_address='0xdEf186CDAE3a9B96cf0Ce41BCBe290C0430eeb56'
chain_id=666666666
function_signature='mint(address account)'
account='0x3Cbd57dA2F08b3268da07E5C9038C11861828637'
api_url='https://api.syndicate.io/transact/sendTransaction'

for ((i=1; i<=100; i++))
do
    response=$(curl -s -H "Authorization: Bearer $api_key" \
        -H "Content-type: application/json" \
        -d '{
        "projectId": "'"$project_id"'",
        "contractAddress": "'"$contract_address"'",
        "chainId": '"$chain_id"',
        "functionSignature": "'"$function_signature"'",
        "args": {
            "account": "'"$account"'"
        }
    }' \
    "$api_url")

    transaction_id=$(echo "$response" | jq -r '.transactionId')
    echo "Mint count: $i, Transaction ID: $transaction_id"
done
```

All mints are queued and broadcast automatically over time. All gas is subsidized as well!