diff --git a/docs/build/isc/v1.0.0-rc.6/docs/_admonitions/_ownership.md b/docs/build/isc/v1.0.0-rc.6/docs/_admonitions/_ownership.md
new file mode 100644
index 00000000000..fa86ee2f72f
--- /dev/null
+++ b/docs/build/isc/v1.0.0-rc.6/docs/_admonitions/_ownership.md
@@ -0,0 +1,7 @@
+:::info Ownership
+
+You might want to look into making the function ownable with, for example,
+[OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/access-control#ownership-and-ownable)
+so only owners of the contract can call certain functionalities of your contract.
+
+:::
\ No newline at end of file
diff --git a/docs/build/isc/v1.0.0-rc.6/docs/_admonitions/_payable.md b/docs/build/isc/v1.0.0-rc.6/docs/_admonitions/_payable.md
new file mode 100644
index 00000000000..2975d1d26d4
--- /dev/null
+++ b/docs/build/isc/v1.0.0-rc.6/docs/_admonitions/_payable.md
@@ -0,0 +1,10 @@
+:::info Payable
+
+Instead of making the function payable, you could let the contract pay for the storage deposit.
+If so, you will need to change the `require` statement to check if the contract's balance has enough funds:
+
+```solidity
+require(address(this).balance > _storageDeposit);
+```
+
+:::
\ No newline at end of file
diff --git a/docs/build/isc/v1.0.0-rc.6/docs/how-tos/token/create-foundry.md b/docs/build/isc/v1.0.0-rc.6/docs/how-tos/token/create-foundry.md
new file mode 100644
index 00000000000..067c1535293
--- /dev/null
+++ b/docs/build/isc/v1.0.0-rc.6/docs/how-tos/token/create-foundry.md
@@ -0,0 +1,75 @@
+---
+description: How to create a L1 foundry
+image: /img/logo/WASP_logo_dark.png
+tags:
+ - foundry
+ - EVM
+ - how-to
+---
+
+import Ownership from '../../_admonitions/_ownership.md';
+import Payable from '../../_admonitions/_payable.md';
+
+# Create a Foundry
+## About Foundries
+
+The Stardust update allows you to create your own native tokens. Native tokens are minted by a [Foundry](/tips/tips/TIP-0018/#foundry-output).
+The Foundry allows you to specify your native token's maximum supply **once** and change the circulating supply.
+This guide will show you how to create an L1 foundry using a L2 smart contract.
+
+## Example Code
+
+
+
+1. Check if the amount paid to the contract is the same as the required [storage deposit](/learn/protocols/stardust/core-concepts/storage-deposit) and set the allowance.
+
+```solidity
+ require(msg.value == _storageDeposit*(10**12), "Please send exact funds to pay for storage deposit");
+ ISCAssets memory allowance;
+ allowance.baseTokens = _storageDeposit;
+```
+
+
+
+2. Define the `NativeTokenScheme`:
+
+```solidity
+ NativeTokenScheme memory nativeTokenScheme = NativeTokenScheme({
+ mintedTokens: _mintedTokens,
+ meltedTokens: _meltedTokens,
+ maximumSupply: _maximumSupply
+ });
+```
+
+3. Create the foundry by calling the `ISC.accounts.foundryCreateNew(nativeTokenScheme, allowance)` function:
+
+```solidity
+ uint32 foundrySN = ISC.accounts.foundryCreateNew(nativeTokenScheme, allowance);
+```
+
+### Full Example Code
+
+```solidity
+// SPDX-License-Identifier: MIT
+
+pragma solidity ^0.8.0;
+
+import "@iota/iscmagic/ISC.sol";
+
+contract CreateFoundry {
+ event CreatedFoundry(uint32 foundrySN);
+
+ function createFoundry(uint _mintedTokens, uint _meltedTokens, uint _maximumSupply, uint64 _storageDeposit) public payable {
+ require(msg.value == _storageDeposit*(10**12), "Please send exact funds to pay for storage deposit");
+ ISCAssets memory allowance;
+ allowance.baseTokens = _storageDeposit;
+ NativeTokenScheme memory nativeTokenScheme = NativeTokenScheme({
+ mintedTokens: _mintedTokens,
+ meltedTokens: _meltedTokens,
+ maximumSupply: _maximumSupply
+ });
+ uint32 foundrySN = ISC.accounts.foundryCreateNew(nativeTokenScheme, allowance);
+ emit CreatedFoundry(foundrySN);
+ }
+}
+```
diff --git a/docs/build/isc/v1.0.0-rc.6/docs/how-tos/token/mint-token.md b/docs/build/isc/v1.0.0-rc.6/docs/how-tos/token/mint-token.md
new file mode 100644
index 00000000000..3f07488f53f
--- /dev/null
+++ b/docs/build/isc/v1.0.0-rc.6/docs/how-tos/token/mint-token.md
@@ -0,0 +1,53 @@
+---
+description: How to mint native token on an L1 foundry.
+image: /img/logo/WASP_logo_dark.png
+tags:
+ - foundry
+ - EVM
+ - how-to
+ - native tokens
+ - mint
+---
+
+import Ownership from '../../_admonitions/_ownership.md';
+import Payable from '../../_admonitions/_payable.md';
+
+# Mint Native Tokens
+
+To mint tokens from a [foundry](/tips/tips/TIP-0018/#foundry-output), you first need to be aware that only the foundry owner can mint token,
+so you should execute the `ISC.accounts.mintNativeTokens` function in the same contract that [created the foundry](./create-foundry.md).
+
+## Example Code
+
+
+
+1. Check if the amount paid to the contract is the same as the required [storage deposit](/learn/protocols/stardust/core-concepts/storage-deposit)
+ and set the allowance.
+
+```solidity
+require(msg.value == _storageDeposit*(10**12), "Please send exact funds to pay for storage deposit");
+ISCAssets memory allowance;
+allowance.baseTokens = _storageDeposit;
+```
+
+
+
+2. Mint the native token specifying the foundry serial number, the amount to mint and the allowance.
+
+```solidity
+ISC.accounts.mintNativeTokens(_foundrySN, _amount, allowance);
+```
+
+## Full Example Code
+
+```solidity
+ event MintedNativeTokens(uint32 foundrySN, uint amount);
+
+ function mintNativeTokens(uint32 _foundrySN, uint _amount, uint64 _storageDeposit) public payable {
+ require(msg.value == _storageDeposit*(10**12), "Please send exact funds to pay for storage deposit");
+ ISCAssets memory allowance;
+ allowance.baseTokens = _storageDeposit;
+ ISC.accounts.mintNativeTokens(_foundrySN, _amount, allowance);
+ emit MintedNativeTokens(_foundrySN, _amount);
+ }
+```
diff --git a/docs/build/isc/v1.0.0-rc.6/sidebars.js b/docs/build/isc/v1.0.0-rc.6/sidebars.js
index 78b3af756aa..ad4a1604248 100644
--- a/docs/build/isc/v1.0.0-rc.6/sidebars.js
+++ b/docs/build/isc/v1.0.0-rc.6/sidebars.js
@@ -162,9 +162,20 @@ module.exports = {
id: 'how-tos/send-tokens-to-l1',
},
{
- type: 'doc',
- label: 'Create Foundry',
- id: 'how-tos/create-foundry',
+ type: 'category',
+ label: 'Tokens',
+ items: [
+ {
+ type: 'doc',
+ label: 'Create a Foundry',
+ id: 'how-tos/token/create-foundry',
+ },
+ {
+ type: 'doc',
+ label: 'Mint a Native Token',
+ id: 'how-tos/token/mint-token',
+ },
+ ],
},
],
},