Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Overview

A Debt Algorand Standard Application (D-ASA) is an Algorand application that executes a fixed-income ACTUS contract on the AVM.

A conforming D-ASA MUST process a debt instrument through the following stages:

  1. Define the debt instrument as an ACTUS contract.

  2. Normalize the ACTUS contract into AVM-compatible integers, state, and schedule pages.

  3. Execute the normalized contract on the AVM through explicit ABI methods.

The D-ASA therefore uses the AVM as the execution layer of ACTUS. The canonical contract interface is the normalized ACTUS interface defined in this specification.

This specification is structured in four layers:

  1. RBAC: identifies operational actors and their authorities.

  2. ACTUS Kernel: defines the normalized contract terms, schedule, and lifecycle state machine.

  3. Accounting: defines holder positions, unit balances, checkpoints, and claims.

  4. Execution: executes the ACTUS cashflows and tokenized contract transfers.

    • Payment Agent: defines funding and withdrawal of due ACTUS cashflows.

    • Transfer Agent: defines primary distribution and secondary transfer execution.


flowchart TD
  RBAC["Layer 1: RBAC<br/>Operational actors & authorities"]
  KERNEL["Layer 2: ACTUS Kernel<br/>Contract terms, schedule & state machine"]
  ACCOUNTING["Layer 3: Accounting<br/>Positions, balances, checkpoints & claims"]
  PAYMENT["Layer 4a: Payment Agent<br/>Funding & withdrawal of cashflows"]
  TRANSFER["Layer 4b: Transfer Agent<br/>Primary distribution & secondary transfers"]

  RBAC --> KERNEL
  KERNEL --> ACCOUNTING
  ACCOUNTING --> PAYMENT
  ACCOUNTING --> TRANSFER

  style RBAC fill:#bbdefb,stroke:#1976d2,stroke-width:2px,color:#000
  style KERNEL fill:#fff9c4,stroke:#f57f17,stroke-width:2px,color:#000
  style ACCOUNTING fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,color:#000
  style PAYMENT fill:#ffccbc,stroke:#d84315,stroke-width:2px,color:#000
  style TRANSFER fill:#ffccbc,stroke:#d84315,stroke-width:2px,color:#000

Conformance

A conforming implementation:

  • MUST implement the public ABI described in the Interfaces section;

  • MUST accept normalized ACTUS terms, an initial kernel state, and a paged execution schedule;

  • MUST execute ACTUS non-cash and cash events through the kernel and agent interfaces;

  • MUST follow the ACTUS compliance profile defined in the Contract section.

ACTUS compliance

D-ASA is designed to be ACTUS-compliant, with three minor deviations required by AVM constraints:

ACTUSD-ASA
Time formatISO 8601UNIX
Time precisionMillisecond \( 10^{-3} [s] \)Second \( [s] \)
ArithmeticFloating-pointFixed-point

The ACTUS compliance has not yet been certified by an official ACTUS standardization body.