Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Token creators / issuers and investors need to safekeep their tokens. This can either be done through self-custody or by working with a third-party custodian (a bank or regulated financial institution that holds a custody license).
At the heart of token custody is the management of cryptographic keys. Someone who owns digital assets typically sees their so called public key or address. If you want to receive tokens, you need to give your public key to the token sender. You will normally find this key in your wallet.
If you want to send your tokens to another wallet (e.g. because you sold tokens to someone else), you will need their public key. When you send tokens, your wallet will sign the transaction with your private key.
In order to make sure that nobody can spend your funds or tokens, the private key needs to be managed in a highly secure way. At the same time convenience is important, so that tokens can be sent when necessary without an overly complicated approval process.
Custodians take the responsibility of managing private keys for investors and issuers in a secure and compliant way. They are therefore an important component in the whole setup of token offerings.
As the issuer of a token you normally don't hold tokens for a long time. Typically tokens are distributed to investors shortly after they are minted.
However, often additional tokens need to be minted after the primary issuance. Sometimes certain properties of tokens need to be changed. Only if you can be sure, that additional token minting, burning or other configurations will never change after the primary issuance, the issuer account key for a particular token can be deleted or token ownership can be explicitly renounced. This is a non-reversible action that disables further changes to the token configuration.
In all other cases, issuer keys need to be kept in a safe location from where transactions can be signed ideally in an automated way. At Bitbond we work with several regulated custodians and can recommend partners for you.
For robust, large-scale production deployments, we advocate for implementing a transaction authorization policy or transferring token contract ownership to a multi-signature wallet. Such precautions minimize risks associated with a singular point of failure, such as key leaks or the potential misuse of ownership rights by a malicious actor. Requiring multiple approvals from the team that oversees the token increases security. In certain scenarios, teams opt to organize themselves as a Decentralized Autonomous Organization (DAO) to further bolster decentralization and enhance transparency in their operations.
If you create tokens on an EVM chain with Bitbond Token Tool, there are the following ways to manage your issuer keys.
You can work with a custodian as described above. The custodian needs to support Web3 login through . In such cases the custodian can log in to from within their key management software and create tokens, manage tokens and distribute tokens on behalf of the issuer.
If as an issuer you want to be independent of a custodian when it comes to token management, you need to maintain a key management solution yourself. There are several secure and convenient solutions in the market, some of which are listed here.
is a sophisticated key management software that has very comprehensive functionality around digital assets. It can store nearly all currencies and tokens that currently exist and lets you configure sophisticated governance and approval rules.
Typically custodians would utilize Fireblocks. If you need to manage multiple keys for several tokens and need a more sophisticated approach to governance, Fireblocks is they right way to go.
With Fireblocks you can log in to Token Tool with Wallet Connect.
is one of the leading hardware wallets. You can use it with Token Tool directly or use it as a more secure way to mange keys behind Metamask and log in to Token Tool with Metamask. For institutions, provides bank-grade key custody infrastructure.
is a simple and convenient way to log in to Token Tool. However, from a security standpoint it should not be used for transactions and tokens of higher value because it is not built for an institutional but rather a consumer context.
is another secure and convenient way to manage issuer keys. It allows you to use Metamask or Wallet Connect to log in to Token Tool.
Phantom
is a popular wallet for the Solana ecosystem, offering a user-friendly interface, integrated token management, and built-in support for NFTs. It is ideal for users managing Solana-based tokens and supports the newer Token-2022 standard. While Phantom is primarily a consumer wallet, it is a practical option for Solana token issuers and investors in lower-risk scenarios.
Freighter
is a non-custodial browser extension wallet for the Stellar network. It is specifically designed to interact with Stellar-based tokens and decentralized applications. Freighter offers an easy way for issuers and investors to manage Stellar accounts and sign transactions securely. It is well-suited for token issuers working within the Stellar ecosystem who require a lightweight and secure self-custody solution.
There are certain events that should trigger an email to investors such as a successful order or payment confirmations. You can send such emails based on webhook notifications of the Bitbond Offering Manager.
You can find available webhook notifications under the part of this documentation.
Token Tool is a Web3 app where payment upon check out takes place in the native cryptocurrency of the network being used. When users decide to use Token Tool to configure and deploy smart contracts, they need to connect their wallet and complete payments in crypto by confirming the transaction in their wallet. Our pricing page contains a detailed breakdown of the costs for all Token Tool functions and features.
Purchasing cryptocurrency can prove to be a challenging to users who are not familiar with the space. It can also be difficult to investors looking to invest in token sales that were created with Token Tool.
Many wallet providers like MetaMask, offer a user-friendly interface to easily buy crypto directly from their apps. We put together a guide to walk you through the process of how to buy crypto on MetaMask. You can use the guide for your own reference, or refer your investors to that guide if you're conducting a token sale with Token Tool.
Currently admin user accounts are created by Bitbond upon request. Login is done with email and password.
If you would like to add an additional admin user, please get in touch with us.
A successful token launch requires more than just innovative technology – it demands a powerful marketing and promotion strategy to capture the market's attention. Navigating the crowded crypto landscape can be challenging, but the right tools can make all the difference. We have curated a list of essential services and resources, designed to amplify your message, connect you with investors, and give your project the visibility it needs to succeed.
TokenGems is a premier listing platform dedicated to showcasing new and promising tokens (launch expected in October 2025). Updating your token profile here increases its visibility among a targeted audience of early adopters and crypto enthusiasts actively searching for the next "gem," providing a crucial boost in awareness during and after your launch.
For broad media outreach, Chainwire is an essential tool. It is a leading crypto press release distribution service that can syndicate your announcements across a vast network of top-tier crypto and financial news outlets. This service is invaluable for building credibility, reaching a global audience, and generating significant market buzz around your token launch.
Areta Market is a specialized marketplace designed to connect token projects with a wide range of auditing and promotional services. Areta provides a centralized platform to find and hire the specific audit expertise required. Cut audit costs by 30% and get 10 top-tier quotes in under 72h. It's free for projects.
Before spending a dollar on promotion, it's vital to have a solid strategy. This comprehensive guide covers the fundamental marketing principles and actionable tactics for a successful token sale. It’s a must-read resource to ensure your marketing efforts are efficient, effective, and aligned with your project's goals.
If your project involves tokenizing real-world assets (RWAs), listing and being tracked on RWA.xyz is critical. As a leading data and analytics platform for the RWA sector, it places your project directly in front of a specialized audience of investors, analysts, and funds focused on this rapidly growing niche, enhancing transparency and investor confidence.
Leverage the deep industry knowledge that comes from hundreds of successful token launches. If you need personalized guidance on your go-to-market strategy, regulatory navigation, or post-launch growth, our team of experts is here to help. Contact us for tailored advice to maximize your project's potential and avoid common pitfalls.
The Bitbond Token Tool API allows for programmatic token and smart contract deployment. It's especially useful as a token API in scenarios where many tokens have to be created in an automated way in a short period of time.
The API is designed for flexibility and can be utilized in tandem with an extensive range of key custody and wallet solutions.
To deploy a new ERC20 token contract in a programmatic way via the API, your chosen wallet should possess the capability to programmatically receive and sign a contract call transaction with a data payload. In the context of deploying a new token, the recipient of this transaction would be the Token Tool contract with the payload itself (or calldata) containing details pertaining to the newly minted token contract.
Once a token contract has been created, you can manage its lifecycle via minting, burning, transferring, and other functionalities. These actions can be readily accessed and triggered both programatically and through the UI by invoking the corresponding functions of the token contract. covering different key custody solutions as well as a generalized solution using only the ethers.js library.
Many leading wallet solutions make the integration significantly easier by via a SDK or UI to provide the smart contract ABI. This allows smart contract functions to be called directly. Operators are able to review the details of the transaction prior to giving approvals and custodians can apply predetermined organisational governance policies.
Token Tool is engineered with an API-first approach, ensuring a seamless and direct interface for all interactions. Just as the ERC20 token lifecycle actions allow direct API interactions, the same applies to other features offered by Token Tool. These include NFTs creation and management, token sales, and payment automation contracts – all of which are readily accessible and manageable via the Token Tool API.
Depending on the Asset class and Offering terms of an Asset, the Issuer may be required to pay out dividends or coupon payments to Investors. Payout amounts per Investor are typically calculated based on the respective amount of Tokens held by the Investor at a specific point in time. The Payouts tab of the Offering Manager enables admins to prepare Payouts to Investors based on previously taken Registrar snapshots, i.e. a list of Token holders and their respective holdings at a predefined time.
Payout list
When clicking the Payouts tab, the Admin sees a list of all previous payouts.
Create Payout
To create a new Payout, the admin clicks the "Create Payout" button on the Payouts tab and defines the following inputs:
Name is a custom name for the Payout, e.g. "Coupon Payment Q1 2022"
Distribution Amount is the total payout amount to be distributed across all investors. This amount is typically based on a fixed percentage of the total outstanding Token volume (Fixed coupon) or based on certain performance criteria (Variable coupon / Dividend). The Distribution amount for an individual Investors is allocated pro rata: Distribution amount/Total amount of Tokens outstanding x Token holding of individual Investor
Taxable Share Percentage
Once a Payout is created, the dataset can be assessed via API or CSV download for further processing (e.g. advanced tax calculation, payout via bank transfer, payout via on-chain payment to Investor wallets).
Protocols are crucial components of blockchain technology that enable information to be shared automatically across a network securely and reliably.
In the field of computing, protocols are essentially rules that define how data is allowed to be transferred between different computer systems. Protocols define the way that data must be structured to be accepted into a system, and they establish safeguards to prevent malicious users from causing damage.
The same protocol can be utilized for different blockchains. For example Ethereum can be used on the public mainnet as well as in a private chain installation. In both cases the protocol is the same but the chain is different.
There are two ways to onboard investors, using our API or having the admin manually add them. It's important to note that the manual onboarding process assumes KYC has been already done and the validation used in our API is bypassed.
In this option the Admin will manually create an Investor using the Bitbond Offering Manager.
From the Investors menu item you click the "Create New Investor" button in the upper right corner of the page.
Every Investor can submit for several offerings. Therefore the Orders sub tab under Investors displays every Order associated with a particular Investor across all Offerings. The information shown here is the same as when the Order is accessed from within the Offering tab.
The List of Offerings page provides an overview of current and past Offerings. From here the admin can select existing offerings or initiate the creation of a new offering.
Name is the offering identifier assigned to the asset, you can also think of this as the ticker symbol.
Number of Tokens displays the total number of tokens assigned to the offering.
Currency shows the fiat currency in which the token is denominated.
Offering status shows whether the offering is currently active ("On sale") or not ("Not on sale").
The details screen displays the asset attributes associated with the Offering. An admin can delete the Offering as well as edit the Offering. The shown attributes are a summary of what has been entered under .
An Investor is an individual or organization (e.g. institutional investor or company) that invests in an Offering. Bitbond's Offering Manager allows for easy onboarding and management of Investors.
The admin can manage Investors through a list of all Investors across all Offerings via the sidebar of the Offering Manager. Alternatively, the admin can manage Investors of a specific Offering by accessing the list of Orders submitted to the Offering, selecting an individual Order and reviewing the associated Investor.
The Airdrop and Multisend Tool offers a streamlined solution for distributing tokens or cryptocurrencies to multiple recipients in a single transaction. Whether you're conducting a manual airdrop to engage your community or rewarding token holders through automated distributions, this tool provides flexibility and efficiency. You can easily multisend any supported assets, taking advantage of three airdrop features to ensure seamless and precise token distribution. The three features consist of:
Custom recipients: Manually specify recipient addresses and amounts.
Autofill recipients: equal amounts: Get recipient addresses automatically based on their holdings of a token - each address receives the same amount.
When assets are tokenized, a protocol and a particular chain need to be selected. There is a large number of feasible protocols and blockchains to choose from. At Bitbond we recommend and therefore support the blockchains that are listed on this page.
In the past years Stellar has been a frequently used protocol for regulated security token offerings because of its scalability, simplicity and low network fees. Regulators around the world have approved several security token offerings on Stellar.
However, with the advent of Ethereum scaling solutions and EVM (Ethereum Virtual Machine) compatible blockchains, currently it seems like EVM compatible chains will remain a core part of asset tokenization in the coming years. These solutions address some of the shortcomings of Ethereum (mainly network congestion and high network fees), while keeping the advantages of the Ethereum protocol (a Turing complete approach to building decentralized software).
These chains are all share the technical foundation and compatibility with the Ethereum Virtual Machine. You can find a comprehensive list of EVM chains here. The ones listed below are the ones that are supported by Bitbond Token Tool.
Ethereum is a global, open-source platform for decentralized applications (dApps) on which you can write code (usually referred to as a smart contract) that controls digital value and runs exactly as programmed. The Ethereum mainnet is the most popular blockchain for asset tokenization because of the apps you can write on top of it.
Etherum is also the most popular blockchain that uses smart contracts. Etherum is the best choice whenever we need to set parameters for the smart contracts. The most popular applications for the Ethereum blockchain are decentralized finance (DeFi) and asset tokenization.
Avalanche has four basic interrelated mechanisms that compose structural support of the consensus tool. These four mechanisms are Slush, Snowflake, Snowball, and Avalanche.
By using randomized sampling and metastability to ascertain and persist transactions, It represents a new protocol family. Although the original paper focused on a single protocol, namely Avalanche, it implicitly introduced a broad spectrum of voting-based, or quorum-based consensus protocols, called the Snow family.
While Avalanche is a single instantiation, the Snow family seems to be able to generalize all quorum-based voting protocols for replica control. Unlike prior quorum-based work, the Snow family enables arbitrarily parametrizable failure probability at the quorum intersection level.
Standard quorum-based protocols define this failure probability to be precisely zero, but by introducing errors in the quorum intersection, a larger set of consensus protocol design is available.
The Polygon PoS (Proof of Stake) network is Ethereum-native, aligned to be interoperable with all of Ethereum’s existing and even future infrastructures while offering a framework for its interoperability with other layer-2 solutions, sidechains and sovereign blockchains.
The Polygon network is thus also categorized as a layer-2 aggregator, aiming to create a multichain ecosystem of Ethereum-compatible blockchains with superior interoperability.
BNB Chain is an innovative solution to bring programmability and interoperability to the Binance Chain. BNB Chain (formerly Binance Smart Chain or BSC for short) relies on a system of 21 validators with Proof of Stake Authority (PoSA) consensus that can support short block time and lower fees.
The most bonded validator candidates of staking will become validators and produce blocks. The double-sign detection and other slashing logic guarantee security, stability, and chain finality.
BNB Chain also supports EVM-compatible smart contracts and protocols. Cross-chain transfer and other communication are possible due to native support of interoperability.
Binance DEX remains a liquid venue of the exchange of assets on both chains. This dual-chain architecture will be ideal for users to take advantage of the fast trading on one side and build their decentralized apps on the other side.
Arbitrum is a Layer 2 scaling solution for Ethereum that offers increased speed, efficiency, and privacy. It uses off-chain computation and on-chain enforcement to process transactions quickly and securely.
The platform supports a wide range of use cases and is interoperable with Ethereum-based solutions. This allows for seamless communication and opens new opportunities for developers.
Arbitrum's combination of speed, efficiency, and privacy make it a leading platform in the decentralized space.
Optimism is a Layer 2 scaling solution for Ethereum, designed to bring increased speed, efficiency, and scalability to the Ethereum network.
It uses an innovative technique called Optimistic Rollups to process transactions off-chain, reducing congestion on the main Ethereum network. Optimism also offers increased security compared to traditional Ethereum-based solutions.
This makes it an ideal platform for decentralized finance and other high-volume use cases. With its commitment to Ethereum compatibility, Optimism is poised to become a leading platform in the decentralized space.
Base is an Ethereum Layer 2 (L2) network designed to be secure, affordable, and developer-friendly. Built on top of the OP Stack developed by Optimism, Base leverages the security of the Ethereum blockchain while offering faster transaction processing and lower fees. This makes it an attractive platform for building and deploying decentralized applications (dApps).
One of Base's key features is its focus on ease of use for developers. It integrates seamlessly with Coinbase products and tools, providing developers with access to a large user base and various resources.
These chains are built on protocols that are independently developed and technically different from the Ethereum protocol and the Ethereum Virtual Machine.
Stellar was created in 2014, after Bitcoin but before Ethereum. Stellar uses a more environmentally-friendly consensus mechanism than many other chains and was designed specifically for remittances and payments. Therefore it has “cash-like” delays between transactions (i.e. very short) and it’s more or less free to use (transactions cost way less than a penny).
Like Ethereum, Stellar allows you to issue other custom assets or tokens (say, a digital representation of a dollar or a peso) and to trade them very easily within the network.
Stellar has the Stellar Decentralized Exchange (SDEX) built directly into the protocol which provides a convenient way for secondary trades.
Solana is a high-performance blockchain known for its fast transaction throughput and low fees, making it particularly well-suited for consumer-facing applications and high-frequency trading environments. It achieves this performance through innovations like Proof of History (PoH), which allows the network to process thousands of transactions per second. Solana supports multiple token standards, including the original SPL (Solana Program Library) standard and the newer Token-2022, which introduces advanced features like transfer hooks, interest-bearing tokens, and enhanced access control. Due to its scalability and growing ecosystem, Solana is increasingly considered for asset tokenization and DeFi applications, despite not being EVM-compatible.






