diff --git a/content/_code-samples/quickstart/py/lesson7-batch-minting.py b/content/_code-samples/quickstart/py/lesson7-batch-minting.py
new file mode 100644
index 0000000000..f9d2d154fa
--- /dev/null
+++ b/content/_code-samples/quickstart/py/lesson7-batch-minting.py
@@ -0,0 +1,127 @@
+import tkinter as tk
+import xrpl
+import json
+
+from mod1 import get_account, get_account_info
+from mod7 import batch_mint, get_batch
+
+#############################################
+## Handlers #################################
+#############################################
+
+# Module 7 Handlers
+
+def standby_batch_mint():
+ results = batch_mint(
+ ent_standby_seed.get(),
+ ent_standby_uri.get(),
+ ent_standby_flags.get(),
+ ent_standby_transfer_fee.get(),
+ ent_standby_taxon.get(),
+ ent_standby_nft_count.get()
+ )
+ text_standby_results.delete("1.0", tk.END)
+ text_standby_results.insert("1.0", json.dumps(results, indent=4))
+
+def standby_get_batch_nfts():
+ results = get_batch(
+ ent_standby_seed.get(),
+ ent_standby_account.get()
+ )
+ text_standby_results.delete("1.0", tk.END)
+ text_standby_results.insert("1.0", json.dumps(results, indent=4))
+
+# Module 1 Handlers
+def get_standby_account():
+ new_wallet = get_account(ent_standby_seed.get())
+ ent_standby_account.delete(0, tk.END)
+ ent_standby_seed.delete(0, tk.END)
+ ent_standby_account.insert(0, new_wallet.classic_address)
+ ent_standby_seed.insert(0, new_wallet.seed)
+
+
+def get_standby_account_info():
+ accountInfo = get_account_info(ent_standby_account.get())
+ ent_standby_balance.delete(0, tk.END)
+ ent_standby_balance.insert(0,accountInfo['Balance'])
+ text_standby_results.delete("1.0", tk.END)
+ text_standby_results.insert("1.0",json.dumps(accountInfo, indent=4))
+
+
+# Create a new window with the title "Quickstart - Batch Minting"
+window = tk.Tk()
+window.title("Quickstart - Batch Minting")
+
+# Form frame
+frm_form = tk.Frame(relief=tk.SUNKEN, borderwidth=3)
+frm_form.pack()
+
+# Create the Label and Entry widgets for "Standby Account"
+lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed")
+ent_standby_seed = tk.Entry(master=frm_form, width=50)
+lbl_standby_account = tk.Label(master=frm_form, text="Standby Account")
+ent_standby_account = tk.Entry(master=frm_form, width=50)
+lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance")
+ent_standby_balance = tk.Entry(master=frm_form, width=50)
+lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI")
+ent_standby_uri = tk.Entry(master=frm_form, width=50)
+lbl_standby_flags = tk.Label(master=frm_form, text="Flags")
+ent_standby_flags = tk.Entry(master=frm_form, width=50)
+lbl_standby_transfer_fee = tk.Label(master=frm_form, text="Transfer Fee")
+ent_standby_transfer_fee = tk.Entry(master=frm_form, width="50")
+lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon")
+ent_standby_taxon = tk.Entry(master=frm_form, width="50")
+lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID")
+ent_standby_nft_id = tk.Entry(master=frm_form, width="50")
+lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index")
+ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50")
+lbl_standby_nft_count = tk.Label(master=frm_form, text="NFT Count")
+ent_standby_nft_count = tk.Entry(master=frm_form, width="50")
+lbl_standby_results = tk.Label(master=frm_form,text="Results")
+text_standby_results = tk.Text(master=frm_form, height = 20, width = 65)
+
+
+
+# Place field in a grid.
+lbl_standy_seed.grid(row=0, column=0, sticky="w")
+ent_standby_seed.grid(row=0, column=1)
+lbl_standby_account.grid(row=2, column=0, sticky="e")
+ent_standby_account.grid(row=2, column=1)
+lbl_standby_balance.grid(row=5, column=0, sticky="e")
+ent_standby_balance.grid(row=5, column=1)
+lbl_standby_uri.grid(row=8, column=0, sticky="e")
+ent_standby_uri.grid(row=8, column=1, sticky="w")
+lbl_standby_flags.grid(row=9, column=0, sticky="e")
+ent_standby_flags.grid(row=9, column=1, sticky="w")
+lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e")
+ent_standby_transfer_fee.grid(row=10, column=1, sticky="w")
+lbl_standby_taxon.grid(row=11, column=0, sticky="e")
+ent_standby_taxon.grid(row=11, column=1, sticky="w")
+lbl_standby_nft_count.grid(row=12, column=0, sticky="e")
+ent_standby_nft_count.grid(row=12, column=1, sticky="w")
+lbl_standby_results.grid(row=13, column=1, sticky="ne")
+text_standby_results.grid(row=13, column=2, sticky="nw")
+
+#############################################
+## Buttons ##################################
+#############################################
+
+# Create the Standby Account Buttons
+btn_get_standby_account = tk.Button(master=frm_form, text="Get Standby Account",
+ command = get_standby_account)
+btn_get_standby_account.grid(row=0, column=2, sticky = "nsew")
+btn_get_standby_account_info = tk.Button(master=frm_form,
+ text="Get Standby Account Info",
+ command = get_standby_account_info)
+btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew")
+btn_standby_batch_mint = tk.Button(master=frm_form,
+ text="Batch Mint",
+ command = standby_batch_mint)
+btn_standby_batch_mint.grid(row=5, column=2, sticky = "nsew")
+btn_standby_get_batch_nfts = tk.Button(master=frm_form,
+ text="Get Batch NFTs",
+ command = standby_get_batch_nfts)
+btn_standby_get_batch_nfts.grid(row=8, column=2, sticky = "nsew")
+
+# Start the application
+window.mainloop()
diff --git a/content/tutorials/quickstart/py-batch-minting.md b/content/tutorials/quickstart/py-batch-minting.md
index 47b3f7029f..5aa4f01369 100644
--- a/content/tutorials/quickstart/py-batch-minting.md
+++ b/content/tutorials/quickstart/py-batch-minting.md
@@ -1,6 +1,6 @@
---
html: py-batch-minting.html
-parent: quickstart-python.html
+parent: nfts-using-python.html
blurb: Mint multiple NFTs with the press of a button.
labels:
- Accounts
@@ -28,20 +28,26 @@ You can download or clone the [Quickstart Samples](https://github.com/XRPLF/xrpl
1. If you want to use an existing account seed:
1. Paste the account seed in the **Standby Seed** field.
2. Click **Get Standby Account**.
- 2. If you do not want to use an existing account seed, click **Get Standby Account**.
+ 2. If you do not want to use an existing account seed, just click **Get Standby Account**.
+3. Click **Get Standby Account Info** to get the current XRP balance.
## Batch Mint NFTs
+
+
+
+
This example lets you mint multiple NFTs for a single unique item. The NFT might represent "prints" of an original artwork, tickets to an event, or another limited set of unique items.
To batch mint non-fungible token objects:
-1. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for available NFT minting flags.
-2. Enter the **NFT URI**. This is a URI that points to the data or metadata associated with the NFT object. You can use the sample URI provided if you do not have one of your own.
-3. Enter an **NFT Count** of up to 200 NFTs to create in one batch.
-4. Enter the **Transfer Fee**, a percentage of the proceeds that the original creator receives from future sales of the NFT. This is a value of 0-50000 inclusive, allowing transfer fees between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0.
-5. Click **Batch Mint NFTs**.
+1. Enter the **NFT URI**. This is a URI that points to the data or metadata associated with the NFT object. You can use this sample URI if you do not have one of your own: ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi.
+2. Set the **Flags** field. For testing purposes, we recommend setting the value to _8_. This sets the _tsTransferable_ flag, meaning that the NFT object can be transferred to another account. Otherwise, the NFT object can only be transferred back to the issuing account. See [NFTokenMint](nftokenmint.html) for available NFT minting flags.
+3. Enter the **Transfer Fee**, a percentage of the proceeds that the original creator receives from future sales of the NFT. This is a value of 0-50000 inclusive, allowing transfer fees between 0.000% and 50.000% in increments of 0.001%. If you do not set the **Flags** field to allow the NFT to be transferrable, set this field to 0.
+4. Enter the **Taxon** for the NFT. If you do not have a need for the Taxon field, set this value to 0.
+5. Enter an **NFT Count** of up to 200 NFTs to create in one batch.
+6. Click **Batch Mint NFTs**.
## Get Batch NFTs
@@ -235,11 +241,7 @@ import tkinter as tk
import xrpl
import json
-from mod1 import get_account, get_account_info, send_xrp
-from mod2 import (
- get_balance,
- configure_account,
-)
+from mod1 import get_account, get_account_info
```
Import dependencies from `mod7.py`.
@@ -265,17 +267,11 @@ def batch_mint_nfts():
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
-def get_batch_nfts():
- results = get_batch(ent_standby_seed.get(), ent_standby_account.get())
- text_standby_results.delete("1.0", tk.END)
- text_standby_results.insert("1.0",json.dumps(results, indent=4))
-
-# Module 2 Handlers
-
-def standby_configure_account():
- results = configure_account(
+def standby_get_batch_nfts():
+ results = get_batch(
ent_standby_seed.get(),
- standbyRippling)
+ ent_standby_account.get()
+ )
text_standby_results.delete("1.0", tk.END)
text_standby_results.insert("1.0", json.dumps(results, indent=4))
@@ -298,12 +294,10 @@ def get_standby_account_info():
Rename the window for Module 7.
```python
-# Create a new window with the title "Quickstart Module 7"
+# Create a new window with the title "Python Module - Batch Minting"
window = tk.Tk()
-window.title("Quickstart Module 7")
+window.title("Python Module - Batch Minting")
-standbyRippling = tk.BooleanVar()
-operationalRippling = tk.BooleanVar()
# Form frame
@@ -315,11 +309,8 @@ lbl_standy_seed = tk.Label(master=frm_form, text="Standby Seed")
ent_standby_seed = tk.Entry(master=frm_form, width=50)
lbl_standby_account = tk.Label(master=frm_form, text="Standby Account")
ent_standby_account = tk.Entry(master=frm_form, width=50)
-lbl_standy_amount = tk.Label(master=frm_form, text="Amount")
-ent_standby_amount = tk.Entry(master=frm_form, width=50)
lbl_standby_balance = tk.Label(master=frm_form, text="XRP Balance")
ent_standby_balance = tk.Entry(master=frm_form, width=50)
-cb_standby_allow_rippling = tk.Checkbutton(master=frm_form, text="Allow Rippling", variable=standbyRippling, onvalue=True, offvalue=False)
lbl_standby_uri = tk.Label(master=frm_form, text="NFT URI")
ent_standby_uri = tk.Entry(master=frm_form, width=50)
lbl_standby_flags = tk.Label(master=frm_form, text="Flags")
@@ -330,6 +321,8 @@ lbl_standby_taxon = tk.Label(master=frm_form, text="Taxon")
ent_standby_taxon = tk.Entry(master=frm_form, width="50")
lbl_standby_nft_id = tk.Label(master=frm_form, text="NFT ID")
ent_standby_nft_id = tk.Entry(master=frm_form, width="50")
+lbl_standby_nft_offer_index = tk.Label(master=frm_form, text="NFT Offer Index")
+ent_standby_nft_offer_index = tk.Entry(master=frm_form, width="50")
```
Add the **NFT Count** field for batch minting.
@@ -345,11 +338,8 @@ lbl_standy_seed.grid(row=0, column=0, sticky="w")
ent_standby_seed.grid(row=0, column=1)
lbl_standby_account.grid(row=2, column=0, sticky="e")
ent_standby_account.grid(row=2, column=1)
-lbl_standy_amount.grid(row=3, column=0, sticky="e")
-ent_standby_amount.grid(row=3, column=1)
lbl_standby_balance.grid(row=5, column=0, sticky="e")
ent_standby_balance.grid(row=5, column=1)
-cb_standby_allow_rippling.grid(row=7,column=1, sticky="w")
lbl_standby_uri.grid(row=8, column=0, sticky="e")
ent_standby_uri.grid(row=8, column=1, sticky="w")
lbl_standby_flags.grid(row=9, column=0, sticky="e")
@@ -358,8 +348,6 @@ lbl_standby_transfer_fee.grid(row=10, column=0, sticky="e")
ent_standby_transfer_fee.grid(row=10, column=1, sticky="w")
lbl_standby_taxon.grid(row=11, column=0, sticky="e")
ent_standby_taxon.grid(row=11, column=1, sticky="w")
-lbl_standby_nft_id.grid(row=12, column=0, sticky="e")
-ent_standby_nft_id.grid(row=12, column=1, sticky="w")
```
Place the **NFT Count** field in the grid.
@@ -369,7 +357,6 @@ lbl_standby_nft_count.grid(row=13, column=0, sticky="e")
ent_standby_nft_count.grid(row=13, column=1, sticky="w")
lbl_standby_results.grid(row=14, column=0, sticky="ne")
text_standby_results.grid(row=14, column=1, sticky="nw")
-cb_standby_allow_rippling.select()
#############################################
## Buttons ##################################
@@ -383,22 +370,19 @@ btn_get_standby_account_info = tk.Button(master=frm_form,
text="Get Standby Account Info",
command = get_standby_account_info)
btn_get_standby_account_info.grid(row=1, column=2, sticky = "nsew")
-btn_standby_configure_account = tk.Button(master=frm_form,
- text="Configure Account",
- command = standby_configure_account)
-btn_standby_configure_account.grid(row=7,column=0, sticky = "nsew")
```
Add the **Batch Mint NFTs** and **Get Batch NFTs** buttons.
```python
-btn_standby_mint_token = tk.Button(master=frm_form, text="Batch Mint NFTs",
- command = batch_mint_nfts)
-btn_standby_mint_token.grid(row=8, column=2, sticky="nsew")
-btn_standby_get_tokens = tk.Button(master=frm_form, text="Get Batch NFTs",
- command = get_batch_nfts)
-btn_standby_get_tokens.grid(row=9, column=2, sticky="nsew")
-
+btn_standby_batch_mint = tk.Button(master=frm_form,
+ text="Batch Mint NFTs",
+ command = standby_batch_mint)
+btn_standby_batch_mint.grid(row=5, column=2, sticky = "nsew")
+btn_standby_get_batch_nfts = tk.Button(master=frm_form,
+ text="Get Batch NFTs",
+ command = standby_get_batch_nfts)
+btn_standby_get_batch_nfts.grid(row=8, column=2, sticky = "nsew")
# Start the application
window.mainloop()
diff --git a/dactyl-config.yml b/dactyl-config.yml
index 7ff6cb90db..de887fbb98 100644
--- a/dactyl-config.yml
+++ b/dactyl-config.yml
@@ -1591,6 +1591,12 @@ pages:
- en
- ja
+ # TODO: translate
+ - md: tutorials/quickstart/py-batch-minting.md
+ targets:
+ - en
+ - ja
+
- md: tutorials/build-apps/build-a-desktop-wallet-in-python.md
targets:
- en
diff --git a/img/quickstart-py36.png b/img/quickstart-py36.png
index 152af90cd9..2344c253ad 100644
Binary files a/img/quickstart-py36.png and b/img/quickstart-py36.png differ