How to issue a bond token (Debt instrument)
Bond tokens represent digital debt instruments that automate the entire lifecycle from issuance to coupon payments, compliance checks, secondary trading, and maturity redemption. Yield management automates coupon distributions while DvP ensures atomic settlement, eliminating weeks of manual coordination. Track bond performance in the fixed income dashboard to monitor outstanding principal, accrued interest, and payment schedules in real-time.
Before you start
Ensure you've completed the necessary setup before creating your bond token. You'll need your bond system factory deployed (this happens during platform onboarding), a denomination asset contract address (deploy a stablecoin or use an existing USDC/USDT contract), and fully defined bond terms including principal amount, coupon rate, maturity date, and payment frequency.
Time estimate: 15-20 minutes for bond deployment; additional time for yield configuration and initial funding.
Required knowledge includes basic blockchain wallet operations (signing transactions, managing private keys), understanding of bond instruments (face value, maturity, coupon rates, yield calculations), and familiarity with applicable securities regulations such as Regulation D, Regulation S, or other frameworks governing your offering.
Steps
Navigate to bond creation
From your dashboard, click Asset Management in the left sidebar to access your asset portfolio. Select Bonds from the asset type list to view existing bond tokens and available templates. Click the Create New Bond Token button to launch the bond configuration wizard.
Screenshot:
Asset Management section showing Bonds category with existing bonds list and
Create New Bond Token button
Configure bond parameters
Basic token information
Your bond token requires standard ERC-3643 parameters that define its digital representation. Enter the token name using the full legal name of your offering—for example, "TechCorp 2027 Senior Secured Notes" clearly identifies the issuer, maturity year, and security type. The token symbol serves as the trading identifier; keep it concise like "TECH27". Set decimals to 18 for fractional bond ownership or 0 if bonds must trade as whole units. Initial supply determines how many tokens mint at deployment—you can set this to zero and mint later after verifying all configurations.
Screenshot: Bond
configuration form showing name, symbol, decimals, and initial supply input
fields with validation
Naming tip: Include issuer name, maturity year, and security type in your token name. This becomes crucial when investors hold multiple bonds and need to distinguish between them quickly.
Bond-specific parameters
Configure the financial terms that define your debt instrument. The maturity date determines when bondholders can redeem their tokens for denomination assets—select a future date using the date picker and the platform converts it to Unix timestamp automatically. Typical corporate bonds have 1-10 year maturities depending on capital needs and market conditions.
Face value specifies the redemption amount per token at maturity, denominated in your chosen stablecoin. Setting a face value of 1000 means each bond token redeems for 1,000 USDC (or whatever denomination asset you select). This creates the fundamental calculation: tokens held × face value = redemption proceeds. For a bondholder with 50 tokens at 1000 face value, redemption yields 50,000 USDC.
The denomination asset serves as your underlying collateral token. Enter the ERC20 contract address for your stablecoin—USDC, USDT, or a platform-specific stablecoin all work as long as they implement the standard decimals() function. The platform validates the address format and checks that the contract exists on-chain before allowing deployment.
Screenshot:
Bond parameters showing maturity date picker, face value input, and denomination
asset address field with validation
Configure yield distribution (optional)
The yield module is an optional add-on that you must explicitly enable during bond creation—bonds deployed without it cannot support scheduled coupon calculations later. If you're issuing zero-coupon bonds or handling interest payments off-chain, you can skip this section.
Yield schedule setup
Enabling the yield add-on activates automated interest distribution. Toggle yield distribution on, then select your payment frequency from quarterly (every 3 months), semi-annual (every 6 months), or annual (every 12 months) options. Set the first payment date to establish when bondholders can begin claiming interest—this should align with your term sheet and investor expectations. Enter the yield rate as basis points where 5% annual = 500 basis points, 7.5% annual = 750 basis points, and 10% annual = 1000 basis points.
Screenshot: Yield configuration showing payment frequency dropdown, first
payment date picker, and yield rate input with basis points calculator
Payment mechanism and DvP settlement
Yield management automates the complete coupon distribution process, eliminating the manual recordkeeping and payment coordination that traditionally consumes 5-10 business days per payment cycle. The system captures a snapshot of who holds bonds at each payment date, calculates pro-rata entitlements based on holdings and your configured interest rate, and enables bondholders to claim their payments on-demand. DvP ensures atomic coupon payment settlement—the smart contract verifies the claimant's bond holdings and transfers the precise denomination asset amount in a single transaction. If either verification or transfer fails, the entire operation reverts, preventing any reconciliation mismatches.
When a payment date arrives, the yield module determines each holder's entitlement: (tokens held × face value × annual rate × period fraction) = coupon amount. For quarterly payments on a 6% annual rate bond with 1000 face value, a holder with 100 tokens receives (100 × 1000 × 0.06 × 0.25) = 1,500 USDC per quarter. Token holders claim their interest directly through the investor portal whenever convenient—no waiting for batch processing, no coordinating wire transfers, no $50-200 per bondholder fees that transfer agents typically charge.
Funding requirement: Ensure your designated payment wallet holds sufficient denomination assets before each payment date. The fixed income dashboard shows exactly how much funding is required for upcoming payments, calculating total outstanding interest across all bondholders. Transfer the required amount at least 24 hours before the payment date to avoid claim failures.
Business context
Traditional bond administration requires collecting bondholder lists, calculating interest manually, coordinating hundreds or thousands of wire transfers, and reconciling which payments cleared. This process typically takes 5-10 business days and costs $50-200 per bondholder depending on transfer agent fees. ATK eliminates this operational overhead—bondholders claim their interest on-demand, DvP ensures atomic settlement without reconciliation, and the observability stack tracks everything automatically through the fixed income dashboard.
Set compliance rules
Your bond token enforces transfer restrictions through compliance modules that execute on every transaction. This embedded compliance layer ensures regulatory adherence without relying on off-chain monitoring or manual intervention.
Regulatory framework selection
Choose the framework that matches your offering structure. Regulation D supports US private placements where bonds can only transfer to accredited investors—the compliance module validates investor claims before allowing transfers. Regulation S enables offshore offerings by restricting US persons while allowing broader international distribution. Regulation A supports US public offerings with a wider investor base beyond just accredited individuals. The Custom option lets you define specific compliance requirements that don't fit standard frameworks.
Screenshot: Compliance framework cards showing Reg D, Reg S, Reg A, and Custom
options with descriptions
Selecting a framework provides pre-configured compliance modules that you can customize after deployment. For example, choosing Regulation D automatically enables accredited investor verification and US jurisdiction restrictions.
Configure compliance modules
Country restrictions limit bond purchases by jurisdiction. Enable the Country Allow List module and select permitted countries—a Regulation D offering typically restricts to US only, while Regulation S excludes US but permits other jurisdictions. Alternatively, enable the Country Block List to specifically exclude certain countries while allowing all others.
Investor eligibility requirements leverage OnchainID claims to verify participant status. Set required claims such as accredited investor status (mandatory for Reg D), KYC/AML verification level (typically Level 2 or higher for institutional offerings), or qualified purchaser certification for certain private placements. Only addresses holding all required claims in their OnchainID can receive or hold bonds—attempted transfers to non-compliant addresses revert with a compliance failure message.
Additional transfer restrictions provide operational controls beyond basic eligibility. Time Lock enforces holding periods like the typical 12-month lock-up required under Rule 144 for US private placements. Transfer Limit caps maximum transfer sizes to prevent concentration risk or satisfy offering terms. Supply Limit sets the maximum total bond issuance to match your authorized principal amount.
Screenshot: Compliance modules showing Country Allow List, Identity
Verification, and Time Lock modules with configuration panels
Assign operational roles
Grant permissions for bond management by assigning wallet addresses to operational roles. This role-based access control separates duties for security and operational clarity.
GOVERNANCE_ROLE manages compliance and bond lifecycle operations including setting yield schedules, adding or removing compliance modules, triggering bond maturation when the maturity date arrives, and configuring identity requirements. Typically assign this to your legal or compliance team's multisig wallet since these functions have regulatory implications.
SUPPLY_MANAGEMENT_ROLE controls token supply through minting new bonds during primary issuance, burning bonds for cancellation or early redemption, and executing batch mint operations for large investor groups. Treasury operations teams typically hold this role since they coordinate capital raising activities.
CUSTODIAN_ROLE handles recovery and account freezing scenarios including freezing compromised accounts immediately upon breach notification, executing forced transfers to recover tokens from frozen addresses, and restoring access to legitimate owners. Assign this to your custodian service provider's wallet or a dedicated security operations multisig.
EMERGENCY_ROLE provides circuit-breaker functionality to pause all transfers during security incidents or regulatory investigations, then unpause after incident resolution. Security operations teams should control this role through a highly secured multisig wallet.
Screenshot:
Role assignment form showing four roles with address inputs, descriptions, and
current assignments
Best practice: Assign different wallet addresses to different roles to prevent any single compromise from gaining full control. Use multisig wallets requiring 2-of-3 or 3-of-5 signatures for GOVERNANCE_ROLE and EMERGENCY_ROLE given their systemic impact.
Review and deploy
Pre-deployment checklist
Review your configuration summary before deployment to catch any errors that would require redeployment:
- Token name and symbol match your term sheet exactly
- Maturity date set correctly (verify Unix timestamp if shown)
- Face value matches your offering documents
- Denomination asset address validated and correct contract
- Yield schedule configured correctly if enabled (rate, frequency, first payment)
- Compliance modules match your regulatory framework requirements
- All operational roles assigned to correct addresses (verify each address)
- Initial supply amount confirmed or set to 0 for post-deployment minting
Screenshot:
Pre-deployment summary showing all configured parameters in organized sections
with edit buttons
Deploy bond contract
Click Deploy Bond Token to initiate the deployment sequence. Review the transaction details in the confirmation modal showing estimated gas costs and deployment steps. Enter your PIN or OTP to authenticate the operation, then confirm the transaction through your wallet.
The deployment process executes several on-chain operations: deploying the bond proxy contract (15-20 seconds depending on network congestion), initializing with your configured parameters (10 seconds), assigning roles to your specified addresses (5 seconds per role assignment transaction), and registering the token with the identity registry to enable compliance checks (10 seconds). Total deployment time typically runs 60-90 seconds from confirmation to completion.
Screenshot:
Deployment progress modal showing checklist of deployment steps with status
indicators (pending/in progress/complete)
Post-issuance actions
Verify deployment
Note the contract address displayed after successful deployment—this is your bond token's permanent on-chain identifier. Click View Bond Token to navigate to the token details page. Verify the configuration on the overview tab: confirm token information matches your input parameters, maturity date displays correctly with countdown timer, denomination asset links to the correct contract, compliance modules show as active, and roles assigned correctly to your specified addresses.
Screenshot: Bond
token details page showing key information, maturity countdown, yield schedule,
and compliance status
Mint initial allocation (if needed)
If you deployed with zero initial supply, mint tokens to primary investors through the Actions tab. Click Mint Bonds to open the batch minting interface. Enter recipient addresses and corresponding amounts—the interface supports CSV upload for large investor groups. Click Execute Batch Mint to process the operation.
The contract validates each recipient's OnchainID and compliance status before minting. If any recipient lacks required claims (accredited investor status, KYC verification, jurisdiction eligibility), the entire batch transaction reverts with a detailed error message identifying the non-compliant address. Verify all investor OnchainIDs are properly configured before attempting to mint.
Fund yield wallet
For bonds with yield add-on enabled, navigate to the Yield tab to view your yield wallet address. Calculate required funding: (total supply × face value × yield rate × number of periods until maturity) + buffer for market growth. Transfer sufficient denomination assets to this wallet address. The fixed income dashboard displays current balance and shows whether funding is adequate for upcoming payments, with warnings appearing 48 hours before payment dates if balance is insufficient.
Fund your yield wallet at least 48 hours before the first payment date to ensure bondholders can claim their coupons without delay.
Distribute offering documents
Link legal documentation to your token for investor verification. Navigate to the Documents tab and click Upload Offering Document. Select your PDF file—offering memorandum, term sheet, indenture, or other legal documents. The platform generates a cryptographic hash (SHA-256) of the document content and stores this hash on-chain as part of the token's immutable record.
Investors can verify document authenticity by downloading your document and comparing its hash against the on-chain value. Any modification to the document—even changing a single character—produces a completely different hash, making tampering immediately detectable.
Manage bond lifecycle
Monitor yield distributions
The Yield tab on your bond details page shows the complete payment schedule and historical distributions. Review upcoming payment dates with calculated amounts based on current token supply. Monitor past claims to track: payment date, total amount claimed by all bondholders, number of claimants (compared to total eligible holders), and transaction hashes for on-chain verification.
Screenshot:
Yield tab showing upcoming payments schedule and historical distributions table
with dates, amounts, and status
The fixed income dashboard aggregates this data across all your bond tokens, showing total outstanding interest obligations, payment trends over time, and claim rates (what percentage of eligible bondholders claimed their coupons within 24/48/72 hours of availability).
Process maturity
When your bond reaches its maturity date, the system enables redemption functionality. Navigate to the Actions tab where the Mature Bond button becomes available (it remains disabled until the maturity timestamp passes). Click Mature Bond to review maturation details including total redemption amount required (total supply × face value) and current denomination asset balance in your redemption wallet.
Ensure your redemption wallet holds sufficient denomination assets to cover full redemption—if all bondholders redeem simultaneously, you need (total supply × face value) denomination assets available. Click Execute Maturation to transition the bond into matured state.
Maturation disables most compliance checks on transfers (since the bond is being unwound rather than traded) and enables the redeem() function that burns tokens in exchange for denomination assets.
Handle redemptions
After maturation, bondholders access redemption through their investor portal. From their perspective: they navigate to bond holdings, select the matured bond, click Redeem Bonds, enter the amount to redeem (or select "Redeem All"), and confirm the transaction. The smart contract burns their tokens and transfers denomination assets proportionally: (redeemed tokens × face value) = received assets.
Your monitoring tasks during redemption period: track remaining outstanding supply on the Holders tab as investors redeem, monitor your denomination asset reserve balance to ensure adequate liquidity remains, review redemption events on the Events tab to identify any unusually large redemptions or patterns, and reconcile total redeemed amounts against your accounting records.
Screenshot: Bond
events tab showing redemption transactions with holder addresses, amounts
redeemed, and timestamps
The observability stack provides redemption velocity metrics showing what percentage of bonds redeem within the first 24 hours, week, and month after maturation—useful data for planning future bond offerings and understanding investor behavior.
Bond issuance workflow
The bond issuance workflow progresses through four major phases, each with specific deliverables and validation gates. Preparation establishes your bond's financial structure and regulatory framework before touching any smart contracts. Configuration translates those terms into on-chain parameters through the bond creation wizard. Deployment executes the actual blockchain transactions that instantiate your bond token. Operations completes the setup by minting tokens to investors and funding payment systems.
Coupon payment distribution
Coupon payment distribution follows a deterministic sequence that eliminates traditional settlement delays and reconciliation overhead. When the payment date arrives (determined by blockchain timestamp rather than business day conventions), the yield module captures a snapshot of current bondholders and their balances. This snapshot-based calculation prevents gaming where holders might buy bonds moments before payment just to capture the coupon—holdings must be present at the exact payment timestamp.
The DvP settlement mechanism is central to reliability: the smart contract verifies both the claimant's OnchainID compliance and their bond balance at the snapshot time before transferring assets. If any verification fails—invalid identity, zero balance at snapshot, insufficient yield wallet funding—the entire operation reverts atomically. No partial payments, no reconciliation needed. The fixed income dashboard updates immediately with claim events, showing you real-time claim rates and remaining obligations.
Maturity redemption process
The maturity redemption process converts bond tokens back to denomination assets at the predetermined face value. Unlike coupon payments which occur on a schedule, redemption requires administrative triggering—someone with GOVERNANCE_ROLE must call the mature() function once the maturity date arrives. This design prevents premature redemption attempts and gives the issuer control over exactly when redemption windows open.
After maturation, the bond enters a terminal phase where its primary function is unwinding outstanding positions. Bondholders redeem at their convenience rather than waiting for batch processing. Each redemption burns tokens and transfers assets atomically—the burn and transfer succeed together or both revert, preventing any scenario where tokens burn without payment or payment occurs without burning. Monitor redemption velocity through the observability dashboard to anticipate when your outstanding obligations will fully resolve.
Secondary market trading flow
Secondary market trading validates compliance before every transfer through the ERC-3643 compliance layer. When a bondholder initiates a transfer to another address, the smart contract executes a series of checks that replicate traditional transfer agent controls—except these checks happen in milliseconds rather than days and cost near-zero compared to manual review fees.
The compliance check sequence runs through multiple validation gates: emergency pause status (allows circuit-breaking during incidents), maturity state (prevents trading after redemption period begins), sender and recipient OnchainID verification (both parties must have valid identities), jurisdiction rules (country allow lists or block lists based on your offering structure), required claims (accredited investor status, KYC verification level, any offering-specific requirements), holding period enforcement (time locks that implement Rule 144 or similar restrictions), and transfer size limits (caps on maximum transfer amounts).
If any check fails, the transfer reverts with a specific error code identifying which compliance rule blocked the transaction. This provides clear feedback to users about why their transfer didn't execute and what they need to fix. The observability dashboard tracks rejected transfers separately from successful ones, helping you identify common compliance issues that might indicate investor education needs or misconfigured rules.
Redemption options comparison
Different redemption structures serve different investor preferences and market conditions:
| Redemption type | Timing | Issuer benefit | Investor consideration |
|---|---|---|---|
| Maturity-only | Fixed date at term end | Predictable capital structure, no refinancing pressure | Must hold to maturity for full value |
| Call provision | Issuer can redeem early | Refinancing flexibility if rates decline | Reinvestment risk if called early |
| Put provision | Investor can redeem early | Higher yield premium compensates | Liquidity option at specified dates |
| Make-whole call | Early redemption + yield compensation | Flexibility with investor protection | Receives net present value of remaining coupons |
The ATK platform currently implements maturity-only redemption through the standard bond lifecycle. Call and put provisions require additional smart contract logic to handle early redemption scenarios, premium calculations, and notice periods. If your offering requires these features, contact SettleMint to discuss custom implementation.
Results
After completing these steps, you have a fully operational bond token deployed on-chain with your specified parameters and compliance framework. The bond token enforces transfer restrictions automatically, calculates coupon entitlements on your payment schedule if yield is enabled, and provides on-demand redemption at maturity.
Your operational infrastructure includes: designated wallet roles for governance, supply management, custodian, and emergency functions; funded yield wallet (if applicable) to handle coupon distributions; uploaded offering documents with cryptographic hash verification; and initial allocations minted to verified investors who passed compliance checks.
Bondholders can now trade their positions in secondary markets (subject to compliance restrictions), claim coupon payments as they become available, and redeem tokens for denomination assets after maturity. The fixed income dashboard gives you real-time visibility into outstanding principal, accrued interest obligations, payment schedules, redemption activity, and compliance status—everything you need to manage the bond throughout its lifecycle.
Troubleshooting
Deployment fails with "Invalid denomination asset": Verify the address points to a valid ERC20 contract by checking it on a block explorer. Ensure the contract implements the decimals() function—some custom tokens omit this. If using a proxy contract, verify the proxy properly delegates to an implementation with full ERC20 interface.
Yield claiming reverts: Check your yield wallet denomination asset balance on the fixed income dashboard—insufficient funding is the most common cause. Verify the yield token address matches your denomination asset exactly—mismatches cause claim failures. Ensure the claimant has a verified OnchainID registered in the identity registry. Check the claimant held bonds at the payment date snapshot; acquiring bonds after the snapshot doesn't entitle them to that payment period.
Cannot mature bond: Verify the current blockchain timestamp exceeds the maturity date—the mature() function remains disabled until maturity arrives. Check your address has GOVERNANCE_ROLE by viewing the role assignments on the bond details page. Ensure the bond hasn't already been matured by checking the current lifecycle state.
Mint fails for specific recipient: Verify the recipient's OnchainID is registered in the identity registry by searching for their address on the Participants page. Check the recipient has all required claims: accredited investor status if using Regulation D, appropriate KYC verification level, correct jurisdiction. Confirm the recipient is not on any blocklist by reviewing compliance module settings. Try minting to a known-compliant address to isolate whether the issue is recipient-specific or affects all mints.
Yield add-on not available after deployment: The yield module must be explicitly enabled during bond creation—it's an optional add-on that integrates at deployment time. You cannot add the yield module to existing bonds; the smart contract architecture doesn't support post-deployment module injection. If you need scheduled coupon calculations for a bond you've already deployed, you must redeploy with the yield add-on enabled and migrate bondholders to the new contract.
Transfer blocked by compliance: Check the compliance dashboard to see which specific rule blocked the transfer—country restrictions, missing claims, time lock, or transfer limit. Verify both sender and recipient have valid OnchainIDs in the identity registry. Review the compliance module configuration to ensure rules match your offering requirements—sometimes overly restrictive settings block legitimate transfers. Use the compliance simulation tool to test transfers before executing them on-chain.
For additional help, see Troubleshooting or contact SettleMint support with your contract address and transaction hash for specific transaction failures.
Next steps
After successfully issuing your bond token, onboard additional investors by following Manage investors to verify and whitelist bondholders—ensure each investor has required OnchainID claims before attempting to mint bonds to them.
Execute corporate actions by reviewing Corporate actions for special events beyond standard coupon payments—early redemptions, tender offers, or extraordinary distributions all require specific workflows.
Monitor compliance and operations through the fixed income dashboard to track transfer restrictions and violations, configure alerts for low yield wallet balances at least 48 hours before payment dates, and review holder reports regularly to understand bondholder composition and concentration.
Integrate payment rails by setting up Fiat bridge to connect traditional banking for investors who need off-chain settlement, and configure SWIFT or SEPA messaging for institutional investors requiring legacy payment infrastructure integration.
See also
Related guides:
- Issue equity - Tokenize shares with voting rights and dividend distributions
- Issue a fund - Create investment fund tokens with NAV tracking
- Getting started - Complete platform setup tutorial
Reference documentation:
- Bond contract reference - Technical implementation details and function specifications
- Compliance modules - Available restriction rules and configuration options
- Troubleshooting - Resolve common bond token issues