Snapshot Date allows the Admin to select an existing Registrar snapshot to base the payout on. Payout allocation will be calculated based on the Token holdings registered in the Registrar snapshot.


Automate Payments allows you to conduct on-chain payments with any custom token. Usually stable coins like USDC or USDT are used for payments. But any other tokens can be used as well.
Automate Payments lets you automate processes like asset servicing of bonds, stocks, funds and other financial assets. You can also conduct share vesting, salary payments and much more in an automated way.
Once the "Create New Investor" button is clicked the following page will appear and you can enter the investor attributes.
The following investor attributes can be defined when creating a new investor:
First Name is a reference to the first name of the investor.
Last Name is a reference to the last name of the investor.
Email is a reference to the email of the investor.
Note: After the manual creation of the investor, the admin will need to edit the investors details to add additional attributes such as address and bank account.
Autofill repients: proportianal amount: Get recipient addresses automatically based on their holdings of a token - each address receives an amount proportional to their token balance.
The token multisender function allows you to send tokens to many recipients in one transaction by inserting a list of custom recipients addresses and amounts. The tokens that you want to send have to be in your wallet that is connected to Token Tool.
Copy and paste a list of addresses with the respective token amount that you want to send to each address. Alternatively, you can upload a .csv, .xls or .txt file with the list.
The list should include each recipient address and the respective token amount separated by a comma (note that there must not be a space after the comma). Each address has to be on a newline like in this example:
0x53c23c9d7fa6468f3c99c45791998e259baa32cd,64
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,35
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,89
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,95
0x4491bb52e325f16dd825192517b7e5daf3bc7391,12After you have included your list, you will be asked to approve Token Tool to send tokens on your behalf. Your tokens will be sent to batches of 200 addresses. If there are more than 200 addresses in your list, you will have to approve each batch separately.
After the distribution is done, you can also revoke the permission for sending from Token Tool via Metamask.
This function is useful for
Initial token distribution to investors after a primary issuance
Sending additional tokens to token holders after a capital increase or a rights issue
Sending dividend or coupon payments in stable coins, cryptocurrencies or asset tokens to token holders
Optionally, you can also add a third attribute to the input. This allows you to attach an individual message to each transfer. This can be useful in situations where you want to add an internal reconciliation ID or a message that is necessary for regulatory purposes to each transfer. This is how an example input would look like:
Note that this Distribute Token is not supported on Ethereum Goerli testnet. However, it does work on Ethereum mainnet and all other supported chains (both main and testnets).
Token Tool is a Web3 application that provides functionality for the creation, management and distribution of tokens and NFTs on Ethereum and Ethereum compatible blockchains (EVM chains) as well as Solana and Stellar.
Token Tool has a number of advantages compared to other products for token creation and management:
Uses simple Web3 login: no customized API integrations of key custody solutions is necessary. Manage your keys in the way you want as long as Web3 login is supported.
No-code token smart contract creation: configure your token via a convenient user interface or via our API without the need to code your own Solidity code. Token Tool smart contracts have been . You can also find an additional audit report that was for our token sale contracts.
Supports leading blockchains and testnets: Ethereum (and Sepolia testnet), Polygon PoS, Avalanche, Arbitrum, Optimism, Binance Smart Chain (aka BNB Chain as well as BSC Test), Coinbase Base Chain (+ Base Sepolia testnet), peaq, as well as Solana (+ Solana Devnet) and Stellar (with limited but evolving functionality + testnet).
Supports different token standards: Create ERC-20 and ERC-1400 tokens (and their equivalents on other chains), including Solana SLP and Token-2022 standards, as well as Soroban SEP-41 tokens. Also supports ERC-721 NFTs with rich customization and NFT drop capabilities.
Supports Web3 wallets for login: login with most browser wallets like Metamask, Coinbase Wallet, Trust Wallet, MEWconnect, Farcaster Wallet, Phantom, Freighter and many others as well as Ledger as a hardware wallet. Via the Wallet Connect integration you can use different hardware wallets and sophisticated bank-grade key management solutions such as Fireblocks, Gnosis Safe, Palisade, Ledger Enterprise, GK8 and others.
API access: all features are also accessible .
Token creator remains in control: don't give away control over your tokens to third parties, instead remain in control by owning your deployed smart contracts. Token Tool is non-custodial.
Fair fee model: tokenize assets without complicated on-boarding or setup fees and only pay for what you use. You can find our fees under .
To get started simply go to and log in with your Web3 wallet.
A note on : Some wallet providers don't support blockchain switching during a WalletConnect session. A re-connection is needed when you switch blockchains to guarantee seamless integration with a variety of those providers. For example, if you initially established a WalletConnect session on Ethereum but decide to switch to Polygon, this transition would prompt an automatic disconnection of your wallet. Simply re-establish the connection and your session will resume, now utilizing your newly selected blockchain.
If you have issues connecting, please close the connection modal, select your desired chain, refresh the page and try again.
If your wallet provider supports multiple addresses, by default the connection will be established to the first address provided by the wallet.
Some wallet providers will only allow you to establish a session to a mainnet workspace while a mainnet chain is selected and testnet to a workspace when a testnet chain is selected. If you run into connection errors, please make sure you are connecting to the right workspace.
Gas fees need to be paid for all on-chain interactions. The amount of gas fee required is dependent on the complexity of the transaction and the current usage of the respective network. It's important to note that gas fees are paid in native coins, such as ETH or MATIC.
This table gives you an indication of the average gas fees stated in USD for the most common functions on Token Tool. The values are historical averages and can fluctuate depending on network utilization.
Some custody solutions are restrictive regarding external deposit addresses for security reasons. If a wallet is set up in a way that funds can leave this wallet to whitelisted addresses only, you can only use Token Tool only after you have whitelisted the Token Tool smart contract addresses first. Here is a list of the addresses that you need to whitelist in that case.
Mainnet addresses:
Ethereum: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Avalanche: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Polygon: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Testnet addresses
Ethereum Sepolia: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Binance Smart Chain Test: 0x4904Ba3148147D2f78b05a8446C01c48a
Base Chain Testnet: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Token Tool supports testnets for supported mainnet chains. This way you can test Token Tool for free. As an example: when you go to Create Token and select Ethereum as your chain, you can switch to Ethereum Sepolia Testnet in your Metamask. Token Tool will continue to function the same way as it does on mainnet.
To pay gas fees on testnets, you need testnet coins. Token Tool offers where you can get testnet coins for free.
Governance and security notice
We emphasize the importance of responsibly selecting contract configuration options based on your use case and target audience. While crypto-native projects may require a highly decentralized / trustless setup, enterprise customers often require a higher degree of controls and centralization to fulfill compliance requirements. To build trust with your audience, only grant yourself permissions that are required by your use case.
All contracts deployed via Token Tool are owned by the wallet you select. Depending on your configuration options, this wallet may have control over certain functions of your token, e.g. mint/burn, whitelisting or force transfers. Any compromise to the owner account may allow the hacker to take advantage of this authority. To avoid any a single point of failure, we recommend the use of multi-sig or MPC wallets such as Safe, Fireblocks or Ledger Enterprise.
Token vesting allows you to vest a certain number of tokens to a recipient over a pre-determined time period.
You can also set up a cliff. A cliff means that tokens already get allocated during the cliff period but can not yet be retrieved by the recipient.
As a first step you need to create a token vesting collection. This is a smart contract that will contain all your individual vestings for different recipients of the same token.
The underlying technological concept is a non-fungible token (NFT). Therefore the basic attributes are similar:
Name: this could be something like "ABC Corp shares vesting"
Symbol: this is a short form of the name, e.g. "ABCsharesVest"
Token contract address: this is the contract address of the token that you want to vest. Note that within one collection you can only vest one particular type of token. If you want to vest different tokens / shares, you will need to create a separate collection for each token.
After you created the token vesting collection, you will see it in the overview. From there you can add individual vestings to the collection.
From the Manage Token Vesting Collection part you can add and manage vestings. You can also top up the collection with tokens from here and withdraw tokens that haven't been transferred to the recipients, yet.
For each individual token vesting you need to define:
Recipient address: this is the address that will receive the tokens from this vesting
Start time: from this moment onward the vesting will be calculated. This can also be in the past. Let's assume an employee started on October 1st and you only create the vesting on October 20th, you can date it back to October 1st. That way the employee will receive the amount of shares from October.
Cliff period end time: this is an optional setting. If you leave this empty, there will be no cliff on this vesting and tokens can be transferred to the recipient according to the vesting schedule immedialtely. If you do specify a cliff, the tokens can be transferred to the recipient only after the cliff period end time.
It's important to note that for the token recipients to actually get their tokens someone needs to click one of the two options:
Transfer tokens to recipients: this will transfer all the tokens that have been vested to this moment to the respective recipients (and where the cliff has ended). All tokens for all vestings of this collection will be transferred.
Transfer: this will only initiate the transfer of tokens for all vestings of the particular recipient that you clicked on.
Anybody can click the transfer buttons. Note that when you do that, you will also pay the gas fees for the respective transactions.
If the vesting collection doesn't have enough tokens, the transfers will not happen. You will need to add a sufficient amount of tokens to the collection and initiate the transfer again.
The vesting will however continue even if there isn't a sufficient balance. This means you can always catch up with the transfer after you topped up tokens.
Bitbond Offering Manager manages investors and orders for token offerings.
With the Bitbond Offering Manager you can
Create new token offerings
Maintain an overview of token offerings that you have previously set up and conducted or that are ongoing
Manage ongoing and completed token offerings via the Asset, Orders and Token tabs of an offering
Manage investors, review their KYC status and their orders
Manage order books and reconcile investment-related payments from investors
Trigger token minting and distribution to investors on the Stellar protocol
Prepare distribution of tokens on EVM chains (token creation and distribution via )
Schedule, manage and review snapshots of the list of investors holding your tokens (Token Registrar)
Calculate and prepare payments to investors (e.g. dividends or coupons) for payout via bank transfer or stable coin payment
The configuration page is used to apply settings to the Offering Manager setup.
Time zone sets the system time zone. This time zone is also used for the time stamp of Registrar snapshots.
Webhook URLs can be added by clicking on the "Add New" link. The Bitbond API will automatically retry a webhook if the response status code will be anything other than 200.
Webhooks are called with payload in POST request body when the following events happen:
order_created
Is triggered when the endpoint POST /users/:user_id/projects/:project_id/orders is used and after a new order is successfully created.
order_fulfilled
To generate a new public key that grants access to our API, click on the button labeled "Create New API Key". Once clicked, a new key will be created.
If there is a need to revoke access to the API, simply press the "Revoke" button, which will disable the public key associated with the API, making it useless for any future API requests.
Once an Offering has started, Investors can submit Orders to this Offering. Information about Investors and Orders are either created via the Offering Manager API or manually in this UI. Admins can review incoming Orders, Investors and respective details via the Offering Manager.
The Orders tab displays all the Orders associated with the Offering.
Select an Order to get more detailed information and manage its state.
Order attributes:
Order code is the code assigned to the order, you can think of it as an identifier.
Investor is the email address of the investor.
Order amount is the value of the order in the asset currency.
Currency is the fiat currency in which the offering is denominated.
Date is the date and time the order was placed.
Status defines where in the order process the order is currently at.
To create an order the following conditions need to be met:
The current investor needs to be approved. An investor is approved automatically when they go through a successful KYC identification session. When a user is approved the approved_at is set to a non-null value and the approved attribute is set to true.
An order can only be created for a live offering. A live offering has its start date before now and its end date after now.
The investment terms need to be accepted by the investor for the offering they want to invest in. The investment terms are accepted by the investor by successfully creating terms through the investment_terms endpoint.
For Token Offerings on Stellar, the Offering Manager allows the admin to schedule daily snapshots of token holders of the offered asset at a specific time of day. For Tokens on EVM chains, snapshots can be created via the Token Tool. The list of Token holders and their respective holdings is also referred to as "Registrar". Upon distribution of Tokens, the system initiates a Registrar snapshot at the defined time and stores it under the "Registrar" tab.
The Registrar snapshots can be used for off-chain backups of token holdings, for reporting and compliance purposes as well as as a basis for Payouts to investors. Below is a list of each of the snapshots that can be used for payouts.
The Faucets function allows you to claim free testnet coins once every 12 hours. This feature is designed to facilitate easier testing and experimentation within Token Tool without requiring users to acquire testnet coins through external sources. Of course, you can use the testnet funds you claim to explore other dApps and DeFi protocols as well.
In order to be able to claim free testnet tokens, you need to do two things:
Complete your profile by at least 80% – this means you will need to verify your wallet address and add your email. You're not required to select an avatar.
Hold a minimum balance of 0.001 on the respective mainnet (so ETH or AVAX or BNB etc.).
Once complete, you can return to the Testnet Faucet page to claim your testnet coins on the desired network.
Simply connect your wallet, choose your designated network, and click the "Claim" button. You will receive the testnet funds to the address of the wallet that was connected once the transaction is processed. You cannot claim more than once every 24 hours.
Supported testnet faucets:
Create Chain Record allows you to add a text entry to a blockchain. This is done by sending a transaction and attaching metadata to it.
Currently the Chain Record function supports sending of cryptocurrencies. Going forward the sending of custom ERC20 tokens will also be supported in order to attach metadata to transactions of custom ERC20 tokens as well.
As a securities registrar you can use this function in order to use blockchains as an immutable store of registry data in an anonymized as well as non-anonymized way.
To add a chain record you need to specify:
Amount: native cryptocurrency of the selected chain (i.e. ETH, MATIC, AVAX or BNB) that you are sending in order to add the chain record. If you only want to create the entry without actually sending a high dollar amount, you can simply put in a very small amount such as 0.00001
Message content: use any type of text based content – this could be plain text such as "hello world" or a hash such as the MD5 hash of "hello world" which is 5eb63bbbe01eeed093cb22bb8f5acdc3
Recipient address: address to which the transaction is sent
Here is an example configuration with plain text:
After the record was created successfully, you can see this confirmation modal:
From there you can see a block explorer link to the transaction. This is the link to the example above
To see the content on chain, select "Click to see More" in the bottom left of the explorer page. Then scroll to the bottom where it says "Input Data" and then from "View Input As" choose UTF-8. You will see all content the way you entered it:
KYC stands for “Know Your Customer.” It is a process where issuers and banks obtain information about their customers’ identity thereby ensuring that bank services and government regulations are not misused.
The KYC procedure is used when bank customers open accounts. Banks are also required to periodically update their customers’ KYC details. The purpose of KYC is to reduce the risk of identify theft, money laundering, financial fraud, and the financing of criminal organizations. KYC helps manage risks and helps to understand customer behaviors.
The onboarding of investors is done through our Bitbond Offering Manager API. This allows issuers to create and manage their own onboarding process. Once an investor has been added they can be managed through the Bitbond Offering Manager.
Identity Details subsection includes the investors First and Last name as well as Tax ID Number.
The Addresses subsection is used to hold the Investor's registered address.
The Bank Account subsection hold the Investor's bank account details. This bank account is where refunds and coupon payouts are transferred in case of a payments/payouts via bank transfers.
The verification of KYC details is typically conducted via a third party service. For most financial institutions this process entails a video verification process. KYC verification data is submitted to the Offering Manager via API integration. A few moments after completion a status is returned to the Offering Manager and is updated here on this screen.
The function allows you to create a token lock-up through a smart contract that is immutable. This way you can lock up founder tokens or team tokens until a defined date. You can also lock liquidity pool or LP tokens.
This function therefore allows you to prove to third parties such as investors that you have locked up a certain amount of tokens and don't have access to them and cannot trade them until a pre-defined date.
To create a new token locker, select the blockchain of your choice and click the contract address input field. A list of all the tokens in your wallet opens. You can also directly paste a token contract address in the input field.
A allows you to stream payments of a particular token to one or many recipients in an automated way.
As a first step you need to create a payment stream collection. This is a smart contract that will contain all your individual streams for different recipients of the same token.
The underlying technological concept is a non-fungible token (NFT). Therefore the basic attributes are similar:
This function allows you to send NFTs to many recipients (also called ) in one transaction. The NFTs that you want to send have to be in the wallet that is connected to Token Tool.
After selecting the NFT from the drop-down (or pasting in the contract address of the NFT) paste a list of recipient addresses and the respective token IDs (plus the respective amount in the case of ERC1155 tokens) in the Select token field.
The list should include each recipient address and the respective token ID separated by a comma. Make sure there are no spaces. Each address has to be on a newline like in this example:
After you click Continue you will be asked to approve Token Tool to send NFTs on your behalf. You can control this approval by determining the maximum amount of NFTs that Token Tool can send. Your tokens will be sent to batches of 150 addresses. If there are more than 150 addresses in your list, you will have to approve each batch separately.
After sending the NFTs is completed, you can also revoke the permission for sending from Token Tool via Metamask.
The Orders page displays all the Orders associated with every Offering via the sidebar of the Offering Manager. The information shown here is the same as when the Order is accessed from within the Offering orders tab and Investors orders tab.
Create new order manually
To create a new order manually click the "Create new order" button on the top right of the Orders list.
Order attributes:
End time: this is when the entire vesting ends. Lets assume you want to vest 400 tokens over 4 years. Then each year 100 tokens will be vested per year. After the 4 years are over, all 400 tokens have been vested.
Amount: this is the total amount of tokens that will be vested to a recipient over the vesting period (the time between the start time and end time).





Order amount is the value of the order in the asset currency.
Currency is the fiat currency in which the offering is denominated.
Offering is the name of the offering the order was made under.
Investor Is the name of the investor associate with the order.





Is triggered when the endpoint POST /admin/investments/:id/allocate is used and after the investment is successfully allocated in the system.
Is triggered when a bank payment transaction is received by the bank and after new investment is successfully allocated in the system.
Is triggered when admin user is seeding test environment with test investment data using Asset Manager Labs section (does not apply to production)
order_cancelled
Is triggered when admin user cancels the order in Asset Manager
investment_received
Is triggered automatically when investment funds are received on BVDH bank account
Is triggered when admin user manually allocates the investment in the Asset Manager
Is triggered when admin user is seeding test environment with test investment data using Asset Manager Labs section (does not apply to production)
kyc_video_identification_success
Is triggered after the investor goes through a successful IDnow KYC process.
Is triggered when KYC process is mocked using Asset Manager Labs section (does not apply to production)
kyc_approved
Is triggered after a successful auto-approval process when the investor finishes the KYC process.
kyc_rejected
Is triggered when admin user rejects the investor in Asset Manager
distribution_created
Is triggered when distribution to Blockchain was processed.
transaction_created (WIP)



The order amount must be greater than the project minimum required investment amount.








An Offering generally describes the the issue or sale of a financial asset by an issuer. During the Offering, Investors submit Orders, thereby determining the investment amount they would like to commit to the respective issue.
In the Offering Manager, an Offering comprises the packaging around an asset, defining the terms on which the asset is made available to investors.
To set up a new token offering, the admin first has to define issuance attributes. Generally, the range of products and protocols supported within this feature are to be expanded over time, starting with a selection of the most popular products/protocols.
If you want to connect to a testnet workspace, please select one of the features (e.g. Create Token ), flip the toggle to select testnets, pick your desired chain and connect your wallet.
0.05
0.14
Avalanche
1.06
0.10
0.03
Arbitrum: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Optimism: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Base Chain: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Blast: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Peaq: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Solana: Ee3hNRX7Gkway5xrcRzoPw9QHDAMpLKegbwX87kXeo14
Stellar: CC75MCVNIVBMA4KDLVSO2DNTNXFODLO6KPEJ25QH6DJEWHUSVLUICTQI
Stellar Testnet: CBRV2GP4WUSMYSR5WSMFFOVFBYZLNRQSF7Q4LFB3VPEHUBRAO25C427N
Ethereum
12.00
1.21
1.27
Polygon PoS
0.22
0.01
0.01
BNB Chain
3.25

