Time Periods
D-ASA time periods can be used to define recurring (or "cyclic") events.
D-ASA time periods start on (are "anchored" to) time events.
The D-ASA MAY define time periods \([CL]\) as (uint64,uint64)[]
array,
where:
-
The first element of the tuple defines the time period duration (
uint64
). It MUST be strictly greater than0
; -
The second element of the tuple defines the time period repetitions (
uint64
). It MUST be0
if repetitions are unlimited;
The time periods MUST be anchored \([ANX]\) to a time event (see Time Events section).
The time periods MUST be defined as UNIX time, in seconds.
In case of non-continuous day-count conventions (ID<255
, see Day-Count Conventions
section), the time periods MUST be multiples of a day, in seconds (86400
).
The time periods MAY be set using the asset_config
method.
If the D-ASA does not implement time periods, it MUST be set to []
in the
asset_config
method.
📎 EXAMPLE
The following are valid time periods (UNIX times) indicating:
- a daily time event with unlimited repetitions
- a monthly (30 days) time event with 12 repetitions
(uint64,uint64)[] = [(86400, 0), (2592000, 12)]
📎 EXAMPLE
The following are invalid time periods (UNIX times):
(uint64,uint64)[] = [(0, 0), (0, 12)]
The time periods MUST be chronologically consistent with respect to the time events.
📎 EXAMPLE
Let's have a D-ASA with an issuance date and a maturity date, defined as time events, and 4 coupons whose periods are defined by time periods.
The sum of the 4 coupon time period durations must be smaller than the time period between the issuance date and the maturity date.
Unlimited Time Schedule
If the D-ASA has an undefined number of coupons, then the coupon due dates
\([IP]\) MUST be defined with a time period (uint64,uint64)
.
The first coupon due date \([IPANX]\) occurs on issuance date plus the time period duration \([IPCL]\) and the interest payment \([IPPNT]\) can be executed1.
📎 EXAMPLE
A D-ASA whose primary distribution lasts from December 1st, 2023 00:00:00 GMT+0 to December 15th, 2023 00:00:00 GMT+0, is issued on January 1st, 2024 00:00:00 GMT+0 and no maturity, with perpetual coupons maturing every 365 days, has the following time events array (UNIX times):
uint64[] = [1701388800, 1702598400, 1704067200]
and the following time period:
(uint64, uint64) = [31536000, 0]
The fist coupon due date \(([IPANX]\)) is
1704067200 + 31536000
(UNIX time).
The D-ASA supports just interest payments at the end of each coupon period.