-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft for Standard trait definition for extending tokens #92
Comments
Mentioning the sources used. Extension for asset traits (transferable and operable) #52 Marketplace function #51 Generalized marketplace function (list-in-token vs. list-in-ustx) #51 (comment) Optional send-many trait (from SIP013 semi-fungible token) https://github.com/stacksgov/sips/pull/42/files Additionally used the SIP009 trait as a template for the draft. |
Can this also support SFT (e.g. via SIP-013) and list/buy in token as per @LNow suggestion #60 ? There is an example in Clarity Lab of doing SFT with generalised token. I don't know if both SFT and NFT can be supported by the same trait functions but it would be interesting if there is a general solution for it? For generalised tokens the solution involves wrapping the STX transfer in a SIP-010 as in this contract. |
Re-read the other thread and see there may be a problem with list-in-token with the commission ? |
I would not know how to adapt the code from the repo's I have used to support SFT and NFT in the same trait. Perhaps something like this can work:
I do not understand this part. Not sure what to do here. Should commission always be in uSTX? I have send some updates based on the feedback thus far. |
After the call today I was thinking about how this would fit into the SIP process, and I see two distinct things that we're asking for here:
That would hopefully create a flywheel effect where items are created for (2) based on criteria laid out in (1), and if a feature doesn't exist yet, this would be the official framework for adding it. If (1) were upgraded, then all contracts in (2) would need to consider the changes and upgrade or implement something new. That'd be a big change, and existing creators of contracts in (2) would be good candidates on feedback for an update proposal. If (2) were upgraded, it can simply be versioned and added to the registry. Say that initially the marketplace standard doesn't support SIP-013, but this was added in a future version, or if there was one version for SIP-009/010 and a second one for SIP-013. That would hopefully allow for iterative and flexible development of the extensions. One way to manage the list could be to implement a trait for (1) that all contracts in (2) follow - which could be queried and listed pretty easily with the API. Overall I'm supportive of getting people on the same page! |
Thinking through this I do think the two step approach can make sense I am just not sure what I would want X, Y, Z, to look like. We'd have to make sure not to be restrictive in any way as to not restrict development of new extensions. With your remarks in the meeting I was thinking more along the line of splitting this SIP up. One that holds all the traits that are beneficial to the marketplace trait (transferable, operable, marketplace and commission trait) but have the bulk-send trait in a different SIP. I guess if we move to a model of hierarchy (1. and 2. as you suggest) this could cover that too. The reason I am not sure this is the best solution for the marketplace trait though is because: IF we want to achieve maximum generalizability (which I assumed from the previous conversations leading to the code currently in this standard). Then we would prefer a standard that takes a bit more time to get right and include compatibility with SIP013 SFT's rather than having 1 standard now for NFT/FT and another later just for SFT's. |
For anyone checking this topic and who wants to contribute, the open questions:
|
I don't see a good solution. A generalized trait would come at a cost. Users would need to be informed why there are more "unused" parameters. I am not a fan of the optional for
I heard that users might get confused that the listed price does not include the additional fees from the commission trait.
I like a SIP that just focuses on marketplace functions |
In favor of splitting this up as well. For example, I’d love to have the marketplace functions as a SIP (they basically are a de facto standard right now). However, things like Either way, we could probably debate the |
Is there a proposed solution for this? Intuitively seems like it’d be difficult to get around this without changing the way commissions are done (e.g., by setting a commission percent or structure rather than an open-ended function call) |
I like the commission solution we have right now. Maybe we should add recommendations for how to present this on the market places and wallets. Currently, the user might get confused by the different numbers. |
Yeah, right now we "abstract away" the commission and treat everything as all-in prices on Gamma. For example, if you list something at 1 STX, we don't send |
Thanks for the input @friedger and @Jamil this is exactly what I needed.
As far as confusion about listed price not including the additional fees: I believe the argumentation landed on that it can be resolved by the UI. I think gamma.io and tradeport.xyz prove this by showing very clearly to the user what the effect is of setting a price, and how the money flows on a sale:
As for @whoabuddy comment about a general SIP for "token extensions" it may look to much like rewriting/extending SIP000, I am not convinced that is needed/convenient. |
Trying to write a marketplace SIP that is compatible with SIP013 on the selling side (listing a SIP013 (SFT), SIP009 (NFT) or SIP010 (FT) token(s) for sale) and buying side (buying the listed token with SIP013, SIP009 or SIP010) is not something I can find in existing repo's I have come to the conclusion that more work is needed before I can draft a generalized SIP to cover such a trait. Namely: clarity contract of a reference trait and tests. I think that SIP should take into account the discussion that lead to this thread and hence I will set out what I think is needed for such a SIP (lets call it the "Generalized marketplace standard", SIP22?) Circling back to what I can do is get the defacto standard in a SIP and that is list-in-ustx lets call it the "uSTX marketplace standard" (SIP11?). I think there is still value in getting this ratified as a standard because of its widespread use. TODO: Work in progress here, requires help from Clarity dev to finish: Here is a mockup to allow A, B, C, C is explained in the paragraph "Recommendation for using STX as SIP010 token" as proposed by lNow
|
TLDR of above:
And one that needs more work |
I gave this a preliminary SIP number (not sure if I am allowed or the CAB determines it) but we can change it, I like to have something here asap because it makes it easy to refer to the document. I choose 029 (because they do not have be in order (paraphrasing Jude) and to signal the relationship to SIP009.
I have texted briefly about how to write this draft with Friedger and dant before structuring it this way. It could have also been four separate traits/standards but they belong together and Friedger and Dan thought this would be the better way.
This is the first time I share my draft, feedback is needed and I will also need help from a dev to handle the technical feedback.
I have also included some questions myself starting with "werner:" feel free to comment here if you know more.
I would like to get this standard ratified so it can also be integrated into BNSv2
See my draft here (I am not sure how to send it properly as a PR):
https://github.com/no314/stx-fan/blob/main/sips-ip/sip-029_extending-tokens.md
The text was updated successfully, but these errors were encountered: