user5844: What resources should you use to learn native script and in what order should you use them in?

user1656: You can find fairly extensive documentation on Cardano Native Script (aka Simple Script) here.
In short, you can define a JSON object with a simple set of rules known as scripts to validate operations around:

Payment (e.g. spending unspent transaction outputs, i.e. UTxOs at a payment address)
Staking (e.g. withdrawing rewards at a stake/reward address and delegation)
Minting (e.g. minting and burning of native assets under a policy)

Each script has a type defining different combinations of scripts required to validate an operation:

sig a signature witness of a key
after a point in time
before a point in time
atLeast M of N nested scripts
any of N nested scripts
all of N nested scripts

Given these script types, you can have fairly complex nested validation rules and order does not make a difference within the nested scripts.

5844: <p>What resources should you use to learn native script and in what order should you use them in?</p>
 1656: <p>You can find fairly extensive documentation on Cardano Native Script (aka Simple Script) <a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md" rel="nofollow noreferrer">here</a>.</p>
<p>In short, you can define a JSON object with a simple set of rules known as scripts to validate operations around:</p>
<ul>
<li>Payment (e.g. spending unspent transaction outputs, i.e. UTxOs at a payment address)</li>
<li>Staking (e.g. withdrawing rewards at a stake/reward address and delegation)</li>
<li>Minting (e.g. minting and burning of native assets under a policy)</li>
</ul>
<p>Each script has a <code>type</code> defining different combinations of scripts required to validate an operation:</p>
<ul>
<li><a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#type-sig" rel="nofollow noreferrer">sig</a> a signature witness of a key</li>
<li><a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#type-after" rel="nofollow noreferrer">after</a> a point in time</li>
<li><a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#type-before" rel="nofollow noreferrer">before</a> a point in time</li>
<li><a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#type-atleast" rel="nofollow noreferrer">atLeast M</a> of N nested scripts</li>
<li><a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#type-any" rel="nofollow noreferrer">any</a> of N nested scripts</li>
<li><a href="https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#type-all" rel="nofollow noreferrer">all</a> of N nested scripts</li>
</ul>
<p>Given these script types, you can have fairly complex nested validation rules and <strong>order does not make a difference</strong> within the nested scripts.</p>