0x53c23c9d7fa6468f3c99c45791998e259baa32cd,64,first message
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,35,second message
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,89,third message
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,95,fourth message
0x4491bb52e325f16dd825192517b7e5daf3bc7391,12,fifth messageOnce you have selected a token, you can proceed to create a locker for it.
Click on "Lock TOKEN SYMBOL" to enter the flow and then "Create locker".
You can verify your token locker source code using the "Verify Source Code" button. In the case unsupported tokens were sent to the token locker contract, you can withdraw them using the "Recover unsupported tokens" button.
After you clicked "Create locker", click on "Specify token lock" to finalize token locking. If the token has the property "Requires Whitelisting", you must whitelist the lock address in the Manage Token feature. You must also add the locker address to the exclusion list in the Manage Token section if you have a feature such as "Max limit per address" enabled on your token, otherwise you wouldn't be able to fund the lock contract with an amount higher than the limit you have set on the token.
A modal opens where you can put in the token amount that you want to deposit in the locker and then time until when the tokens will stay locked.
After you specified the details, click "Approve". With this you give Token Tool permission to send the specified amount of tokens from your wallet to the token lock contract.
After you gave approval, confirm by clicking "Lock". This is your last opportunity to check if you set the right parameters. Do this carefully, as you will not be able to withdraw tokens from the locker until its expiry!
After the locker is successfully set up, you will see the following confirmation screen.
Bookmark or save the Lock address. This is important so that you can withdraw your tokens after the locker expired. One way to find the lock address in case you forgot to save it is to look at the holders of the token in a block explorer. You can usually identify the lock contract by the number of tokens or the date they were transferred.
Clicking "Relock token" will let you change the unlock date to a later time / day, but the new lock date needs to be set after the current lock date.
Note that you can also create another token locker for the very same token from scratch in order to lock another batch of tokens (unless of course you already locked all tokens that you have control of).
When you click "Share" you will see the following view. There is no Bitbond logo, you can share the URL publicly to prove that the tokens are locked.
Once the unlock date and time are here, your tokens will still be in the lock contract. In order to transfer them back to your wallet, you need to go through the same steps as creating a new locker. However, this time make sure to enter the contract address of the token locker. You can also find an overview of already existing lock contracts that are available on the connected wallet. Click the settings wheel icon to manage the selected locker.
In the next screen click "Lock TOKEN SYMBOL".
There is now a "Withdraw" button.
Click "Withdraw" to transfer the tokens from the locker contract back to your wallet.
After the tokens are withdrawn successfully from the lock contract, the "Withdraw" button becomes inactive.
Once you created your token locker, you will have the possibility to verify your token locker contract. This is helpful so that DeFi Tools such as DEX Screener, could identify your locked token contract and potentially display that as part of your token information directly on their interfaces.
To verify the source code of the token locker contract, simply click on the "Verify Source Code" button. Similarly to token contract verification under Manage Token, follow the steps be choosing the paid options such as removing Bitbond branding or add your own custom branding in the code, and the free version by keeping Bitbond branding in the smart contract code.
This action cannot be undone, make sure to choose your desired option with care. Then proceed by clicking "Submit" and paying fees in your wallet. You can find details about the costs for the different options in our pricing page. Once the transaction is complete, your locker contract source code will be verified on the block explorer:
Name: this could be something like "ABC Corp salaries 2024USDC"
Symbol: this is a short form of the name, e.g. "ABCsal24U"
Token contract address: this is the contract address of the token that you want to stream. Note that within one collection you can only stream one particular type of token. If you pay salaries in different tokens / currencies, you will need to create a separate collection for each currency.
After you created the payment stream collection, you will see it in the overview. From there you can add individual streams to the collection.
From the Manage Stream Collection part you can add and manage streams. You can also top up the collection with tokens from here and withdraw tokens that haven't been transferred to the recipients, yet.
For each individual payment stream you need to define:
Recipient address: this is the address that will receive the tokens from this stream
Payment start time: from this moment onward the payment stream will be calculated. This can also be in the past. Let's assume an employee started on October 1st and you only create the stream on October 20th, you can date it back to October 1st. That way the employee will receive the full payment for October.
Payment rate per average month: this is the amount of tokens that is streamed per month. Note that this amount is broken down in the background into a payment per second. Therefore smaller rounding errors on daily / weekly / monthly values may occur.
It's important to note that for the token recipients to actually get their tokens someone needs to click one of the two options:
Transfer tokens to recipients: this will transfer all the tokens that have been streamed to this moment to the respective recipients. All tokens for all streams of this collection will be transferred.
Transfer: this will only initiate the transfer of tokens for all streams of the particular recipient that you clicked on.
Anybody can click the transfer buttons. Note that when you do that, you will also pay the gas fees for the respective transactions.
If the stream collection doesn't have enough tokens, the transfers will not happen. You will need to add a sufficient amount of tokens to the collection and initiate the transfer again.
The streaming will however continue even if there isn't a sufficient balance. This means you can always catch up with the transfer after you topped up tokens.
When sending NFTs, different error messages can appear:
Error 1: Invalid wallet address
Error 2: Duplicated address with Line X
Error 3: Incorrect punctuation mark. Use commas between addresses, TokenID and amount and no spaces in-between
Some quick actions can be selected to resolve duplicate addresses:
Keep duplicated addresses
Delete duplicated records
Other errors have to be fixed manually or can be deleted automatically by using the “Delete incorrect records” function.
0x53c23c9d7fa6468f3c99c45791998e259baa32cd,0
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,1
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,2
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,3
0x4491bb52e325f16dd825192517b7e5daf3bc7391,4The Token tab displays all the important information associated with the blockchain-based token representing the Asset as well as a respective transaction history. This is the case when the Asset tokenization is done on Stellar.
Custody Asset Attributes:
Protocol states the blockchain protocol used for the Asset.
Network states the network the protocol is assigned to and can be testnet or mainnet.
Asset is the Asset code and Stellar address of the Token.
Funding Account is the account from which Stellar network and account setup fees are paid.
Issuing Account is the account from which Tokens are minted.
Distribution Account is the account where Tokens are initially sent to at the minting step.
Transaction History shows all events associated with the token.
Tokens on a blockchain are created through a process that is call minting. Tokens can represent physical objects or financial assets. As all Token transactions are recorded on the blockchain, there is an immutable transaction history of Token ownership.
There are two basic minting approaches. Firstly, Tokens can be pre-minted independently of the Offering progress, i.e. a fixed amount of tokens is created.
Secondly, Tokens can be minted based on incoming orders throughout the offering progresses. This can be done multiple times during the Offering or once at the end of an Offering. In the case of Stellar, the minting process is initiated via the Token tab of the Offering Manager, for EVM chains this is done via in the .
Corporate actions can affect shares or bonds outstanding, denomination of bonds and shares as well as ownership structure. Many, but not all corporate actions impact security tokens. The most important ones are
Capital increase or decrease: results in a higher or smaller number of total token supply
Stock split or reverse split: results in a higher or smaller number of total token supply
Share buyback: results in a smaller number of total token supply
Most corporate actions require either minting or burning of tokens.
Additional tokens on Stellar can be minted directly from within the Offering Manager. Simply edit the Total Number of Tokens field in the Asset tab and then clock MINT again on the Token tab. When you want to burn tokens on Stellar, you can simply send them back to the issuer account.
In Token Tool go to Manage Token from where you can mint additional and burn tokens.
After minting, Tokens can be transferred to Investor wallets based on the Investor's individual Order volume. The flow of this process is based on the selected Custody setup and blockchain for the Offering.
Token Distribution on Stellar
In the case of Tokens on Stellar, the distribution process is initiated via the Token tab of the Offering Manager.
Investor wallet addresses are assigned via an integration with the third-party custodian mandated for the Offering. When clicking "Distribute", Tokens are transferred to the assigned wallet addresses based on the respective Order volumes of the investors.
Alternatively, the issuer may want a setup that does not involve a custodian and will ask investors to do self-custody. While this setup is technically possible and has been implemented in combination with the Offering Manager before, it is not recommended. Usually this creates many technical customer support requests and creates a higher risk of loss for token holders.
Token Distribution on EVM chains
For EVM chains the distribution process is initiated via in the . Investor wallet addresses and distribution amounts can either be transferred from the Offering Manager via a CSV export or entered manually by the admin.
This function lets you create NFTs (non-fungible tokens) in the ERC721 token standard (and their equivalents on other EVM chains). It also allows NFT buyers to mint and buy NFTs in a convenient way directly from the NFT creator with no middleman involved.
There are two ways to create NFTs. When creating a collection NFT, you will have one contract address under which you can have a virtually unlimited amount of tokens, each with a different media file (image or video) and custom metadata. When you create a single asset NFT, you can have many tokens but they all show the exact same media file (image or video) as the underlying asset.
To get started with Create NFT, connect your wallet and select the blockchain of your choice. Create NFT lets you define the following parameters under collection minting (note that you will add your media file(s) and metadata at a later point, this step is just to create the NFT contract:
Name: This is the name of your NFT collection, use something descriptive such as Beautiful Mountains 2022.
Symbol: This can be something shorter such as BM2022.
Set Custom NFT Contract Name: Sets a custom name for the NFT contract source code. The custom name cannot be changed after the initial NFT contract creation.
After you have specified these details click on Create NFT and sign the transaction from your wallet.
Once you have created the NFT contract, a success modal appears. Save both the URL of the NFT minting page and the NFT asset address (also called NFT smart contract address). You will need them later.
After you have saved the URLs, go to Manage NFT in order to add media via direct upload or by providing metadata links. NFTs can only be minted after media has been added. If you try to mint NFTs before you have added media, the minting will fail with an error.
Define the following parameters of your single asset NFT:
Image file or image URL: This is the image that you would like to tokenize. It is recommended to upload your file to make sure the image is always available. Uploading will happen to . If you provide a media URL you will have to make sure that the media file is always available and its URL does not change, otherwise your NFT will not display anything.
Name: This is the name of your NFT, use something descriptive such as Berlin wicked art exhibition ticket 2023.
After you have specified these details, you can create your NFT. Your wallet will notify you and you will be asked to confirm the transaction.
After the NFT has been created successfully, you will see a modal with a NFT minting page and the NFT asset address which links to the block explorer.
The NFT minting page is particularly important. From here you can view your NFT and mint it. You can also send your audience to this page so that they can mint your NFT.
Share this page with users who you want to make NFT minting accessible to. You can also embed this page into your website via an .
In case you missed the modal or forgot to save the NFT minting page, you can go to Manage NFT to see and manage all your NFTs.
After investors received their tokens, they are often entitled to coupon payments on bonds, dividend payments on equity instruments, repayments of bonds, share buybacks etc. Only few types of financial instruments don't pay anything after the primary issuance. Therefore, there needs to be a way to settle payments from issuer to investor.
The most common way to do this is to send bank transfers. For this, the issuer / arranger need to know the bank details of token holders. This is typically the case, when tokens are held by a custodian for investors in segregated accounts (i.e. each investor has his own address instead of all tokens being held in a pool account by the custodian).
The Bitbond Offering Manager lets you schedule daily snapshots of token holders on the Stellar blockchain. This way you can always go back in time. E.g. when the cutoff for a dividend payment is 1pm CET on April 1st but you make the actual payment on April 15th, you will be able to use the snapshot from April 1st to get a list of all token holders and their respective amount at that time.
If the token exists on an EVM chain, you can currently download a snapshot from block explorers. When you scroll down on the balances tab of Etherscan you can download a CSV file with all token holders. We will also be adding the snapshot functionality for EVM chains to the Offering Manager.
Once you know the token holders and their bank details, you can either give this list to your paying agent or send out the payments from the bank account of the issuer.
When you send payments on-chain in cryptocurrency or stable coins, you simply send a transaction to all token holders via the functionality of Token Tool (this is currently under construction).
The allows to efficiently airdrop tokens or cryptocurrencies to multiple recipients based on their holding of a specific token. Token Tool automatically retrieves the token holders and their balances from the blockchain. This spares you the need to manually insert recipient addresses as done in the Custom recipients airdrop. The autofill recipients airdrop is great for:
Token airdrops
Dividend payments
When investors subscribe to a token offering, they pay for the asset they bought. The moment when this happens depends on the type of offering and investor.
Institutional investors will typically submit a legally binding order, then orders are allocated by the issuer or the issuer's arranger (e.g. an investment bank) and the deal is confirmed. Only after that, the payments settlement happens. Investors send the funds and receive the security tokens.
Retail investors will usually make their payment directly after they have subscribed to an offering and before they receive tokens. Only after their payment arrived, their investment is confirmed and the subscription period finished (or other similar conditions are met) tokens are distributed to investors.
Once the issuer received a payment from an investor, the respective order needs to be updated with the payment information. The Bitbond Offering Manager has two options how to update orders.
In the case of a referral by one of our affiliate partners, users receive a 10% discount code to redeem upon completing a purchase on Token Tool. This section provides a brief explanation on how to use the discount code and Token Tool's .
If you received a discount code and would like to redeem it, simply go to the designated function, insert the code in the discount box field at the bottom of the page, and click "Submit":
There are several instances when payments need to be settled and processed in the context of a token offering. Additionally, there are multiple ways, how these payments are processed.
When a token offering is conducted – this is also called the primary issuance – at some point investors will pay for the asset that they bought. This part is covered in the next section on .
After a token offering is completed – this is also called the post-trade part or life-cycle management part – investors typically receive payments. The triggers for such payments are for example coupon payments on bonds, dividend payments on equity instruments, repayments of bonds, share buybacks etc. This part is covered in the section on .
Payments can be settled via the following currencies:
You can find our API endpoints documentation under this link
The API includes a number of webhook notifications, you can find them documented under .
This can be utilized, when payments arrive in an account that offers webhook notifications. This can be the case for crypto payments via key management software that supports webhook notifications. Likewise, when a bank account is used for fiat payments that offers webhooks, this option also works.
Usually this is the primary option in combination with a fiat bank account. Other combinations are more rare and only used if necessary.
Not all bank accounts support webhook notifications. The most common use case is when an issuer wants to use their regular business bank account for payment processing. From a cost perspective this option is advantageous compared to Option 1.
In this case the payment status of an order can be updated and marked as settled manually in the Admin Panel.
To automate this process further you can use a batch confirmation process to mark all payments as settled at once. For this you need to download a CSV file with the most recent transactions from your bank account and upload it in the Admin Panel.
Via cryptocurrencies (e.g. Bitcoin, Ether, Stellar Lumens etc.)
Via stable coins (USDT, USDC etc.)
Via fiat money (USD, EUR, GBP, CHF etc.)
There are several payment methods how payments can be conducted:
Via a paying agent (typically a bank) for fiat
Via a regular business bank account of the issuer for fiat
Via the investor wallet directly to the issuer wallet in crypto or stable coins
Via a payment service provider for fiat which offers a variety of payment methods (e.g. credit card, PayPal, direct debit etc.) – while this option can be convenient, it is almost never used in the context of token offerings because the costs of easily 1 to 2% of the processed payments volume are usually too high from the perspective of a an issuer relative to the margins that can be achieved with financial instruments
Via a crypto payments processor that will let the issuer accept payments in crypto and convert them immediately to fiat and pay out to the issuer's bank account
From the methods above, typically the first three are most commonly used and compatible with the Bitbond Offering Manager.
It always depends on the context and especially the types of investors that an offering primarily caters to, which currencies and payment methods make the most sense. To evaluate this and find the best solution is normally part of a concept and pilot phase where Bitbond supports the issuer / arranger prior to the implementation of the Offering Manager.
Enable public minting: If you activate this, users other than you can mint NFT after initial NFT creation. If this remains disabled, only you as the NFT creator can mint this NFT.
Start time: From this time on your NFT can be minted. If empty, there is no time limit and NFTs can be minted immediately.
End time: NFTs can be minted until this time. If empty, there is no time limit.
Mint price: This is the price to mint one NFT specified in the native cryptocurrency of the selected blockchain (e.g. ETH if Ethereum has been selected, MATIC if Polygon has been selected etc.). If the price is set to 0, minting is free. Fees are paid by the wallet that is minting the NFT and are transferred directly to the creator’s wallet. Token Tool does not receive the mint price.
Enable minter whitelist: Restricts NFT minting to whitelisted addresses only. As the NFT creator you can always mint, all other minters have to be added to the whitelist via Manage NFT.
Max NFT mint amount per user: Maximum amount of this NFT that can be minted per user. If set to 0, there is no limit and an infinite number of NFTs can be minted per user. The NFT creator can always mint an unlimited amount of the NFT.
Description: Describe what the NFT is about, potentially say something about the creator or the collection.
Enable public minting: Enables NFT minting for everybody after initial NFT creation. If this stays disabled, only the NFT creator can mint this NFT.
Start time: From this time on your NFT can be minted. If empty, there is no time limit and NFTs can be minted immediately.
End time: The NFT can be minted until this time. If empty, there is no time limit.
Mint price: This is the price to mint one NFT specified in the native cryptocurrency of the selected blockchain (e.g. ETH if Ethereum has been selected, MATIC if Polygon has been selected etc.). If the price is set to 0, minting is free. Fees are paid by the wallet that is minting the NFT and are transferred directly to the creator’s wallet. Token Tool does not receive the mint price.
Max NFT mint amount per user: Maximum amount of this NFT that can be minted per user. If set to 0, there is no limit and an infinite number of NFTs can be minted per user. The NFT creator can always mint an unlimited amount of the NFT (up to the global maximum).
Global max mint amount: This is the global total maximum supply of this NFT. If set to 0, there is no limit and an infinite number of NFTs can be minted.



The Token Tool crypto affiliate program is currently supported on these 4 chains:
Ethereum
Polygon PoS
Avalanche
BNB Chain
This means that referrers can only earn commission for these 4 blockchain networks, and referred users can use their discount codes only on these 4 supported networks. We are currently looking to include support for the rest of the available networks.
Using discount codes is currently possible on Token Tool's functions below:
Create Token
Distribute Token
Create Token Sale
Create Token Locker
Create NFT (not on NFT minting)
Distribute NFT
Referrers earn 30% commission on each transaction that takes please using their unique referrer code. Learn more about Token Tool's crypto affiliate program and start earning money easily.






















Dividends: if paid on-chain this results in stable coins (or other digital assets such as cryptocurrencies) being sent on chain to token holders
Rights issues: results in a higher number of total token supply
Mergers and acquisitions: depending on the terms of the transaction shareholders might (have to) swap shares for shares of another company or vice versa, this could result in token clawbacks
Spin-offs: results in a higher or smaller number of total token supply and potentially newly created tokens that are offered to shareholders for sale

Interest payments
Option payouts
Futures / forwards payouts
Start by selecting the network of choice and connecting your wallet. After heading to the "Airdrop Token" page, select the "Airdrop" tab.
Next, choose whether you want to distribute an equal amount of tokens to each holder regardless of their current token holdings. Or, if you would like to airdrop an amount that is proportional to the token holder's balances (pro-rata distribution).
Insert the contract address of the token based on which you wish to Airdrop funds to its holders. Please note that the Airdrop will only work, if the base token has less than 5,000 holders. If the base token has more holders, the transaction will not work. Get in touch with us in this case.
Then insert the amount that each holder will receive.
After that, specify the contract address of the token that you want to airdrop to holders. You have to hold a sufficient amount of this token in your wallet so that you can airdrop it.
Once the information is extracted from the network, you will see the list of addresses that will be receiving the token, alongside the amounts. Double check whether everything is correct and proceed to approve and send the transaction.
If you selected the option to airdrop funds proportionally (pro-rata) based on the token holder balances, insert the total number of tokens you wish to be airdropped pro-rata across all holders based on their holdings.
Once the information of holders balances is retrieved from the network, you will get the list of recipient addresses, alongside the amount they will receive based on their holdings. Double check whether everything is correct and proceed to approve and send the transaction.
Review details and click continue. You will then be redirected to the next page where you will find the list of recipients and the amounts. You can decide to manually remove certain addresses from receiving the distribution of funds.
You can then review all details in the summary section. Once ready, click on "Approve" and sign the transaction in your wallet to give access to the token.
After the transaction is processed and you give access of tokens to the contract, click on "Send" and the tokens will be sent to holders after you confirm transaction in your wallet and pay fees. You will get a message that tokens were successfully sent. You can copy the list of addresses and amounts that were distributed to token holders and store it separately for your own reference.
Mainnets:
Ethereum
BNB Smart Chain
Base
Avalanche
Fantom
Optimism
Arbitrum
Polygon PoS
Testnets:
Ethereum Sepolia
Avalanche Fuji
Base Sepolia
Optimism Sepolia
Under Manage Token Sale you can review the status of your token sale and edit parameters before the start. To enter the Manage screen, you either need to paste you token sale contract address in the input field or click the cogwheel icon from the list of your token sales.
Here, you can review the address of the token that is on sale, the public token sale link for investors and further details. Before the sale starts, it is critical that the token sale contract receivs the tokens designated for the sale.
To send the tokens to the sale contract, simply click the Transfer Tokens button and complete the steps to process the transaction.
If you want to change the parameters of your token sale, you must do so before you transferring tokens. After the tokens have been sent to the sale contract, no further edits are possible.
The Token Sale link Is the page where investors will submit their investments. Important: Investors should only invest using the official token sale page. They must not send funds directly to the token sale contract address.
The Token sale sharing/iframe embedding section under the Token sale information provides a code snippet that you can easily attach the public sale page to your website via an .
For an additional , you can enable custom theme for your token sale page. This allows you to customize the colors of the token sale investor interface to fit your branding/website theme.
To enable custom branding, click on "Enable custom theme" and pay fees in your wallet. Once the transaction is complete, you will be provided with the customization assistant tool to help you set up the token sale page based on your requirements.
You can use it to generate the required link/iframe with the custom branding for your own use. Below is a overview example for which fields customize which parts of the sale UI:
You can see an example of how the iframe is implemented in this blog post. Of course you can edit the parameters such as height and width.
This way you can create a website that describes your project, team, roadmap, use of proceeds etc. and embed the according to your own branding without the need to send investors to a separate website.
If you look for guidance on the to manage investor on-boarding, please go to .
To add investors to the whitelist you can either paste one or multiple addresses in the input field that opens after you click Add addresses. Alternatively you can upload a CSV file or a spreadsheet with all addresses.
Sometimes investors want to cancel their investment. In this case you may either want to grant a refund out of fairness or you may even be required to do so by law. In Germany for instance private investors have a right to cancel online purchases / investments for 14 days.
There are two ways how you can handle refunds:
Blacklist the wallet address of the investor and send them their money back. In this case they won't be able to claim their tokens after the token sale is finished.
When the token sale is over and the investor has claimed their tokens, ask them to send the tokens back to you and issue the refund in return.
Token sale is automatically finished when either of the two conditions occur:
Specified sale duration is finished. The total investment is either above or below the softcap.
Sale ends early due to all available tokens getting purchased (hardcap reached).
It is recommended to remind investors in any case after the token sale finishes. This way they will know that they can claim their tokens (if softcap was reached) or claim their funds (if softcap was not reached).
Investors simply claim their tokens or funds respectively from the same page where they invested.
As the token sale organizer you will want to withdraw the invested funds (if softcap was reached after the token sale ended or immediately after the hardcap was reached) or withdraw tokens (if softcap was not reached) from the token sale contract. If the softcap was reached but the hard cap was not reached, there will also be some remaining tokens. You can withdraw these as well under the Manage Token Sale functionality.
The following buttons are visible when you scroll all the way down. Note that the buttons become active after the token sale ends and the conditions for the withdrawals are met.
In the case you activated the "Burn unsold tokens" feature upon creating the token sale, you will need to manually click the burn button under the withdrawals section of the manage token sale:
If you enabled Auto Liquidity Listing during token sale creation, the management flow differs slightly from a :
You must ensure liquidity is provided according to the sale parameters.
Once the sale ends, the creator has 7 days to trigger automatic liquidity addition on the token sale page. Failing to do so results in failure of the token sale. In such cases, investors will be able to .
After liquidity is added, investors are able to claim their tokens and directly start trading it. The creator can withdraw LP tokens from the manage token sale page.
In addition to the general settings, token sales with auto listing have liquidity management settings:
When the sale ends, you must add liquidity
After adding liquidity, you can withdraw their LP tokens from the manage token sale. If LP tokens are locked, withdrawing will be possible once unlock date is reached:
Similarly to the standard token sale, you can withdraw funds and remaining tokens (or burn in case enabled).
Once completed, investors can claim their tokens from the same page they invested in. Your token is also immediately tradable on the chosen DEX.
When a buyer buys an asset from the seller, there is usually counterparty risk involved – especially in over-the-counter (OTC) trades. Either the buyer makes the payment as a first step and waits for the delivery of the asset, or the seller delivers the asset and waits for the payment.
In both cases the counterparty may go bankrupt or simply disappear before the transaction is fully settled. On-chain DvP settlement solves such issues by allowing instant settlement between parties through so-called atomic swaps.
Programmatic and instant delivery vs. payment (DvP) settlement allows you to eliminate the counterparty risk from token transactions. The configurable DvP contract acts as an escrow. Each party will only receive their tokens if both parties have transferred their respective asset to the DvP contract.
The Delivery versus Payment (DvP)Settlement function on Token Tool ensures a simultaneous exchange of assets and payments, providing a secure and efficient settlement process. It guarantees that the transfer of tokenized assets and the corresponding payment occur at the same time, minimizing risks for both, buyers and sellers.
Key Features and Security
Simultaneous exchange: Ensures the asset delivery and payment occur in a single, atomic transaction.
Smart contract enforcement: Utilizes smart contracts to enforce the terms and conditions of the DvP, providing a transparent and immutable transaction record.
Risk mitigation: Minimizes counterparty risk by ensuring that both parties fulfill their obligations simultaneously.
Below is a step-by-step guide on how to use the DvP settlement function.
Set the token price
Navigate to the DvP section and connect your wallet. Make sure you're connected to the right network on both Token Tool and in your wallet.
Choose the delivery token (the token that is being sold to a buyer) via the drop-down or by pasting the smart contract address. Then click continue.
Set investment details
Specify the price, indicating how many delivery tokens the buyer will get for one unit of the payment token. For example, 1 USDC = 100 NNT.
Define the minimum and maximum investment amounts in the payment token (e.g., EURC). If no limits are required, set the value to 0.
Set the DvP start time by selecting the date and time from the calendar.
Set DvP Duration
Define the DvP duration in days, which will automatically calculate the DvP end time.
The DvP contract owner address is by default the connected wallet. You can also change the DvP owner address to specify another wallet address that will manage the DvP settlement contract.
Agree to T&Cs and create DvP settlement
Agree to the Token Tool Terms & Conditions by checking the respective box.
Click on the "Create delivery vs payment" button to finalize and create the DvP contract.
Confirm transaction in your wallet to pay fees. Once the transaction is processed, you will receive your DvP settlement contract details on the Token Tool Interface.
The DvP function on Token Tool is an essential feature for secure and efficient token transactions. By following the outlined steps, users can easily set up and manage DvP transactions, ensuring a seamless and risk-free exchange of digital assets and payments.
Once the DvP contract has been created and the transaction is processed, you will receive a pop-up modal displaying the DvP contract address and the blockexplorer link of the transaction. Make sure to save the DvP contract address as you will need to be able to manage the DvP contract:
To manage an existing DvP contract, simply go to the Delivery vs Payment page on Token Tool and paste the DvP contract address under the "Display existing Delivery vs Payment" section.
After that, click "Continue" and you will be redirected to the Delivery vs Payment page. This page serves as the DvP contract management section for the DvP contract owner (i.e. the seller), and as the buyer interface through which the token can be bought via the DvP contract:
In order for the buyer to be able to buy tokens, the DvP contract must first be topped up with the desired token amount. To do so, scroll down to the "Manage DvP" section and click the "Top up" button:
Insert the amount to be topped up and then click "Submit". You will need to approve access to tokens in your wallet in an initial step. Once the approval transaction is processed, click "Submit" again and approve the transaction in your wallet to finalize the top up.
After the transaction is complete, you will receive a success message and the DvP contract balance will be updated accordingly:
The DvP contract is now ready for buyers to buy the tokens. You can redirect buyers to the DvP Page Link for them to start buying your tokens. They can simply insert amount to buy and confirm the transaction in their wallet after clicking "Buy".
When a buyer buys a token from the DvP contract, the transaction is settled instantly via so-called "atomic swaps". This means that, after the transaction is processed by the network, there will be a simultaneous exchange of assets. The seller will automatically receive the funds to the wallet address owning the DvP contract; and the buyer will receive the tokens from the DvP contract address to the wallet connected.
In order to allow investors to subscribe to an Offering, the admin first has to create said Offering. Each Offering is assigned a specific asset and each asset can only be assigned to a single offering.
Depending on which will be used for the asset tokenization and how is managed, there are two options how an offering is created.
In this option the following components are utilized:
Choose the payment token from the available options or enter a custom token address. Ensure that the token does not have holder rewards, transaction fees, or burn fees to be compatible with the DvP settlement function. If these features are available, make sure you set the rate to 0 before creating the DvP contract.


































Asset tokenization: done on one of the supported EVM chains and managed via Token Tool and the Offering Manager
Custody: done in third-party key management technology or via a custodian
Payment processing: done by a bank that acts as a paying agent or via the regular bank account of the issuer, alternatively payments can be processed via stable coins
Once you clicked "Create New Offering" you will specify the asset attributes. However, the asset does not have to be created first as in the case of Option 2 below. You will need to select the blockchain from a drop-down menu however.
In this option the following components are utilized:
Asset tokenization: done on Stellar and managed within the Offering Manager
Custody: done via a third-party custodian
Payment processing: done by a bank that acts as paying agent or via the regular bank account of the issuer
From the Offerings menu item you click the "Create New Offering" button in the upper right corner of the page.
Important: as a next step you need to create a valid custom asset on the Stellar blockchain and add it to the list of supported custom assets in your key management and custody software. Contact Bitbond, let us know the asset code that you would like to use so that we can create this asset for you together with your custodian.
Once the "Create New Offering" button is clicked the following page will appear and you can enter the Asset attributes.
The following Asset attributes can be defined when creating a new Offering:
Asset Code is a reference to the asset located on the blockchain. You can also think of this as a securities ticker. The asset code is used to match the offering to the asset. If you do not have an asset code, please contact Bitbond. As an example you could use ABC1 here or a securities identifier such as an ISIN, e.g. DE000A2TR7Q2.
Asset Description is used to describe the asset / offering in short form. Examples would be "ABC Corp. preferred stock" or "ABC Corp. senior unsecured bond 10/2028 1.25%".
Number of Tokens is the total number of tokens that are to be created and assigned to the offering.
Currency is used to assign a fiat currency to the offering in which the asset is denominated.
Price Per Token is where a value is assigned to each token using the fiat currency previously assigned. So for instance 1.00 EUR or 1,000.00 EUR.
Offering Start Date is the date the offering is available to investors.
Offering End Date is when the offering ends and is no longer available to accept orders from investors.
Minimum Investment is used to set the lowest amount an investor can submit for an order in the fiat currency that was specified further above.
Free Float Percentage sets the percentage of minted tokens that are available to investors for subscription. The tokens that are not part of the free float will remain in the issuer wallet. An example value would be 90%. If 100 tokens are the total amount shares, then only up to 90 tokens can be purchased by investors. Orders that come in beyond that value will be rejected.
Transferability defines whether or not an investor can transfer their tokens freely to other wallets. If the value is set to Open, each token holder can transfer tokens to other wallets without restrictions. If this is set to White List then the recipient address has to be whitelisted by the issuer first.
Key Management allows the admin to choose which key solution is assigned to the offering. There are currently 2 standard wallets available: Bitbond Internal and Fireblocks. When selecting the Fireblocks wallet option there are 3 additional options. 1) Create issuing and distribution vaults automatically. 2) Use pre-existing vault only. 3) Use pre-existing and distribution vault only.
In this Option 1 setup, incoming payments from investors are settled in fiat via a paying agent bank. Once the investors complete the on-boarding and subscribe to this offering, they will be presented with bank account details for the payment of their order.
You will receive these details from the bank that you work together with as a paying agent.
Account Name is the account holder of the bank account where the investor sends the funds for an order. This would typically be the legal entity of the issuer, e.g. ABC Corp.
IBAN is shown to the investor so they know where to send the funds for their order.
BIC is shown to the investor so they can properly route their order to the correct receiving bank.
After you have entered all attributes, click SAVE. You will be brought to the the Asset tab of your newly created offering.
Registrar Snapshot Details
For token offerings on Stellar, this section allows the admin to schedule daily snapshots of token holders of the offered asset at a specific time of day. The list of token holders and their respective holdings is also referred to as "Registrar". Upon distribution of tokens, the system initiates a Registrar snapshot at the defined time and stores it under the "Registrar" tab.
Snapshot Frequency defines the frequency in which a Registrar snapshot is taken. This is pre-set to daily by default.
Snapshot Time defines the time at which the snapshot is taken.
Under you can see further details about your NFTs, upload media and metadata and manage minter whitelists.
For single asset NFTs you will see an overview with key data under Manage NFT. This includes the contract address of the NFT and the NFT minting page from where the NFT can be minted. There are no further edit options for single asset NFTs.
For collection NFTs there is rich functionality to add media and metadata to the NFT. If you have activated the minter whitelist, you will be able to add and remove addresses from here as well. The whole process consists of the following 6 steps.
Many wallets don't have a convenient way to show which tokens you hold under a particular address. Therefore Token Tool provides a user-friendly way to track your token portfolio including all your custom tokens.
The portfolio tracker currently supports tokens and NFTs on the following mainnets:
Ethereum
Polygon


