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...
Bitbond builds the tokenization stack used by banks, asset managers, and corporate issuers to bring real-world assets on-chain. These docs cover everything you need to ship with our two products.
Where to start
– a no-code studio for deploying compliant tokens, running on-chain token sales, locking supply, automating payments, and managing NFTs across 11+ chains. Best for teams who want to launch a token quickly or programmatically through the .
– the end-to-end primary issuance platform: investor onboarding, KYC, multi-payment rails, a white-label invest page, order and allocation management, and post-issuance servicing. Best for teams running a full offering with regulated distribution partners.
If you're not sure which one fits, and we'll point you at the right product.
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.
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 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 . You can use the guide for your own reference, or refer your investors to that guide if you're with Token Tool.
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:
The Partners page at /admin/partners provides a curated list of service providers to help you launch, market, and manage your token offering. You can browse partners by category and quickly visit their websites or contact pages.
Sign in to Offering Manager at https://om.bitbond.com.
In the left-hand navigation menu, click Partners.
The Partners page will load, displaying all available categories and providers.
Providers are organized into the following categories:
Offers guidance on tokenization strategy, technical architecture, and tokenomics.
Example partner: Bitbond — advisory services including strategy, architecture, and tokenomics. Use the Contact Us link to reach out to the Offering Manager team.
Agencies and platforms for PR, media distribution, community outreach, and influencer marketing.
Sample partners include Chainwire, Financewire, TokenGems, Lunar Strategy, Coinbound, and CrowdCreate.
Custody and wallet infrastructure providers offering MPC wallets, key management, and smart contract deployment.
Featured partners: Bitbond Token Tool, Fireblocks, Fordefi, Utila, DFNS, BitGo, Ripple, Finoa, and Tangany.
Platforms where your token can be listed or traded after launch. This category is further split into subgroups:
Decentralized Exchanges (DEXs) Leading on-chain trading protocols such as Uniswap, SushiSwap, PancakeSwap, and Curve Finance.
Centralized Exchanges (CEXs) Major exchanges like Binance and Bybit.
Within each category or subgroup, providers are shown as cards. Each card includes:
Name & Logo The provider’s name with their domain’s favicon automatically fetched as a logo.
Description A brief summary of services offered.
Tags Key features or service areas (e.g., “PR”, “MPC Wallets”, “DEX”).
Use this page to explore vetted service providers and connect directly with the teams best suited to support your offering.
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:
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.
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:
Name: this could be something like "ABC Corp salaries 2024USDC"
Manage your personal sign-in details and security settings.
You can access this page at .
On My Account, you can:
View your assigned role (Owner, Admin, Viewer, or Super Admin) and sign-in email.
Update how your name appears in the app and in notifications.
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.
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":
Make sure to submit the code before you complete the transaction in your wallet.
The Token Tool crypto affiliate program is currently supported on these 4 chains:
The 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:
After 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.
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.




Change your sign-in email address (verification required).
Manage your account’s security settings, including changing your password, reviewing active sessions, and enabling two-factor authentication.
Note: Your role (Owner, Admin, Viewer, or Super Admin) is read-only here. To modify team roles or invite new users, go to Team Management.
The Profile card at the top of the page displays your current role and email address:
Role: Shows your assigned role within the platform (Owner, Admin, Viewer, or Super Admin).
Email: Your current sign-in email address.
These values are read-only on this page.
Manage how your name appears in the app and in notifications.
Locate the Name card.
View your current full name under “Current name.” If no name is set, you will see “—.”
Click Edit name to enter edit mode.
Update your First name and Last name (each up to 100 characters).
Click Save to apply changes or Cancel to discard.
Upon successful update, a confirmation message appears.
Change the email address used for signing in and receiving account notifications. Changing your email requires a two-step verification process.
In the Email Address card, click Change email.
Under New email address, enter a valid email (e.g. [email protected]).
Click Send verification code. A 6-digit code is sent to the new address.
Enter the 6-digit code and click Confirm.
If you do not receive the code, click Resend code.
Error messages and success notifications appear inline. After confirmation, your sign-in email is updated automatically.
Use the Security card to manage your account’s sign-in security:
Change Password: Update your current password.
Active Sessions: Review and sign out of other active sessions.
Two-Factor Authentication: Enable or manage 2FA if your account supports it.
Follow the on-screen prompts in the Security section to update your credentials and safeguard your account.
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.

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.
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,4Initial 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
Conducting an airdrop of tokens to a long list of addresses
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).
0x53c23c9d7fa6468f3c99c45791998e259baa32cd,64
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,35
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,89
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,95
0x4491bb52e325f16dd825192517b7e5daf3bc7391,120x53c23c9d7fa6468f3c99c45791998e259baa32cd,64,first message
0xc26f229db52da0ebf814dfd58a8949cdf6b6baee,35,second message
0xdc47799ecb3433e5805dfe034f5fc6eb72f68d1e,89,third message
0xa1cba1a1fba99c53c91b66863bc76ce00e7da787,95,fourth message
0x4491bb52e325f16dd825192517b7e5daf3bc7391,12,fifth messageAutofill repients: proportianal amount: Get recipient addresses automatically based on their holdings of a token - each address receives an amount proportional to their token balance.
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.
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.
This function lets you () 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:
Complete log of all admin and investor actions
The Audit Trail provides a complete, chronological record of all significant actions taken by admins and investors in your offerings. Use it to maintain compliance, investigate incidents, and monitor operational activity.
Sign in to the Offering Manager at .
From the left-hand menu, select Audit Trail or go directly to:
The Audit Trail captures the following categories of events:
The is a platform that enables token issuers to configure, launch, and manage token offerings — including Security Token Offerings (STOs) and Initial Coin Offerings (ICOs). It provides everything you need to run a compliant, investor-friendly token sale from a single dashboard.
The Offering Manager is built for token issuers — companies and organizations that want to raise capital by selling digital tokens to investors. Whether you are launching a security token backed by real-world assets or a utility token for your platform, the Offering Manager gives you the tools to manage the entire process without writing code.
Multiple Concurrent Offerings — Run several token sales at the same time, each with its own pricing, caps, dates, and compliance rules.
The Dashboard is the first page you see after logging in to the Offering Manager at . It provides a high-level overview of your offerings and their financial performance. What you see depends on your role:
Issuer Admins see a personalized greeting, four summary cards with aggregate metrics across your offerings, a payment-method breakdown of confirmed revenue, and a table of all offerings under your account.
When you log in as an issuer_admin, the Dashboard displays a greeting under the page header (for example, “Welcome back, Jane 👋”), four summary cards with aggregate metrics across your offerings, a payment-method breakdown of confirmed revenue, and a table of all offerings under your account.
At the top of the Dashboard, four summary cards display:
MCP Integration (Model Context Protocol)
Token Tool supports integration via the Model Context Protocol (MCP), enabling AI agents to interact directly with tokenization infrastructure.
This allows Token Tool to be used not only through the UI or API, but also as part of AI-driven workflows and automated systems.
The Model Context Protocol (MCP) is a standardized interface that allows AI agents to securely connect to external tools and execute actions.
Instead of building custom integrations, MCP provides a consistent way to:
Discover available functions
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.
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
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).













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 Wallet Connect. In such cases the custodian can log in to Token Tool 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.
Fireblocks 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.
Ledger 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, Ledger Enterprise provides bank-grade key custody infrastructure.
Metamask 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.
Safe 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
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
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.
Status Change Updates to offering or order status (e.g. Draft → Active, Pending → Settled).
Bank Reconciliation Entries related to reconciliation of bank transfer payments.
Investor Created Manual creation of an investor by an admin.
Investor Edited Edits to an investor’s profile or KYC status by an admin.
KYC Override Manual override of an investor’s KYC result.
Order Created Manual order creation by an admin (including manual payment methods).
Order Edited Edits to an existing order by an admin.
Order Placed Orders submitted by investors through the Invest Page.
Wallet Updated Investor-initiated changes to their wallet address or chain.
Profile Updated Investor-initiated edits to profile information.
Other Actions Any actions not covered above will appear under their raw action name.
Use the controls at the top of the page to narrow down entries:
Search Enter part of an actor’s name or email, an action label, or an entity ID. This full-text search is applied client-side.
Entity Type Choose All Types, Investor, or Order to filter entries by entity.
Refresh Click the Refresh icon to reload the current filter and page.
Pagination Navigate through pages of 30 entries each using the Prev/Next buttons.
Each row in the audit list shows:
Timestamp The date and time when the action occurred, formatted in your browser locale.
Actor The admin or investor who performed the action. If the system performed it automatically, the actor is shown as “System.”
Action Label A color-coded label corresponding to the event type.
Entity Details The type (Investor or Order) and the unique ID.
Change Details Click an entry to expand a diff view:
New records: all initial values in green.
Updates: old values in red with a strikethrough, new values in green.
Conduct compliance audits of investor onboarding and order processing.
Investigate exceptions in payment reconciliation and KYC overrides.
Monitor manual actions by admins, such as creating investors or orders.
For programmatic access to audit logs, see the interactive OpenAPI reference at https://om.bitbond.com/api/docs.
You can scope and paginate audit logs using query parameters on the /issuer/audit-logs endpoint:
entityType (string)
Filter by entity type (User for investors, Order).
entityId (string) Filter by a specific entity ID.
actorId (string) Filter by the ID of the admin or system actor.
offeringId (string) Scope logs to a particular offering. Only entries for orders and investors related to that offering are returned.
page (integer) Page number for pagination (default: 1).
limit (integer) Number of entries per page (1–100, default: 50).
Example:
The response includes an array of log entries plus metadata:
For details on each log field, refer to the OpenAPI reference.
Execute structured actions
Exchange inputs and outputs
With MCP, Token Tool becomes accessible to any MCP-compatible agent or environment.
Through MCP, Token Tool exposes its core functionality, including:
Create tokens (ERC-20, SPL Token-2022)
Manage token lifecycle (mint, burn, pause, transfer ownership)
Create and distribute NFTs
Configure token sales
Interact with deployed contracts
All actions map directly to Token Tool’s underlying API and result in on-chain transactions.
MCP Client (Agent) initiates actions
MCP Server (Token Tool) exposes available capabilities
Token Tool API executes the request
Blockchain finalizes the transaction
Automated token launches Trigger token creation based on predefined conditions
AI-driven token operations Manage supply, distributions, or permissions programmatically
Conversational interfaces Create and manage tokens through chat-based systems
Workflow automation Combine token issuance with off-chain systems (e.g. KYC, analytics, notifications)
Set up the MCP server https://github.com/bitbond/token-tool-mcp
Connect an MCP-compatible agent or environment
Configure wallet or custody for transaction signing
Execute Token Tool actions via MCP
Non-custodial Token Tool does not manage private keys. Transactions must be signed via your wallet or custody provider
Execution layer Token Tool handles token issuance and contract interaction. External systems are responsible for compliance, distribution, and business logic
On-chain finality All actions executed via MCP result in verifiable blockchain transactions
UI
No-code token creation and management
API
Direct backend integration
MCP
AI agents and automated workflows
The MCP integration extends Token Tool into AI-native environments:
Standardized agent access
Programmatic token operations
Seamless integration into automated systems
Token Tool remains the issuance and execution layer, now accessible through AI-driven interfaces.
https://om.bitbond.com/admin/audit-trailGET https://om.bitbond.com/api/public/issuer/audit-logs?offeringId=123&page=2&limit=30{
"logs": [ /* array of audit log records */ ],
"total": 250,
"page": 2,
"limit": 30
}User / Application
↓
AI Agent (MCP Client)
↓
Token Tool MCP Server
↓
Token Tool API
↓
Smart Contracts (Blockchain)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.
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.
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.

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.
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.
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 IPFS. 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.
Symbol: The symbol can be something shorter such as BA2023.
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.
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 iframe.
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.
Activity Log — View a complete audit trail of administrative and investor actions, filterable by offering, user, action type, and date on the Audit Trail page.
Manual Investor and Order Management — Create, edit, and manage investor profiles (including KYC status updates) and orders directly in the admin panel, with support for manual payment methods to record off-platform transactions.
Investor Wallet Policy — Choose between byo_only (bring your own wallet), investor_choice (let investors choose between BYO or custodial), or custodial_only (use Tangany, which currently supports EVM chains) for on-chain distributions.
Invest Page and Invest Page Builder — Create branded, conversion-optimized invest pages for each offering with countdown timers, progress bars, team profiles, roadmaps, and external links. Configure content in the Invest Page Builder (on the Invest Page tab). Pages use path-based routing (for example, https://om.bitbond.com/invest/acme-gmbh/my-offering).
Embeddable Widgets — Generate secure checkout or portfolio widgets to embed the investment experience or investor portfolio display on your own website or partner sites.
Order Management — Track every investment through payment confirmation. Reconcile bank transfers via CSV upload, send payment reminders, add manual orders via the Orders tab, and export funded investor wallet addresses for distributions across EVM, Solana, and other supported chains.
Team Collaboration — Invite team members to your issuer account so multiple people can manage offerings, investors, and orders.
Partner Management — Invite and manage partners who collaborate on your offerings. Use the Partners page to define partner roles and permissions.
Settings — Configure payment providers, KYC integrations (Sumsub or Blockpass), custom domains, and branding from the Settings page.
API Access — Generate API keys and use the public API (base URL: https://om.bitbond.com/api/public) to build custom investor experiences or integrate with your systems. Interactive OpenAPI docs are available at https://om.bitbond.com/api/docs.
Discount Tiers — Offer early-bird or volume-based pricing to incentivize larger or earlier investments.
Custom Branding — Upload your logo, choose brand colors and fonts, and optionally use a custom domain for your invest page.
You sign up and pick a plan Create your issuer account at https://om.bitbond.com and choose a plan:
Free: 1 offering, up to 5 investors, up to 3 team members, cannot publish live offerings, no custom domain, no payment processing, Bitbond branding shown on the invest page.
Professional Monthly or Professional Annual: up to 5 offerings, up to 1,000 investors, up to 3 team members, can publish live offerings, supports custom domains, payment processing enabled, no Bitbond branding.
Enterprise: unlimited offerings, investors, and team members; includes all Professional features, plus dedicated support and custom contractual terms. You can upgrade Free → Professional from the . For Enterprise inquiries, contact .
You configure your setup
Add your bank details, connect payment providers (bank transfer, card via Checkout.com, hosted crypto via Coinbase Commerce, direct on-chain stablecoin), configure KYC integration with or , and set your investor wallet policy (byo_only, investor_choice, or custodial_only with Tangany).
You create an offering Define token details, pricing, investment limits, sale dates, payment methods, and compliance requirements.
You customize the Invest Page Use the Invest Page Builder (on the Invest Page tab) to add a project description, team members, roadmap, documents, and external links.
Optionally generate an embeddable widget Create a checkout or portfolio widget to integrate the investment flow on your own website.
Investors visit your invest page or widget and invest They sign up, complete KYC, choose a payment method, and place their order. Investors can also view their positions in the portfolio page or via the portfolio widget.
You manage orders and distribute tokens Track payments, reconcile bank transfers via CSV upload, and export a CSV of funded investor addresses for token distribution via the Bitbond Token Tool.
Optional manual operations Administrators can manually create or update investor profiles (including KYC status), add or modify orders using manual payment methods in the Orders tab, and make other adjustments as needed.
If you have questions about using the Offering Manager, refer to the sections in this documentation. For technical issues or account-related requests, contact the Bitbond support team.
Total Confirmed — Amount of investment paid and confirmed across all offerings (in your base currency by default).
Total Pending — Amount of investment with orders placed but payment not yet received or confirmed (includes orders in pending or processing status).
Total Refunded — Amount refunded to investors across all offerings.
Active Offerings — Total number of offerings in your account.
Below the summary cards, a breakdown chart shows confirmed (paid) revenue by payment method. For each method—bank transfer (SEPA/wire), card payments via Checkout.com, crypto payments via Coinbase Commerce, direct on-chain stablecoins, or Manual—you can see:
Total amount received
Number of orders
This helps you compare which rails are most popular with your investors.
Below the charts, a table lists each offering with these columns:
Offering name and status The name of the offering and its current status (Draft, Active, or Closed).
Confirmed Total confirmed (paid) investment for the offering.
Pending Total pending investment awaiting payment or confirmation.
Progress Percentage and progress bar showing how much of the hard cap has been reached.
Orders / Days left Total number of orders (across all statuses, including pending, paid, refunded, and cancelled) and days remaining until the offering ends (or “Ended”).
Click View on any offering to open its detail page, where you can:
Manage offering settings (including support for multiple blockchain networks such as EVM and Solana and configure your investor wallet policy—BYO-only, investor choice, or custodial-only via Tangany).
View, filter, and manually create orders (select Manual as the payment method).
Review offering-scoped activity in the Audit Trail.
Edit the investor Invest Page in the Invest Page Builder tab and configure KYC requirements (powered by or ).
New Offering — Create a new token sale.
View — Open an individual offering’s detail page.
Use the sidebar to access all sections:
Dashboard — Overview page described above.
Offerings — List and manage all offerings; view details, orders, and settings.
Investors — View, edit, and create investor profiles; manage KYC status.
Audit Trail — Review platform and offering activity logs, with offering-scoped filtering.
Partners — Manage partner organizations and referral relationships.
Team — Manage team members with account access.
Billing — View your current plan, upgrade self-serve from Free to Professional, or contact sales for Enterprise.
Settings — Configure organization details, payment methods (bank transfers, card payments via , crypto payments via , and on-chain stablecoin payments), and KYC integrations (Sumsub and Blockpass).
For full API reference, see the interactive OpenAPI spec at https://om.bitbond.com/api/docs.
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
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), Stellar and XRPL (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 and the respective token standard on XRPL. 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.
The Create Token Locker 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.
Once 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 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 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 , 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 . Once the transaction is complete, your locker contract source code will be verified on the block explorer:
The Billing & Subscription page at /admin/billing provides a central place to manage your Offering Manager subscription. From here you can review your current plan, update your payment methods, view invoice history, monitor your usage, change or cancel your subscription, and export your data.
A status banner at the top of the page highlights any critical issues with your account:
Active When your account is in good standing, this banner is hidden.
Grace Period If a payment attempt fails but you are still within the grace period, your account remains active. In this case, the status banner is hidden, but a Payment Issue banner appears prompting you to update your payment method.
Restricted or Suspended Your account is in restricted mode or suspended due to billing issues. You can view and export your data but must subscribe or update your payment method to restore full access.
Scheduled for Deletion Your account is scheduled for permanent deletion on a specific date. Subscribe now or export your data before it is removed.
In the status banner you can:
Click Subscribe to Reactivate or Reactivate Account to start a new subscription or restore full access.
Click Export Data to download a snapshot of your offering, investor, order, and team data.
Under Current Plan, you can review:
Plan name (Free, Professional Monthly, Professional Annual, or Enterprise)
Billing cycle (monthly or annual)
Price (excl. VAT)
Next renewal date or scheduled cancellation date
If you have a promotional discount applied to your subscription, an Active Discounts card appears beneath your plan details. This card shows:
Discount type (percentage, fixed-amount, free-months, custom price, or permanent)
Discount amount and currency
Duration (in months) or indication if it is ongoing
Remaining months, if applicable
Click Change Plan in the Current Plan section.
In the dialog, choose between Professional Monthly or Professional Annual.
Review the proration details.
To upgrade to the Enterprise plan with unlimited usage and dedicated support, click Contact Sales in the dialog to visit Bitbond’s sales team at .
Click Cancel Subscription in the Current Plan section.
Review the cancellation details (downgrade to Free plan, test mode for live offerings, data retention).
Click Cancel Subscription to confirm.
The Upgrade Options card lists all available plans side by side. Click Subscribe next to a plan to start a new subscription via Stripe Checkout. For Enterprise inquiries, select Contact Sales which links to .
The Payment Methods card lets you manage how you pay your invoices:
Card payments via
Bank transfer (SEPA or wire)
Crypto payments via
Direct on-chain stablecoin payments (wallet-to-wallet)
Actions:
Click Manage Payment Methods to open the Stripe Customer Portal.
Add a new card, update expiry dates, or remove old methods.
Select a default method for automatic billing.
If a payment attempt fails or an invoice becomes past due, a Payment Issue banner appears prompting you to update your payment method.
Your Billing Details appear on all invoices and are required for EU VAT reverse-charge compliance. Enter:
Company name
Street address (Line 1 & Line 2)
City, postal code, state/region
Country
Click Save Billing Details to persist changes.
The Invoices card displays all past invoices with:
Invoice number
Status (Paid, Open, Draft, etc.)
Amount and currency
Billing period (start/end dates)
Use the Date After and Date Before filters to narrow the invoice list.
Monitor your current usage against plan limits in the Usage & Add-Ons section. You can see:
Number of offerings created
Number of investors onboarded
Number of team members added
Feature availability (go live, custom domain, payment processing, branding)
If you need higher limits or additional features, use the Change Plan dialog to contact our sales team.
The Data Export tool lets you generate a snapshot of your tenant data:
Click Export Data.
The system prepares a ZIP archive or individual JSON/CSV files.
The download starts automatically, and you receive a summary of total investors, orders, offerings, and team members.
For automated API access, refer to our OpenAPI reference at . The Offering Manager is available at .
The Team page lets you invite additional administrators or viewers to your issuer panel and manage their access.
To invite a new team member:
Click Invite Member on the Team page
Fill in the invite form:
This page describes how to configure and manage custodial investor wallets using a supported custody provider (Tangany or Fireblocks) in the Offering Manager.
In the Admin UI, go to Settings > Integrations.
Locate the Investor Custody card and select Configure.
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.
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.
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.
Any active discounts (see Active Discounts below)
VAT ID (required for EU countries)
Due date and paid date
Links to view the hosted invoice or download the PDF



































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.01
0.01
BNB Chain
3.25
0.05
0.14
Avalanche
1.06
0.10
0.03
Arbitrum: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Optimism: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Base Chain: 0x486F6AEA7d150254273AC7a5ffd872db54120b9a
Peaq: 0x4904Ba3148147D2f78b05a8446C01c48a7ABa4bd
Solana: Ee3hNRX7Gkway5xrcRzoPw9QHDAMpLKegbwX87kXeo14
Stellar: CC75MCVNIVBMA4KDLVSO2DNTNXFODLO6KPEJ25QH6DJEWHUSVLUICTQI
Stellar Testnet: CBRV2GP4WUSMYSR5WSMFFOVFBYZLNRQSF7Q4LFB3VPEHUBRAO25C427N
Ethereum
12.00
1.21
1.27
Polygon PoS
0.22
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.
XRPL is a public blockchain and decentralized Layer 1 protocol that is optimized for the efficient transfer of value. It is known for fast settlement times, low transaction costs, and a mature ecosystem focused on payments, tokenization and financial use cases. XRPL was designed with asset issuance and exchange in mind. It enables the creation of custom tokens directly on-chain and provides built-in functionality that can be useful in tokenization scenarios, especially where efficiency, predictable transaction costs and reliable settlement are important. Due to these characteristics, XRPL is increasingly relevant for tokenization use cases involving real-world assets, utility tokens and payment-related applications. It offers an alternative to both EVM-compatible networks and other non-EVM chains, depending on the specific requirements of the issuer and the intended user experience.
ethers.jsMany 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.

First Name (optional)
Last Name (optional)
Email Address (required)
Role (required)
Issuer Admin — full access to offerings, investors, orders, settings, and team management; counts toward your plan’s seat limit
Issuer Viewer — read-only access to all sections; does not count toward your plan’s seat limit
Click Send Invite
After sending the invitation, the new member will appear in the team table with Status = Pending until they accept the invite and complete their sign-in. The invited person will receive an email with instructions and a link to the Accept Invite page. They can choose to sign in with email/password or Google SSO. Once they’ve accepted, their status changes to Active and they gain the access level associated with their role.
In development mode, the invite response includes an
inviteUrlfield so you can copy the invitation link directly.
Only the account owner (or a super-admin) can invite team members. Seat limits apply only to Issuer Admin roles; you can invite unlimited Issuer Viewers on any plan.
The team table shows all current, invited, and former team members with the following information:
Member — Name (or a placeholder “—” if no name provided) and email address
Role — Issuer Admin or Issuer Viewer
Status —
Active — has accepted the invite and can log in
Pending — invited but has not yet accepted (no password set)
Deactivated — access revoked after acceptance
Joined — The date the member was added
Actions —
🔄 Resend Invite (for Pending invitations only)
🗙 Deactivate (for Active members)
Invited members who have not yet accepted appear as Pending, with Resend Invite and Delete Permanently actions available. Your own account is marked with You in the Actions column and cannot be deactivated or deleted.
If a team member was invited but has not yet joined (inactive and no password set), you can resend their invitation:
Click the resend icon (🔄) next to the member’s name
A new email will be sent, invalidating any previous invite link
In development mode, the API response includes the new
inviteUrlfor easy testing.
To revoke a team member’s access without deleting their data:
Click the deactivate icon (🗙) next to the member’s name
Confirm the action
Deactivated members can no longer log in, but their historical data (such as any actions they performed) is preserved for audit purposes.
Only the account owner (or a super-admin) can deactivate other members. You cannot deactivate yourself while you are the account owner — you must transfer ownership first.
If a previously deactivated member needs to regain access:
Click the reactivate icon (✔️) next to the member’s name
Their access is restored immediately and they can log in again.
You can permanently remove a team member’s account only if they are Pending or Deactivated and have no order history. Permanent deletion frees the email address so it can be used to register with another organization.
Click the delete icon (🗑️) next to the member’s name
Confirm the permanent deletion
This action cannot be undone.
Account owners (and super-admins) can change the role of an Active team member at any time:
Click the change role icon (🔁) next to the member’s name
In the dialog, select Issuer Admin or Issuer Viewer
Confirm the change
Promoting a user to Issuer Admin is subject to your plan’s seat limit. If you’ve reached the limit, you’ll see an error suggesting you invite as a Viewer or upgrade your plan.
To transfer account ownership to another Active Issuer Admin:
Click the transfer ownership icon (👑) next to the member you want to make the new owner
Confirm the transfer
After transfer, the selected member becomes the account owner and you lose owner privileges (you remain an Issuer Admin). You cannot transfer ownership to a Pending or Deactivated member.
All team management operations are exposed via the public API. You can explore and test these endpoints in the interactive OpenAPI reference: https://om.bitbond.com/api/docs
The main endpoints include:
List members — GET /api/issuer/team
Invite member — POST /api/issuer/team/invite
Resend invitation — POST /api/issuer/team/:id/resend-invite
Deactivate member — DELETE /api/issuer/team/:id
Reactivate member — PATCH /api/issuer/team/:id/reactivate
Change member role — PATCH /api/issuer/team/:id/role
Transfer ownership — POST /api/issuer/team/:id/transfer-ownership
Permanently delete member — DELETE /api/issuer/team/:id/permanent
If you need to review an audit trail of team actions, see the Audit Log page for offering-scoped filtering and a complete history of administrative activity.

Tangany (tangany.com)
Fireblocks (fireblocks.com)
Choose a Default Wallet Policy for your offerings:
byo_only (BYO only)
investor_choice (Investor choice)
custodial_only (Custodial only)
Enter the required credentials and settings for the selected provider:
Tangany Subscription
Client ID
Client Secret
API Base URL (optional)
Auth Base URL (optional)
Wallet Label Template (optional) – a string template for wallet labels. You can include:
{tenantId} – first 8 characters of your tenant ID
{userId} – first 8 characters of the investor’s user ID
Fireblocks API Key
Fireblocks Private Key (PEM)
API Base URL (optional)
Click Test Connection to verify connectivity and list vaults.
After a successful test, click Save to apply the settings.
Each offering can override the default wallet policy:
Go to Offerings and select an existing offering or create a new one.
Open the Invest Page tab in the Invest Page Builder.
In the Wallet Policy section, choose one of:
BYO only (byo_only)
Investor choice (investor_choice)
Custodial only (custodial_only)
Click Save.
The wallet options displayed during checkout depend on the policy:
BYO only (byo_only):
Investors must connect an external wallet (e.g. MetaMask) to complete a purchase.
Investor choice (investor_choice):
Investors can either connect their own wallet or opt for a custodial wallet without an external connection.
Custodial only (custodial_only):
A custodial wallet is created automatically after KYC approval. No external wallet connection is required.
Tangany supports EVM chains only. For details, visit Tangany.
Fireblocks supports a wide range of chains (EVM, Solana, and others) and all assets available in your Fireblocks vault. Use the Chain Asset Overrides field in the integration settings to select which asset ID to use on each chain.
When the investor places their first order on a new chain, a custodial wallet for that chain is provisioned in the background.
Provisioning runs asynchronously; the status updates to active or failed once complete.
You can also manually provision or retry provisioning in the Admin UI.
To provision a custody account before checkout:
Go to Admin > Investors and select an investor.
In the Custody section, click Provision Now.
Note: The investor must have an approved KYC status before provisioning can succeed. This action is idempotent — if an account already exists, it will return the existing account.
To retry failed provisioning jobs:
In the same Custody section, locate the failed account or wallet.
Click Retry to re-queue all failed account and wallet provisioning jobs for that investor.
Investors list: Navigate to Admin > Investors, select an investor, and open the Custody section to view:
Account status (pending, active, failed)
Wallet list with chain, address, status, and error details
Retry controls for failed items
Orders list: Under Admin > Offerings > select an offering > Orders, open an order to see:
Custodial wallet address (if used)
Provisioning status and retry options for the associated wallets
For details on custody endpoints, see the interactive OpenAPI reference at https://om.bitbond.com/api/docs.
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
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
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.
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 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.
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 "" section.
Connect Your Wallet: Connect your preferred wallet.
Select the Swap Tab: Once your wallet is connected, select the '' 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:
Where do I access the Offering Manager admin panel? Go to to access the login page. After logging in, you’ll be redirected to your dashboard.
What is a tenant? A tenant is your organization’s dedicated account on the Offering Manager platform. Each tenant is identified by a unique slug and has its own admin panel, offerings, investors, and settings. Tenant data is completely isolated — information is never shared across tenants.
Can I run multiple offerings at the same time? Yes. You can create and manage as many offerings as you need. Each offering has its own configuration, pricing, dates, and investor Invest Page.
What currencies are supported? The Offering Manager supports EUR, USD, GBP, and CHF as base currencies for offering pricing and reporting.
What is the investor portfolio page? The portfolio page at
lets investors view their active investments and upcoming payment schedules. You can embed a portfolio widget using the URL:
This guide walks you through the initial steps to sign up for your Offering Manager account, configure essential settings, and prepare for your first token offering.
Issuers can sign up for a self-serve account at . During signup, choose one of the following plans:
Free — 1 offering, up to 5 investors, up to 3 team members. Explore all features in sandbox mode. You cannot publish offerings live, add a custom domain, or process payments. Bitbond branding will be shown on the Invest Page.
Professional Monthly or Professional Annual — Up to 5 offerings, up to 1,000 investors, up to 3 team members. Publish offerings live, add a custom domain, and accept payments via supported providers. No Bitbond branding on the Invest Page.
Under 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
🗑️ Delete Permanently (for Pending or Deactivated members with no order history)
🔁 Change Role (for Active members only)
👑 Transfer Ownership (for the current Active account owner only)
{chain} – chain type (e.g. evm)
{tenantId} – first 8 characters of your tenant ID
{userId} – first 8 characters of the investor’s user ID
Chain Asset Overrides (optional) – map each chain to the Fireblocks asset ID. Click Load supported assets to fetch available asset IDs from Fireblocks, then select or enter the correct ID per chain (for example, evm: ETH, polygon: MATIC_POLYGON, solana: SOL).
Optimism Sepolia
Base Sepolia
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.
Value: Value of all tokens of a specific kind in your portfolio (calculated simply by balance times price).
Actions: Quick access of the functions send token and manage token.
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.










I forgot my password. How do I reset it?
Use the password reset link on the login page (/admin/forgot-password) to receive a reset email. Follow the link in the email to open the Reset Password page (/admin/reset-password) and set a new password. If you logged in with Google SSO, you do not have a separate password — simply use the Google sign-in option.
I set up two-factor authentication and lost my authenticator app. What do I do? Use one of the backup codes that were provided when you enabled 2FA. Each backup code can only be used once. If you have no remaining backup codes, contact Bitbond support for assistance.
Can I switch from email/password login to Google SSO? Yes. If your account email matches a Google account, you can use either login method. The system links both methods to the same account automatically.
I received an invitation to join the Offering Manager. How do I accept it?
Follow the link in the invitation email to open the Accept Invitation page (/admin/accept-invite). Complete the form to set your login credentials. Once accepted, you can log in to the admin panel.
How do I update my account details?
Go to Account in the admin sidebar or navigate to /admin/account to update your name, email, and profile settings.
What is the difference between a soft cap and a hard cap? The soft cap (funding target) is the minimum amount you aim to raise. The hard cap is the absolute maximum the offering will accept. The progress bar on the investor Invest Page shows progress toward the hard cap.
What is the Invest Page Builder? The Invest Page Builder is the admin interface for customizing your offering’s Invest Page. On the Invest Page tab of an offering, you can edit text, images, colors, and layout that investors see when they visit your Invest Page.
Can I edit an offering after it is active? Yes, you can update most offering settings while it is active, including payment methods, documents, discount tiers, and Invest Page content. However, changing fundamental parameters (such as pricing or caps) on a live offering should be done carefully, as it may affect existing investors’ expectations.
What is the investor wallet policy? When creating or editing an offering, you can choose the investor wallet policy:
byo_only – Investors must bring their own wallet address.
investor_choice – Investors can choose between their own wallet or a custodial wallet.
custodial_only – Investors are provided a custodial wallet by your configured custody provider.
To use custodial wallets, configure Tangany () in Settings. Custodial wallets are currently supported on EVM-compatible chains only.
What happens when I change an offering's status to Closed? Closing an offering prevents new investments. Existing orders are not affected — pending orders remain pending, and paid orders remain paid. You can still manage orders, send reminders, and process refunds after closing.
How do I make an offering visible to investors? Change the offering status from Draft to Active. Only active offerings are accessible to investors via their Invest Page URL:
Can I embed a checkout widget on my website? Yes. Each offering provides an embeddable widget at:
You can include this URL in an iframe or script tag to integrate the investment flow directly into your own site.
How can I view the audit history for an offering? On the offering detail page, click Audit Trail to see all events related to that offering, including configuration changes, document uploads, and status updates. You can filter by date or event type.
Why is a payment method greyed out when I create an offering? A payment method is unavailable if the required credentials have not been configured in Settings. For example:
Bank transfer requires bank details (bank name, IBAN, BIC).
Card payments require Checkout.com keys (https://www.checkout.com).
Coinbase Commerce requires an API key (https://www.coinbase.com/commerce).
Stablecoin requires an extended public key for each supported chain (EVM-compatible, Solana, etc.).
Configure the missing credentials in Settings and the payment method will become available.
How does bank transfer reconciliation work? When investors pay by bank transfer, they are given a unique reference code (e.g., OM-1234-ABCD) to include in their transfer subject line. To reconcile payments, export a CSV from your bank, then upload it on the offering detail page. The system matches transactions by reference code and automatically marks matching orders as Paid.
What if an investor sends a bank transfer without the reference code? The automatic reconciliation will not match the transaction. You will need to manually identify the payment and update the order status to Paid from the Orders page.
How are Coinbase Commerce payments verified? When an investor pays through Coinbase Commerce, the system uses webhooks to receive payment status updates. Once a matching payment is confirmed, the corresponding order is automatically marked as Paid. Failed or pending payments must be reviewed on the Orders page.
How are stablecoin payments verified? Each investor receives a unique deposit address derived from your extended public key. The system monitors multiple chains (EVM-compatible, Solana, and others) for incoming transactions to that address. When a matching deposit is detected and confirmed, the order is automatically updated. Payments that do not match the expected amount are flagged for manual review.
What is the “Manual” payment method and when should I use it? The Manual payment method lets you record offline or custom payment arrangements. No automatic reconciliation is performed — you create the order and later mark it as Paid or update its status manually from the Orders page.
Which KYC providers are supported? The Offering Manager integrates with Sumsub (https://sumsub.com) and Blockpass (https://www.blockpass.org). You can configure one or both in Settings and require verification on a per-offering basis.
Is KYC required for all offerings? No. KYC is optional per offering. When creating or editing an offering, you can choose whether to require KYC verification. If disabled, investors can invest without identity verification.
What are blocked countries? Blocked countries are jurisdictions whose residents are prevented from investing in your offering. This is enforced during the KYC verification process. You configure the blocked country list when creating or editing an offering.
What is the cancellation period? The cancellation period is the number of days an investor has to cancel their order after placing it. For example, a 14-day cancellation period means investors can cancel within 14 days. This is often required by financial regulations. Set it to 0 if no cancellation period applies.
Where can I view the system activity and audit trail?
The Audit Trail page in the admin panel (/admin/audit-trail) shows all system events, including offering updates, order status changes, investor profile edits, and more. Use the filters to scope entries by offering, investor, or event type.
How do I filter the audit log by offering? On the Audit Trail page, open the Offering filter dropdown and select the offering you want to inspect. The log will refresh to show only events related to that offering.
How do I filter the audit log by investor? On the Audit Trail page, open the Investor filter dropdown and select the investor you want to inspect. The log will refresh to show only events related to that investor.
How do I manually create an investor? Go to Investors in the admin sidebar and click New Investor. Fill in the investor’s details, including name, email, wallet addresses, and KYC status. The investor record is created immediately and appears in the list.
Can I edit an investor’s profile or KYC status after creation? Yes. On the Investors page, open an investor’s profile to update details such as wallet addresses, contact information, and KYC status. All changes are logged in the audit trail.
Which blockchain wallets can I store for an investor? You can add multiple wallet addresses per investor across supported chains, including EVM-compatible chains (Ethereum, BSC, etc.) and Solana. Specify the chain for each address when creating or editing the investor profile.
How do I manually create an order for an investor? Navigate to an offering’s Orders page and click Create Order. Select the investor, enter the amount, choose a payment method (including Manual), and set the status. The new order appears in the list and is tracked like any other order.
Can I manually mark an order as Paid? Yes. On the Orders page, click the status update button next to a Pending or Processing order to mark it as Paid. This action is logged in the audit trail.
How do I send a payment reminder to an investor? On the Orders page, click the email icon next to a Pending order. The system sends a reminder email to the investor with their order details and payment instructions.
What does a “flagged” stablecoin payment mean? A stablecoin payment is flagged when the received amount does not match the expected amount (either overpaid or underpaid). Flagged payments require manual review — check the transaction details on the blockchain explorer and update the order status as appropriate.
How do I export investor wallet addresses for token distribution?
Navigate to the offering detail page and click Export CSV. The export generates a CSV file with columns: address, amount, and chain. Only investors with a confirmed (Paid) payment and a valid wallet address are included. Use this file with the Bitbond Token Tool for bulk token distribution.
Are my API keys and credentials stored securely? Yes. All sensitive credentials (API keys, extended public keys, webhook secrets) are encrypted with AES-256 before being stored in the database. They are never exposed to the frontend or included in API responses.
Can I use a custom domain for my investor pages?
Yes. Go to Settings and enter your custom domain in the Custom Investor Domain section. You will need to configure a CNAME DNS record pointing your domain to om.bitbond.com. Once DNS propagates, your investor pages will be accessible at your custom domain.
How do I generate a new API key? Go to Settings, scroll to the API Access section, and click Generate New API Key. The key is shown once — copy it immediately.
How do I view billing information and manage my subscription?
Go to Billing in the admin sidebar or navigate to /admin/billing to view invoices, payment methods, and your current subscription plan.
What plans are available and what are their limits?
Free – 1 offering, up to 5 investors, up to 3 team members, cannot publish offerings live, no custom domain, no payment processing, Bitbond branding shown on the Invest Page.
Professional Monthly & Annual – Up to 5 offerings, up to 1,000 investors, up to 3 team members, can publish offerings live, custom domain supported, payment processing enabled, no Bitbond branding on the Invest Page.
Enterprise – Unlimited offerings, investors, and team members; all Professional features included, plus dedicated support and custom contractual terms.
How can I upgrade my plan?
To upgrade from Free to Professional (Monthly or Annual), go to Billing in the admin sidebar or navigate to /admin/billing.
For Enterprise inquiries, contact Bitbond sales at https://www.bitbond.com/contact.
Where can I find the public API documentation? The public API is documented as an interactive OpenAPI reference at https://om.bitbond.com/api/docs.
What is the base URL for the public API? All public API requests use the base URL:
What access do team members have? All team members within a tenant have full access to the admin panel, including offerings, investors, orders, settings, and team management. There are no role-based permission differences among team members.
How do I invite a new team member? Go to Team in the admin sidebar and click Invite Team Member. Enter the member’s email address and send the invite. They will receive an email with a link to accept the invitation and set their login credentials.
How do I accept an invitation to join the Offering Manager?
Follow the link in the invitation email to open the Accept Invitation page (/admin/accept-invite). Complete the form to set your login credentials. Once accepted, you can log in to the admin panel.
Can I remove a team member without losing their data? Yes. Deactivating a team member revokes their login access but preserves all historical data associated with their account. If you need to permanently delete a team member (e.g., invited by mistake), you can do so only if they have no associated order history.
https://om.bitbond.com/invest/{tenantSlug}/portfoliohttps://om.bitbond.com/invest/{tenantSlug}/portfolio/widgethttps://om.bitbond.com/invest/{tenantSlug}/{offeringSlug}https://om.bitbond.com/invest/{tenantSlug}/{offeringSlug}/widgethttps://om.bitbond.com/api/publicEnterprise — Unlimited offerings, investors, and team members. All Professional features plus dedicated support and custom contractual terms. To discuss Enterprise, contact Bitbond sales (https://www.bitbond.com/contact).
After signing up, you’ll be taken to the admin login page. Use the email and password you provided, or click Sign in with Google if you signed up via Google SSO.
If a team member is invited as an administrator, they will receive an email with a link to the Accept Invitation page. On that page, they can either:
Set a password for email/password login, or
Sign in with Google using Single Sign-On (SSO)
Once they complete this step, they can use either login method on subsequent visits.
Access the Offering Manager admin at https://om.bitbond.com/admin/login or by clicking Login on the homepage.
Sign in with:
Email and password — Enter the email address and password associated with your account.
Google SSO — Click Sign in with Google and authenticate with the same Google account you used at signup or invite acceptance.
Forgot password — If you forget your password, click Forgot password?, enter your registered email, and follow the link in the email to reset your password. After resetting, you’ll see a confirmation banner on the login page prompting you to sign in with your new password.
Session expiration — If your session has expired from inactivity, a banner will prompt you to sign in again.
If you have two-factor authentication (2FA) enabled, you’ll be prompted to enter a 6-digit code from your authenticator app (TOTP). If you don’t have access to your authenticator, click Use a backup code on the verification screen and enter one of your one-time backup codes.
When you log in for the first time, you may see a Welcome page that suggests quick actions:
Create your first offering
Invite your team
Read the documentation
Get support
Click Go to Dashboard or Create your first offering to proceed.
Before creating your first offering, complete these essential setup steps:
Go to Account to update your email address, change your password, and configure two-factor authentication (2FA). You can enable or disable 2FA and view your one-time backup codes on this page.
Go to Billing to view your current plan and upgrade or downgrade. To move from Free to Professional Monthly or Annual, you can self-serve in the Billing area. To explore Enterprise, contact Bitbond sales at https://www.bitbond.com/contact.
Navigate to Settings → Organization and confirm your organization name and reply-to email address. The reply-to email is used as the sender for all investor-facing emails (order confirmations, payment reminders, etc.).
If you plan to accept bank transfers (SEPA or wire), go to Settings → Payments and enter:
Bank name
Account holder name
IBAN
BIC / SWIFT code
These details appear to investors during bank transfer checkout.
In Settings → Payments, set up any of the following:
Checkout.com (https://www.checkout.com) — For card payments. Enter your secret key, public key, and webhook secret.
Coinbase Commerce (https://www.coinbase.com/commerce) — For hosted crypto payments. Enter your API key and webhook shared secret. You can choose to settle proceeds in crypto or withdraw to fiat manually.
On-chain Stablecoin Payments
EVM-compatible networks — Provide an Extended Public Key (xPub) from your HD wallet (e.g., Ledger, Trezor) to generate unique addresses per investor.
Solana — Provide a Solana public key to receive stablecoin deposits.
Manual — Enable admin-entered manual payments for off-platform methods (e.g., cash, wire transfers not processed through a PSP).
If you want to provision wallets for investors, under Settings → Payments in the Custody Provider section, enter your Tangany credentials:
Tangany (https://tangany.com) — API key and secret.
Per offering, you’ll select an investor wallet policy: BYO only, Investor choice, or Custodial only.
To verify investor identities, configure KYC providers in Settings → KYC:
Sumsub (https://sumsub.com) — App token and secret key.
Blockpass (https://www.blockpass.org) — API key and secret.
You can configure both and choose one per offering.
If others need admin access, go to Team and invite them by email. They’ll receive an invitation and can log in via email/password or Google SSO.
Go to Investors to view, invite, or manually create investor profiles. You can edit details and update KYC status at any time.
In Offerings, select an offering, open the Orders tab, and create or view orders. Use Create Order to manually record an order; select Manual if it’s an off-platform payment.
Track all admin actions in Audit Trail. Use filters to view entries by offering, team member, or action type.
The Offering Manager exposes a public REST API. Browse the interactive OpenAPI spec at https://om.bitbond.com/api/docs. The base URL for public API requests is:
Once your settings are configured, create your first offering in the Managing Offerings guide.
https://om.bitbond.com/api/publicThe 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 iframe.
For an additional cost, 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 how to create a token presale 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 Token Sale page 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 this section of the Create Token Sale documentation.
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 standard token sale:
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 claim refunds.
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 standard token sale 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.




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:
Core Token Mainly used for Utility tokens, DAO tokens, DeFi tokens and meme coins.
Advanced Token Mainly used for taxable tokens, deflationary tokens, DeFi tokens with advanced features, supply capped tokens, whale protected tokens.
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, Stellar or XRPL 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.
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 .
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 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.
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.
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
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 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.
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.
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.
The Settings page lets you configure your organization details, banking information, payment providers, identity verification integrations, crypto wallets, custody providers, API access, webhooks, custom domains, and legal agreements.
Organization Name — Your company or project name. This is displayed in the admin panel and used in communications.
Reply-To Email — The email address used as the reply-to address on all investor-facing emails (order confirmations, payment reminders, etc.). Emails are sent from Bitbond but replies go to this address.
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).
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 basis points (bps). 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 basis points (bps). 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 basis points (bps) 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 here.
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.
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 basis points (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 basis points (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.













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.

{"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.jsonInvest Page Subdomain — The slug for your public Invest Page URLs (e.g. acme-gmbh).
Discoverable — When enabled, your offerings are listed on the global directory of public offerings; when disabled, only investors with a direct link can access your Invest Page. If you disable discoverability while you have published offerings, a notice will remind you that those offerings will be hidden from the directory.
Click Save after making changes.
The Integrations section covers all payment rails, KYC/KYB providers, crypto wallet configuration, and investor custody settings.
If you accept bank transfer payments, add one or more company bank accounts here. The platform supports three account kinds, so you can collect investor wires in their local currency:
SEPA (Europe) — IBAN + BIC, typically denominated in EUR.
United States — ACH routing (9 digits), optional wire routing, account number, and account type (checking/savings), typically denominated in USD.
United Kingdom — Sort code (12-34-56) + 8-digit account number, typically denominated in GBP. You may also store an IBAN/BIC on the same record so the account doubles as a SEPA fallback.
For each account you can set:
Label — A short internal name (e.g. “Main EUR account”).
Currency — The 3-letter ISO currency code; investor offerings denominated in this currency are routed to this account.
Primary — Exactly one account may be marked primary. The primary account is used as a fallback when no account matches an offering’s currency.
Bank name/address and Beneficiary address — Optional, shown to investors on the wire‐instructions screen and in confirmation/reminder emails.
Match the offering’s base_currency to a bank account currency (case-insensitive).
If no exact match exists, fall back to the primary account.
If no match and no primary is configured, the order is rejected at checkout.
Add at least one account to enable the Bank Transfer payment method when creating or editing offerings.
Tenants who previously had a single SEPA IBAN/BIC configured at the tenant level are automatically migrated to a primary SEPA bank account on first deploy of this feature. The legacy fields remain readable on the API for one release for backwards compatibility but are no longer editable from the UI — manage all bank accounts from this section instead.
[Checkout.com] processes credit and debit card payments (Visa, Mastercard) for your offerings. Configure:
Secret Key (sk_…) — Your secret API key. Found under Settings → Keys in the Checkout.com Dashboard.
Public Key (pk_…) — Used to initialize the card payment widget on the investor checkout page. It’s safe to expose this on the frontend.
Webhook Secret — Used to verify incoming payment notification webhooks. Found under Settings → Webhooks in the Checkout.com Dashboard.
Processing Channel ID — Optional channel identifier for routing transactions within Checkout.com. Found under Settings → Processing Channels in your Checkout.com Dashboard.
[Coinbase Commerce] is our recommended hosted PSP for accepting crypto payments. You can choose to keep proceeds as cryptocurrency or settle to fiat manually.
Coinbase Commerce API Key — Found under API keys in your Coinbase Commerce dashboard.
Coinbase Commerce Webhook Secret — Used to verify incoming webhooks. Set this under Webhook subscriptions in the Coinbase Commerce dashboard.
Accepted Assets — A comma-separated list of asset symbols (e.g. USDC, USDT).
Accepted Chains — A comma-separated list of blockchain names for hosted checkout (e.g. ethereum, polygon).
Settlement Preference — Choose keep_crypto or cashout_manual to control how Coinbase settles proceeds.
Extended public keys (xPub) allow the system to generate unique deposit addresses for each investor without exposing private keys. The Offering Manager never holds or has access to your private keys.
EVM xPub (HD Wallet) — Export your xPub from your HD wallet (e.g., Ledger, Trezor, or any BIP-44 compatible wallet). This is used to derive unique Ethereum/EVM deposit addresses for stablecoin payments (USDC, USDT, etc.).
Once an EVM xPub is configured, the direct Stablecoin payment method becomes available when creating or editing offerings.
You can choose one or both supported providers to verify investor identity before they can invest:
Sign up at [Sumsub] and generate your credentials:
App Token — Generated under Developers → Integration in the Sumsub dashboard.
Secret Key — Generated alongside the App Token. Used to sign API requests and verify webhooks.
Webhook Secret — Copy or generate this in your Sumsub Webhook settings to validate incoming notifications.
KYC Level — Select the verification level (e.g. basic, enhanced).
KYB Level — If you perform business verification, select the appropriate level.
Sign up at [Blockpass] and create a service:
Client ID — Found in your Blockpass service dashboard.
Webhook Secret — Set and copy this secret in your service’s webhook configuration.
Click Save after entering or updating any credentials.
You can require investors to bring their own wallet (BYO), let them choose, or provision a custodial wallet via a supported custody provider. Select your provider under Custody Provider, then configure credentials for Tangany or Fireblocks.
Link: Tangany
Tangany is a custodial solution for EVM-compatible chains and stablecoins.
Custody Provider — Select Tangany to enable custodial wallets.
Default Investor Wallet Policy — Choose one of:
byo_only — Investor must use their own wallet.
investor_choice — Investor may select BYO or custodial.
custodial_only — A custodial wallet is provisioned for the investor.
Tangany Subscription — Your Tangany subscription ID.
API Base URL — Your Tangany API base endpoint (e.g. https://api.tangany.com).
Auth Base URL — Your Tangany authentication endpoint.
Client ID & Client Secret — Credentials from your Tangany dashboard.
Wallet Label Template — A naming template for custodial wallets (e.g. {{ investor.email }}).
Fireblocks provides multi-chain custody across EVM, Solana, Stellar, and XRPL.
Custody Provider — Select Fireblocks to enable Fireblocks vault provisioning.
Default Investor Wallet Policy — Same options as Tangany (byo_only, investor_choice, custodial_only).
Fireblocks API Key — Your public API key from the Fireblocks dashboard.
Fireblocks Private Key (PEM) — The private key in PEM format associated with your API key.
Fireblocks API Base URL — The base endpoint for Fireblocks API calls.
Vault Name Template — A naming template for newly created vault accounts (e.g. Investor-{{ investor.id }}).
Asset ID Overrides — Optional per-chain asset identifiers. Supported families: evm, stellar, solana, xrpl. Leave blank to use built-in defaults.
Click Save after entering or updating any custody credentials.
Generate an API key for programmatic access to your offerings, orders, investors, bank accounts, and settings. API access is available on the Enterprise plan.
Click Generate API Key to create or rotate your key. Note that rotation invalidates the previous key immediately.
The key is displayed only once — copy it immediately and store it securely.
Use the key in the Authorization header (Bearer <API_KEY>) of API requests.
Visit for the interactive OpenAPI reference.
For an overview of endpoints and usage examples, see .
If you’d like to upgrade to Enterprise for full programmatic control, please contact sales: https://www.bitbond.com/contact.
Use the Webhooks section to configure outbound callbacks for platform events (orders, payments, KYC updates, etc.):
Add one or more webhook endpoints.
Subscribe to the events you want to receive (e.g. order.created, investor.kyc.completed).
Provide a signing secret to validate incoming webhook deliveries.
Click Save to register your endpoint.
If any recent deliveries have failed, a Webhook Health Alert will appear, showing failure details and timestamps. Investigate and retry as needed.
By default, your Invest Page is hosted at:
To use your own domain (e.g. sto.acme.com), a Professional plan is required.
Enter your custom domain (e.g. sto.acme.com) in the Custom Domain field.
Click Save Domain.
Follow the DNS configuration instructions:
Create a CNAME record pointing your domain to om.bitbond.com.
(Optional) Route through with the Proxy/SSL feature enabled.
Wait for DNS propagation (up to 24 hours).
To remove the custom domain, clear the field and click Save Domain.
To upgrade from the Free plan to Professional, visit the Billing area.
The Data Processing Agreement section shows your acceptance status for the current GDPR-compliant DPA.
If accepted, you’ll see the date, version, and who accepted it.
If the accepted version is outdated, you’ll be prompted to re-accept the current DPA.
Click View accepted DPA to read the text you previously accepted.
If not yet accepted, contact your Bitbond representative or support to complete the acceptance flow.
Ensure a current DPA is in place before collecting personal data from investors.

https://om.bitbond.com/invest/[subdomain]/[offering-slug]This section provides an overview of what investors see and experience when they visit your offering on the Offering Manager site (https://om.bitbond.com) and go through the investment process. Understanding the investor journey can help you optimize your offering configuration, Invest Page content, and support processes.
Investors access your offering via a single domain (https://om.bitbond.com) with path-based routing. For example:
Offering Invest Page: <https://om.bitbond.com/invest/{subdomain}/{slug}>
Portfolio page: <https://om.bitbond.com/invest/{subdomain}/portfolio>
When an investor visits your offering URL (/invest/{subdomain}/{slug}), they see a branded Invest Page with the following elements:
If an investor visits the root path (/invest/{subdomain}), they are automatically redirected to the active offering’s Invest Page.
If no active offering is published or the sale has closed, they see a lock icon and a notice: No active offering available.
If an investor visits the direct offering URL (/invest/{subdomain}/{slug}) after the sale has closed, the hero card shows a lock icon and a notice stating
The top of the page shows:
Your logo (if uploaded)
The offering name
A button to either log in (for new visitors) or view their portfolio (if already signed in)
A visually prominent card at the top of the page featuring:
The offering name and token symbol
Price per token and minimum investment
A live countdown timer showing days, hours, minutes, and seconds remaining until the sale ends
A progress bar displaying:
The hero card uses your configured primary color as a gradient background.
In the hero card itself, the following statistics are highlighted:
Price per token
Minimum investment
Countdown to sale close
Raised vs. hard cap (with reserved amount if any)
Below the hero card, the page continues with the sections you configured in the Invest Page Builder:
About this Offering — Your project description.
Bond Details — (If configured) A grid of fixed-income parameters: ISIN, coupon rate, coupon frequency, maturity date, issuer.
Offering Documents — Downloadable documents (prospectus, T&Cs, etc.) with labels indicating if investor agreement is required.
An information box at the bottom summarizes key compliance details:
Whether KYC is required
The cancellation period
The minimum investment amount
A second Invest Now button at the bottom of the page encourages investors to proceed if the sale is still open.
When an investor clicks Invest Now, they enter a multi-step checkout flow.
The investor enters their desired investment amount using a real-time calculator:
The amount is validated against the offering’s minimum and maximum limits.
The equivalent number of tokens is calculated based on the token price.
If discount tiers are configured, any applicable discount is applied, updating the per-token price and resulting token amount.
The investor signs in or creates an account. Available authentication methods include:
Email and password — The investor enters their email and password, or registers a new account.
Privy (social login & wallet) — If Privy is configured, the investor can sign in with Google or connect a crypto wallet. Privy automatically provisions an embedded MPC wallet for investors who do not have their own.
The investor provides required personal or business information:
For individual investors:
First name and last name
Phone number
Postal address (street, city, state/region, postal code, country)
For institutional investors (additional fields):
Company name
Registration number
Legal form (e.g., GmbH, Ltd, AG)
Jurisdiction
If you configured custom AML/suitability questions (supported types: text, yes/no, checkbox), they appear in this step as well.
The investor also confirms their wallet address. Issuers can configure an investor wallet policy (byo_only, investor_choice, custodial_only).
If custodial_only or investor_choice is selected, an EVM-compatible wallet can be provisioned via , and the address is auto-filled.
Multi-chain (EVM, Solana, etc.) wallet support ensures the correct network is selected.
For provisioned MPC wallets, investors can export their private key or wallet via Privy.
If KYC is required for the offering, the investor completes identity verification through one of the supported providers:
Sumsub — An embedded widget appears directly within the checkout page. The investor follows on-screen instructions to upload documents and complete checks. Learn more at .
Blockpass — (If enabled) The investor is directed to Blockpass to complete verification. The system polls for status updates. Learn more at .
The checkout flow waits for the KYC result. Once approved, the investor can proceed. If rejected, they are informed and cannot continue.
The investor selects a payment method from those enabled for the offering:
Bank Transfer (SEPA/Wire):
The investor sees your bank details (bank name, account holder, IBAN, BIC).
A unique reference code (e.g., OM-1234-ABCD) is displayed with a copy button.
Instructions emphasize including this reference code in the transfer subject line for automatic matching.
Credit/Debit Card ():
A secure card payment form is embedded directly in the checkout page.
The investor enters card details and submits payment via Checkout.com.
Upon success, the order is automatically marked Paid.
Crypto Payments (hosted PSP via ):
Investors are redirected to a hosted payment page by Coinbase Commerce where they can pay with supported crypto tokens.
Issuers can choose to settle proceeds in fiat or keep them as crypto.
Upon payment confirmation, the order status is updated automatically.
Stablecoin (on-chain):
The investor is shown a unique deposit address and QR code.
Accepted tokens and blockchain networks are listed.
The system monitors the blockchain and confirms payment upon receipt.
After submitting their order, the investor sees a confirmation screen with:
Order reference code
Investment amount and token amount
Selected payment method
For bank transfers: a reminder of wire instructions and reference code
The investor also receives a confirmation email with these details.
If any offering documents require investor agreement, checkboxes appear during checkout. The investor must check each required agreement box to submit the order.
You can embed the offering or portfolio experience in your own site or app:
Investment widget: <https://om.bitbond.com/invest/{subdomain}/{slug}/widget>
Portfolio widget: <https://om.bitbond.com/invest/{subdomain}/portfolio/widget>
Signed-in investors can access their portfolio from the navigation bar. The portfolio page provides two tabs: Portfolio and Settings.
Displays one or more wallet addresses (EVM, Solana, etc.) with copy buttons and explorer links.
Shows token holdings aggregated across all paid orders with real-time on-chain balances.
For Privy-managed MPC wallets, an Export Private Key button allows secure key export via Privy.
Total invested amount
Total number of orders
Number of paid orders
Each order appears as a card showing:
Offering name (link back to the Invest Page)
Reference code
Investment amount, token amount, and order date
Current status badge (Pending, Paid, Processing, Cancellation Requested, Refunded, Cancelled, Failed)
If the offering has a cancellation period configured and the order is within the allowed window, a Cancel Order button appears. Orders can only be cancelled while in Pending status and before the configured deadline. Upon cancellation request, the issuer is notified to process a refund.
Investors can manage their profile and settings:
View and update personal or business details
Review KYC status with badges (Not Started, Pending, Approved, Rejected)
Manage connected wallets and view wallet history entries
Log out
External API documentation is available as an interactive OpenAPI reference at .
Each offering has a public-facing investor Invest Page that you can fully customize. The Invest Page Builder is located on the Invest Page tab of an offering’s detail page in the admin interface. Use this interface to configure which sections appear, add or edit content, apply your brand styling, and then click Save Invest Page to publish your changes.
At the top of the Invest Page tab, you’ll see a list of available sections. You can:
Enable or disable sections by toggling the checkbox next to each section name.
Reorder sections by dragging the “handle” icon on the left up or down.
To 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):
If you have configured a scheduled (draft) offering, visitors to its slug URL see a Coming Soon page with a rocket icon and the message “Coming Soon” until you publish it.
If an investor visits a non-existent slug (/invest/{subdomain}/{slug}) for an offering that does not exist, they see a search icon and an Offering not found message.
Total raised vs. the hard cap
Total reserved vs. the hard cap (if any)
Percentage of the hard cap committed
Number of investors
Current limited-time discount badge (if configured) showing the discount percentage, label, and either time remaining or remaining cap
An Invest Now call-to-action button (disabled when the sale has closed)
Investor count
Interactive API reference: https://om.bitbond.com/api/docs
Limited-time Discounts — (If configured) A panel listing upcoming discount windows with start/end dates, discount percentage, cap amounts, and countdown labels.
Our Team — Team member grid with photos (or initials), names, roles, and bios.
Roadmap — A vertical timeline of project milestones showing completed and upcoming items.
LEI (Legal Entity Identifier, optional)
VAT ID (optional)
Representative role
For stablecoin: the deposit address and expected amount
Payment method
For stablecoin orders: transaction hash with a link to the blockchain explorer, confirmation timestamp, and any flag reason












Configure section-specific settings (where applicable) using the gear icon next to each section.
The full list of available sections includes:
Key Stats
Token Details
About (project description)
Documents (offering documents)
Links (external resources)
Tokenomics (allocation breakdown or discounts)
Token Lifecycle (vesting schedules, distribution options, trading channels)
Bond Details (coupon schedules, maturity dates, etc.)
Rich Text (custom HTML content)
FAQ (frequently asked questions)
Video (embed a video by URL)
Team Members
Roadmap
Sections such as Tokenomics, Token Lifecycle, Bond Details, Rich Text, FAQ, and Video are disabled by default; enable them as needed. When you have finished configuring sections, click Save Invest Page at the top or bottom of the tab. Your changes are published immediately.
Add a text description of your project or offering. This appears prominently under the About this Offering heading. Use this field to:
Support plain text with line breaks.
Explain what the token represents, the purpose of the offering, and why investors should participate.
Keep it clear, concise, and compelling.
After editing, click Save Invest Page to apply your updates.
Add clickable pills linking to external resources related to your project. Common examples:
Company website
Litepaper or whitepaper
Twitter / X profile
LinkedIn page
Telegram group
Click Add Link.
Enter a Label and URL.
When finished, click Save Invest Page to publish the link.
To remove a link, click the delete icon next to it and then click Save Invest Page.
Showcase the people behind your project. For each team member, provide:
Name — Full name of the team member.
Role — Title or position (e.g., “CEO”, “CTO”).
Bio — A short description of background or responsibilities.
Avatar URL — Link to a profile photo (optional). If omitted, an initial is shown.
LinkedIn URL — Link to the member’s LinkedIn profile (optional).
To manage team members:
Click Add Member.
Fill in the fields for each person.
When done, click Save Invest Page.
To remove a member, click the delete icon next to their entry and then Save Invest Page.
Display project milestones as a vertical timeline. Each item includes:
Title — Milestone description (e.g., “Token Launch”).
Date — Planned or completed date (free text, e.g., “Q2 2026”).
Done — Check the box for completed milestones.
Use Add Item to create new milestones or the delete icon to remove them. After making changes, click Save Invest Page. Completed items show a green checkmark; upcoming items appear in grey.
Provide a breakdown of token allocation, discounts, or tiered pricing:
Label — Name of the entry (e.g., “Founding Round”).
Percentage — Share of total supply or discount rate.
Click Add Entry, fill in the details, and then click Save Invest Page. Remove entries with the delete icon and save.
Configure how tokens vest, distribute, and trade:
Vesting — Enable and define cliff dates, vesting intervals, and amounts.
Distribution — Choose between airdrop or claim flow, set estimated claim dates and a claim URL.
Trading — Enable DEX, CEX, or OTC channels; specify exchange names and proceeds percentages.
Enable the section, click the gear icon to open settings, adjust each sub-feature, and then click Save Invest Page.
If your offering is a bond, provide:
Coupon payment schedule
Interest rate or yield
Maturity date
Enable Bond Details, complete the fields in the settings pane, and click Save Invest Page.
Add a custom HTML or rich-text block anywhere on the page:
Enable Rich Text and click the gear icon.
Enter a Title.
Paste your Content (rich text or HTML).
Click Save Invest Page to display a styled content block on the Invest Page.
Answer common investor questions:
Question — The question you wish to answer.
Answer — The corresponding response.
Enable FAQ, click Add FAQ Item to add entries, fill in the fields, and then click Save Invest Page. Remove items with the delete icon and save.
Embed a video to highlight your project:
URL — Link to the video (e.g., YouTube or Vimeo).
Title — Display title for the video section.
Enable Video, click the gear icon, enter the details, and click Save Invest Page to show an embedded player.
Customize the visual style of your Invest Page under Branding:
Logo — Upload an image file. Appears in the navigation bar and hero section.
Primary Color — Main brand color for gradients, buttons, and accents (hex code).
Secondary Color — Complementary accent color (hex code).
Font — Google Font name (default is “Inter”).
Theme — Light or dark mode for backgrounds and text.
Hero Gradient End — Hex color for the end of the hero gradient.
Card Background Color — Background color for stats, document links, and cards.
Accent Text Color — Color for section headers and highlights.
Hero Font Color — Color for text in the hero section.
CTA Font Color — Color for button text across the page.
Hero Media — Choose Image or Video, then enter the Hero Media URL.
Favicon URL — Link to a favicon for display in browser tabs.
Adjust values in the branding pane and click Save Invest Page to apply styling updates immediately.
Control whether search engines and AI assistants index your offering, and set a canonical URL for external marketing pages.
Locate the Search & AI Discoverability card on the Invest Page tab.
If organization-wide discoverability is disabled in your Organization settings, a warning appears and the per-offering setting is locked. You must enable discoverability at Organization settings before changing this offering’s indexing.
Check Allow indexing for this offering to permit search engines and AI assistants to include your Invest Page in search results and AI answers.
(Optional) Enter an External canonical URL if you embed this Invest Page on your marketing site. Search engines will treat that URL as the primary source. The URL must start with http:// or https://.
If the URL does not start with http:// or https://, an inline error appears and you must correct it before saving.
Click Save Invest Page to apply these settings.
After editing any section or style, use the Save Invest Page button at the top or bottom of the tab. Your updates go live on the investor-facing page as soon as you save.
The Invest Page combines all enabled sections into a polished, conversion-optimized experience:
A hero section with your offering name, token details, price per token, a live countdown timer, and progress bar.
Custom hero media (image or video) and brand colors.
An Invest Now call-to-action button with your chosen CTA text color.
Key stats showing minimum and maximum investment, sale close date, and accepted payment methods:
Bank transfer (SEPA/wire)
Card payments via
Crypto payments via
Direct on-chain stablecoin payments
Investor wallet options: bring your own wallet or use a custodial wallet provided by the issuer via .
Project description, links, and offering documents.
Optional sections such as Tokenomics, Token Lifecycle, Bond Details, Rich Text, FAQ, Team Members, Video, and Roadmap.
Support for KYC checks powered by or .
Multi-chain wallet support (EVM, Solana, and other networks).
Investor portfolio widget for tracking holdings.
Your favicon displayed in the browser tab.
In addition to the Invest Page, you can embed Offering Manager widgets directly on your own website. Navigate to the Embed Widgets tab in the admin interface to get code snippets and direct links for:
Checkout Widget — A full purchase flow for your offering.
Investment Card Widget — A compact card with offering details and an Invest button.
Portfolio Widget — Displays an investor’s holdings and activity.
Each snippet includes your subdomain, slug, and any custom brand settings (colors, fonts, theme, hero font, CTA font). Use the Copy button to copy the embed code or click Open in new tab to view the direct link.
Example code for the Checkout Widget:
The div attributes configure the widget type, your subdomain, and offering slug. Any additional data-om-* attributes override branding values.
For the Investment Card Widget:
And for the Portfolio Widget:
You can also use the direct links to the widgets:
Checkout Widget: <https://om.bitbond.com/invest/your-subdomain/your-offering-slug/checkout?primaryColor=...&font=...>
Investment Card Widget: <https://om.bitbond.com/invest/your-subdomain/your-offering-slug/widget?primaryColor=...&font=...>
Portfolio Widget: <https://om.bitbond.com/invest/your-subdomain/portfolio/widget?primaryColor=...&font=...>
For more details on available data attributes and styling options, see the Embed Widgets section in the admin UI.
For details on the full investor experience, see Investor Experience. Consult the interactive public API documentation at https://om.bitbond.com/api/docs. The Offering Manager homepage is https://om.bitbond.com.
<!-- Offering Manager Checkout Widget -->
<div data-om-widget="checkout"
data-om-subdomain="your-subdomain"
data-om-slug="your-offering-slug"
data-om-color="#1d4ed8"
data-om-secondary-color="#c7d2fe"
data-om-font="Inter"
data-om-theme="light"
data-om-hero-font-color="#ffffff"
data-om-cta-font-color="#ffffff">
</div>
<script src="https://om.bitbond.com/om-widget.js"></script><!-- Offering Manager Investment Card Widget -->
<div data-om-widget="invest-card"
data-om-subdomain="your-subdomain"
data-om-slug="your-offering-slug"
<!-- optional branding attributes -->
>
</div>
<script src="https://om.bitbond.com/om-widget.js"></script><!-- Offering Manager Portfolio Widget -->
<div data-om-widget="portfolio"
data-om-subdomain="your-subdomain"
<!-- optional branding attributes -->
>
</div>
<script src="https://om.bitbond.com/om-widget.js"></script>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 Manage Token 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 an example:
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)
Renounce ownership (always possible)
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)
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.
While re-funding, exclude the LP address to temporarily disable tax and remove the max limit.
⚠️ 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
BNB Chain: PancakeSwap V2, Uniswap V2, ApeSwap, SushiSwap V2
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

The Offering Manager (https://om.bitbond.com) provides issuer users with comprehensive tools to view, filter, and manage your investors and their orders. The platform integrates KYC verification via Sumsub and Blockpass (configurable in Settings) and supports four payment methods for investors: bank transfer (SEPA/wire), card payments via Checkout.com, crypto payments via Coinbase Commerce, and direct on-chain stablecoin payments. All manual administrative actions—such as creating investors, updating orders, and reconciling payments—are recorded in the Audit Trail. For a complete API reference, visit the interactive OpenAPI spec at https://om.bitbond.com/api/docs.
The Investors page shows all investors across all of your offerings. At the top, summary cards display:
Total Investors — The total number of unique investors.
KYC Approved — The number of investors who have passed identity verification via or , with a percentage of the total.
Total Invested — The aggregate investment amount across all investors.
To manually add a new investor:
Click the Add Investor button in the top-right corner.
Complete the form, including:
Personal information (name, email, phone, address).
You can narrow down the investor list using several filters and the search box:
Search — Search by investor name, email address, or wallet address (including previous addresses).
KYC Status — Filter by identity verification status: None, Pending, Approved, or Rejected.
Investor Type — Filter by Individual or Institutional investors.
Each row displays:
Investor — Name, email address, and (for institutional investors) company name, or (for individual investors) country.
Type — Individual or Institutional badge.
KYC Status — Current KYC verification status (None, Pending, Approved, or Rejected).
Click on any investor row to view or edit their detailed profile.
If the investor list is longer than one page, use the Previous and Next buttons at the bottom to navigate between pages.
Clicking on an investor opens their detail page, where you can view and edit profile information.
Full name
Investor type (Individual or Institutional)
Email address
Phone number (if provided)
For institutional investors, additional fields are displayed and editable:
Company name
Registration number
Legal form (e.g., GmbH, Ltd, AG)
Jurisdiction
If you have enabled a custody provider:
Provider — e.g., Tangany
Status — Pending, Active, or Suspended
Last Updated — When the account status was last synced
Current KYC status
Total invested amount
Number of offerings participated in
Total number of orders
A table of all orders placed by this investor, showing:
Offering name (click to navigate to the offering)
Investment amount
Token amount
Order status
Each offering has a dedicated Orders page, accessible from the offering detail page by clicking Orders. Here you can also manually create new orders on behalf of investors.
Click the Create Order button.
Select an existing investor or enter investor details.
Specify:
Use the status filter dropdown to show only orders with a specific status:
All Statuses — Show all orders.
Pending — Orders awaiting payment.
Processing — Payments being processed (e.g., a card payment is being captured).
Each row in the orders table shows:
Investor — Name, email, and KYC status.
Amount — Investment amount in fiat and equivalent token amount.
Status — Current order status badge.
You can manually update an order’s status using the action buttons:
Pending or Processing orders can be marked as Paid after verifying a manual payment.
Cancellation Requested orders can be marked as Refunded after processing the refund.
All manual status changes are logged in the Audit Trail for compliance purposes.
For orders in Pending status, click the email icon in the Actions column to send a payment reminder via email.
If an investor provided a phone number, a phone icon appears in the Actions column. Click it to initiate a call directly.
For orders paid with stablecoin, additional details appear below the order row:
Transaction hash with a link to the blockchain explorer.
Chain — The blockchain network used (e.g., Ethereum, Polygon).
Expected vs. Received amount — Comparison with badges indicating overpayment or shortfall.
For orders processed via Coinbase Commerce, expand the order to view:
Charge ID and Charge Code.
Hosted URL — Link to the hosted payment page.
Expiration — When the charge expires.
You can export your full order ledger to CSV:
On the Orders page, click Export CSV.
Optionally apply status or offering filters.
Download a file including columns for:
All exports are recorded in the Audit Trail.
For offerings that accept bank transfers, you can bulk-reconcile payments by uploading a bank statement CSV:
Navigate to the offering detail page.
In the Reconciliation section, click Choose CSV and select your bank statement export.
Click Reconcile.
After your offering closes and payments are confirmed, export a list of funded investor wallet addresses:
Navigate to the offering detail page.
Click Export CSV.
A plain-text file is downloaded containing one wallet address per line (no headers).
For custom filters or to include additional statuses, use the API endpoint:
The Audit Trail page logs all administrative actions across offerings, investors, and orders. You can filter entries by offering, entity type (Investor or Order), action, date range, and user.
In the sidebar, click Audit Trail.
Use the filters to narrow the log entries.
Review each entry’s timestamp, user, entity, action type, and details for compliance and record-keeping.
For a complete API reference, visit the interactive OpenAPI spec at .
Create Token Sale is an easy to use STO / IDO / 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)















Multi-chain wallet address (optional) — select the chain (EVM, Solana, etc.) and enter the address.
Initial KYC status (None, Pending, Approved, or Rejected).
Submit to create the investor profile. All manually created investors appear immediately in the list and are recorded in the Audit Trail. Note: Creating investors is subject to your plan limits (Free plan up to 5 investors; Professional plans up to 1,000 investors; Enterprise unlimited).
Country — Filter by the investor’s country.
Total Invested — The total amount invested across all offerings.
Orders — Total number of orders placed.
Wallet — Abbreviated multi-chain wallet address, or a dash if not provided.
Custody — Custody account status (None, Pending, Active) if your offering is configured with a custody provider such as Tangany.
Registered — The date the investor registered.
Postal address (if provided), including:
Address Line 1
Address Line 2 (optional)
City
State/Region
Postal code
Country
Wallet Addresses — List of all registered wallets, including chain type (EVM, Solana, etc.) and whether provisioned by your custody provider
KYC Provider — Which provider conducted verification (Sumsub or Blockpass)
KYC Approved At — Timestamp of approval (if status is Approved)
Custody Status — Shows if the investor has a custody account provisioned and its current status
Anonymised — Indicates if this investor profile has been anonymised
Registration date
Edit button — Update any of the above fields or change the KYC status (None, Pending, Approved, Rejected) as needed
LEI (Legal Entity Identifier)
VAT ID
Representative role
Reference code
Order date
Payment method — choose bank transfer (SEPA/wire), card payments via Checkout.com, crypto payments via Coinbase Commerce, stablecoin, or Manual.
KYC status if needed.
Submit to generate an order reference code and add the order to the ledger. All manually created orders appear immediately in the order list and are logged in the Audit Trail.
Awaiting Custody Wallet — Orders waiting for a custody wallet to be provisioned.
Cancellation Requested — Investors who have requested cancellation.
Refunded — Orders that have been refunded.
Cancelled — Cancelled orders.
Failed — Orders that failed processing.
Expired — Orders that were not completed within the payment window.
Date — When the order was placed.
Actions — Available actions for this order (see below).
The order is complete but awaiting a custody wallet for token distribution.
Cancellation Requested
The investor has requested to cancel their order within the allowed window.
Refunded
The order has been refunded to the investor.
Cancelled
The order has been cancelled.
Failed
The payment failed (e.g., a card was declined).
Expired
The payment window elapsed without completion and the order expired.
Flag status — A warning if the payment was flagged for review, with the reason.
investor email, investor name, wallet_address
fiat_amount, token_amount, payment_method, status
reference_code, coinbase_charge_id, coinbase_charge_code
crypto_tx_hash, crypto_chain_id
Matched orders are automatically updated to Paid.
A summary displays the number of matched and skipped transactions. All reconciliation actions are recorded in the Audit Trail.
By default, only Paid orders are included.
Use this list to perform a bulk token distribution.
Pending
The investor has placed an order but payment has not been received yet.
Processing
Payment is being processed (e.g., a card payment is being captured).
Paid
Payment has been confirmed. The order is complete.
Awaiting Custody Wallet


GET /api/issuer/orders/export-wallets?offeringId={OFFERING_ID}&statuses=paid,refundedIn order to get started with your Token Sale, you need to have a token prepared. Unless you already created a token, go to Create Token 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 USDC. 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 widget 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
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.
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.
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).
Record investments made by early-bird participants (e.g., within the first 3 days or up to a certain total amount raised). You can easily retrieve addresses of investors from the block explorer when inspecting the transaction history of your token sale contract address.
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 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.
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 KYC 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 Manage Token Sale functionality.
You can manage investor on-boarding manually via a Google Form 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
Date and place of birth
Citizenship
Tax ID
Email address
Blockchain wallet address
Declaration about source of funds
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 iframe. 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 Manage Token Sale 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 Manage Token Sale function or via standard ERC20 transfer. Otherwise the sale will fail upon start time.
An offering represents a single token sale campaign. You can run multiple offerings concurrently, each with its own pricing, caps, dates, compliance rules, payment methods, and wallet policies.
Note: You can also automate offering management via our public API. View the interactive OpenAPI spec at .
To create an offering, click New Offering from the Dashboard or the Offerings page. You will need to fill in the following sections:
Offering Name — A descriptive name for the token sale (e.g., "Acme Security Token Series A").











URL Slug — A URL-friendly identifier auto-generated from the name (e.g., "acme-security-token-series-a"). This becomes part of the investor-facing URL.
Token Symbol — The ticker symbol for your token (e.g., "AST").
Currency — The base fiat currency for pricing and reporting (EUR, USD, GBP, or CHF).
Price per Token — The price of a single token in the selected currency.
Funding Target (Soft Cap) — The minimum amount you aim to raise.
Hard Cap — The maximum amount the offering will accept.
Min Investment — The minimum amount an investor can invest in a single order.
Max Investment — The maximum amount an investor can invest in a single order.
Start Date — The date and time when the offering opens for investment.
End Date — The date and time when the offering closes.
Cancellation Period — The number of days investors have to cancel their order after placing it (e.g., 14 days for regulatory compliance).
Blocked Countries — A list of countries whose residents are not permitted to invest. Investors from these countries are blocked during the KYC process.
Allowed Investor Types — Choose whether the offering accepts individual investors, institutional investors, or both. At least one type must be selected.
Select which payment methods are available to investors. Payment methods are only enabled if the corresponding credentials have been configured in Settings:
Bank Transfer — SEPA or wire transfer. Requires bank details (bank name, IBAN, BIC) in Settings.
Card Payment (Checkout.com) — Requires Checkout.com API keys to be configured in Settings.
Crypto Payment (Coinbase Commerce) — Enables hosted crypto payment collection via Coinbase Commerce. Proceeds can be settled to fiat manually or held as crypto. Configure your Coinbase Commerce API keys in Settings.
Stablecoin — Direct on‐chain payment using EVM-based stablecoins. Requires an EVM xPub key to be configured in Settings.
Manual — Enables you to record off-platform or third-party payments manually via the admin Orders page.
If a payment method is not available, a message will indicate what needs to be configured and provide a link to the Settings page.
When stablecoin payments are enabled, you can also select:
Accepted Stablecoin Tokens — Which stablecoins investors can pay with (e.g., USDC, USDT, DAI, EURC, EURS, EURe, EURT).
Accepted Chains — Which blockchain networks are supported (e.g., Ethereum, Polygon, Arbitrum, Base, Optimism, Avalanche, BNB Chain).
At least one payment method must be selected to create an offering.
After creating an offering, click Manage on it from the Offerings list to open its detail page. The detail view is organized into four tabs: Details, Invest Page, Discount Attribution, and Widgets.
The Details tab shows all configuration for the offering and allows you to:
Review and update the core parameters of your offering:
Offering name, token symbol, and URL slug
Base currency, price per token, funding targets, and investment limits
Soft cap, hard cap, minimum and maximum investment amounts
Specify the on-chain settings for your token:
Contract Address — The deployed smart contract address for the token.
Chain — The blockchain network (e.g., Ethereum, Polygon).
Token Decimals — Number of decimal places for token calculations.
Enter the contract address and select the chain so Offering Manager can integrate with on-chain tools and display real-time data where available.
An offering can be in one of three statuses:
Draft — The offering is not visible to investors. Use this status while you are still configuring the offering.
Active — The offering is live and investors can view the Invest Page and place orders.
Closed — The offering is no longer accepting new investments.
Use the status buttons to move an offering through its lifecycle: Draft → Active → Closed. The Start Date and End Date fields in this section control when the offering is open and closed for investment.
Toggle which investor types are accepted:
Individual — Accredited or retail individuals.
Institutional — Corporate or accredited institutional entities.
At least one type must be selected. Click Save to apply changes.
You can update which payment methods are available after creation. Toggle payment methods on or off and click Save Payment Methods. The same eligibility rules apply — a payment method can only be enabled if the corresponding credentials are configured in Settings. The Manual method does not require external credentials; enable it to record payments that occur outside the available gateways.
Configure how investor wallets are handled for on-chain payments:
BYO Only — Investors must supply their own wallet address.
Investor Choice — Investors can choose between providing their own address or using an issuer-provisioned wallet.
Custodial Only — Wallets are provisioned for investors on your behalf via a custody provider.
When Custodial Only is selected, Offering Manager uses Tangany to provision EVM-based wallets. Click Save Wallet Policy to apply your choice.
Update the KYC, cancellation, and investor restrictions:
Toggle KYC requirement and choose your provider (Sumsub or Blockpass).
Adjust the cancellation period (in days).
Modify the list of blocked countries.
Update allowed investor types (individual or institutional).
Click Save Compliance to apply changes.
You can upload up to five documents (e.g., a prospectus, terms and conditions, or whitepaper) that investors can view and download. For each document:
Select a PDF file.
Enter a display name (e.g., "Prospectus" or "Terms & Conditions").
Optionally check Require investor agreement — if enabled, investors must check an "I agree" box for this document during checkout before they can proceed.
Click Upload.
Uploaded documents appear in the documents list. You can delete a document by clicking the delete icon next to it.
Discount tiers let you offer reduced pricing based on investment amount, which is useful for early-bird or volume-based incentives. To add a tier:
Enter the minimum investment amount that triggers the discount.
Optionally enter a maximum investment amount (leave blank for no upper limit).
Enter the discount percentage (e.g., 10 for a 10% discount).
Optionally enter a label to describe the tier (e.g., "Early Bird" or "VIP Tier").
Click Add Tier.
Discount tiers are applied automatically during investor checkout. When an investor enters an amount that falls within a tier's range, the discounted token price is shown in real time. You can delete a tier by clicking the delete icon next to it.
Limited-time discounts let you apply a percentage discount only during a specific window (e.g., an early-bird period). To add a time discount:
Enter the Start Date and End Date for the discount window.
Enter the discount percentage (e.g., 15 for a 15% discount).
Optionally enter a label (e.g., "Launch Week").
Click Add Time Discount.
Active time discounts are applied automatically at checkout. Delete any time discount by clicking the delete icon next to it.
Add custom AML questions that appear at the start of investor checkout. Each question can be configured as:
Text — Free-text input.
Yes/No — Binary toggle.
Checkbox — Single-choice agreement.
Click Add Question, select the question type, enter your question text, and click Save. You can re-order or remove questions as needed.
For orders placed via bank transfer, you can upload a bank statement CSV to automatically match and confirm payments. The reconciliation process:
Click Choose CSV and select your bank statement export file.
Click Reconcile.
The system matches transactions by looking for the unique reference code (e.g., OM-1234-ABCD) that investors were instructed to include as the transfer subject.
Matched orders are automatically marked as Paid.
A summary shows how many orders were matched and how many were skipped.
Once your offering is closed, you can distribute tokens across supported blockchain networks using the Token Tool airdrop feature. Export a CSV containing funded investor wallet addresses and their token amounts for each network, then upload it to Token Tool to send tokens in a single batch transaction.
The Airdrop section shows:
A warning if any funded investors are missing a wallet address on a given chain (they will be excluded).
Step-by-step instructions for exporting and uploading your CSV file.
Export the airdrop CSV with funded investor wallets and token amounts.
Open Token Tool and connect your wallet.
Upload the CSV in the custom recipients section.
Review and confirm the token airdrop.
Click Export Airdrop CSV, then open the Bitbond Token Tool to complete your batch airdrop.
You can export a CSV file containing funded investor wallet addresses and their token amounts, formatted as address,amount. This file is designed for use with the Bitbond Token Tool and supports multiple blockchain networks.
Click Export CSV from the Details tab to download the file.
The Details tab displays the full URL of the investor-facing Invest Page for this offering. Click the copy icon to copy it to your clipboard. The URL format is:
The Invest Page tab provides the Invest Page Builder, where you can customize the investor-facing Invest Page:
Branding & Metadata
Upload your logo and favicon.
Choose primary and secondary colors.
Select fonts and theme (dark or light).
Configure hero gradient end color.
Choose card background color.
Set accent text color.
Adjust hero font color and CTA font color.
Upload hero media (image or video).
Toggle Discoverability — control whether the Invest Page is listed in the public offering directory or accessible only via direct link.
Enter an External Canonical URL for SEO, pointing to your website’s page for this offering.
Section Manager Enable or disable content sections and configure their details. Available sections include:
Key Statistics
Token Details
After making changes, click Save Invest Page to apply them. Investors will see your updated layout and content when they visit the Invest Page.
The Discount Attribution tab provides analytics on how discount tiers and limited-time discounts contributed to orders:
Filter by order status (Paid only or Paid + Pending + Processing).
View total orders, total fiat raised, and percentage of orders at a discount.
Review breakdown tables for volume tiers and time discounts.
Download a CSV of the discount attribution report by clicking CSV.
Use this tab to evaluate which incentives drove the most investment.
The Widgets tab provides embeddable code snippets and direct links for three types of widgets, so you can integrate Offering Manager functionality directly into your website:
Checkout Widget — Embed the checkout flow in-page.
Investment Card Widget — Display an investment card with offering details and a CTA.
Portfolio Widget — Show an investor’s portfolio on your site.
For each widget:
Copy the HTML snippet (including the <script src="https://om.bitbond.com/om-widget.js"> tag).
Or click Open in new tab to get a direct link you can share.
Customize colors, fonts, theme, and text via data-om-* attributes:
data-om-color — Primary button/brand color.
data-om-secondary-color — Secondary highlights.
data-om-font — Font family.
data-om-theme — light or default dark theme.
data-om-hero-font-color — Heading and hero text color.
data-om-cta-font-color — CTA button text color.
Example snippet:
Insert these into your pages to deliver a seamless investor experience.
Click Orders from the offering’s management menu to view and manage all orders for this offering. The Orders page allows you to:
View each order’s ID, investor, amount, payment method, status (Pending, Paid, Processing), and date placed.
Filter and sort orders by status, date, or investor.
Search by investor name, email, or order reference.
Create manual orders by clicking New Order, entering investor details, investment amount, and selecting a payment method, then clicking Create Order.
For bank transfers, use the reconciliation feature in the Details tab to match and confirm payments automatically.
The Offerings list page shows all your offerings in a table with the following columns:
Offering — Name, token symbol, and URL slug.
Status — Draft, Active, or Closed.
Price — Price per token in the base currency.
Target — Funding target (soft cap).
Orders — Total number of orders for this offering.
Click Manage on any offering to open its detail page.
Offering Manager records every change to your offerings so you can track configuration history and user activity.
Go to Audit Trail in the main navigation.
Use the Offering filter to select your offering.
Review the list of changes, including who made each update and when.
This helps you maintain a complete history of all edits and status changes.

https://om.bitbond.com/invest/[subdomain]/[offering-slug]<!-- Offering Manager Checkout Widget -->
<div data-om-widget="checkout"
data-om-subdomain="acme-gmbh"
data-om-slug="acme-security-token-series-a"
data-om-color="#1d4ed8"
data-om-secondary-color="#f59e0b"
data-om-font="Roboto"
data-om-theme="light"
data-om-hero-font-color="#000000"
data-om-cta-font-color="#ffffff"></div>
<script src="https://om.bitbond.com/om-widget.js"></script>The Bitbond Offering Manager Platform provides a public REST API under /api/public that allows you to integrate investor-facing flows into your own applications. You can retrieve offering details, create and manage investor orders, track abandoned checkouts, process payments (SEPA/wire bank transfer, card via https://www.checkout.com, stablecoin), integrate identity verification, manage investor profiles and multi-chain wallets, export or erase investor data (GDPR), and unsubscribe from activation emails. The API follows RESTful conventions and returns JSON responses.
Integration with issuer management APIs (for creating offerings, documents, discount tiers, and administrative workflows) is available under /api/* and requires a tenant API key or session JWT. Refer to the Public API Reference for details.
All public endpoints are available under:
https://om.bitbond.com/api/publicTenants are identified by a subdomain slug passed as a query parameter or URL path segment (for example, /invest/acme-gmbh/my-offering). There are no tenant-specific domains like acme.om.bitbond.com.
Investor-facing endpoints under /api/public follow two patterns:
Public endpoints (such as retrieving offering details and token metadata) require no authentication.
Protected endpoints (orders, payments, KYC, profile, checkout-intent, GDPR export/erase) require a Privy ID token. Include it in the Authorization header:
Requests without a valid token receive a 401 Unauthorized response.
Issuer integration endpoints under /api/* require either:
A tenant API key (Enterprise plan) generated in Settings > API Access, or
A session JWT obtained via the authentication endpoints.
The full, interactive API reference is available as the . This portal provides:
A complete list of all available endpoints.
Request and response schemas for each endpoint.
The ability to try out API calls directly from the browser.
Authentication setup instructions.
GET /offerings/:slug?subdomain=<tenant_subdomain> Retrieve offering details, live fundraising totals, payment configuration, and investor wallet policy.
Query parameter:
subdomain (required): the tenant’s subdomain
Successful response includes:
GET /documents/:docId/download Download an offering document (PDF) for an active or closed offering. Returns the PDF inline with:
Content-Disposition: inline; filename="<display_name>.pdf"
Content-Type: application/pdf
GET /token-info?chain=<chain_id>&address=<contract_address> Lookup on-chain token metadata (name, symbol, decimals) for supported networks.
Query parameters:
chain (required): the network ID
address
POST /orders Create a new investor order. Requires a Privy ID token.
Request body:
offeringId (string, required)
fiatAmount
POST /checkout-intent Track or update an abandoned checkout intent for the authenticated investor. Requires a Privy ID token.
Request body:
offeringId (string, required)
fiatAmount
GET /payments/checkout-config?subdomain=<tenant_subdomain> Retrieve the tenant’s Checkout.com public key configuration. No authentication required.
Query parameter:
subdomain (required)
Response:
Configure your preferred identity verification provider in Settings:
Sumsub:
Blockpass:
Endpoints:
POST /kyc/init Initialize a KYC session for an offering. Requires a Privy ID token.
Request body:
offeringId (string, required)
investorType
GET /investor/profile Fetch the authenticated investor’s profile. Requires a Privy ID token.
Response:
profile: object containing personal and company fields (name, email, address, investor type, etc.), kyc_status, kyc_record_id
GET /investor/gdpr/export Export the authenticated investor’s data as JSON. Requires a Privy ID token. Response: A JSON object containing the investor’s profile, orders, wallets, KYC records, and audit logs.
POST /investor/gdpr/erase Request erasure of the authenticated investor’s personal data. Requires a Privy ID token. Response:
204 No Content on success
GET /activation-emails/unsubscribe?tenant=<tenant_id>&token=<token> Unsubscribe the specified tenant from activation emails. Returns an HTML confirmation page.
GET /unsubscribe-activation?tenant=<tenant_id>&token=<token> Alias of the unsubscribe endpoint for backward compatibility.
Build a custom investor UI powered by offering data, documents, and live stats.
Integrate investor data, order statuses, or payment sessions with CRM or accounting tools.
Automate workflows: programmatic order creation, KYC initiation, wallet management.
The public API covers all investor-facing flows, including offering discovery, order management, checkout intents, payment sessions, KYC initiation, wallet management, GDPR export/erase, and activation-email unsubscribe. It does not include administrative operations (use the admin panel for user and tenant management, offering configuration, team settings, and audit exports).
For the complete request and schema reference, see the .
Documents
External Links
Tokenomics
Token Lifecycle
Bond Details
Rich Text
FAQ
Video
Team
Roadmap

Core offering fields (slug, name, description, funding_target, hard_cap, etc.)
documents: array of { id, display_name, requires_agreement }
discount_tiers: array of { id, min_amount, max_amount, discount_pct, label }
liveStats: current totals and progress against fundraising targets
tenantBankDetails:
bankName, accountHolderName, iban, bic
paymentConfig:
hasCheckoutCom (boolean)
checkoutComPublicKey (string or null)
hasEvmCrypto (boolean)
hasCustodian (boolean)
custodianProvider (string)
acceptedTokens (array of stablecoin symbols)
acceptedChains (array of supported blockchain IDs)
investorWalletPolicy (string): one of byo_only, investor_choice, custodial_only
Error cases:
400 Bad Request if subdomain is missing.
403 Forbidden if the investor’s country (via CF-IPCountry header) is blocked for this offering.
404 Not Found if the tenant or offering is not found, or the offering is not active.
Successful response:
{ name, symbol, decimals }
Error responses may include:
400 Bad Request for missing or invalid parameters
404 Not Found if the token or chain is unknown
429 Too Many Requests when rate limiting
Error payload with error and kind fields for diagnostics
tokenAmount (number, required)
paymentMethod (string, one of bank_transfer, checkout_com, stablecoin, required)
walletAddress (string, optional)
walletChainType (string, optional)
cryptoNetwork (string, optional)
agreedDocumentIds (array of document IDs, optional)
investorProfile (object, optional) — to collect or update KYC/AML details
Returns 201 Created with:
order: the newly created order object
bankDetails (for bank_transfer payments)
cryptoDepositAddress (for stablecoin or on-chain payments)
GET /orders/investor/portfolio?subdomain=<tenant_subdomain> Retrieve the authenticated investor’s orders for a tenant.
Query parameter:
subdomain (string, required)
Response:
orders: array of order objects, each including:
cancellationDeadline
canCancel (boolean)
walletAddress (string or null): the investor’s primary EVM address
wallets: map of chain types to addresses ({ [chainType]: address })
GET /orders/:referenceCode Retrieve details for a single order by its reference code. Response includes:
All order fields
cancellationDeadline
canCancel (boolean)
POST /orders/:id/cancel Cancel a pending order within its allowed cancellation window. Returns the updated order or an error if the window has passed.
lastSeenStep (string, required) — identifier of the last UI step viewed
Successful response:
{ id: string }: the checkout intent identifier
Error cases:
401 Unauthorized if missing or invalid Privy token
404 Not Found if the offering is not active
500 Internal Server Error on failure to save the intent
publicKey (string or null)
configured (boolean)
POST /payments/checkout-session Create a Checkout.com payment session for a pending order. Requires a Privy ID token.
Request body:
orderId (string, required)
Returns:
sessionId
sessionToken
publicKey
POST /payments/checkout-pay Complete a card payment via Checkout.com using a Frames.js card token. Requires a Privy ID token.
Request body:
orderId (string, required)
cardToken (string, required)
Returns the payment result or error details.
individualinstitutionalindividualReturns provider-specific tokens or SDK configuration:
For Sumsub: { provider: "sumsub", sdkToken, levelName }
For Blockpass: provider response with redirect or widget parameters
GET /kyc/status Poll the status of the authenticated investor’s verification. Requires a Privy ID token.
Response:
kyc_status (none, pending, approved, rejected, etc.)
kyc_record_id (string or null)
wallets: map of chain types to { address, source } (supports evm, solana, stellar, xrpl)
walletList: array of { chain_type, address, source } sorted by precedence
walletHistory: audit trail entries with { id, wallet_address, chain_type, set_at, replaced_at }
hasConfirmedOrder (boolean)
PATCH /investor/profile Add, update, or remove a wallet address. Requires a Privy ID token.
Request body:
walletAddress (string or null, required)
chainType (one of evm, solana, stellar, xrpl; defaults to evm)
Response:
message: status message
walletAddress
chainType
Error cases:
400 Bad Request if the wallet address is invalid for the chosen chain
404 Not Found if the user is not found
Provide investor self-service data export or erasure to comply with GDPR.
Allow workspace administrators to unsubscribe from activation emails via a simple link.
Authorization: Bearer <PRIVY_ID_TOKEN>