pencilflip.sol πŸ„ Profile picture
Jul 20 β€’ 8 tweets β€’ 2 min read
Metaplex recently announced a new Digital Asset Standard, which is meant to improve upon the existing Metaplex NFT Protocol

Their doc, while thorough, is also long and complex πŸ˜΅β€πŸ’«

So here's a quick and simple summary of the most important improvements

1/ COST

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 Image
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

3/ BETTER SUPPORT FOR MORE MEDIA TYPES

Currently, NFTs of static images are rendered consistently across wallets/dapps. But the experience for audiovisual NFTs is inconsistent

The DAS introduces strongly typed JSON schemas for representing different media types
4/ IMPROVED EXTENSIBILITY

What if you want to extend an NFT with extra data that's custom to your use case?

You can already do this by creating another account that stores the extra data
But DAS will make it easier to discover these accounts (via a registry), and easier to keep these accounts in sync as the NFT gets sold/burned/etc.
5/ MORE EFFICIENT READS

Instead of using getProgramAccounts (slow), or relying on 3rd party indexers (potentially inconsistent/unreliable), Metaplex will provide its own performant API for querying NFT information

That's it! DAS definitely has other changes and improvements, but these were the ones that stood out to me

Note that I didn't talk at all about how the DAS actually works... maybe that'll be another thread πŸ˜›

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with pencilflip.sol πŸ„

pencilflip.sol πŸ„ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @pencilflip

Mar 22
Solana NFTs 101 πŸŽ“

🌟 Part 1: Account overview 🌟

Solana NFTs are composed of at least three accounts:

1. Token mint account
2. Token account
3. Metadata account
4. [Optional] Edition account

Let's review these accounts one-by-one Image
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 Image
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!
Read 14 tweets
Jan 19
.@armaniferrante recently published a great repository of 10 vulnerabilities to avoid when writing Solana programs.

Here's the quick rundown if you don't feel like digging into the code πŸ‘‡

ImageImageImage
1) Signer authorization

If your instruction takes in an "authority" account, make sure the account has signed the transaction.

Why? Because only the owner of the "authority" account can sign for itβ€”but anyone can pass in the account as a non-signer.
Don't do thisβ€”authority is not required to be a signer. Image
Read 33 tweets
Jan 16
The @metaplex team is working on a new metadata standard for both fungible and non-fungible tokens.

It's backwards compatible and has official support for on-chain collections. And it's currently being tested in devnet.

For more details, see below πŸ‘‡
1/ First, and perhaps most importantly, this new standard is backwards compatible.

This means NFTs that use the old standard will still function properly (e.g. be displayed properly in Phantom) once the new standard rolls out.
2/ So, what changes does the new standard introduce?

First, let's look at the old on-chain metadata struct. Image
Read 14 tweets
Dec 30, 2021
If you're writing Solana instructions involving tokens/NFTs, please require the token's mint account to be passed!

Otherwise, if you query for the mint's transactions, transactions that include your instruction may not show up... more on this πŸ‘‡
For exampleβ€”the regular "Transfer" instruction of the SPL Token Program does not take in the mint account.

Thus, if you transfer an NFT using this instruction, it WON'T show up on that NFT's Solana Explorer page. Image
That's why @phantom uses the "Transfer Checked" instruction, which does take in the mint account.

And that's why NFT transfers conducted via Phantom will always show up in Solana Explorer for the token mint account. Image
Read 7 tweets
Dec 12, 2021
Solana vs. Ethereum L2s, a UX comparison
1/ A lot of people are excited about ZK-rollups, and for good reason.

However, from a UX experience, ZK-rollups aren't too different than existing L2s. E.g. Polygon already offers low fees and fast transactions.

Let's look at Solana vs. L2s, and see why one might be preferred.
2/ To simplify things, I'll mainly be looking at Polygon.

Yes, I know that ZK-rollups are more secure than Polygon's sidechain.

But really, most users don't care about that πŸ€·β€β™‚οΈ. Users care about things like low fees and fast transactions, e.g. how good the UX is.
Read 14 tweets
Dec 10, 2021
How do Solana CPIs work?

That is, how do Solana programs call into other Solana programs?

Here's a quick 6 tweet explanation πŸ‘‡
1/ If you're unfamiliar with Solana transactions/instructions, you might want to take a look at this first.

2/ Calling between programs is achieved by one program invoking an instruction of the other.

Here's how that looks in practice.

The first arg is the instruction to be invoked, and the second arg is the array of accounts required by that instruction.
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(