Skip to content

SIP-044: Clarity 6, staking and PoX post-conditions, and removal of the cost-voting contract#267

Open
jbencin-stacks wants to merge 25 commits into
stacksgov:mainfrom
jbencin-stacks:clarity-6
Open

SIP-044: Clarity 6, staking and PoX post-conditions, and removal of the cost-voting contract#267
jbencin-stacks wants to merge 25 commits into
stacksgov:mainfrom
jbencin-stacks:clarity-6

Conversation

@jbencin-stacks

Copy link
Copy Markdown

Note

This is a work in progress, and more items will likely be added to Clarity 6

This SIP specifies the next version of the Stacks blockchain scripting language, Clarity 6, which addresses several limitations and inconveniences that have been reported by Clarity developers.

@314159265359879

Copy link
Copy Markdown
Contributor

I think it is convenient to give this a SIP number right away for ease of referencing lets go with SIP-044

@clairetopalian
clairetopalian marked this pull request as ready for review June 8, 2026 14:12
Comment thread sips/sip-044/sip-044-clarity6.md
Comment thread sips/sip-044/sip-044-clarity6.md Outdated
@jbencin-stacks jbencin-stacks changed the title Clarity 6 Stacks Epoch 4.0 Jun 16, 2026
@jbencin-stacks jbencin-stacks changed the title Stacks Epoch 4.0 Stacks Epoch 4.0 (including Clarity 6) Jun 16, 2026
Comment thread sips/sip-04x/sip-04x-clarity6.md Outdated
@werner-stacks

Copy link
Copy Markdown

@jbencin-stacks thanks for adding these items to the SIP. I see you changed the title, and removed the SIP-044 number.

Lets keep the SIP number in the title of this issue it has already been referenced elsewhere.
You can change the rest of the title however I would prefer if it was still descriptive of the content i.e. SIP-044 Clarity 6, staking and PoX post-conditions and removal of the cost-voting contract. We've never referred to "epoch"'s in the title, lets keep that out.
We can add a column in the table suggested here with epochs to enhance visibility into what epoch activated certain SIP's.

The work to deal with problematic transactions I don't think need mention in the title.

@jbencin-stacks jbencin-stacks changed the title Stacks Epoch 4.0 (including Clarity 6) SIP-044: Clarity 6, staking and PoX post-conditions, and removal of the cost-voting contract Jun 17, 2026
Comment thread sips/sip-044/sip-044-clarity6.md Outdated
Comment thread sips/sip-044/sip-044-clarity6.md Outdated
| field | size | encoding |
| ---------- | ------- | -------------- |
| `tx_index` | 4 bytes | big-endian u32 |
| `category` | 1 byte | u8 |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are examples for categories? How are they defined?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is intentionally left undefined. An example of a transaction that would end up in here would be something that would currently be silently dropped from the mempool, that the miner considers "problematic" due to some case that it hits that it shouldn't have. If 70% of the signers agree that it is problematic, then it would be allowed to be included in this list. The category would identify what kind of issue it hit.

314159265359879
314159265359879 previously approved these changes Jul 6, 2026

@314159265359879 314159265359879 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking great for editor sign-off, thanks!

@314159265359879 314159265359879 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a few more suggestions before we merge this.

Comment thread sips/sip-044/sip-044-clarity6.md Outdated
none
))
);; Returns (err u0)
(restrict-assets? tx-sender ((with-stacking u1000000000000))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

((with-stacking u1000000000000))

this needs to be "with-staking"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To show the success path, one of the two numbers must change too, right?:

Raise the allowance: (with-staking u1100000000000) with the stake call unchanged, or
Lower the stake: keep (with-staking u1000000000000) and stake u1000000000000.

probably a copy/paste mistake.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch

Comment thread sips/sip-044/sip-044-clarity6.md Outdated

Parts of this SIP depend upon
[SIP-045 (Bitcoin Staking)](https://github.com/adriano-stacks/sips/blob/main/sips/sip-xxx/sip-0XX-pox-5-bitcoin-staking.md)
and intends to activate together with it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

grammer and sementics error here with this sentence. I suggest this instead:

Parts of this SIP depend upon SIP-045 (Bitcoin Staking), and this SIP is intended to activate together with it.

(not other issue about link)


Discussions-To:

# Abstract

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Abstract and Introduction omit the staking post-conditions, although they are in the title and the specification defines the identifiers.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, those post-conditions were moved into SIP-045. I will clean that up.

Comment thread sips/sip-044/sip-044-clarity6.md Outdated
| yes | `11111111111mdWK2VXcrA1f72DmUku` | `SP00000000001WPAWSDEDMQ0B9M6HQVS7Q6` | `7965732d7369702d3434` | yes-sip-44 |
| no | `111111111111ACW5wa4RwyfJspnNhu` | `SP000000000006WVSDEDMQ0B9M6K3NTSJK` | `6e6f2d7369702d3434` | no-sip-44 |

If the SIP is approved, a Bitcoin block height will be selected to activate the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make sure activation criteria is falsifiable replace this sentence

If the SIP is approved, a Bitcoin block height will be selected to activate the new behavior.

with:

Voting will take place over the same voting window as SIP-045, to be identified during the community review period, following the precedent of SIP-021 and SIP-029 of finalizing block heights during vote preparation. If the criteria are not met within that window, the SIP is Rejected.

If approved, the activation block height will be finalized during vote preparation, together with SIP-045.

Comment thread sips/sip-044/sip-044-clarity6.md Outdated
In order for this SIP to activate, the following criteria must be met:

- At least 80 million stacked STX must vote, with at least 80% of all stacked
STX committed by voting must be in favor of the proposal (vote "yes").

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace the first bullit with this to avoid two readings:

  • At least 80 million stacked STX must participate in the vote, and at least
    80% of all stacked STX committed by voting must be in favor of the proposal
    (vote "yes").

Comment thread sips/sip-044/sip-044-clarity6.md Outdated
block height at which the voting started (preventing the same STX from being
transferred between accounts and used to effectively double vote).

Solo stackers only can also vote by sending a bitcoin dust transaction (6000

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and while were are here

"Solo stackers only can" → "Only solo stackers can"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the correct meaning we want would be to just drop the "only". I think it should just say "Stackers can also vote..."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, no it needs to be more specific than that, right? Like your voting power is based on the source Bitcoin address matching your PoX address, so it is "Solo stackers only".

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to make it,

Solo stackers can also vote by sending a bitcoin dust transaction (6000 sats) to the corresponding bitcoin address, from their PoX address.


License: BSD-2-Clause

Sign-off:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when the status updates add a line here. Editor sign-off was on the 6th of July #267 (review)
CAB sign-off etc.

@brice-stacks

Copy link
Copy Markdown
Contributor

@314159265359879 your comments are all addressed in 93980a2. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants