Capital raise limit
Configure the DALP capital-raise-limit compliance module so minting stays within a fiat-denominated gross fundraising cap.
The capital-raise-limit compliance module caps the gross fiat value an asset can raise through minting during a configured period. DALP values each mint through the installed PriceResolver addon, adds successful mints to the active tracker, and rejects a mint when the new gross raised value would exceed the cap.
Use this module when the asset programme has a fiat-denominated fundraising limit, such as a maximum raise for an offering window. Do not use it for token-unit quotas, outstanding market value, or reserve proof. For token-unit mint quotas, use Issuance volume limit. For the architecture reference, see Capital Raise Limit.
Prerequisites
- The PriceResolver addon is installed for the system. DALP injects the resolver address into the module configuration; operators do not enter it manually.
- The asset has a current price source for the standard price topic before production minting.
- The fundraising cap, period length, currency basis, and fixed or rolling window choice are approved by the operating team.
- You are configuring the module during asset creation, or you are enabling a new module instance on an existing asset with the required asset administration role.
Configure during asset creation
In the Asset Designer compliance step, select the capital-raise-limit module.
Set these fields:
| Field | What it controls |
|---|---|
| Maximum raised (fiat) | The maximum gross amount, in whole base-currency units, that may be raised through issuance in each window. DALP stores the submitted amount as 18-decimal fiat for the on-chain module. |
| Period length | The window length in days. It must be at least 1 day and no more than 730 days. |
| Rolling window | Whether DALP sums the most recent days in a rolling window. If disabled, DALP uses fixed periods that reset after the configured length. |
Choose the rolling-window option when the policy should always look back over the most recent days. Choose a fixed window when the policy is tied to a defined offering period or staged fundraising window.
If the PriceResolver addon is missing, the Console warns before review and deployment. The Platform API also rejects the configuration because the module cannot price a mint without that addon.
Configure on an existing asset
From the asset detail workspace, open the compliance tab and add a new capital-raise-limit module instance.
The configuration is immutable after the module is enabled. The Console shows the fields as read-only on an installed module, and the Platform API rejects attempts to reconfigure the module. To change the cap, period length, or window mode, deploy a new module instance with the new parameters.
Treat a replacement as a policy change. Preserve the approval record for the old cap, confirm the remaining fundraising capacity under the current window, and decide whether the new module should start only after the old operating window is closed.
How DALP applies the cap
DALP applies the cap during mint validation:
- The mint request runs through the compliance pre-check.
- The module converts the mint amount into 18-decimal fiat value through the configured PriceResolver addon.
- DALP reads the current gross raised value for the active fixed or rolling window.
- If the current value plus the requested mint would exceed the configured cap, DALP rejects the mint.
- After a successful mint, DALP adds the mint's fiat value to the tracker and emits the capital-raise tracker update event.
Transfers do not consume or release capacity. Burns and redemptions also do not release capacity because the module measures gross capital raised, not net outstanding value.
Operating considerations
- Period length must be between 1 and 730 days.
- The cap must be greater than zero.
- The PriceResolver value must be available and positive at mint time. Missing, stale, disabled, or non-positive price data makes the mint fail closed.
- Fixed periods start with the first mint in the period. After the period elapses, the next mint starts a fresh period.
- Rolling windows sum the current day's bucket and the earlier day buckets inside the configured period.
- Several mints submitted close together share the same cap. The first confirmed mint consumes capacity; later mints fail if the remaining capacity is no longer enough.
- The module does not prove the legal basis for a fundraising exemption, investor communication, reserve position, or price-source governance. Keep that evidence in the approved operating record.
Troubleshooting
| What you see | What to check |
|---|---|
| Mint rejected by the capital-raise cap | Compare the requested mint's fiat value with the remaining capacity in the active window. Reduce the mint amount or wait until a new fixed period or rolling window has capacity. |
| PriceResolver warning before deployment | Install the PriceResolver addon and configure the required price source before enabling the module. |
| Mint fails because price data is missing or invalid | Check that the asset has a current price source for the standard price topic and that the resolver returns a positive value. |
| Cannot edit cap, period, or rolling mode | Deploy a new module instance. The enabled capital-raise-limit configuration is immutable. |
| Burns do not restore fundraising capacity | This is expected. The module measures gross capital raised through minting, not net supply or outstanding value. |