Core concepts

Terms & maturity

The fixed set of durations a listing can use, and exactly how maturity is checked.

duration isn't free-form in the UI — it's picked from a fixed set of six terms, each stored in seconds. The contract itself accepts any uint32 value for duration, but every listing created through the app uses one of these:

LabelSeconds
7 days604,800
14 days1,209,600
30 days2,592,000
90 days7,776,000
180 days15,552,000
365 days31,536,000

When a loan matures

text
matured = (now >= startTime + duration)

This check only becomes meaningful once a listing is active, because startTime is 0 for every open listing. The clock starts at the exact block timestamp fillListing executes in — a listing that sits open for a week before being funded doesn't lose any of its term; the borrower always gets the full duration from the moment a lender actually commits capital.

Repay any time before maturity

There's no minimum hold period and no early-repayment penalty. Interest is still calculated off the full fixed duration either way (see Interest & APR), so repaying early doesn't reduce the amount owed — but it does return your collateral sooner.