```{eval-rst} .. _protocol-ref-constants: ``` # Protocol Constants This page provides a comprehensive reference for all constants, limits, and default values defined in the Dash Platform Protocol implementation (rs-dpp). ## System Limits Maximum sizes and limits for various platform components. | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Max contract size | 16,384 bytes (16 KiB) | Maximum serialized data contract | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L133) | | Max field value size | 5,120 bytes (5 KiB) | Maximum single field value | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L134) | | Max document value depth | 256 nested containers | Maximum nesting depth within a document property value (protocol version 13 and later; unbounded earlier) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L137) | | Max state transition size | 20,480 bytes (20 KiB) | Maximum serialized state transition | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L145) | | Max transitions in documents batch | 1 | Maximum transitions per batch state transition (document and token transitions counted together) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L148) | | Withdrawals per block | 4 | Maximum withdrawal transactions per block | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L149) | | Retry signing expired withdrawals per block | 1 | Max expired withdrawal retries per block | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L150) | | Max withdrawal amount | 50,000,000,000,000 credits | 500 Dash maximum per withdrawal | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L151) | | Daily withdrawal limit | Protocol versions 8-13: 200,000,000,000,000 credits (2000 Dash)
Protocol version 14+: 15% of the credits Platform held one day earlier, never below the max withdrawal amount (500 Dash) | The relative limit added in 5.0.0 is `max(day-old total × 15%, max withdrawal amount)` and has no fixed upper bound. Credit inflows recorded after the day-old snapshot (asset locks and epoch Core rewards) are added in full to this daily maximum, not to the base before the 15% is taken, so the remaining limit is `max(day-old total × 15%, 500 Dash) + inflows since the snapshot − withdrawals since the snapshot` (floored at zero) and counts net outflow ([rs-drive](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-drive/src/drive/identity/withdrawals/calculate_current_withdrawal_limit/v1/mod.rs#L95-L122)). Until a full day of credit history is available after activation, the previous 2000-Dash limit remains in effect. Withdrawals must also fit the Core credit pool unlock limit below. | [v8-v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/v1/mod.rs#L6-L9), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/withdrawal/daily_withdrawal_limit/v2/mod.rs#L23-L47) | | Core credit pool unlock limit | 15% of Core's credit pool balance at the window start, at least 150,000,000,000,000 credits (1500 Dash) | **Added in 5.0.0.** Platform pools a withdrawal only while Core's credit pool would drop by at most this amount over the Core credit pool window, counting withdrawals already queued or broadcast but not yet completed. A stricter copy of Core v24's unlock rule (20%, 2000-Dash floor), so Platform does not pool more than Core will mine | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L153-L154) | | Core credit pool window | 576 Core blocks (100 on regtest) | **Added in 5.0.0.** Window over which the Core credit pool unlock limit is measured (Core's `CreditPoolPeriodBlocks`) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L155-L156) | | Max group member count | 256 | Maximum members of a change-control group defined in a data contract (renamed from `max_contract_group_size` in 5.0.0; unrelated to [contract groups](#contract-groups-and-moderation)) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L160) | | Max token redemption cycles | 128 | Maximum redemption cycles | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L178) | | Max contenders per contest | 1,000 | **Added in 5.0.0.** Maximum contenders a contested document vote poll accepts | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L177) | | Max shielded transition actions | 16 | Consensus cap on [actions](shielded-pool.md#actions) per shielded transition. The effective limit is 6: each action adds ~2,681 bytes to the transition (the 408-byte serialized action plus ~2,273 bytes of Halo 2 proof), so larger transitions exceed the max state transition size | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L187) | | Max time-range overlap factor | 24 | **Added in 5.0.0.** Maximum `range / step` for a [timeRange](data-contract-document.md#document-indices) index, so at most 24 windows overlap at any timestamp | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L189) | | Max time-range TTL | 604,800 seconds (1 week) | **Added in 5.0.0.** Maximum `ttl` a [timeRange](data-contract-document.md#document-indices) index may declare | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L190) | | Min time-range TTL drop operations per write | 32 | **Added in 5.0.0.** Minimum expired-entry cleanup operations Drive performs on each write into a `ttl` index | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L191) | | Max time-range phase | 31,536,000 seconds (365 days) | **Added in 5.0.0.** Maximum `phase` offset a [timeRange](data-contract-document.md#document-indices) index may declare | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/index/mod.rs#L103) | | Core dust relay fee | 3,000 duffs/kB | **Added in 5.0.0.** Used to compute the Core dust threshold of a withdrawal's output script (546 duffs for P2PKH). An expired withdrawal whose whole amount is below it is marked `FAILED` instead of being re-signed | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L158) | | Min GroveDB proof envelope version | 1 | **Added in 5.0.0.** Client-side proof verification policy, not a consensus rule: clients reject the legacy V0 proof envelope at every protocol version. Nodes have served V1 since protocol version 12 | [rs-drive](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-drive/src/verify/grovedb_proof_envelope.rs#L14) | | Max CBOR encoded length | 16,384 bytes (16 KiB) | Maximum CBOR encoding size (defined as `MAX_ENCODED_KBYTE_LENGTH = 16` kibibytes) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/util/cbor_serializer.rs#L8) | | Contract deserialization limit | 15,000 | Maximum contract deserialization | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/serialized_version/mod.rs#L42) | ## Credit System Credits are the unit of account for fees on Dash Platform. They are created from Dash locked on the Core blockchain. | Constant | Value | Description | Source | |----------|-------|-------------|--------| | `CREDITS_PER_DUFF` | 1,000 | Credits created per duff (satoshi) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/balances/credits.rs#L43) | | `MAX_CREDITS` | 9,223,372,036,854,775,807 | Maximum credit value (i64::MAX) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/balances/credits.rs#L41) | **Conversion:** 1 Dash = 100,000,000 duffs = 100,000,000,000 credits ## Protocol Fees ### Base Processing These constants define the base costs for state transition processing. | Constant | Value (Credits) | Description | Source | |----------|-----------------|-------------|--------| | `BASE_ST_PROCESSING_FEE` | 10,000 | Base state transition processing fee | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L3) | | `DEFAULT_USER_TIP` | 0 | Default priority tip | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L4) | | `STORAGE_CREDIT_PER_BYTE` | 5,000 | Storage cost per byte | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L5) | | `PROCESSING_CREDIT_PER_BYTE` | 12 | Processing cost per byte | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L6) | | `DELETE_BASE_PROCESSING_COST` | 2,000 | Base deletion cost | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L7) | | `READ_BASE_PROCESSING_COST` | 8,400 | Base read cost | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L8) | | `WRITE_BASE_PROCESSING_COST` | 6,000 | Base write cost | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/default_costs/constants.rs#L9) | ### State Transition Pricing These constants define minimum values required for a state transition to be considered valid. | State Transition | Min Fee (Credits) | Min Fee (Dash) | Source | |------------------|-------------------|----------------|--------| | Credit Transfer | 100,000 | 0.000001 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L4) | | Credit Transfer to Addresses | 500,000 | 0.000005 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L5) | | Credit Withdrawal | 400,000,000 | 0.004 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L6) | | Identity Update | 100,000 | 0.000001 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L7) | | Document Batch (per sub-transition) | 100,000 | 0.000001 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L8) | | Contract Create | 100,000 | 0.000001 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L9) | | Contract Update | 100,000 | 0.000001 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L10) | | Masternode Vote | 100,000 | 0.000001 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L11) | | Address Credit Withdrawal | 400,000,000 | 0.004 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L13) | | Address Funds Transfer (per input) | 500,000 | 0.000005 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L14) | | Address Funds Transfer (per output) | 6,000,000 | 0.00006 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L15) | | Identity Create (base) | 2,000,000 | 0.00002 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L16) | | Identity Key (per key at creation) | 6,500,000 | 0.000065 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L17) | | Identity TopUp (base) | 500,000 | 0.000005 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/state_transition_min_fees/v1.rs#L18) | ### Execution and Resource Pricing These fees meter execution and resource usage. They do not affect validity, but determine total cost. #### Processing Fees for specific operations during state transition processing. | Operation | Fee (Credits) | Source | |-----------|---------------|--------| | Fetch identity balance | 10,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L4) | | Fetch identity revision | 9,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L5) | | Fetch identity balance and revision | 15,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L6) | | Fetch identity key by ID | 9,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L7) | | Fetch identity token balance | 10,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L8) | | Fetch prefunded specialized balance | 10,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L9) | | Fetch key with type, nonce and balance | 12,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L10) | | Fetch single identity key | 10,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L11) | | Network threshold signing | 100,000,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L12) | | Validate key structure | 50 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/processing/v1.rs#L13) | #### Storage Fees related to data storage operations. | Operation | Fee (Credits) | Source | |-----------|---------------|--------| | Storage disk usage (per byte) | 27,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/storage/v1.rs#L6) | | Storage processing (per byte) | 400 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/storage/v1.rs#L7) | | Storage load (per byte) | 20 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/storage/v1.rs#L8) | | Non-storage load (per byte) | 10 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/storage/v1.rs#L9) | | Storage seek | 2,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/storage/v1.rs#L10) | | TTL ephemeral disk usage (per byte) | 270 | **Added in 5.0.0.** Charged as processing for bytes written under a [timeRange `ttl`](data-contract-document.md#document-indices) index instead of the storage rate; not refunded on removal. [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/storage/v1.rs#L23) | #### Cryptographic Operations ##### Signature Verification Fees for verifying different signature types. | Key Type | Verification Fee (Credits) | Source | |----------|----------------------------|--------| | ECDSA Secp256k1 | 15,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/signature/v1.rs#L4) | | BLS 12-381 | 300,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/signature/v1.rs#L5) | | ECDSA Hash160 | 15,500 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/signature/v1.rs#L6) | | BIP13 Script Hash | 300,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/signature/v1.rs#L7) | | EdDSA 25519 Hash160 | 3,500 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/signature/v1.rs#L8) | ##### Hashing Fees for cryptographic hash operations. | Operation | Fee (Credits) | Source | |-----------|---------------|--------| | Single SHA256 (base) | 100 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L4) | | Blake3 (base) | 100 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L5) | | SHA256 + RIPEMD160 (base) | 6,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L6) | | SHA256 (per block) | 5,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L7) | | Blake3 (per block) | 300 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L8) | | RIPEMD160 (per block) | 5,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L9) | | Sinsemilla (base) | 40,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/hashing/v1.rs#L10) | #### Data Contract Validation Fees for validating data contract structure during state transition processing. | Fee Type | Amount (Credits) | Source | |----------|------------------|--------| | Document type base fee | 500 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L5) | | Schema size fee (per byte) | 10 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L6) | | Per property fee | 40 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L7) | | Non-unique index base fee | 50 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L8) | | Non-unique index per property fee | 30 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L9) | | Unique index base fee | 100 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L10) | | Unique index per property fee | 60 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_validation/v1.rs#L11) | #### Document TTL :::{versionadded} 5.0.0 ::: Documents of a type that declares a `ttl` are stored without a storage refund. Instead of the perpetual storage rate, each byte the document writes is priced by its remaining lifetime, and the document prepays the processing cost of its eventual deletion. | Fee | Amount (Credits) | Source | |-----|------------------|--------| | Lifetime up to 1 hour (per byte) | 1 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L15-L18) | | Lifetime up to 1 day (per byte) | 4 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L19-L22) | | Lifetime up to 2 days (per byte) | 8 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L23-L26) | | Lifetime up to 4 days (per byte) | 15 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L27-L30) | | Lifetime up to 7 days (per byte) | 26 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L31-L34) | | Longer lifetimes (per byte, per 788,400-second period spanned, rounded up) | 34 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L36-L37) | | Deletion prepayment (base) | 1,200,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L41) | | Deletion prepayment (per index level) | 400,000 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L42) | | Deletion prepayment (per document byte) | 420 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_ttl/v1.rs#L47) | #### Document References :::{versionadded} 5.0.0 ::: | Fee | Amount (Credits) | Description | Source | |-----|------------------|-------------|--------| | `chooseFirst` candidate | 100,000 | Charged per competing document a `refersTo` `chooseFirst` scan reads. Check tx requires the signer to hold the full budget (100,000 credits × max `chooseFirst` candidates) beyond the estimated fee, but only the scan actually performed is charged | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_reference/v1.rs#L17) | | `where` list element | 100 | Charged per list element a `refersTo` `where` entry reads | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/document_reference/v1.rs#L18) | #### Shielded Fees Fees for the zero-knowledge compute and storage of [shielded transitions](shielded-pool.md) that GroveDB metering does not price. The [minimum shielded fee](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/shielded/compute_minimum_shielded_fee/v0/mod.rs#L67-L99) for a bundle of `n` actions is `proof verification fee + n × per-action processing fee + n × storage bytes per action × (27,000 + 400)`, where 27,000 and 400 are the [storage disk usage and storage processing](#storage) rates per byte. Transitions that meter their storage instead charge only the [compute portion](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/shielded/compute_minimum_shielded_fee/v0/mod.rs#L28-L46) (proof verification plus per-action processing). | Fee | Amount | Source | |-----|--------|--------| | Proof verification (per bundle) | **Updated in 5.0.0.**
Through protocol version 13: 100,000,000 credits
Protocol version 14+: 40,000,000 credits | [through v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_validation_versions/v9.rs#L418), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_validation_versions/v10.rs#L478) | | Processing (per action) | 22,000,000 credits | [through v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_validation_versions/v9.rs#L422), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_validation_versions/v10.rs#L487) | | Storage bytes (per action) | **Updated in 5.0.0.**
Through protocol version 13: 344 bytes
Protocol version 14+: 550 bytes | [through v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_validation_versions/v9.rs#L425), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_validation_versions/v10.rs#L496) | ### Voting Fees related to contested document voting. | Fee Type | Amount (Credits) | Amount (Dash) | Source | |----------|------------------|---------------|--------| | Contested document vote resolution fund | **Updated in 5.0.0.**
Through protocol version 13: 20,000,000,000
Protocol version 14+: 10,000,000,000 | 0.2
0.1 | [through v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v1.rs#L4), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v2.rs#L6) | | Contested document unlock fund | 400,000,000,000 | 4.0 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v1.rs#L5) | | Single vote cost | **Updated in 5.0.0.**
Through protocol version 13: 10,000,000
Protocol version 14+: 2,000,000 | 0.0001
0.00002 | [through v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v1.rs#L6), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v2.rs#L8) | | Moderation election vote resolution fund | 50,000,000,000 | 0.5 | **Added in 5.0.0.** Paid by each application in a moderation team election. [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v2.rs#L10) | **Added in 5.0.0.** Starting in protocol version 14, the first [250 contenders](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v2.rs#L14) of a contest pay the vote resolution fund, and the fund then doubles for every [50 additional contenders](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/vote_resolution_fund_fees/v2.rs#L15) (twice the fund for the 251st to 300th contender, up to 32,768 times the fund for the 951st to 1,000th). ## Identity Model ### Identity Limits | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Max public keys per identity | 15,000 | Maximum keys an identity can have | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/identity/fields.rs#L7) | | Max keys in creation | 6 | Keys allowed at identity creation | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L23) | | Identity nonce value filter | 0xFFFFFFFFFF | 40-bit nonce filter | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/identity/identity_nonce.rs#L15) | | Max missing identity revisions | 24 | Maximum revision gaps | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/identity/identity_nonce.rs#L17) | ### Identity Create Fees | Requirement | Value | Description | Source | |-------------|-------|-------------|--------| | Min asset lock balance | 200,000 duffs | 0.002 Dash minimum | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L25) | | Min top-up balance | 50,000 duffs | 0.0005 Dash minimum | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L26) | | Min address funding balance | 50,000 duffs | 0.0005 Dash minimum | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L27) | | Min identity funding amount | 200,000 credits | Minimum for address-based creation | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L48) | | Max asset-lock transaction inputs | 100 | Maximum Core inputs in an asset-lock transaction used to fund an identity or top-up (introduced in protocol v3 to prevent stuck funds; v1/v2 had no effective limit) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L30) | ## Document & Data Contract Model ### Document and Index Limits | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Max indexed string length | 63 characters | Maximum indexable string | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/mod.rs#L77) | | Max indexed byte array length | 255 bytes | Maximum indexable byte array | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/class_methods/try_from_schema/mod.rs#L78) | | Max index size | 255 bytes | Maximum total index size | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/mod.rs#L45) | | Default hash size | 32 bytes | Standard hash size | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/mod.rs#L42) | | Default float size | 8 bytes | Standard float size | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/mod.rs#L43) | | Empty tree storage size | 33 bytes | Storage for empty tree | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/mod.rs#L44) | | Storage flags size | 2 bytes | Size of storage flags | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/mod.rs#L46) | | Contract version stamp size | 5 bytes | **Added in 5.0.0.** Extra bytes document serialization format 3 adds to the estimated document size | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/mod.rs#L49) | ### Document Type Limits :::{versionadded} 5.0.0 ::: Limits on the document type keywords added in protocol version 14, enforced when a data contract is registered or updated unless noted otherwise. | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Max typed array items | 1,024 | Maximum `maxItems` a typed array property may declare | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L138) | | Max indexed typed array items | 16 | Maximum `maxItems` of a typed array whose elements an index keys documents by | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L198) | | Max windowed indexed typed array items | 4 | Maximum `maxItems` of an indexed typed array when the same index also has a `timeRange` or `integerRange` window | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L199) | | Max index entries per document | 256 | Maximum index entries one document of a type with an indexed typed array can write across all of the type's indexes | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L200) | | Max references per document | 256 | Maximum `refersTo` references one document of a type can carry. A typed array of references counts as its `maxItems` | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L139) | | Max reference operands | 4 | Maximum operands in one `refersTo` `anyOf` or `allOf` list | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L140) | | Max reference expression depth | 4 | Maximum nesting of `anyOf` / `allOf` combinators in a `refersTo` expression | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L141) | | Max `chooseFirst` candidates | 1,000 | Maximum competing documents a create reads for a `refersTo` `chooseFirst` (enforced when the document is created) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L201) | | Max `chooseFirst` order properties | 10 | Maximum properties a `chooseFirst` orders commitments by (`by`) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/document_type/property/reference_lookup.rs#L140) | | Max property constraints | 16 | Maximum `propertyConstraints` rules per document type | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L142) | | Max property constraint nodes | 32 | Maximum nodes (comparisons, operators, properties, and values) in one `propertyConstraints` rule | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L143) | | Max property constraint aggregates | 4 | Maximum distinct `countOf` and `sumOf` totals the `propertyConstraints` rules of one document type read | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L144) | | Min document TTL | 3,600 seconds (1 hour) | Minimum `ttl` a document type may declare | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L192) | | Max document TTL | 31,536,000 seconds (365 days) | Maximum `ttl` a document type may declare | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L193) | | Max document expirations per block | 128 | Maximum expired documents Platform deletes in one block; the rest wait for later blocks, oldest first | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L194) | | Max document expiration weight per block | 1,024 | Maximum expiry cleanup work per block, where each deleted document weighs 1 plus the weighted index levels of its type | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L195) | | Max contested summed value magnitude | 134,217,728 (2^27) | A summed property of a document type with a contested index must declare a `maximum` and `minimum` within ±2^27 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L196) | | Max expiring signed summed value magnitude | 134,217,728 (2^27) | A summed property that may be negative, on a document type with a `ttl`, must declare a `maximum` and `minimum` within ±2^27 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L197) | ### Contract Groups and Moderation :::{versionadded} 5.0.0 ::: | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Max contract group memberships per contract | 16 | Maximum contract group memberships a data contract create transition may declare | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L161) | | Max contract group admins | 16 | Maximum admins a contract group may name besides its owner | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L162) | | Max contract group name length | 64 characters | Maximum length of a contract group name | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L163) | | Max contract group description length | 256 characters | Maximum length of a contract group description | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L164) | | Max contract moderators | 16 | Maximum moderator identities a moderated data contract may name (the owner counts when named) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L165) | | Max suspension end time | 9,007,199,254,740,991 ms (2^53 - 1) | Latest block time a contract suspension may run until | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L166) | | Max moderation reason length | 1,024 bytes | Maximum UTF-8 length of the text of a ban, suspension, warning, or moderator document deletion reason | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L167) | | Max warnings per identity | 16 | Maximum warnings one identity may carry on a contract at a time | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L168) | | Max moderation reason documents | 16 | Maximum documents a moderation reason may cite | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L169) | | Election window (join and vote) | Min: 86,400 seconds (1 day) on mainnet, none on other networks
Max: 2,419,200 seconds (4 weeks) | Bounds on the join window and vote window of an elected moderation team declaration | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L170-L171) | | Default election window | 604,800 seconds (1 week) | Join window and vote window of an elected moderation team declaration that omits them | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/config/moderation/elected.rs#L32) | | Challenge cool-down | Min: 1,209,600 seconds (2 weeks)
Max: 94,608,000 seconds (3 years) | Bounds on how long a seated moderation team is safe from a challenge after a seat change | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L172-L173) | | Document restore window | 604,800,000 ms (7 days) | How long after a moderator deletes a document the contract's moderators may restore it | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L174) | | Max added moderators | 15 | Maximum members an elected moderation declaration may let a seated team's leader add (`maxAddedModerators`) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L175) | | Max charter elected members | 15 | Maximum members a moderation charter elects besides its leader | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L176) | ### Data Contract Constants | Constant | Value | Description | Source | |----------|-------|-------------|--------| | Initial contract version | 1 | Starting version number | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/mod.rs#L82) | ### Data Contract Registration Fees One-time fees for registering data contracts and their components. | Component | Fee (Credits) | Fee (Dash) | Source | |-----------|---------------|------------|--------| | Base contract registration | 10,000,000,000 | 0.1 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L6) | | Document type registration | 2,000,000,000 | 0.02 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L7) | | Non-unique index registration | 1,000,000,000 | 0.01 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L8) | | Unique index registration | 1,000,000,000 | 0.01 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L9) | | Contested index registration | 100,000,000,000 | 1.0 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L10) | | Token registration | 10,000,000,000 | 0.1 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L11) | | Token perpetual distribution | 10,000,000,000 | 0.1 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L12) | | Token pre-programmed distribution | 10,000,000,000 | 0.1 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L13) | | Token once-per-identity distribution | **Updated in 5.0.0.**
Through protocol version 13: 0
Protocol version 14+: 10,000,000,000 | 0
0.1 | [through v13](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L14), [v14+](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v3.rs#L8) | | Search keyword (per keyword) | 10,000,000,000 | 0.1 | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/fee/data_contract_registration/v2.rs#L15) | ### Tokens Tokens are defined within data contracts and share the same lifecycle, versioning, and validation model as documents. #### Token Limits | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Max token note length | 2,048 bytes | Maximum note/memo length | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/tokens/mod.rs#L19) | | Max token pool notes for outgoing | 250 | **Added in 5.0.0.** Highest `minimumPoolNotesForOutgoing` a token configuration may set for its [shielded pool](shielded-pool.md) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L188) | | Max evonode reward claim epochs | 100 | **Added in 5.0.0.** Maximum finalized epochs one `EvonodesByParticipation` perpetual distribution claim reads, unless a single distribution cycle spans more. An evonode further behind is paid over several claims | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L179) | #### Token Distribution Function Limits These limits apply to token perpetual distribution function parameters. | Parameter | Min | Max | Source | |-----------|-----|-----|--------| | `MAX_DISTRIBUTION_PARAM` | 1 | 281,474,976,710,655 (2^48 - 1) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs#L18) | | `MAX_DISTRIBUTION_CYCLES_PARAM` | 1 | 32,767 (2^(63-48) - 1) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs#L24) | | Linear slope A | -255 | 256 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Polynomial M | -8 | 8 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Polynomial N | 0 | 32 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Polynomial A | -255 | 256 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Log A | -32,766 | 32,767 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Exponential A | 1 | 256 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Exponential M | -8 | 8 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Exponential N | 0 | 32 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs) | | Default step decreasing max cycles | 128 | 128 | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/data_contract/associated_token/token_perpetual_distribution/distribution_function/mod.rs#L26) | ## Address System :::{versionadded} 3.0.0 ::: ### Address Constants | Constant | Value | Description | Source | |----------|-------|-------------|--------| | Address hash size | 20 bytes | Size of address hash | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/address_funds/platform_address.rs#L28) | | Platform HRP (mainnet) | "dash" | Human-readable prefix | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/address_funds/platform_address.rs#L263) | | Platform HRP (non-mainnet) | "tdash" | Human-readable prefix used for testnet, devnet, and regtest | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/address_funds/platform_address.rs#L265) | | P2PKH address type (bech32m) | 0xb0 (176) | Pay-to-public-key-hash bech32m encoding type byte | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/address_funds/platform_address.rs#L284) | | P2SH address type (bech32m) | 0x80 (128) | Pay-to-script-hash bech32m encoding type byte | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/address_funds/platform_address.rs#L286) | ### Transaction Limits | Limit | Value | Description | Source | |-------|-------|-------------|--------| | Min output amount | 500,000 credits | Minimum output per address | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L46) | | Min input amount | 100,000 credits | Minimum input per address | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L47) | | Max fee strategies | 4 | Maximum fee strategy steps | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L55) | | Max address inputs | 16 | Maximum input addresses per address-based transition | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L53) | | Max address outputs | 128 | Maximum output addresses per address-based transition | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L54) | | Max asset lock transaction inputs | 100 | Maximum L1 transaction inputs in an asset lock proof | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/dpp_versions/dpp_state_transition_versions/v4.rs#L30) | ## Epoch and Time Constants | Constant | Value | Description | Source | |----------|-------|-------------|--------| | Genesis epoch index | 0 | First epoch number | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/epoch/mod.rs#L45) | | Perpetual storage eras | 50 | Number of storage eras (~50 years) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/epoch/mod.rs#L49) | | Default epochs per era | 40 | Epochs in each era (~1 year) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/epoch/mod.rs#L51) | | Epoch key offset | 256 | Offset for epoch keys | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/block/epoch/mod.rs#L10) | | Max epoch | 65,279 | Maximum epoch number (u16::MAX - 256) | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/block/epoch/mod.rs#L13) | ## Refund Constants | Constant | Value | Description | Source | |----------|-------|-------------|--------| | Min refund limit | 32 bytes | Minimum bytes for refund | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/fee/fee_result/refunds.rs#L23) | ## Withdrawal Constants | Constant | Value | Description | Source | |----------|-------|-------------|--------| | Min withdrawal amount | 1,000,000 credits | 1,000 duffs minimum per withdrawal (protocol version 12 and later; raised from 190,000 credits in earlier versions). Starting in protocol version 14, the Core transaction fee is deducted from the withdrawn amount, so a withdrawal must be at least this minimum plus the Core fee (190-byte asset unlock transaction × `coreFeePerByte` × 1,000 credits) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L157) | | Min core fee per byte | 1 | Must be Fibonacci number | [rs-dpp](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-dpp/src/state_transition/state_transitions/identity/identity_credit_withdrawal_transition/mod.rs#L39) | | Max core fee per byte | 6,765 | **Added in 5.0.0.** Highest `coreFeePerByte` a withdrawal may set (protocol version 14 and later; uncapped earlier) | [rs-platform-version](https://github.com/dashpay/platform/blob/v5.0.1/packages/rs-platform-version/src/version/system_limits/v4.rs#L159) |