description |
---|
NFT Composability allows you to assemble NFTs into one and break them back down like puzzle pieces. |
Composability in the context of NFTs is defined as NFTs that can be combined together and subsequently be broken down. This means when pieces are combined into a whole, the pieces cannot be used (transferred).
This is different than a multitoken gated mint that allows a NFT to be minted by having "pre-requisite" NFTs. This is also different than 1 NFT acting a token gate for multiple token whitelists. The main difference here different NFTs are prerequisites for acquiring another rather that combining and disassembling NFTs.
In our implementation the NFT pieces must be owned by one owner and vice versa aka "Collect-them-All Composabilitiy"
{% hint style="info" %} In this case composability is not referring to being able to break up smart contract code into modular components. {% endhint %}
One might refer to NFTs that combine together into a bigger NFT as children, however we viewed the Children-Parent terminology not suitable as something that can be encompassed by something else doesn't mean it came from that bigger part, like a child does from a parent. So we are using the following terms
Piece and whole.
Something that is a a bunch of pieces can be made into whole and can also be a piece in a bigger whole.
This is composability.
- Layers: taking from existing assets
- Predetermined outcomes: already existing whole assets uploaded that only point when "piece" conditions are met.
- Request for Composition: where after composition and request for media file is made based on metadata conditions is passed in
- Oracle: dependent on an oracle to update information
- Should we define composability within a NFT or with a separate proxy contract? How does a NFT know if it belongs to something bigger?
- Basing off of the NFT Fractionalization example
- Should we burn a NFT (how do we get it back), should we long piece NFT
- Should type of composability or the way something is rendered be defined on part or whole level?
- Can metadata be dynamic for pieces and how will dynamic metadata for pieces effect the composition of whole NFTs?
- Can ownership of pieces still be used for token gated functionality? Does a user still own a piece when combined into a whole? Does ownership of a whole exists if pieces have not been combined yet?
- Should the cardinality of composability only be Many->1, is 1->1 composability defined by something else like a evolving NFT? (Wouldn't be a dynamic NFT" because token-id would be different that a dynamic NFT which commonly denotes the same token's metadata changing.
{% tabs %} {% tab title="Composability Snippet" %}
// put composability snippet here
{% endtab %} {% endtabs %}
For overall GasPump use cases
{% content-ref url="../../overview/our-features/use-cases.md" %} use-cases.md {% endcontent-ref %}
Metaplex Fusion (lucking the same dev who wrote this is working on this)
{% embed url="https://docs.metaplex.com/programs/fusion/" %}
{% embed url="https://github.com/raindrops-protocol/raindrops" %}
Sui Capsules
{% embed url="https://www.capsulecraft.dev/" %}
Ethereum?
There are certains things we left out but we decided that composability is essential must have. Learn more in the ideas page
{% content-ref url="../../overview/our-features/ideas.md" %} ideas.md {% endcontent-ref %}