When you click the input field under Manage NFT, you will see a list of NFTs in your wallet. You can click the one you would like to manage. Note that after you create a new NFT and haven't minted any tokens of it, the NFT will not appear in the drop-down list, yet.
You will need to paste the NFT contract address into the field. If you haven't copied it from the success modal after you created the NFT (see Create NFT), you can look it up under your wallet address in a block explorer. You will see a recent "Deploy contract" transaction.
Open it by clicking at the transaction hash and then go to Internal txns. The address that's highlighted in the screenshot is the NFT contract address. Copy it and paste it into the field under Manage NFT to enter.
The first function that you will see under Manage NFT is the Verify token button.
Clicking this button will trigger the verification service for the smart contract in the main block explorer of the selected chain (e.g. Etherscan or polygonscan). When the token contract is verified, everybody can read and verify the smart contract of your token.
This is common practice and we recommend doing this. Here is an example of a verified NFT contract. Note that token verification may not always work on Fantom and testnets.
Note that in some cases for older NFTs the verification might not work because we have updated our smart contracts in the meantime. If you need your token contract to be verified nevertheless, contact us under one of the listed channels. When you send us the contract address of your token we will be able to trigger the contract verification manually.
The Verify token button remains visible after the verification has been completed successfully.
When you use single asset minting, you have already uploaded or linked your media file in the Create NFT step. With collection, NFTs adding media and further attributes is a separate step that you have to do under Manage NFT. This section describes how to do that.
Equally to single asset NFTs you will want to add one or most likely multiple media files in one of the following formats: img, jpg, png, gif or mp4. This is the media that you show on your NFTs.
You can have the media files on a regular web server. Then you will need to have the URL to each media file.
However, instead of hosting your media on a web server, we recommend uploading your files to IPFS. This way many other nodes will have a copy of your media which reduces the risk that your NFT will end up without its core graphical part.
Therefore, prepare to upload everything to IPFS by storing all media files in one folder and use ascending numbers as file names. If your media files are PNGs for example, name them 0.png, 1.png, 2.png etc. Use the same naming convention for other file types, e.g. 0.mp4, 1.mp4, 2.mp4 etc.
Each NFT needs to have a description. Describe what can be seen in the media or send a message to your audience. If the NFT represents a certain right or loyalty points, you add basic terms or a web address to further information to the description.
Moreover, most NFTs also have further attributes in a standardized format. In the screenshot you can see the attributes of Bored Ape #7292 on OpenSea. They include Background, Clothes and other attributes.
If you want to add similar attributes, you will have to use a separate JSON metadata file for each NFT. The file has to follow the JSON format. Here is the JSON metadata file for the Bored Ape #7292 above:
You can see that the image attribute contains an IPFS URI for the media file. If you want to open the image in a browser, you can do it via this link
The fact that the JSON file includes the path to the media file means you can only complete your JSON files after you have uploaded your media files to IPFS. You will learn how to do that in the next section.
Just like you should have all your media files readily prepared in one folder, you will also need to have all your JSON files in one folder. Name them in a similar way to the media files: 0.json, 1.json, 2.json etc. You can skip the .json part in the file name but we do recommend to use it so that it's easier to see the file type.
There are several ways to upload data to IPFS. You are free to use whichever tool you want. Here is a selection of tools that let you do that (note: if you're an enterprise customer of Bitbond we can do the upload for you): Pinata, Moralis.
The most important aspect here is that both, your media files and your JSON files are in a folder (aka directory).
This could for example be the URI to your folder with image files (note that is just illustrative and not a real URI):
ipfs://qwertzuiop
Then this is what the image URIs will look like:
ipfs://qwertzuiop/0.png
ipfs://qwertzuiop/1.png
ipfs://qwertzuiop/2.png
The qwertzuiop part is called the CID (content identifier). When you upload media files as a folder, the CID for each file will be the same and only the last part of the URI changes.
The same goes for the JSON files where the folder would look something like this:
ipfs://asdfghjk
The list of JSON files would look like this:
ipfs://asdfghjk/0.json
ipfs://asdfghjk/1.json
ipfs://asdfghjk/2.json
The content of a fairly simple JSON file would look like this:
When you create the JSON files, it's up to you whether you customize the description and attributes for each NFT. You will however have to make sure to have the correct image URI in each JSON metadata file.
There are different ways to add media and metadata to your NFTs. The most important distinctions are Add one and Add many. If you have a larger collection you can go straight to Add many.
When you click Add one, you are adding media files to your collection one by one. You can add a custom description for every media file that you add.
You can also add the same image several times. One collection could for example consist of 12 NFTs. If you want to use 3 different images and for each image you want to have an equal amount of tokens, you will need to upload each image 4 times.
After you click the Submit button you will see this view:
It's important that you click Confirm addition. Only after you have done that and confirmed the transaction from your wallet, the metadata will be added to your NFT smart contract.
When you mint the NFTs later, the media that you added first will also be used for the first NFT. The minting follows the first in first out principle.
Instead of uploading the media files (images, videos etc.) via Token Tool you can also insert a link to your metadata that you uploaded to IPFS previously. For this you need to enable the I have a metadata link toggle:
The input field accepts two formats. One is a full web URL (using the example JSON structure from above):
A direct IPFS URI without the https part is however also sufficient:
You can also add and mint NFTs as you go. This means you can add one metadata link and then already go ahead and mint the NFT. After that you could add one more metadata link and then mint this NFT and so on. You are not required to add all metadata links for your entire collection at once.
If you have a large collection of dozens or even thousands of NFTs using the Add many option is much more efficient.
Here you can simply paste the full list of JSON URIs at once:
After you click Submit you will have to confirm this action from your wallet. Note that if you add hundreds of line items at once, the whole process is done in batches of several dozen each (the exact number depends on the used blockchain). You will need to confirm each batch from your wallet separately.
Don't forget to Confirm addition after you submitted the the list:
After you added the NFT metadata to your NFT smart contract with this method, you can either continue with managing the minter whitelist or go straight to minting if you didn't activate the whitelist requirement.
If you activated the minter whitelist at the time of NFT creation, you need to add addresses to the whitelist. You can add them one by one in the input field or upload an entire CSV file. You can also remove address from the whitelist again.
Now you (and your audience) can finally mint NFTs. Open the page that is linked to from the NFT minting page. When you scroll all the way down you will find the minting button:
As the NFT creator you can always mint NFTs (even if you activated the whitelisting). You are also not limited by the maximum amount of NFTs per address. The only limit you have as the creator is the global maximum amount of NFTs.
For NFT collections the global maximum is simply equal to the amount of media / metadata entries that you have already added to the NFT.
Other users will only be able to mint NFTs if they are on the whitelist (only if this was activated) and as long as they don't mint more that the maximum amount of NFTs per user.
BNB Chain
Avalanche
Arbitrum
Optimism
Base
Peaq
When you change the settings to show testnet tokens, the following testnets are supported:
Ethereum Sepolia
Polygon Amoy
Binance Smart Chain Testnet
Arbitrum Sepolia
Optimism Sepolia
Base Sepolia
In the profile settings, you have the option to make the following changes:
Profile avatar: You can choose an NFT from your wallet as your profile avatar.
Add email: By adding your email address, you can benefit from monthly updates and exclusive discounts.
Token portfolio blacklist: In case you have tokens in your portfolio that you don't want to see (e.g. tokens you received via a spammy airdrop), you can blacklist them from the portfolio view or via the search bar.
Network settings: Activate the "Show tokens on testnet" button to show the tokens that you hold on testnets. Note that either mainnet or testnet tokens are shown, never both. If you want to see the testnet portfolio of a third-party address (i.e. not your connected wallet) you have to change this setting to testnet on your portfolio first, after that you can also see third-party testnet portfolios.
Total value: USD value of all tokens in your portfolio on supported chains, excluding tokens you blacklisted. Note that on tokens that are not listed on any exchanges, publicly accessible prices are not available. In those cases you need to input a price manually to reflect these tokens in the total USD value.
As a user you can submit additional information about your profile and receive a 15% discount code in return. Once your wallet is connected, a red dot will appear for incomplete profiles. You can check your profile status in the address menu of your connected wallet.
You will see the percentage of completion next to "Profile". Click it to complete your status to 100%. You will be redirected to the Track Token Portfolio page in order to submit your email address. Click on the red "Add email" button and submit your address in the provided section.
Verify your wallet address by signing a message with your wallet. After that, provide your email address and click on save to receive a confirmation code to your email address. Insert the code you received to confirm your email and click verify.
Your email button should now show as verified, and the profile completion status at 80%. You can change your email address at any time by simply clicking the same button.
The last step consists of adding an avatar to your profile. Click on "Customize avatar" and select any NFT you desire from the ones available in your wallet. Click on save and your profile should be 100% complete.
After completion, you will receive an email with a discount code. Follow the instructions to get your 15% discount code. You can create and mint an NFT in under 5 minutes if you don't have any NFTs in your wallet, yet.
Under Tokens, you can get an overview of all tokens in your connected wallet on the chains that are supported by Token Tool.
The following parameters help you to navigate your portfolio:
Token: Here you can see the token symbol. Additionally, you have the option to narrow down the displayed chains by clicking on the grid.
Balance: The number of tokens held in your wallet.
Price ($): Either the price for which a tokens trades on exchanges or the price you put in here for tokens where no publicly accessible price is available.
Value: Value of all tokens of a specific kind in your portfolio (calculated simply by balance times price).
Actions: Quick access of the functions and .
Features: Displays which settings were selected when creating the token. This works for all tokens that were created with Token Tool. For tokens that were created through other methods, the features will usually not be displayed properly.
Settings: From here you can blacklist the respective token. The token will no longer be displayed in your portfolio and will not be part of the portfolio value calculation. You can take tokens off the blacklist again via the Portfolio Tracker settings Additionally, you can copy the contract address of the token and open the respective block explorer page of the token.
In the NFT section, you can easily view your NFTs. By clicking on each NFT, you can view its details, including its contract address, token ID, and description. You can also access the NFTs on the Opensea and Rarible marketplaces by clicking on the links provided.
The Token Tool's swap function provides a user-friendly platform for exchanging tokens across a wide range of networks, including Ethereum, BNB Smart Chain, and others. Token Tool integrated with third-party solutions to ensure secure, efficient, and transparent token swaps. A fee of 0.5% is paid to Token Tool upon using the swap function.
To use the Token Swap function, follow these steps:
Access Token Tool: Navigate to the Token Tool platform and go to the "Track Portfolio" section.
Connect Your Wallet: Connect your preferred wallet.
Select the Swap Tab: Once your wallet is connected, select the 'Swap' tab to access the token swap feature:
Choose Tokens to Swap and Network: Choose the tokens you wish to swap and the networks on which you wish to swap them. Then specify the amount. The interface will display clearly the details about the exchange rate, fees, and the total amount of tokens to be received.
Approve Tokens for Swapping: If you haven't done so previously, you may need to approve the tokens for swapping directly in your wallet:
Initiate the Swap: After reviewing all details, click the 'Swap' button to initiate the transaction, and then confirm it in your connected wallet:
The transaction will be processed on the blockchain, typically within a few minutes depending on network congestion, after which the swapped tokens will appear in your wallet:
You can then track your transaction status in the transaction history section:
To get started with creating a token via Token Tool, connect your wallet and select the blockchain of your choice from the network dropdown menu at the top right.
There are three different token types based on which you can create your token. All three types are ERC-20 compatible tokens when deployed on EVM chains:
Mainly used for Utility tokens, DAO tokens, DeFi tokens and meme coins.
{"image":"ipfs://QmXgtpxm5rMLkBqj9xbQb5w4GSy8vrLWvUP8kgenonYa4n","attributes":[{"trait_type":"Mouth","value":"Phoneme Vuh"},{"trait_type":"Background","value":"Aquamarine"},{"trait_type":"Eyes","value":"Sleepy"},{"trait_type":"Hat","value":"Short Mohawk"},{"trait_type":"Fur","value":"Brown"},{"trait_type":"Clothes","value":"Wool Turtleneck"}]}{
"name": "Unicorn collection",
"description": "My first Unicorn",
"image": "ipfs://qwertzuiop/0.png",
"attributes": [
{
"trait_type": "Background",
"value": "Woods"
},
{
"trait_type": "Color",
"value": "White"
}
]
}https://ipfs.io/ipfs/asdfghjk/0.jsonipfs://asdfghjk/0.json





















Asset Token Mainly used for RWA tokens, Asset Referenced Tokens (ART) and E-Money Tokens (EMT) that are issued under MiCA, stable coins, stocks, bonds, commodities and funds.
When deploying a token on Solana or Stellar the tokens follow the respective standard implementation on these chains.
All three token types have the following settings which are mandatory:
Token name: This is ideally a human readable name such as "USD Coin".
Symbol: The token symbol is comparable to its ticker symbol, typically four or more characters are used such as "USDC".
Initial supply: The amount of tokens that get minted at token creation. Note that you have to activate "Can mint" (only available for the Advanced and Asset Token types) if you want to be able to increase the supply after token creation. The supply is usually determined by the desired token denomination (i.e. the nominal value per token). For a bond offering with a nominal amount of USD 10 million and a denomination of USD 100,000 the supply would have to be 100 tokens.
Decimals: Values can be 0-18, when 0 is used, the token is not divisible (security tokens for example usually are not divisible and will have 0 decimals).
All the following token features are optional, make sure you activate them only if required. It is not possible to deactivate them after initial creation of the token once it's deployed to the network.
These features serve in importance for the life-cycle management of the token. Nevertheless, we recommend to activate only those features which are likely to be needed after initial token creation.
The Core Token is an ERC-20 compatible token. This token is mainly suitable for Utility Tokens, DAO Tokens, DeFi Tokens and Meme Coins.
By design the Core Token template has no features or functions that give the token creator centralized power to manipulate the token. Therefore, the underlying smart contract has no owner. This is common in most DeFi environments. It also means that the token smart contract is lean and gets the best ratings by token scanners.
The following settings are possible
Set Custom Token Contract Name: sets a custom token contract name. The custom token contract name cannot be changed after the initial token creation and will be visible on the block explorer after you verify the token contract.
By default the following settings are enabled on the Core Token:
ERC20Votes: This is an extension of the standard ERC-20 token contract that enables voting and delegation functionality. It allows token holders to delegate their voting power to other addresses, enabling participation in governance without transferring their tokens. It also keeps track of historical voting power snapshots, allowing for accurate voting calculations at specific points in time.
Permit functionality: The ERC-20 permit function, also known as EIP-2612, is an extension of the standard ERC-20 token contract that allows holders to grant spending approval for their tokens to a spender without requiring a separate on-chain transaction for the approval itself (like it's the case with the Approve functionality). This is achieved by using an off-chain signature, which significantly reduces gas costs and improves user experience.
Can burn: This allows each token holder to burn tokens that they have in their wallet and thereby reducing the total token supply.
The Advanced Token is an ERC-20 compatible token. This token is mainly suitable for taxable tokens, deflationary tokens, DeFi tokens with advanced features, supply capped tokens, whale protected tokens.
Some of the available features on this token type might receive warnings from token / smart contract scanners, especially when minting is enabled.
Set Custom Token Contract Name: sets a custom token contract name. The custom token contract name cannot be changed after the initial token creation and will be visible on the block explorer after you verify the token contract.
Can burn: You can choose whether to allow token burning after initial token creation, which reduces the total supply of tokens.
Can mint: You can determine whether to enable additional token minting after the initial creation, which increases the total supply of tokens.
Can pause: You can decide whether to allow your token and related operations to be paused and resumed as needed. This can be useful in emergency situations, such as a security vulnerability or a malicious attack. However, be aware that enabling pausing grants centralized control to the token creator.
Set total supply cap: Sets the maximum total token supply limit for minting. Limit cannot be changed after the initial token creation.
Charge transaction tax / fee: You can choose to charge a fee on every token transfer. The fee will be sent to the specified tax/fee wallet, which by default is the connected token creator wallet. However, you can change the recipient to a different wallet, such as a marketing or charity wallet. The fee is specified in . A fee of 3.5%, for example, would be set to 350 bps. The fee recipient is excluded from the fee when they send tokens. The tax/fee setting can be modified after token creation under the Manage Token function or set to 0 to disable it. Enabling this feature may make your token incompatible for listing it on Uniswap V3 type DEX protocols. Add the LP address to the exclusion list for it to be traded normally on V3. Tax will not apply on transactions that take place on V3 DEXes.
Apply burn fee for deflationary tokens: You can enable a burn fee to have a portion of every token transfer burnt, which will gradually reduce the total supply of tokens. The burn fee is specified in . A burn fee of 1.8%, for example, would be set to 180 bps. The burn fee setting can be modified after token creation under the Manage Token function or set to 0 to disable it. Enabling this feature may make your token incompatible for listing it on Uniswap V3 type DEX protocols. Add the LP address to the exclusion list for it to be traded on V3. Burn fee will not apply on transactions that take place on V3 DEXes.
Apply Holder Rewards (Reflection Token): You can enable this feature to reward holders with passive income by automatically distributing a portion of a transaction based on their holdings. This incentivizes investors to hold tokens and potentially stabilizes the token price. Example: to apply a reward fee of 3.5%, enter the number 350. The reward rate is specified in and it can be updated after creation.
This feature is incompatible with the "Can Mint" and "Deflationary Token" features. There is also in incompatibility with "Can Burn", however, you can always send tokens to the so called dead address 0x000000000000000000000000000000000000dead which produces the same result as burning. Find more details .
Enabling this feature may make your token incompatible for listing it on Uniswap V3 type DEX protocols. Add the LP address to the exclusion list for it to be traded on V3. Holders rewards will not apply on transactions that take place on V3 DEXes.
Change owner: The default owner is the address of the connected wallet. However, it is important to note that if you change the owner to an address that you do not control, you will not be able to make any further changes to the token after its creation.
Has document (ERC-1643): You can add the URL of an offering documentation such as a prospectus / whitepaper or simply the URL of your website here. You can also enter a text.
Max number of tokens per address is limited (ERC-1594): You can set a maximum token balance per individual address (also called "whale protection"). Limit can be increased after initial token creation but not decreased. Note: when creating a liquidity pool, make sure to fund it with the amount based on the limit set, you can then add the LP address to the exclusion list once the pool is created. Excluding the LP address from this limit will allow you to fund the pool with a higher amount than the limit set.
The Asset Token is an ERC-20 compatible token. Many of the available configuration settings are from the ERC-1400 family. This token is mainly suitable for tokenized assets sch as RWA tokens, Asset Referenced Tokens (ART) and E-Money Tokens (EMT) that are issued under MiCA, stable coins, stocks, bonds, commodities and funds.
Some of the available features on this token type might receive warnings by token / smart contract scanners for centralization risk.
Many configuration options are mainly relevant for compliance and regulatory reasons and make use of different security token standards from the ERC-1400 family. Note that you may not be able to create a liquidity pool on a DEX for tokens where some of these features are activated.
Set Custom Token Contract Name: sets a custom token contract name. The custom token contract name cannot be changed after the initial token creation and will be visible on the block explorer after you verify the token contract.
Can burn: Enables token burning after initial token creation to decrease supply
Can mint: Enables additional token minting after initial token creation to increase supply
Set total supply cap: Sets the maximum total token supply limit for minting. Limit cannot be changed after the initial token creation.
Can pause: Specifies whether your token and all associated operations can be halted and resumed whenever needed. This can be useful in case of a vulnerability or a malicious attack. Be aware that enabling pausing gives central authority to the token creator.
Can blacklist: Specifies whether individual accounts such as malicious actors can be blacklisted after initial token creation. Note that if this function is enabled together with whitelisting, you can still black list an address that is on the whitelist. This is useful when an investor has been added to a sanction list and you have to prevent them from transferring the token further.
Charge transaction tax / fee: If activated, the fee will go to the specified tax / fee wallet as a portion of every transfer of the token. The default recipient of the tax / fee is the connected token creator wallet. The recipient can be changed to a different fee, marketing or charity wallet. The fee is specified in (bps). If you want to charge a fee of 3.5% for example, you need to enter 350 bps. By default the fee recipient is excluded from the fee when sending tokens. The tax / fee setting can be changed after token creation under the Manage Token function or set to 0 to deactivate it. Enabling this feature may make your token incompatible for listing it on Uniswap V3.
Burn fee for deflationary token: If activated, the specified burn fee as a portion of every transfer of the token will be burnt. The burn fee is specified in (bps). If you want to have 1.8% deflation / burn for each transfer for example, you need to enter 180 bps. The burn fee setting can be changed after token creation under the Manage Token function or set to 0 to deactivate it.
Change owner: The default owner is the address of the connected wallet. Note: if you change the owner to an address that you don’t control, you will not be able to make any changes to the token after its creation.
Has document (ERC-1643): Add the URL of an offering documentation such as a prospectus or whitepaper here. If you don't know what to put in here, you can leave this inactive.
Max number of tokens per address is limited (ERC-1594): Sets maximum token balance per individual address. Limit can be increased after initial token creation but not decreased.
Can be force transferred (ERC-1410): Regulates the permissions of the token issuer to enforce token transfers without approval or signature of the token holder. This feature be deactivated after initial token creation. Please note: This unrestricted transfer introduces a centralization risk and may lead to a potential misuse of the privilege. If there is a legitimate need for this functionality, make sure it is properly communicated to all users and token holders.
Requires whitelisting (ERC-1594): Defines if token transfers are only possible to whitelisted addresses or if the token is freely transferable. If you activate this, you can add and remove addresses to the whitelist under the Manage Token functionality. This feature is useful for security tokens where you need to know who holds your tokens. Note that you also need to whitelist your own creator address to be able to transfer tokens. For technical reasons you can add a maximum of 200 addresses to the whitelist.
It takes approximately 10 seconds to deploy the token after you confirm. The initial token balance will be automatically visible on the address of the creator/owner after the creation is successful.
Should you require token contract verification, go to Manage Token and click the "Verify" button that is shown at the top of the screen in such cases.
Please note: The owner address can distribute tokens without obtaining the consensus of the community. It is recommended that the team be transparent regarding the initial token distribution process. The token distribution plan should be published in a public location that the community can access. The team can lock up a portion of tokens, release them with a vesting schedule for long-term success, and deanonymize the project team with a third-party KYC provider to create greater accountability.
To manage an existing token you need to connect the wallet that owns the token contract in Token Tool. After that, enter the token contract address. Alternatively you can also click on the token that you want to manage from the drop down or the list of tokens shown on the page. Make sure that your wallet is connected to the same network as the one on which the token was created.
Token verification is available on all supported mainnet and testnet networks except for peaq network. Contracts created with Token Tool can be verified on multiple block explorers, you can see supported explorers in the verification process.
All tokens created with Token Tool will have Bitbond branding by default as the name of the contract file. You can however change the default name to your own custom contract name for an extra fee upon creating the token.
To do that, when creating your token, simply enable "Set Custom Token Contract Name" by turning on toggle. Then type the name you desire in PascalCase (e.g. MyTokenProject):
The custom contract name cannot be changed once the token is created and deployed.
Example of a verified token contract on the block explorer without a custom name:
Example of a verified token contract on the block explorer with a custom name:
The custom contract name verification will be complete once you complete the steps in the Verify Source Code section.
Source code verification is supported for all contracts created via Token Tool.
Here is an example process for how you can complete verification for a token contract. The process is similar across other contracts, you should simply follow the same steps from their designated sections within Token Tool.
To verify token contract source code for a Token, go to and select your token. Then click the Verify Source Code button:
Then select the block explorer on which you wish to have the contract verified. You can choose from supported explorers, and you can perform verification on more than just one block explorer:
Then click next and choose the type of verification you wish to complete. Please note that contract source code verification is possible in three different options:
Source code verification with Bitbond branding
Source code verification Bitbond branding removed
Source code verification with your own custom branding
Select the verification option you desire, agree on the terms, and then click "Submit". Confirm transaction in your wallet to pay fees and complete the verification. Once the transaction is complete, you will be able to see the source contract verified and publicly displayed on the block explorer.
Click the "View verified contract" to see your token contract on the explorer. :
Here is how your token contract source code looks like on the block explorer with the default Bitbond branding:
Here is how your token's contract source code without any branding:
Here is how your token's contract source code with your own branding:
You can control the following parameters of your token. Please note that some of these parameters can only be changed, if the respective function was activated at the initial token creation. Some of these settings are only possible for certain token types:
Mint (only possible if activated at creation)
Burn (only possible if activated at creation)
Change owner (always possible)
Manage Token is particularly useful if you want to execute corporate actions that have an impact on existing or to be newly minted tokens / shares.
View of Manage Advanced Token
View of Manage Asset Token
This feature enables you to easily submit and add a liquidity pool for your token on a decentralized exchange (DEX). Feel free to try it on testnets prior to proceeding with mainnet transactions.
Start by clicking the "Add liquidity pool to DEX" button under the Manage Token page. Then select the DEX of choice from the presented options by creating a new pool. If you already have an existing pool, you can choose top "Top Up" that LP after clicking the add liquidity button.
Note: If your token has holder rewards, burn fee or tax, it needs to be set to 0. After adding/topping up the liquidity pool (LP), modify it back to the desired rate. If your token has a max limit per holder / whale protection set up, ensure to add the initial LP within the limits, you can then add the LP contract address to the exclusion list under Manage Token and increase the liquidity as needed.
Next, insert the pair amount you wish to submit to the LP. After that, click "Approve" to allow the sending of the tokens and confirm the transaction in your wallet. Once completed, proceed with clicking "Submit", confirm the transaction in your wallet.
After the transaction is processed, your liquidity pool will be submitted to the selected DEX.
You can then return to this page to modify existing pool ratios for your LP by topping it up.
The Add Liquidity function on Token Tool is designed to simplify the process of submitting liquidity to decentralized exchanges (DEXs) like Uniswap or PancakeSwap. It acts as an intermediary, allowing you to add liquidity in a user-friendly way without needing to interact directly with the DEX platform.
Token Tool is not a DEX protocol. We do not have control over platforms like Uniswap or PancakeSwap. Our feature is solely meant to help you submit liquidity to these protocols more easily. This guide explains how to add and manage liquidity for tokens with fees (tax, deflation, holders reward) and/or a maximum limit per address.
You can add liquidity even if token fees are enabled.
If fees are not set to 0, they will be deducted when adding liquidity.
Recommendation: Temporarily set fees to 0 when adding liquidity. This ensures the pool ratios remain correct.
Add liquidity using a token amount that is smaller or equal to the maximum limit per address.
As long as the LP (Liquidity Pool) address is not excluded, tax will apply to any swaps involving that LP.
Swapping in both directions (buy/sell) should work fine at this stage.
After liquidity is added, you can exclude the LP contract address to achieve the following:
Disable tax on transactions involving the LP (i.e. swaps).
Remove the max limit per address, allowing you to fund the LP with an amount greater than the limit.
When the LP address is excluded:
Swapping: Swaps will continue to work.
Tax: No fees will be charged on swap transactions involving the LP address.
Max Limit: You can now add liquidity beyond the original max limit per address.
⚠️ Important: Once you finish funding the LP remove the LP address from the exclusion list to re-enable tax and max limit restrictions.
If tax is applied or swaps occur during the initial LP setup, the pool ratios may get disrupted. This can cause issues, especially if slippage tolerance is low or set to 0.
To try and fix this issue:
Go directly to the DEX platform where the liquidity is added (Uniswap, PancakeSwap etc.).
Remove 100% of the liquidity from the pool.
Re-fund the LP with the correct amount of tokens.
⚠️ Reminder: Once the LP is successfully funded, remove the LP address from the exclusion list to restore tax and max holder limit functionality.
Crucial Note on Pool Ratios:
Correct Ratio at the Start: It is critical to submit the correct ratio of tokens when adding initial liquidity. If the wrong ratio is submitted initially, it cannot be fully fixed later.
DEX Protocol Behavior: Even when you remove 100% of the liquidity, the DEX protocol retains a very small ratio of the token pair. This ensures that the ratio is maintained in case liquidity is added to the same token contract address in the future.
After re-funding the LP or adding tokens beyond the limit:
Remove the LP address from the exclusion list.
Swaps will now work, and taxes will apply as intended.
If a swap fails: Increase your slippage tolerance to account for adjusted pool ratios.
To fund the LP with an amount greater than the max limit per address:
Exclude the LP address temporarily.
Add the desired amount of liquidity.
Once done, remove the LP address from the exclusion list.
⚠️ Note: While the LP address is excluded, tax will not apply, and the max limit restriction is bypassed.
By following these steps, you can seamlessly add and manage liquidity for tokens with fees and address limits while ensuring smooth swap functionality and proper tax enforcement.
Ethereum: Uniswap V2, SushiSwap V2
Avalanche: Trader Joe V1, Uniswap V2, SushiSwap V2
Polygon PoS: Quickswap V2, Uniswap V2, ApeSwap, SushiSwap V2
Blacklist address (only possible if activated at creation)
Pause (only possible if activated at creation)
Transaction tax / fee (only possible if activated at creation). You can exclude addresses from being taxed by adding them to the exclusion list. Add the LP address to exclusion list for it to be traded on V3. Tax will not apply on transactions that take place on V3 DEXes.
Deflation settings (only possible if activated at creation). Add the LP address to exclusion list for it to be traded on V3. Deflation will not apply on transactions that take place on V3 DEXes.
Holders Reward / Reflection Token (only possible if activated at creation) . You can prevent addresses from receiving holders rewards by adding them to the exclusion list. Add the LP address to exclusion list for it to be traded on V3. Holders rewards will not apply on transactions that take place on V3 DEXes.
Add a liquidity pool to a decentralized exchange. This feature may not work for tokens that have features activated.
Edit asset documentation (only possible if activated at creation)
Add or remove whitelisted addresses (only visible and possible if activated at creation)
Change tokens per address limit (only possible if activated at creation) – note that you can only increase the limit but not decrease it in order to avoid creating a conflict with the amount of tokens that could be held per address prior to the change. This feature is also called "whale protection". You can exclude specific wallet addresses by adding them to the exclusion list. Once added to the exclusion list, the limit would not apply to these wallets. This can be useful when adding a liquidity pool to DEX. Note when creating a liquidity pool: make sure to fund it with an amount within the limit, you can then add the liquidity pool (LP) address to the exclusion list once the pool is created. Excluding the LP address from this limit will allow you to fund the pool with a higher amount than the limit set.
Force transaction to move tokens from any wallet address to another address (only possible if activated at creation)
Fantom: SpookySwap V2, WigoSwap, SushiSwap V2
Arbitrum: Camelot V2, Uniswap V2, Trader Joe V1, SushiSwap V2
Optimism: Uniswap V2, SushiSwap V2
Base: Uniswap V2, BaseSwap V2, SwapBased V2, SushiSwap V2
Blast: BlasterSwap V2, Uniswap V2, SushiSwap V2
















Create Token Sale is an easy to use STO / IDO / ICO token sale script that lets you run a token sale in a lean way. Use this function to conduct and run an
Initial coin offering (ICO)
Initial DEX offering (IDO)
Security Token Offering (STO)
In order to get started with your Token Sale, you need to have a token prepared. Unless you already created a token, go to to configure and create your token.
Once you have your token created, you can enter the Create Token Sale function and select the token that you want to run a token sale for from the drop-down menu.
All available tokens that you own are automatically shown in the drop-down menu. Alternatively you can paste the token contract address in the input field.
We recommend that you don't use tokens in a token sale that have whitelisting enabled. If you still want to use such a token in a token sale, you will have to add the token sale contract address to the whitelist as well as the addresses of all investors otherwise you will not be able to start the token sale and investors wouldn't be able to claim their tokens after the sale is over.
You should also be careful when creating a token sale that have transaction tax/fees, as you would need to fund the sale contract with the full amount of tokens on sale.
Once you have selected the token and clicked Continue, you will enter Step 1 of 2: Configure your token sale.
Here you determine, how your investors will pay for the tokens you have on sale. In the past, many token sales have been conducted in a way that the only payment method was the native cryptocurrency of the blockchain on which the token was created.
In the case of Ethereum, this was ETH or in the case of Polygon it was MATIC. This has the disadvantage that investors and issuers are exposed to exchange rate fluctuations of the underlying cryptocurrency.
Therefore, Token Tool lets you choose any custom token on the selected chain as a payment method. The most common choice is usually a stable coin such as . Token Tool provides you with the possibility to already choose USDC as a pre-selected option.
Of course, you are free to use any stable coin or custom token. Just make sure that the payment token is easily accessible for your investors. You can also include a DEX in your token sale for convenient exchange from cryptocurrencies such as ETH to the payment token / stable coin of your choice.
If you choose a custom payment token, you will need to specify the payment token via its token contract address. If you have the custom token in your own wallet, you can simply select it from the drop-down menu, then you don't need to look up the token contract address.
This determines the price per token on sale quoted in the selected payment token. So let's assume that you choose USDC as the payment token, then entering a value of 5 means that for each token on sale 5 USDC has to be paid by your investors.
Sometimes you may want to provide incentives for investors to invest in your token sale early on. One way to do that is to apply discounts / lower prices in different weeks throughout the token sale such as:
Week 1-2 token price: USDC 0.90
Week 2-5 token price: USDC 0.95
Week 5-8 token price: USDC 0.98
In order to do that you can set up a separate token sale for each tier. Just make sure to set the start time and duration of each token sale in a way that there are no time gaps between the different tiers.
Let’s assume you want to raise up to USDC 100,000 for your token. Here is how you can incentivize injvestors to join early
How It Works: Create separate token sales for each pricing tier.
Example:
Tier 1 early bird: sell up to 10,000 tokens at the lowest price of USDC 0.75 per token (this implies a 25% discount) for 3 days or shorter if the hardcap is reached – this means you raise up to USDC 7,500 in this tier
Tier 2 main sale: immediately after Tier 1 finishes (either after 3 days or once the hard cap is reached) you create a second token sale contract, here you sell up to 80,000 tokens at a price of USDC 0.85 per token (this implies a 15% discount) for 6 days or shorter if the hardcap is reached – this means you raise up to USDC 68,000 in this tier
How It Works: Sell tokens at a single price during the entire sale, then manually distribute additional tokens to early investors as a bonus to reflect discounts.
Steps to Implement:
Create a single token sale with a base price (e.g., USDC 0.15 per token).
Soft cap: this is the amount you need to raise by the end of the token sale in order for the token sale to happen. The soft cap must be lower than the hard cap. Soft cap range: so let's assume USDC is your payment token and you want to raise USDC 5,000,000. The soft cap can be a maximum of USDC 4,999,999 and a minimum of USDC 0. If this amount is not reached, the invested funds can be reclaimed by investors after the token sale is over.
Hard cap: this is the maximum amount that you can raise in your token sale.
Choose an amount that is in line with your funding needs and that you believe you can realistically raise from investors.
This setting is optional and allows you to control the maximum and minimum investment per investor.
Min investment amount: if you set this too high, the entry barrier for some investors might be prohibitive. If you set this to a very low amount, you might have to manage many very small investors.
A value between 1 and 100 dollars normally makes sense unless you are allowed to only accept accredited or professional investors who invest much higher amounts each.
⚠️ Important: If you set a minimum investment amount, it may prevent the token sale from reaching its hard cap. Once the remaining amount is less than the minimum, no further investments can be made, this may cause the sale to remain incomplete until the set end time.
Max investment amount: this is the maximum one investor can invest.
Please note that the investment amounts min and max values are tied to addresses, it is therefore possible to circumvent these limits. If you want to make sure that a certain investor doesn't exceed the limits, you need to set up the token sale in a way that only whitelisted addresses can invest. That way you can make the connection between a particular investor and an address.
Token sale start time: this is the moment from which investors can invest.
It normally makes sense to run a marketing phase before your token sale starts. You should also allocate enough time to send the tokens to the token sale contract address. When you want to whitelist investors, you can also do that during a ramp-up phase before your token sale starts.
Typically anything between starting in a few days up to several weeks are usual values here.
Important: if you want your token sale to start immediately, we highly recommend to leave enough time to send your tokens to the sale contract. Therefore, make sure you leave at least half an hour between the time you create the sale and the token sale start time.
Token sale duration in days: this determines how long investors can invest in your token sale.
When this is too short, you might not have enough time to find investors. If too long, your marketing impact might fade away. Adjust everything according to your needs. Anything between 2 and 12 weeks (i.e. between 14 and 90 days) is usual here.
As stated above, sometimes you might want to provide discounts for early investors. In that case it makes sense to set up a token sale for each discount tier and align the start and duration of each discount phase accordingly.
The token sale ends either at the end of the token sale duration or when the hard cap is reached.
Lock duration in days: this determines how many days after the token sale ends investors can claim their tokens.
This feature allows you to define how tokens will be distributed to buyers after the token sale ends. You can choose between two options:
Release all tokens immediately after the sale ends, or
Set up a custom token release and vesting schedule.
If you opt for a vesting schedule, you will be able to configure multiple release stages. For each stage, specify:
The date and time of the token release.
The percentage of tokens to be released at that time.
The total percentage across all stages must equal 100%, ensuring the full token allocation is eventually distributed.
Once the token sale concludes, all tokens are locked and will only become claimable according to the schedule you've set. Investors will be able to claim their tokens during each release phase as they are unlocked.
Burn unsold tokens: by activating this option, all unsold tokens will be burned after the token sale ends when you withdraw funds.
Here you can choose whether to launch a sale with automatic liquidity listing, or without auto listing.
If you wish to create a token sale without automatically listing your tokens on a DEX, simply choose the manual listing option.
Important: The auto-listing feature will not work for tokens with an existing liquidty pool. It is also incompatible with token contracts with fees, whitelisting, and/or wallet balance limits. Double check necessary adjustment of token features prior to proceeding.
When choosing the auto listing option, you will be prompted to configure LP submission settings based on available options:
LP percentage: This is the percentage of raised funds that will be added directly to the liquidity pool after the sale completes.
LP tokens locking duration: How long your liquidity pool tokens will be locked up, you will not be able to withdraw liquidity from your pool for as long as the locker is ongoing.
Price per token: Determines the price relationship between your sold tokens and the payment token in the liquidity pool.
A preview of results will be displayed giving you better insights into the process. Make sure to review all the settings before proceeding to the next step.
When a sale with auto listing is complete, the creator will have 7 days to add liquidity otherwise the sale will fail and investors will get a refund. Make sure to refer to the manage auto listing sale documentation to avoid issues.
This setting has a big impact on how you onboard investors, make a careful decision here.
Every address can invest: in this case everybody can invest in your token sale. This option is suitable for unregulated token sales such as Initial Coin Offerings (ICO) where you don't need to know the identity of your investors. Here you don't need any additional investor on-boarding. The Token Sale function of Token Tool delivers everything you need for the entire process.
Only whitelisted addresses can invest: when you select this option, an investor can only invest from an address that you whitelisted previously. This option is suitable for token sales where investor is necessary e.g. for regulatory reasons. This is usually the case in a Security Token Offering (STO). The whitelisting of addresses is done under the functionality.
You can manage investor on-boarding manually via a and a spreadsheet or use other products for this such as ERP software.
When you manage investor on-boarding via a Google Form and a spreadsheet, everyone who wants to invest should submit the following information:
Full name (and legal entity in case of an institutional investor)
KYC document (e.g. image of an ID card or passport) of investor or legal representative
Full postal address
When all data is checked, the wallet address can be added to the whitelist and email updates can be sent (e.g. when the sale starts and finishes).
By default the wallet address with which you are logged-in to token tool is the owner. However, you can also assign a different owner who will then be able to manage the token sale. Only change this if you know what you are doing!
After you click Continue you arrive at Step 2 of 2: Review token sale configuration. Here you can review everything. Once done, click on the Create sale button to launch your token sale.
After you confirmed the token sale creation from your wallet, you will be shown the Token sale contract address and Shareable token sale link. Bookmark them both!
The Shareable token sale link is the page that you need to share with your investors so they can invest. It normally makes sense to include this page on your existing website via an . Then you can display your project details, team, roadmap etc. on your website and have the token sale page through which investors invest integrated directly.
The Token sale contract address is necessary to log in to Manage Token Sale.
You can edit your token sale up until 10 minutes before the start of the token sale in the section. It is not possible to make edits to the token sale once the tokens have been transferred to the sale contract.
Once you create the token sale successfully it's important that you send tokens to the token sale contract under the function or via standard ERC20 transfer. Otherwise the sale will fail upon start time.
Tier 3 late comers: immediately after Tier 2 finishes (either after 6 days or once the hard cap is reached) you create a third token sale contract, here you sell up to 25,789 tokens at a price of USDC 0.96 per token (this implies a 4% discount) for 3 days or shorter if the hardcap is reached – this means you raise up to USDC 24,500 in this tier
Steps to Implement:
Create the first token sale (e.g., early-bird tier) with the desired price and duration.
If desired, use whitelisting to restrict participation to approved addresses for the early-bird sale.
After the first sale ends, create a second token sale (e.g., main sale) with updated pricing.
Pros:
Simple to implement using Token Tool’s existing features.
Clear separation of pricing tiers for investors.
Challenges:
Requires managing multiple sales and making sure that the next tier starts immediately after the previous one ends.
After the sale ends, calculate and distribute additional tokens to early investors based on the discount (e.g., 2 additional tokens for every token invested during the first tier, 1 additional token for every token invested during the second tieretc.). You can easily airdorp tokens to your investors with Token Tool.
Pros:
Simplifies the token sale process by using a single sale.
Allows retroactive implementation of tiered pricing.
Challenges:
Requires manual calculations and token distribution.
Citizenship
Tax ID
Email address
Blockchain wallet address
Declaration about source of funds










