From 3ad9194b6cbc5c7a5d4762e3cc0797ad04b1f0f3 Mon Sep 17 00:00:00 2001 From: Konstantin Akimov Date: Fri, 17 Apr 2026 02:40:26 +0700 Subject: [PATCH] docs: v2 asset locks - automatic funding + bech32 addresses --- dip-0027.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dip-0027.md b/dip-0027.md index 8a575f11..e81a22fc 100644 --- a/dip-0027.md +++ b/dip-0027.md @@ -20,6 +20,7 @@ * [Overview](#overview) * [Asset Locking](#asset-locking) * [Asset Lock Transaction](#asset-lock-transaction) + * [Version 2: Automatic Credit Assignment](#version-2-automatic-credit-assignment) * [Proof of Finality](#proof-of-finality) * [Asset Unlocking](#asset-unlocking) * [Asset Unlock Transaction](#asset-unlock-transaction) @@ -48,6 +49,7 @@ Switching to the credit pool relieves this issue by allowing withdrawals to be p * [DIP-0007: LLMQ Signing Requests / Sessions](https://github.com/dashpay/dips/blob/master/dip-0007.md) * [DIP-0010: LLMQ InstantSend](https://github.com/dashpay/dips/blob/master/dip-0010.md) * [DIP-0011: Identities](https://github.com/dashpay/dips/blob/master/dip-0011.md) +* [DIP-0018: Dash Platform Payment Address Encodings](https://github.com/dashpay/dips/blob/master/dip-0018.md) ## System Requirements @@ -84,6 +86,16 @@ Each Asset Lock transaction must create an unspendable output by using an OP_RET * Its value is the amount of Dash to be locked * The sum of all TxOut amounts must equal the value of the output +#### Version 2: Automatic Credit Assignment + +A `version = 2` Asset Lock transaction signals that each entry in `credit_outputs` MUST be automatically credited by Platform to the Identity matching the entry's public key hash or script hash, without an accompanying Identity Registration or Top-Up state transition. + +`version = 2` extends the set of allowed `credit_outputs[i].scriptPubKey` forms to `{P2PKH, P2SH}`; all other consensus rules are unchanged from `version = 1`. + +The `v24` hard fork enables `version = 2`: prior to activation only `version = 1` is valid; after activation `version ∈ {1, 2}` is valid. + +[DIP-0018](./dip-0018.md) Platform P2PKH addresses (`dash1k…`, `tdash1k…`) MUST be encoded as P2PKH `credit_outputs` entries; Platform P2SH addresses (`dash1s…`, `tdash1s…`) MUST be encoded as P2SH `credit_outputs` entries. + ### Proof of Finality It is important to note that Dash Core transactions achieve finality through ChainLocks and InstantSend locks. Therefore, these locks can be used to prove that value has been added to the credit pool and is ready for Platform use. For example, Platform can safely increase an Identity’s balance without concerns that the related Asset Lock transaction will be double-spent.