Here's a diagram that shows all the different parts of a Solana transaction.
More details below π
1/ Each Solana transaction contains a message, and the first part of each message is its header.
The header is simple, it just contains the numbers described in the diagram.
2/ The next part of the transaction message is an array of accounts. They are ordered based on whether they require a signature and whether they are writable.
This array also contains the addresses of the programs used by the instructions.
3/ Notably, Solana forces you to explicitly specify which accounts require signatures, and which accounts are writeable.
That's why when you create an instruction on the client-side (TypeScript in this example), it looks like this π
4/ The message blockhash is pretty self-explanatory. It's included so that validators can reject txs that are too old.
5/ Solana transactions can contain multiple instructions!
This is important, b/c you may want to execute multiple instructions atomically (i.e. all of them succeed, or all of them fail).
The indexes described in the diagram index into the account addresses array we saw above.
6/ Each Solana transaction also contains an array of signatures.
Each item is a digital signature of the message, signed by some private key.
7/ That's it! For more details, check out the official docs.
The DAS reduces the cost to mint a basic NFT from ~0.012 SOL β ~0.003 SOL
I assume NFT compression (basically, moving more data off-chain to save costs) will reduce minting costs even more, but estimated costs for compressed NFTs are not mentioned in the docs
2/ INCREASED FUNCTIONALITY
The DAS moves more functionality into the NFT program
For example, sales will be forced to go through the program, meaning royalties can be enforced
As another example, fractionalization will also be built into the program
1/ Every token in Solana, fungible or non-fungible, has a mint account
The mint account's address uniquely identifies the token
This account also determines who is allowed to mint more tokens and how many tokens are in supply
NFT mints should have supply = 1 and decimals = 0
2/ Once a single NFT has been minted, which increases supply from 0 to 1, the mint authority (the account that is allowed to mint more tokens) should be set to "None"
This means no more tokens can be minted, fixing the supply at 1βthe token is now non-fungible!