Skip to main content

Bond Issuance

The Bond Issuance process within DEUSS involves a carefully choreographed orchestration between the whitelabel bond-issuance-service (handling the drafting and issuer-admin collaboration) and the Core Registry Service (maintaining the canonical bond state and synchronizing it with the EBSI blockchain).

You can see how this process looks here: Bond Preparation & Issuance.

Bond Preparation (Whitelabel & Validator App)

The process begins in the Whitelabel application where the issuer (typically an SME) drafts the initial proposal. It then continues in the Validator App, where a dedicated person (the Validator (Placement Agent)) assists the issuer in finalizing the parameters before formal issuance.

State Transitions (IssuanceState)

The bond-issuance-service manages an elaborate state machine to facilitate this collaboration:

  • DRAFT: The issuer creates the initial proposal in the Whitelabel app, defining NACE codes, general descriptions, and proceeds usage.
  • FOR_COMPLETION: The draft is submitted. It becomes visible in the Validator App for the Validator (Placement Agent) to review and assist.
  • FOR_REVIEW: The Validator (Placement Agent) fills in detailed financial parameters (e.g., target amount, coupon rate, payment frequency, covenants) and returns the proposal to the issuer for review.
  • REVIEWED: The issuer reviews the detailed parameters in the Whitelabel app. If satisfied with the result, they approve the proposal.
  • FOR_PUBLISHING: Once approved by the issuer, the Validator (Placement Agent) manually enters the official ISIN into the system for this issuance and executes the action to issue the bond. This triggers the transition to FOR_PUBLISHING and effectively calls the core layer. Note: The ISIN is NOT fetched via an automated API call from a national agency; it is a manual input.

Core Synchronization & Blockchain Issuance

Once the bond has a valid ISIN and is marked FOR_PUBLISHING by the Validator (Placement Agent), the bond-issuance-service synchronizes the draft to the Core Registry Service.

State Transitions (BondState - Registry Service)

The Registry Service manages the canonical bond state, representing its lifecycle on the EBSI blockchain layer:

  • DRAFT: The bond record is created in the Core database (synced from whitelabel CORE_DRAFT_CREATED).
  • PUBLISHED: The issue_bond operation is executed on the Smart Contract. Once the indexer confirms the transaction, the state becomes PUBLISHED (meaning it is confirmed on-chain but not yet "issued" in terms of its lifecycle date).
  • ISSUING: A transitional state indicating the system is actively processing the on-chain issuance logic.
  • ISSUED: A scheduled job monitors PUBLISHED bonds. When CURRENT_DATE >= issue_date, the state automatically transitions to ISSUED.
  • BURNED: Reserved for when the bond matures or is otherwise retired.

End-to-End Issuance Workflow

The following Mermaid sequence diagram illustrates the entire end-to-end flow, emphasizing the human-in-the-loop collaboration between the Issuer and the Validator (Placement Agent).