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

ACTUS Compliance Profile

Debt instruments such as bullet bonds, amortizing loans, mortgages, etc. differ based on their cash flow exchange patterns (e.g., principal and interest payment time schedules, fixed or variable interest rates, etc.).

The ACTUS taxonomy reduces the majority of all financial contracts to a defined set of 32 generalized cash flow exchange patterns, called contract types.

The D-ASA MUST be classified with an ACTUS contract type \( [CT] \) (see the ACTUS taxonomy).

The contract type MUST have the following properties:

  • family: Basic
  • class: Fixed Income
  • sub-class: Maturities

Contract Identifier

The D-ASA contract identifier \( [CID] \) is the Algorand Application ID (uint64).

The D-ASA contract layer MUST follow a constrained ACTUS fixed-income profile that can be normalized and executed on the AVM.

Supported contract families

The current kernel supports the following ACTUS contract family identifiers:

IDContract TypeDescriptionRateUse case
0PAMPrincipal payment fully at \( [IED] \) and repaid at \( [MD] \).Fix or variable ratesAll kind of bonds, term deposits, bullet loans, mortgages, etc.
1ANNPrincipal payment fully at \( [IED] \) and repaid periodically in constants amounts till \( [MD] \).Fix or variable ratesClassical level payment mortgages, leasing contracts, etc.
2NAMAs ANN, when resetting rate total amount (principal + interest) stays constant. \( [MD] \) shifts.Variable onlyAdjustable rate mortgages
3LAMPrincipal payment fully at \( [IED] \) and repaid periodically in constants amounts till \( [MD] \), interest reduced accordingly.Fix or variableAmortizing loans
4LAXFlexible version of LAM.Fix or variableTeaser rate loans
5CLMLoans rolled over as long as they are not called. Once called, it has to be paid back after noticed period.Fix or variableLoans with call options

Non-normative subtypes such as PAM:ZCB and PAM:FCB are resolved before normalization. The AVM kernel stores only the normalized family identifier.

Supported event types

The normalized execution schedule MUST contain only event types permitted for the configured contract family.

FamilyAllowed events
PAMIED, IP, MD, RR, RRF
ANNIED, IP, PR, MD, RR, RRF, IPCB, PRF
NAMIED, IP, PR, MD, RR, RRF, IPCB
LAMIED, IP, PR, MD, RR, RRF, IPCB
LAXIED, IP, PR, PI, MD, RR, RRF, IPCB, PRF
CLMIED, IP, PR, MD, RR, RRF
  • Cash events are limited to IP, PR, and MD.

  • Non-cash events are limited to IED, PI, RR, RRF, IPCB, and PRF.

Normalization constraints

The D-ASA profile further requires:

  • business_day_convention = NOS;
  • calendar = NC;
  • One of the supported day-count conventions listed in Day-Count Convention;
  • AVM-compatible uint64 values for amounts, times, and fixed-point factors.

Normalization MUST reject any contract that cannot satisfy those constraints.

Observed events

Observed schedule extension is intentionally narrow:

  • Only CLM contracts may append observed events at runtime;

  • append_observed_cash_event only accepts observed PR cash events;

  • apply_non_cash_event applies due RR and RRF events under Observer control;

  • Arranger-controlled observed appends MUST preserve event ordering and contiguous event IDs.