{"id":"KOIT8XDQNjM","title":"Contract Standards Work Group Meeting – April 21, 2023","description":"Today the NEAR Contract Standards Working Group met to vote on a couple proposals:\n➡️ https://github.com/near/NEPs/pull/452\n➡️ https://github.com/near/NEPs/pull/469\n\nChapters:\n00:20 Agenda\n00:48 Objective\n03:49 Introductions\n04:40 NEP-452 – Discussion\n35:47 NEP-452 – Decision\n42:47 NEP-469 – Summary\n49:08 NEP-469 – Decision\n50:49 Getting Involved \n\nLearn about Developer Governance:\nWebsite: https://neardevgov.org\nTwitter:   / neardevgov  \nTelegram: https://t.me/NEARDevGov\nNEP Process: https://github.com/near/NEPs/blob/mas...\n\nJoin the Contract Standards Community Group:\nTelegram: https://t.me/nearnft\n\nJoin NEAR's community:\nWebsite: https://near.org/\nReddit:   / nearprotocol  \nDiscord: https://near.chat/\nMedium:   / nearprotocol  \nBlog: https://near.org/blog/\nTwitter:   / nearprotocol  \nGitHub: https://github.com/near  https://github.com/nearprotocol\nDev Docs: https://docs.near.org/\nCreate a wallet: https://wallet.near.org/create\nApps on NEAR: https://awesomenear.com/\nLearn to Build On NEAR: https://www.near.university/\nGrants & Funding: https://near.org/grants/\n#Blockchain #FutureisNEAR #NEAR #nearprotocol\n#nft #dao","channel_name":"NEAR Protocol","published_at":"2023-04-21T00:00:00.000Z","thumbnail_url":"https://img.youtube.com/vi/KOIT8XDQNjM/hqdefault.jpg","transcript_text":"and Welcome to our fourth near contract standards work group call my name is Ori and I am a moderator from the near developer Dow team and I'm excited for us to look at a couple of net proposals today and make a decision about them so here's our agenda first we'll discuss the objective of this call and provide some context about our near developer ecosystem as well as the net process next we'll introduce all the participants that are involved and then we'll get into the main discussion of neb 452 and 469. you can follow the links for those in the video description and after we will open a doctor qaa and talk about next steps so to get started let's discuss the purpose of today's call we are here to publicly vote and arrive to a final decision on net 452 and net 469 and also to celebrate the effort and time that everyone invested into these naps as they went through a rigorous review by the community and many subject matter experts who all care about making our ecosystem better before we jump in I want to give some more context to help contextualize our call so when it comes to the near developer ecosystem there are many ways for people to contribute from submitting ideas to implementing code and we bring together people and organizations to help innovate in a decentralized way and provide social structures and tools to support that and one of the main tools that we use is the near Dev Hub which is a platform for near developers to contribute and stay informed and it used to be called the gigs board but we've recently changed the name to help better communicate to the concept and more changes are coming soon but in the meantime anyone is welcome to share their ideas Solutions and get technical support and apply for funding you can find various communities of people interested in specific topics on there such as zero knowledge or tooling and it's really just a great way to meet with others to share ideas so in addition to the informal Community groups we also have formal work groups who helped make decisions in various ecosystem areas such as protocol and contract standards and these groups have selected recognized experts to engage with the community and help review proposals in a thoroughly and timely manner for example they help make decisions on technical proposals that you may want to get integrated across the ecosystem such as a new contract standards or protocol Improvement you can submit an idea for a technical proposal using an app a near-enhancement proposal and this allows anyone to propose an idea to the ecosystem and when a new net is submitted the relevant working group will review it and move it through our next process which includes these four roles author moderator reviewer and approver the author is the person who writes the proposal and presents presents it to the working group the moderator is the person who facilitates the process and helps move things along the reviewer is an assigned technical subject matter expert who reviews the technical feasibility and then the approver is the work group who makes the final decision in terms of visualizing the next process there are three stages draft review and voting and two outcomes approved and rejected and all the roles that I just mentioned help move the net through these stages and towards the outcomes and most of this happens asynchronously on GitHub but when we do get to the voting stage the work group has an open public call to arrive at the best decision in a transparent way which is exactly what we're doing here today we're executing this process and and getting into the final voting stage on those two naps so before we jump to the net themselves I wanted to highlight the participants who have been involved in those two naps so uh first we've had two authors so Ben is the author of net 452 and laquan is the author of net469. I played a moderator role in the process and we also had uh some subject matter experts that were assigned Joe and Olga and then we had two working groups that actually looked at the net the the main one was the uh the contract standards work Group which is made up of Vlad evgeny Alexander and Robert and then we also had a representative from the wallet standards group Cameron look at it as well so just in the interest of time we're going to skip formal introductions but please feel free to say hi in the chat or at least when you speak up just a quick hello and with that I'd love to move to the actual neck discussion um and I'd love to start with neb 452 link drop standard and invite the author of dotnap to present a summary of of the nap and why he believes it is important so with that I'd like to welcome Ben today thanks for thanks for uh for the introductions um yes I mean I've been working with with link drops and sort of contracts for a very long time now um and with that came uh a need for a standardized interface because you're going to have all these wallets and all these link drops out in the wild uh and just for a brief introduction of like what like what the heck is a link drop it's it's essentially a way to embed assets within a link uh and it's a wallet agnostic solution to transfer assets and to create accounts uh using nears access Keys um and it's a really powerful tool it's been used for years um but historically all of the link drops lived on the one route near contract and on the test net contracts um so you know as as companies and as projects and apps started to sort of push the boundaries and um you know create custom link drop implementations you had all these different link drops with all these different interfaces out in the wild and from a wallet's perspective or from uh as I like to call them claim page perspective if you have an arbitrary link drop which essentially just a link containing like a contract and a secret key how do you know how to claim it right and so we needed to provide an interface that's standardized to allow for arbitrary link drops coming from any link drop creation platform to be able to be claimed so for example like key Palm makes link drops near drop mix link drops the you know route near contract makes link drops if all these link drops coming from all these different sources and they need to all be claimable by wallets um without the Wallace needing to know like each individual implementation of how each of these different contracts do their things um and yeah and it's it's becoming more and more important as more wallets come out and as you know the blockchain operating system comes in to play and you know you're going to have all these different platforms everywhere claiming and sending assets and stuff like that and Link drops are pretty cool for cross-chain compatibilities and so now is the time uh to standardize this and to make the updates before before it gets out of hand awesome thanks so much man for that intro and also for for writing this snip uh and working through it so I guess really really briefly I also just wanted to give a quick shout out to Ken because I worked I worked a lot with Ken miyachi on on this uh on this standard uh so I think he's in the call but uh but yeah thanks thanks again for for the hard work we hopped on some calls and sort of um developed out some of these Solutions together so thanks yes thank you so much Ken and for for being here today as well uh we appreciate it so I guess um as I mentioned there were a lot of uh you know async discussions on the net itself and some benefits that were raised so if there are any other benefits that maybe you haven't mentioned maybe you could quickly highlight them just from the discussion yeah so I mean we've we've created this this standard um in a way that is very extensible like a very very good examples we're working with minor wallet uh right now to extend the standard um and have like a custom key Palm standard which introduces like trial accounts that can be claimed by a link drops anyways we've we've written the standard in a way that's very extensible for all these different types in the future um we've also tried to make it backwards compatible as much as possible with existing implementations just because we've had link drops for so many years and there's all these platforms out there that you know are assuming a certain Behavior so we wanted to try to make it as backwards compatible as possible but for the purpose of this NEP um specifically in the past it's just been sort of near link drops so embedding you know a set amount of near tokens in a link and sending it to someone where they can claim it with an existing account or create an account and claim it there all atomically but with this NEP we've we've taken that concept and we've expanded on it to introduce support for fungible tokens and nfts embedded within links um there are some really cool things that we can do in the future to expand upon this even more like introduced function calls where when a link drop is claimed it executes an arbitrary function uh I guess it's predefined by the funder but anyway so um that's kind of a high level overview of of this specific standard awesome thank you cool so in addition to the benefits there were various concerns raised throughout the discussion and I'd love to invite a couple of the work group members to maybe talk through them and see if we can yeah resolve any of these so uh yeah I guess Alexander did you want were you okay with starting or did you want me to start with uh Roberts list of concerns where should we start um I think we can start with that table um yeah with this one um I I like I think overall the nap looks pretty decent um however just had many questions related to technical details um like personally I was not familiar with the link drops um and uh so there were questions uh like I think the first one like for instance why they have to add the public key into the contract account and so on um I think we fixed um many of the uh of our comments and um still there are a few ones to unresolved ones I'm not sure how to proceed from this point as we have probably the first session in this format I would start with probably the most uh like important one uh I think this is the number seven and um it's something still not resolved so we have a few options how to define the claim method API properly so there are a few our considerations like uh backward compatibility with the existing contracts and also this is like one side of the things another side is that the methods should be um like agile or something like uh good for standard you know so we shouldn't over standardize that from my opinion and so we still have a few um options we can go uh to the options on the GitHub probably then just uh proposed a few cases in the last comment so basically um I think my proposal also Ben agrees that we probably could uh use Justine promise as a return type and I'm not sure whether vlads maybe you know I agree with it or other members of this let me comment on it like Pro promise is a pack from the point of view yeah it's all back of the client so defining a promise doesn't mean we Define anything which means we don't Define how to even reason about the success of the execution um there which is the whole point of the whole discussion is to what is like successful uh result and what is the failure result because currently it's misaligned the near uh link drop uh convert the the Legacy one um or operates in an assumption that the Panic would happen that the transaction will fail uh if the uh if something goes wrong um while uh key Palms implementation as far as I understand needs to actually commit some changes to the storage so it cannot afford uh to panic and revert all the changes down to the storage which was the main reason for Ben 2 uh align the existing interface with like the other method called claim and read account which actually just Returns the value through uh Boolean value as a result so is compatibility to be honest I I I'm I'm fine with Boolean I'm fine with any other value I want to understand what would be the pass forward if we break the API or like or do we want to keep the Legacy contracts as is and then introduce a separate like candle handlers for for going forward but do you have uh yeah this is this is probably the only the only comment that I'm that I'm like not entirely 100 sure how to proceed with um you know just the unfortunate reality I mean just for some context on on the key Palm side like uh we we've hyper optimized all the link traps so that one a key is used uh and deleted uh because when you when you create a link drop you pay way more than what you actually use in terms of allowance on the key you're paying for the pessimistic allowance and so you you know let's say you attach 100 Tera gas to the transaction you have to have an access key with like 171 pair of gas worth of allowance um and you're only ever really going to be using like you know 30 40 Tera gas and so you know you're you're paying for like five times more than what you actually use and so on our contract um we refund um the unused allowance but in in the accounts try like in the state in the runtime we don't have access to the access Keys uh allowance at runtime like the signers public key we only have the public key but we don't have the allowance um and you know I tried to make an NEP for this to expose this in the runtime which would remove our need our our need to not panic um but it it you know it didn't go through um so you know I'm more aligned and you know there's a ton of security implications here too because you can't you there's no way for you to ensure that a contract won't Panic uh which is something that we're working towards um fixing so I you know I'm I'm probably fine um to to like keep on for for some more context we're going to be refactoring like basically the entire contract and in the next couple of a couple of months um so you know I'm I'm fine with bringing back the introduction of of panics the like I mean the only the only thing is that you know you have all of these outgoing cross-contract calls you know and like I'm a I'm I assume the worst case scenario which is like a link drop with I don't know five different fungible tokens and I don't know three different nfts and some near and stuff and so you got all these outgoing you know receipts all this stuff happening all these cross-contract calls all these assets being transferred and how do you determine the validity of that without um or the success of that without bogging down your bogging down your contract and I would argue that um the success of outgoing assets like nfts and fungible tokens should probably be handled on the client side um the the only the and and as I mentioned here in this comment the only annoyance is the near value because it's it's less hard um or it's it's harder to determine the success of that when you're claiming to an existing account when you're claiming to a new account it's it's fine because I mean you can just check if the account was created and has the balance but if you're claiming to an existing account and I don't know you it's it's a one-year link drop um you know what do you do you check the account balance before and then after but you know there's no guarantee that you know the one near came from your link drop contract um unless you like sift through receipts and stuff and like it's just a mess um and so yeah the only annoyance is claiming to an existing account with near everything else I think should be handled on the client side uh which is why out of my three options you know there was the simple promise um or just like kind of don't Define the return type or don't at least in this NEP don't worry about success value leave it to the client or a Boolean indicating whether or not like all the transfers were successful so you're just like you know call all back uh and check if you know any of the results were were a failure and then just return false or whatever uh or just you know return a Boolean and only care about the near value those are kind of like the options that I uh thought about but yeah it's kind of a tricky one because you have all these like and you know you might have assets down the line where it's like partial success or you know partial this or partial that and it's just kind of complicated yeah I think we cannot disregard the fact that uh partial um assets transfers will happen because uh we don't control all that stuff and it could fail for various reasons and we cannot revert uh those that were already transferred so it just in indefinite amount of uh gas we would have this problem Robert yeah so if you scroll up a little bit I just want to share that you know I have an opinion about about that right so I mean like the moment my main motivation is for like adding a concrete value um for the return it's really for composability I mean panicking is different like you know than composability so here in claim when I as a contract for example if one contract would like to claim for another contract okay I don't provide the values I'm claiming I provide like the same ID or the queue within it right um so so think about it like in this way um is it possible right that um I will sign the message uh send that message to contract a and that contract a will do the claim contract or like are there any other that's not that's not possible with this NEP because it's defined that the the access key should be limited access key and only point to the link drop contract so you would never sign a transaction where the receiver is not the link drop contract I think it doesn't construct it with what they say so I will sign the message I mean user right we send a message but it will send that message to the contract a and then contract a will do we'll call it okay it will still work right because the signature is the same and the and the ninja verifies like the signs it doesn't verify who's the predecessor yeah but but the signer can only execute transactions on the link drop contract because they only have a limited access key well it depends on the client who set up the link drop but yeah at least in this NEP it's it's defined that um that you should like the the the the predecessor should be the signer or sorry the predecessor should be the current account in this NEP I think I wrote that as a restriction no just saying it doesn't it doesn't make a restriction and it's in my opinion it would be interesting we have to allow that kind of exercise so like a composability I think that would be a different nap and I wouldn't document to make it too generic since we don't provide the value in the plan it provides an install pack right so also I'm just looking back to do some registration some like I know balance keeping I guess it's not necessarily yes what how was sent so if you return the value to that constraint oh all right we lost you Robert to be honest that was to be honest that was the reason why I finally thought that to promise would be okay because we have so many ideas how to define a better return value and all these cases are pretty specific like Boolean would be enough string or the whole list of all transferred assets so we used to get the rest status how many statuses are we going to have and backward compellability compatibility um and the final thought is that we probably are running out of time boxes defined by this meeting and we probably had had we have to had a separate meeting only for this function you know to but yeah I agree also real quick uh Robert just to clarify so there's no confusions this NEP does Define that the predecessor of claim and create account claim must be the current account that's written into the standard and I also want to make sure that we are not keeper optimizing for super genetic use case which we don't know even if it exists for four years we have a link drop which works very well and it only assumes that the users the the the users will interact with the contract of the link drop through the wallet so without like intermediate contracts involved there so please let's not assume that we will like build the link drop as a part of some other flow because link drop is onboarding tool and we want to keep it this way we don't want to make it right so this is like my suggestion right sorry my internet connection is not stable can you hear me yeah yeah okay I must feel like it's yeah it should be good like that's dropping me off so I mean what I wanted to say is that you know I don't see like any reason why we should like be restricted and in my opinion it's not that complex to basically add the return type it's like it doesn't make like the whole the whole process of implementing the simple version as it is down down by the by the by the link drop or the key pump uh more difficult so me personally it's like kind of a no-brainer that's just written the value so we unlock all the use cases in the future well that's what Ben suggests my concern was that the existing link drop contract panics uh if if something goes wrong and keep on contract returns false and doesn't panic so the wallets now needs need to somehow what is actually the failure case and we need to Define it as a standard right but you know I it's it's like more like no finding what should be the right written value and and I don't think like it's it's like it's really complex that has the whole implementation like it's something that it's easy to update and yes I agree we should probably have a separate call about this um and and maybe maybe uh I'll just provide my two cents and then and then we'll we'll move on I was just gonna say in my eyes there's two sort of panics uh or two um unsuccessful cases one is you know you you call you you try to claim something that's already been claimed or anything kind of like malicious or or out of the ordinary and then there's also the case where um you know the the assets were not successfully transferred um like everything went well you have a valid link drop everything was fine but the assets didn't get transferred properly either you know you I don't know maybe you you didn't deposit storage on the user's account or something happened uh for fungible tokens or I don't know the nfts I don't know something like that uh or the you know something weird right uh and there's kind of like two areas um but yeah let's let's let's maybe move on um and let's let's uh let's can this for now and talk about it and another discussion because I don't you know I've got a hard stop soon so yeah just real quick uh we have two more unresolved so just minor issues uh I marked them as a result uh one is uh the octaneer field name in the structure and uh another one for you just you yes yes go go back to the previous slide already yeah and if yeah balance the number item number three is unresolved it's almost resolved I just marked it like unresolved so we could uh quickly fix it and another one is unclear how to distribute gas yeah and the um actually the discussion about required gas field was not marked as resolved on GitHub and so I just want to make sure that we are in the same plate like we are okay if the balls required gas field yeah it it was resolved so your all are okay about it and we fixed the comment and it's enough yeah all right so let's mark it as resolved and then the balance one uh we I I changed it to iacto near under underscore yeah yeah yeah I just left the final uh final uh comment that that you use uh camel case and it's not like in the name naming convention so we probably want to use yeah I switched it to all lowercase um all right maybe a couple minutes ago so okay or you can mark it as a result as well but we have just one result issue which is pretty significant one I think yeah let's move on to the next slide yeah let's move on okay uh Robert do you have anything else that you feel like our like we definitely need to address before we move with approving the snap I mean yeah I see I see a lot I mean but yeah sorry based on what I've seen and I was checking it yesterday like midday European Time and all of that was not result so I mean one General comment is that would we agree I mean don't take me wrong I think like you know the whole standard is good it's like you know well thought but like one General comment is that it would be great if you know like the outer like really cleans out all of that stuff right so there were like a few comments which were marked as resolved but then not updated in the in the net itself just uh just to to stab you real quick everything here has been resolved except for the panic in the query function and uh clear up documentation by the way thank you right so I think we also like the fact that that you know this get key balance they have to remove it um all right I mean when I was checking it yesterday was not removed and like the decision to remove it was I guess like two or three weeks ago if I understand correctly Ben said that just it was just updated yeah I mean it would have been updated like a couple weeks ago but you know there was there was a ton of comments kind of like in the last couple days and so I've been sort of scrambling to get those all in um but yeah everything here should be should yeah except except for the the panic and the documentation the documentation of the linting errors I will get to just I cannot right now because I'm underwater it'll be post consensus and that's not really that big of a deal in my opinion um uh but it will it will be done the the bigger one is the Panic which I mean I think everyone's come to a conclusion except for Robert uh about the panic I think that you might still have opinions about that I don't know Matt myself Vlad and some other people I've talked to are fine with the panic but yeah maybe we can talk about that if that's a huge blocker for you Okay so okay so let's move only quickly like give you the motivation maybe someone will change the mind but if no no one would change the mind let's go with my charity um so in my opinion like again similar as I mean I posted already in a few places I think about it as NST that's NXT panics if you query for a refundable token phonics query functions usually don't panic that's like one of the different principles so that's why I'm against it like you know again looking from the composibility perspective right uh if I'm acquiring something I don't expect it will Panic it's like Panic is unusual situation situation that you know like we should not be able to handle right so now think about it I think we need to return sorry for interrupting you uh now think about it I think we we need to return an option type so basically in JavaScript world will be undefined or null that was that was my initial um sort of inkling and and I commented that but the problem is that there's a ton of wallets and applications and everything that assume a panic um and so like from the backwards compatibility standpoint it'll be uh it'll be kind of annoying um you know because if it doesn't panic then they'll assume that it exists and then they'll try to render and it'll lead to weird behaviors because they assume that if it panics that's the case where it doesn't exist and you know everything's good um and so this is why I've written it this way just because are we sure that sorry are we sure like this is really the case of the implementation in the wallets because really it's an anti-patter it's like yes I'm worried basically like this pattern will be propagated in like many places like you know there will be another implementation I mean not the league drop but you know something else and this query functions will panic and again yeah we probably shouldn't take it as a president so I would consider it to add a comment that it was a compatibility decision to keep a panic there the problem is that the link drops have been in the wild for so long and there is like no there has not been a standard for years and so all of these apps are building off of the assumption that it will panic and so I would like to keep it that way I don't think it's that big of a deal like it's not a huge you know like you can like yeah you probably should return null but for the case of backwards compel compatibility I would prefer to keep it that way actually Ben given that we introduce a new method name uh okay can we can we use in like yes in the new in the new one um that's a good idea actually Vlad is in the new one we can probably return uh a null or an option of key info but in in the Legacy uh balance um method then okay I I'm in agreement with that well also to be honest guys I recently tried to find also like make yeah we have we have a lag may say that just makes sense yeah uh to be honest uh go on yeah I I try to find whether the panic in the view method is kind of an anti-pattern or is not suggested to be honest I haven't found any explicit mentioning about it so I know what Robert is talking about we know fungible token maps and they are just return zero and so on but after the second thought uh it's it's probably not an entire pattern we can decide we can discuss but I don't think I mean yeah don't you think that you know like in general in in software engineering you know exceptions are should be exceptional I mean do in the exceptional situation I mean for me um maybe that's like the way how I was programming or you know interacting with it yeah I think this is usually in software we were trying to avoid panics usually yes but so it's like okay anyway um let's go I think we can continue I think we reach the consensus here um okay so okay I guess so um oh go ahead Robert yeah yeah can you go back to one side right so in fact like uh another thing which is like two things which are missing now like uh private crystallization to be honest I'm against like using um proposed Bosch serialization again it's been resolved so please please go back and and look at look at the GitHub because it's been updated everything here has been up okay except for the two that I mentioned before and the registration pattern was also resolved that is correct how did you resolve the registration pattern I put it into the security implications saying that if it's a fungible token drops or any sort of drop that requires some sort of prerequisite that you should ensure to you know do that for example uh registering the new user yeah just in the interests of time to move forward we need to have two-thirds majority these are the old um voting indications from the comments and obviously they were prior to the discussion that we just had so they're not very clear in terms of how everyone is leaning so I guess um can we like Vlad would you like to try to summarize sort of for on the group if you want to go around and have everyone kind of say I I I think I have a proposal here uh so it just for for the sake of uh time uh and we had a pretty extensive discussion already and it seems like only one one um uh click the the claim method um return value concern is still not addressed and we we need to erect some disk decision there but other than that it seems like the we are on the right track to approve the nap and I'm I still lean towards approving the snap this is my uh like believe that this this snap is is critical and we need to have it um if there are some like foreign cases we need to address them but I'm I'm going to push it Forward I don't think we need another call and to do it and discuss it once again we will just do it uh in in the in the pull request itself so once we arrive to the decision um I I like I will I will uh reach out to all the I can drive it I will reach out to all the working group members and confirm that everything is good and ask you to post the uh it as a message uh to the pull request and after that we will just merge the pull request without having another call for it um how does this sound to you guys Alex yep um Robert the term uh yeah it doesn't make sense I mean I wouldn't basically like refer that we approved with now yes because yeah I think we are not ready no yeah it does not saying that I didn't know we just agree that you know at least one critical thing is missing so formally it's not approved but uh as you said it's it's supposed to be there sure cool so are we saying okay do you feel like uh we need to make any major turns here or are we good here got some minor concerns about security implication basically I want some implications to be specified more clear but it's not as much about the standard itself but rather like the text just for just for some some more context I've I think I've addressed all of the concerns that you brought up could you please let me know um because you said I didn't I didn't mention anything about you know ensuring that you can't duplicate assets for a key or whatever uh like you can't try to take the same key and use it could you sing and things not duplicating assets I think the current text is very unclear it says only one key associated with the given assets like what you could send one nft and then create multiple and drop with different Keys pointing to the same and after this obviously should be protected against but what I was thinking is a different things like suppose that you create a new link drop with the same key as an existing one and if the implementation doesn't check for this then it will basically overwrite the Alden drop like destroy it and let and have a new link drop in its place and this is not good because an attacker could just basically destroy which falling drops and Destroy they don't need the private key to do it yeah I get what you're saying I think um like maybe something to consider is is like whether we standardize the creation of Link drops or standardize like the claiming of Link shops and I think that that might fall more under the the category of the creation step like make sure you can't create multiple link drops with the same public key or you know make sure they don't get overwritten but that I don't really think that's the purpose of this standard like in my eyes this is once you have link drops in the wild regardless of where they came from how do I claim them um but yeah I mean like it's not that big of you I could probably write that in because it is like you know it does pertain to link traps as a whole um yeah I I don't think that it's that that far of a fetch uh to to do that so I'm fine with with that but just to take into consideration that this I don't know if this is more so for creation or like claiming you know what I mean so but yeah I'll write that in yeah but I think that security considerations should be a bit wider so it's right that this issue is regarding the creation and we don't have a standard which means we just don't have a specific convention like specific method name specific way but still if we have a link drop standard we obviously expect them to be created somehow so we that's that's a good point oh I'll write that in I have a hard stop so I have to go unfortunately um thank you everyone um I guess we'll talk asynchronously on on GitHub yeah thanks so much ben appreciate all your work on this thank you all right see you later yeah and so let me just summarize it uh so we are on the same page we are all very close to we are close to the we are uh uh all agree that this snap is necessary and we want to uh see it merged so and we believe that only one unresolved issue is there that we will all work asynchronously uh and uh arrive to some decision uh so we are not approving the snap yet but we are not rejecting it we will just uh have it approved uh through the pull request discussion on GitHub is that okay it was everybody if so let's just thumbs up and move on to the next I'm good all right awesome we will move on to the other nap right now um just so that we can um give it the time it deserves as well so next is uh nip 469 uh at nft metadata update event to nip 171 uh the author of this step was unable to uh make the call La Clan so I asked evgeny to summarize the net on the author's behalf so Evgeni so the idea is simple we already have contract metadata and contract metadata update event and we have nft metadata and so they what the snap ads is an event when nft metadata is updated the purpose is to allow tools to track changes to nft metadata because there is no standardized way how it's stored it's basically an implementation detail of the nft contract so without an event those tools will need to query an optimeter data potentially every block on every nft to just to know if it changed and this is not really practical so the idea is that instead they could watch for this event and query the metadata only when this event is triggered and for this reason this event have actually only includes nft IDs and not the metadata itself because once you know that metadata change you can just use the view method to query it this way all the tools like wallets explorers whatever could watch for this event query the metadata only once the S7 happens and the Seven tells that nft metadata changed for specific tokens awesome thank you for for that great summary uh so yeah this map also had um some discussion on GitHub and I'd love to invite Robert if you're still there to maybe give some a quick summary of some of the benefits and concerns before we get to the actual votes I think it's neither like it's really missing I mean like the event is something that people want to observe but on the other hand like we should not bloat event with all possible data right like copy it because indexers have the access to the to the chain so I think that was like the only thing I was discussing there right so um so it's really about like you know what and how we want to um to to notify and then um not copying everything because it's also like creates a bad pattern in my opinion like if you standardize something you know it's something that you know people will learn from and people will replicate in in maybe um more customs in more custom um contracts or more custom applications right so I think like the only issue I had there is it's like putting too much into the yeah either itself uh just to mention that uh eviani actually brought a very good point that it this this snap helps uh the quality system of indexers to implement a more efficient way to keep track of the the existing nfts uh who that were issued before but then changed over time and there were different ideas and different reasons why that could happen and given that we already have the contract metadata update event it was natural to add another one to track the individual nft um metadata updates so if if a URL to to the resource has changed or something else inside the metadata has changed there is a chance to flag it from the contract to all the indexers out there by emitting this new type of event the standardized now and part of the map uh 171. um given that it's a non-breaking change it was easy to buy in and let it be there for whoever needed it's very hard to enforce though so they when we come to the concerns part uh there is already existing Foundation of um of of contracts or can you uh go to the next slide please uh so yeah uh the Legacy contracts out there don't support this method uh but they um hope is that going forward with more uh contracts appearance Network they will actually pick it up and the index service lives will be much easier going forward and they will need to maintain a custom Logic for all the new uh contracts they will probably be forced to maintain some heuristics for the old contracts for example not all the contracts need to be updated they need to will leverage the fact that the nft could be updated on the contracts only mint them and never update uh it's I believe that most of them actually these days um and the other the only concern that was there in the very beginning that uh nft underscore update was the event name and it was ambiguous uh so the proposal was approved to to change it to nft underscore metadata underscore update name otherwise no other concerns were rised on this pull request of this map extension and yeah I believe all the working group members were uh agree in agreement that it's good to have and we can merge it uh approve it now but uh yeah we are ready to vote um we have all the um indications already posted on the GitHub um let me know like if if anybody from the working group has any concerns um do you want to speak now or you're proven it approved um yeah so maybe I think it's better now just wanted to let you know yes sir there's one I'd like to basically repeat like you know I added the comments about that manual Shield basically to raise the concern but this is like a side comment more about like thinking forward yes about it but yes uh 100 approving oh all right it was quick yeah that was an easier one for sure nice to end with a good with a good uh with the decision so all right uh we will uh summarize the the next steps on this snap and also on the other one after this call normally we would open it up to q a but since we're short on time I guess um if you have any questions please drop them in the chat box and we can come back to it uh but really I just want to say a huge thank you to uh everyone who was involved in both of these naps uh you know the the authors the the all the subject matter experts uh the work group members uh it takes a lot of efforts and thoughtfulness to arrive to these decisions for the ecosystem and I really appreciate uh the healthy discussion that we had today so just to close it off I do want to quickly highlight some of the ways that you can get involved in the near developer ecosystem so if you have a specific idea in mind you can submit it using the dev Hub or find other communities to collaborate with if you have a technical idea that you want to get integrated into the ecosystem or you're seeking funding you can also submit an app after posting your initial idea on the dev hub you can also view all of the naps and their various statuses on GitHub and join their discussions there and then if you want to join the community you can check out the the near contract standards a telegram community group it's a great place to connect with others you can learn more about everything that's going on in the near Dev gov org website and our social channels and we thank you so much for attending today's call and hope you have a good rest of your day take care","transcript_synced_at":"2026-11-04T03:50:23.143Z","segments":[{"start_seconds":5,"text":"and Welcome to our fourth near contract standards work group call my name is Ori and I am a moderator from the near","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=5s"},{"start_seconds":12,"text":"developer Dow team and I'm excited for us to look at a couple of net proposals today and make a decision about them","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=12s"},{"start_seconds":19,"text":"so here's our agenda first we'll discuss the objective of this call and provide some context about our near developer","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=19s"},{"start_seconds":26,"text":"ecosystem as well as the net process next we'll introduce all the participants that are involved and then we'll get into the main discussion of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=26s"},{"start_seconds":34,"text":"neb 452 and 469. you can follow the links for those in the video description and after we will open a doctor qaa and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=34s"},{"start_seconds":43,"text":"talk about next steps so to get started let's discuss the purpose of today's call we are here to publicly vote and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=43s"},{"start_seconds":52,"text":"arrive to a final decision on net 452 and net 469 and also to celebrate the effort and time that everyone invested","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=52s"},{"start_seconds":60,"text":"into these naps as they went through a rigorous review by the community and many subject matter experts who all care about making our ecosystem better","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=60s"},{"start_seconds":69,"text":"before we jump in I want to give some more context to help contextualize our call so when it comes to the near developer","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=69s"},{"start_seconds":77,"text":"ecosystem there are many ways for people to contribute from submitting ideas to implementing code and we bring together","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=77s"},{"start_seconds":85,"text":"people and organizations to help innovate in a decentralized way and provide social structures and tools to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=85s"},{"start_seconds":92,"text":"support that and one of the main tools that we use is the near Dev Hub which is a platform for near developers to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=92s"},{"start_seconds":99,"text":"contribute and stay informed and it used to be called the gigs board but we've recently changed the name to help better communicate to the concept and more","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=99s"},{"start_seconds":108,"text":"changes are coming soon but in the meantime anyone is welcome to share their ideas Solutions and get technical support and apply for funding you can","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=108s"},{"start_seconds":117,"text":"find various communities of people interested in specific topics on there such as zero knowledge or tooling and it's really just a great way to meet","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=117s"},{"start_seconds":124,"text":"with others to share ideas so in addition to the informal Community groups we also have formal work groups who helped make decisions in various","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=124s"},{"start_seconds":132,"text":"ecosystem areas such as protocol and contract standards and these groups have selected recognized experts to engage with the community and help review","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=132s"},{"start_seconds":140,"text":"proposals in a thoroughly and timely manner for example they help make decisions on technical proposals that you may want to get integrated across","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=140s"},{"start_seconds":148,"text":"the ecosystem such as a new contract standards or protocol Improvement you can submit an idea for a technical proposal using an app a near-enhancement","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=148s"},{"start_seconds":157,"text":"proposal and this allows anyone to propose an idea to the ecosystem and when a new net is submitted the relevant working group will review it and move it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=157s"},{"start_seconds":166,"text":"through our next process which includes these four roles author moderator reviewer and approver the author is the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=166s"},{"start_seconds":173,"text":"person who writes the proposal and presents presents it to the working group the moderator is the person who facilitates the process and helps move","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=173s"},{"start_seconds":181,"text":"things along the reviewer is an assigned technical subject matter expert who reviews the technical feasibility and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=181s"},{"start_seconds":188,"text":"then the approver is the work group who makes the final decision in terms of visualizing the next process there are three stages draft review and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=188s"},{"start_seconds":196,"text":"voting and two outcomes approved and rejected and all the roles that I just mentioned help move the net through these stages and towards the outcomes","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=196s"},{"start_seconds":205,"text":"and most of this happens asynchronously on GitHub but when we do get to the voting stage the work group has an open","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=205s"},{"start_seconds":212,"text":"public call to arrive at the best decision in a transparent way which is exactly what we're doing here","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=212s"},{"start_seconds":219,"text":"today we're executing this process and and getting into the final voting stage on those two naps so before we jump to the net themselves","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=219s"},{"start_seconds":228,"text":"I wanted to highlight the participants who have been involved in those two naps so uh first we've had two authors so Ben","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=228s"},{"start_seconds":235,"text":"is the author of net 452 and laquan is the author of net469. I played a moderator role in the process and we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=235s"},{"start_seconds":245,"text":"also had uh some subject matter experts that were assigned Joe and Olga and then we had two working groups that actually","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=245s"},{"start_seconds":252,"text":"looked at the net the the main one was the uh the contract standards work Group which is made up of Vlad evgeny Alexander and Robert and then we also","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=252s"},{"start_seconds":261,"text":"had a representative from the wallet standards group Cameron look at it as well so just in the interest of time we're going to skip formal introductions","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=261s"},{"start_seconds":269,"text":"but please feel free to say hi in the chat or at least when you speak up just a quick hello and with that I'd love to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=269s"},{"start_seconds":276,"text":"move to the actual neck discussion um and I'd love to start with neb 452 link drop standard and invite the author","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=276s"},{"start_seconds":285,"text":"of dotnap to present a summary of of the nap and why he believes it is important so with that I'd like to welcome Ben","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=285s"},{"start_seconds":294,"text":"today thanks for thanks for uh for the introductions um yes I mean I've been working with with link drops and sort of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=294s"},{"start_seconds":300,"text":"contracts for a very long time now um and with that came uh a need for a standardized interface because you're","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=300s"},{"start_seconds":308,"text":"going to have all these wallets and all these link drops out in the wild uh and just for a brief introduction of like what like what the heck is a link drop","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=308s"},{"start_seconds":315,"text":"it's it's essentially a way to embed assets within a link uh and it's a wallet agnostic solution to transfer assets and to create accounts uh using","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=315s"},{"start_seconds":324,"text":"nears access Keys um and it's a really powerful tool it's been used for years um but historically all of the link drops lived","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=324s"},{"start_seconds":333,"text":"on the one route near contract and on the test net contracts um so you know as as companies and as projects and apps","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=333s"},{"start_seconds":342,"text":"started to sort of push the boundaries and um you know create custom link drop implementations you had all these different link drops with all these different interfaces out in the wild and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=342s"},{"start_seconds":350,"text":"from a wallet's perspective or from uh as I like to call them claim page perspective if you have an arbitrary link drop which essentially just a link","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=350s"},{"start_seconds":358,"text":"containing like a contract and a secret key how do you know how to claim it right and so we needed to provide an interface that's standardized to allow","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=358s"},{"start_seconds":367,"text":"for arbitrary link drops coming from any link drop creation platform to be able to be claimed so for example like key","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=367s"},{"start_seconds":375,"text":"Palm makes link drops near drop mix link drops the you know route near contract makes link drops if all these link drops coming from all these different sources","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=375s"},{"start_seconds":382,"text":"and they need to all be claimable by wallets um without the Wallace needing to know like each individual implementation of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=382s"},{"start_seconds":390,"text":"how each of these different contracts do their things um and yeah and it's it's becoming more and more important as more wallets come out and as you know the blockchain","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=390s"},{"start_seconds":398,"text":"operating system comes in to play and you know you're going to have all these different platforms everywhere claiming and sending assets and stuff like that and Link drops are pretty cool for","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=398s"},{"start_seconds":406,"text":"cross-chain compatibilities and so now is the time uh to standardize this and to make the updates before before it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=406s"},{"start_seconds":414,"text":"gets out of hand awesome thanks so much man for that intro and also for for writing this snip","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=414s"},{"start_seconds":421,"text":"uh and working through it so I guess really really briefly I also just wanted to give a quick shout out to Ken because I worked I worked a lot with Ken miyachi","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=421s"},{"start_seconds":429,"text":"on on this uh on this standard uh so I think he's in the call but uh but yeah thanks thanks again for for the hard work we hopped on some calls and sort of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=429s"},{"start_seconds":437,"text":"um developed out some of these Solutions together so thanks yes thank you so much Ken and for for","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=437s"},{"start_seconds":444,"text":"being here today as well uh we appreciate it so I guess um as I mentioned there were a lot of uh you know async discussions on the net","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=444s"},{"start_seconds":453,"text":"itself and some benefits that were raised so if there are any other benefits that maybe you haven't mentioned maybe you could quickly highlight them just from the discussion yeah so I mean we've we've created this","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=453s"},{"start_seconds":462,"text":"this standard um in a way that is very extensible like a very very good examples we're working with minor wallet","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=462s"},{"start_seconds":469,"text":"uh right now to extend the standard um and have like a custom key Palm standard which introduces like trial accounts that can be claimed by a link","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=469s"},{"start_seconds":478,"text":"drops anyways we've we've written the standard in a way that's very extensible for all these different types in the future um we've also tried to make it backwards","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=478s"},{"start_seconds":485,"text":"compatible as much as possible with existing implementations just because we've had link drops for so many years and there's all these platforms out there that you know are assuming a","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=485s"},{"start_seconds":494,"text":"certain Behavior so we wanted to try to make it as backwards compatible as possible but for the purpose of this NEP um specifically in the past it's just","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=494s"},{"start_seconds":503,"text":"been sort of near link drops so embedding you know a set amount of near tokens in a link and sending it to someone where they can claim it with an","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=503s"},{"start_seconds":511,"text":"existing account or create an account and claim it there all atomically but with this NEP we've we've taken that concept and we've expanded on it to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=511s"},{"start_seconds":520,"text":"introduce support for fungible tokens and nfts embedded within links um there are some really cool things that we can do in the future to expand","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=520s"},{"start_seconds":528,"text":"upon this even more like introduced function calls where when a link drop is claimed it executes an arbitrary function uh I guess it's predefined by","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=528s"},{"start_seconds":535,"text":"the funder but anyway so um that's kind of a high level overview of of this specific standard","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=535s"},{"start_seconds":542,"text":"awesome thank you cool so in addition to the benefits there were various concerns raised throughout the discussion and I'd","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=542s"},{"start_seconds":551,"text":"love to invite a couple of the work group members to maybe talk through them and see if we can yeah resolve any of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=551s"},{"start_seconds":559,"text":"these so uh yeah I guess Alexander did you want were you okay with starting or did you want me to start with uh Roberts","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=559s"},{"start_seconds":568,"text":"list of concerns where should we start um I think we can start with that table","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=568s"},{"start_seconds":575,"text":"um yeah with this one um I I like I think overall the nap looks pretty decent","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=575s"},{"start_seconds":584,"text":"um however just had many questions related to technical details um like personally I was not familiar","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=584s"},{"start_seconds":591,"text":"with the link drops um and uh so there were questions uh like I think the first","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=591s"},{"start_seconds":599,"text":"one like for instance why they have to add the public key into the contract account and so on","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=599s"},{"start_seconds":607,"text":"um I think we fixed um many of the uh of our comments and um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=607s"},{"start_seconds":616,"text":"still there are a few ones to unresolved ones I'm not sure how to proceed from","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=616s"},{"start_seconds":623,"text":"this point as we have probably the first session in this format I would start with probably the most uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=623s"},{"start_seconds":633,"text":"like important one uh I think this is the number seven and um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=633s"},{"start_seconds":640,"text":"it's something still not resolved so we have a few options how to define the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=640s"},{"start_seconds":648,"text":"claim method API properly so there are a few our considerations like uh backward","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=648s"},{"start_seconds":656,"text":"compatibility with the existing contracts and also this is like one side of the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=656s"},{"start_seconds":664,"text":"things another side is that the methods should be um like agile or something like uh good for","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=664s"},{"start_seconds":673,"text":"standard you know so we shouldn't over standardize that from my opinion and so we still have a few um options we can go","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=673s"},{"start_seconds":681,"text":"uh to the options on the GitHub probably then just uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=681s"},{"start_seconds":689,"text":"proposed a few cases in the last comment so basically um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=689s"},{"start_seconds":696,"text":"I think my proposal also Ben agrees that we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=696s"},{"start_seconds":703,"text":"probably could uh use Justine promise as a return type and I'm not sure whether","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=703s"},{"start_seconds":712,"text":"vlads maybe you know I agree with it or other members of this let me comment on","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=712s"},{"start_seconds":721,"text":"it like Pro promise is a pack from the point of view yeah it's all back of the client so defining a promise doesn't","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=721s"},{"start_seconds":729,"text":"mean we Define anything which means we don't Define how to even reason about the success of the execution","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=729s"},{"start_seconds":738,"text":"um there which is the whole point of the whole discussion is to what is like successful uh result and what is the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=738s"},{"start_seconds":747,"text":"failure result because currently it's misaligned the near uh link drop uh convert the the Legacy one","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=747s"},{"start_seconds":756,"text":"um or operates in an assumption that the Panic would happen that the transaction","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=756s"},{"start_seconds":762,"text":"will fail uh if the uh if something goes wrong um while uh key Palms implementation as","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=762s"},{"start_seconds":771,"text":"far as I understand needs to actually commit some changes to the storage so it cannot afford uh to panic and revert all","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=771s"},{"start_seconds":780,"text":"the changes down to the storage which was the main reason for Ben 2 uh align","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=780s"},{"start_seconds":787,"text":"the existing interface with like the other method called claim and read account which actually just Returns the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=787s"},{"start_seconds":795,"text":"value through uh Boolean value as a result so","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=795s"},{"start_seconds":802,"text":"is compatibility to be honest I I I'm I'm fine with Boolean I'm fine with any other value I want to understand what","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=802s"},{"start_seconds":811,"text":"would be the pass forward if we break the API or like or do we want to keep the Legacy","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=811s"},{"start_seconds":820,"text":"contracts as is and then introduce a separate like candle handlers for for","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=820s"},{"start_seconds":827,"text":"going forward but do you have uh yeah this is this is probably the only the only comment that I'm that I'm like not","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=827s"},{"start_seconds":835,"text":"entirely 100 sure how to proceed with um you know just the unfortunate reality I mean just for some context on on the key","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=835s"},{"start_seconds":843,"text":"Palm side like uh we we've hyper optimized all the link traps so that one a key is used uh and deleted uh because","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=843s"},{"start_seconds":850,"text":"when you when you create a link drop you pay way more than what you actually use in terms of allowance on the key you're paying for the pessimistic allowance and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=850s"},{"start_seconds":859,"text":"so you you know let's say you attach 100 Tera gas to the transaction you have to have an access key with like 171 pair of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=859s"},{"start_seconds":867,"text":"gas worth of allowance um and you're only ever really going to be using like you know 30 40 Tera gas and so you know you're you're paying for","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=867s"},{"start_seconds":874,"text":"like five times more than what you actually use and so on our contract um we refund","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=874s"},{"start_seconds":882,"text":"um the unused allowance but in in the accounts try like in the state in the runtime we don't have access to the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=882s"},{"start_seconds":889,"text":"access Keys uh allowance at runtime like the signers public key we only have the public key but we don't have the allowance um and you know I tried to make an NEP","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=889s"},{"start_seconds":897,"text":"for this to expose this in the runtime which would remove our need our our need to not panic um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=897s"},{"start_seconds":905,"text":"but it it you know it didn't go through um so you know I'm more aligned and you know there's a ton of security implications here too because you can't","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=905s"},{"start_seconds":913,"text":"you there's no way for you to ensure that a contract won't Panic uh which is something that we're working towards um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=913s"},{"start_seconds":920,"text":"fixing so I you know I'm I'm probably fine um to to like keep on for for some more","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=920s"},{"start_seconds":929,"text":"context we're going to be refactoring like basically the entire contract and in the next couple of a couple of months um so you know I'm I'm fine with","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=929s"},{"start_seconds":938,"text":"bringing back the introduction of of panics the like I mean the only the only thing is that you know you have all of these outgoing cross-contract calls you","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=938s"},{"start_seconds":946,"text":"know and like I'm a I'm I assume the worst case scenario which is like a link drop with I don't know five different fungible tokens and I don't know three","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=946s"},{"start_seconds":954,"text":"different nfts and some near and stuff and so you got all these outgoing you know receipts all this stuff happening all these cross-contract calls all these","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=954s"},{"start_seconds":961,"text":"assets being transferred and how do you determine the validity of that without um or the success of that without","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=961s"},{"start_seconds":968,"text":"bogging down your bogging down your contract and I would argue that um the success of outgoing assets like","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=968s"},{"start_seconds":976,"text":"nfts and fungible tokens should probably be handled on the client side um the the only the and and as I mentioned here in this comment the only","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=976s"},{"start_seconds":984,"text":"annoyance is the near value because it's it's less hard um or it's it's harder to determine the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=984s"},{"start_seconds":992,"text":"success of that when you're claiming to an existing account when you're claiming to a new account it's it's fine because I mean you can just check if the account","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=992s"},{"start_seconds":998,"text":"was created and has the balance but if you're claiming to an existing account and I don't know you it's it's a one-year link drop","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=998s"},{"start_seconds":1006,"text":"um you know what do you do you check the account balance before and then after but you know there's no guarantee that you know the one near came from your","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1006s"},{"start_seconds":1013,"text":"link drop contract um unless you like sift through receipts and stuff and like it's just a mess um and so yeah the only annoyance is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1013s"},{"start_seconds":1021,"text":"claiming to an existing account with near everything else I think should be handled on the client side uh which is why out of my three options you know","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1021s"},{"start_seconds":1030,"text":"there was the simple promise um or just like kind of don't Define the return type or don't at least in this NEP don't worry about success value","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1030s"},{"start_seconds":1038,"text":"leave it to the client or a Boolean indicating whether or not like all the transfers were successful so you're just like you know call all back uh and check","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1038s"},{"start_seconds":1046,"text":"if you know any of the results were were a failure and then just return false or whatever uh or just you know return a Boolean and only care about the near","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1046s"},{"start_seconds":1054,"text":"value those are kind of like the options that I uh thought about but yeah it's kind of a tricky one because you have all these like and you know you might have assets","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1054s"},{"start_seconds":1062,"text":"down the line where it's like partial success or you know partial this or partial that and it's just kind of complicated","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1062s"},{"start_seconds":1070,"text":"yeah I think we cannot disregard the fact that uh partial um assets transfers will happen because","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1070s"},{"start_seconds":1077,"text":"uh we don't control all that stuff and it could fail for various reasons and we cannot revert uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1077s"},{"start_seconds":1087,"text":"those that were already transferred so it just in indefinite amount of uh gas we would","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1087s"},{"start_seconds":1096,"text":"have this problem Robert yeah so if you scroll up a little bit I just want to share that you know I have an opinion","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1096s"},{"start_seconds":1104,"text":"about about that right so I mean like the moment my main","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1104s"},{"start_seconds":1115,"text":"motivation is for like adding a concrete value um for the return it's really for","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1115s"},{"start_seconds":1122,"text":"composability I mean panicking is different like you know than composability so here in claim","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1122s"},{"start_seconds":1131,"text":"when I as a contract for example if one contract would like to claim for another contract okay","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1131s"},{"start_seconds":1139,"text":"I don't provide the values I'm claiming I provide like the same ID or the queue within it right","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1139s"},{"start_seconds":1147,"text":"um so so think about it like in this way um is it possible right that","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1147s"},{"start_seconds":1155,"text":"um I will sign the message uh send that message to contract a and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1155s"},{"start_seconds":1163,"text":"that contract a will do the claim contract","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1163s"},{"start_seconds":1170,"text":"or like are there any other that's not that's not possible with this NEP because it's defined that the the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1170s"},{"start_seconds":1179,"text":"access key should be limited access key and only point to the link drop contract so you would never sign a transaction where the receiver is not the link drop","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1179s"},{"start_seconds":1187,"text":"contract I think it doesn't construct it with what they say","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1187s"},{"start_seconds":1194,"text":"so I will sign the message I mean user right we send a message but it will send that message to the contract a and then","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1194s"},{"start_seconds":1203,"text":"contract a will do we'll call it okay it will still work right because the signature is the same and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1203s"},{"start_seconds":1211,"text":"the and the ninja verifies like the signs it doesn't verify who's the predecessor yeah but but the signer can","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1211s"},{"start_seconds":1219,"text":"only execute transactions on the link drop contract because they only have a limited access key well it depends on the client who set up","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1219s"},{"start_seconds":1228,"text":"the link drop but yeah at least in this NEP it's it's defined that um that you should like the the the the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1228s"},{"start_seconds":1236,"text":"predecessor should be the signer or sorry the predecessor should be the current account in this NEP I think I wrote that as a restriction no just","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1236s"},{"start_seconds":1244,"text":"saying it doesn't it doesn't make a restriction and it's in my opinion it would be interesting we have to allow that kind","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1244s"},{"start_seconds":1252,"text":"of exercise so like a composability I think that would be a different nap and I wouldn't document to make it too","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1252s"},{"start_seconds":1260,"text":"generic since we don't provide the value in the plan it provides an install pack right so also I'm just looking back to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1260s"},{"start_seconds":1267,"text":"do some registration some like I know balance keeping I guess it's not necessarily yes what how was sent so if","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1267s"},{"start_seconds":1275,"text":"you return the value to that constraint oh all right we lost you","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1275s"},{"start_seconds":1284,"text":"Robert to be honest that was to be honest that was the reason why I","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1284s"},{"start_seconds":1291,"text":"finally thought that to promise would be okay because we have so many ideas how to define a better return value and all","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1291s"},{"start_seconds":1300,"text":"these cases are pretty specific like Boolean would be enough string or the whole list of all transferred assets so","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1300s"},{"start_seconds":1308,"text":"we used to get the rest status how many statuses are we going to have and backward compellability compatibility","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1308s"},{"start_seconds":1317,"text":"um and the final thought is that we probably are running out of time boxes defined by this meeting and we probably","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1317s"},{"start_seconds":1324,"text":"had had we have to had a separate meeting only for this function you know to but yeah I agree also real quick uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1324s"},{"start_seconds":1333,"text":"Robert just to clarify so there's no confusions this NEP does Define that the predecessor of claim and create account claim must be the current account that's","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1333s"},{"start_seconds":1341,"text":"written into the standard and I also want to make sure that we are not keeper optimizing for super genetic","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1341s"},{"start_seconds":1350,"text":"use case which we don't know even if it exists for four years we have a link drop which works very well","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1350s"},{"start_seconds":1358,"text":"and it only assumes that the users the the the users will interact with the contract of the link drop through the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1358s"},{"start_seconds":1367,"text":"wallet so without like intermediate contracts involved there so please let's not assume that we will like build the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1367s"},{"start_seconds":1375,"text":"link drop as a part of some other flow because link drop is onboarding tool and we want to keep it this way we don't","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1375s"},{"start_seconds":1383,"text":"want to make it right so this is like my suggestion right sorry my internet connection is not stable can you hear me yeah yeah","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1383s"},{"start_seconds":1392,"text":"okay I must feel like it's yeah it should be good like that's dropping me off so I mean what I wanted to say is that you know I don't see like any","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1392s"},{"start_seconds":1400,"text":"reason why we should like be restricted and in my opinion it's not that complex to basically add the return type it's","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1400s"},{"start_seconds":1408,"text":"like it doesn't make like the whole the whole process of implementing the simple version as it is down down by the by the by the link","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1408s"},{"start_seconds":1417,"text":"drop or the key pump uh more difficult so me personally it's like kind of a","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1417s"},{"start_seconds":1424,"text":"no-brainer that's just written the value so we unlock all the use cases in the future well that's what Ben suggests my concern","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1424s"},{"start_seconds":1433,"text":"was that the existing link drop contract panics uh if if something goes wrong and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1433s"},{"start_seconds":1440,"text":"keep on contract returns false and doesn't panic so the wallets","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1440s"},{"start_seconds":1447,"text":"now needs need to somehow what is actually the failure case","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1447s"},{"start_seconds":1454,"text":"and we need to Define it as a standard right but you know I it's it's like more like no finding what should be the right","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1454s"},{"start_seconds":1462,"text":"written value and and I don't think like it's it's like it's really complex that has the whole","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1462s"},{"start_seconds":1470,"text":"implementation like it's something that it's easy to update and yes I agree we should probably have","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1470s"},{"start_seconds":1480,"text":"a separate call about this um and and maybe maybe uh I'll just provide my two cents and then and then we'll we'll move on I was just gonna say in my eyes","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1480s"},{"start_seconds":1487,"text":"there's two sort of panics uh or two um unsuccessful cases one is you know you you call you you try to claim something that's already been claimed or","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1487s"},{"start_seconds":1496,"text":"anything kind of like malicious or or out of the ordinary and then there's also the case where um you know the the assets were not","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1496s"},{"start_seconds":1503,"text":"successfully transferred um like everything went well you have a valid link drop everything was fine but the assets didn't get transferred properly either you know you I don't","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1503s"},{"start_seconds":1512,"text":"know maybe you you didn't deposit storage on the user's account or something happened uh for fungible tokens or I don't know the nfts I don't","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1512s"},{"start_seconds":1519,"text":"know something like that uh or the you know something weird right uh and there's kind of like two areas um but yeah let's let's let's maybe move","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1519s"},{"start_seconds":1528,"text":"on um and let's let's uh let's can this for now and talk about it and another discussion because I don't you know I've","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1528s"},{"start_seconds":1535,"text":"got a hard stop soon so yeah just real quick uh we have two more unresolved so","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1535s"},{"start_seconds":1543,"text":"just minor issues uh I marked them as a result uh one is uh the octaneer field","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1543s"},{"start_seconds":1551,"text":"name in the structure and uh another one for you just you yes","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1551s"},{"start_seconds":1558,"text":"yes go go back to the previous slide already yeah and if","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1558s"},{"start_seconds":1566,"text":"yeah balance the number item number three is unresolved it's almost resolved I just marked it like unresolved so we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1566s"},{"start_seconds":1574,"text":"could uh quickly fix it and another one is unclear how to distribute gas yeah","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1574s"},{"start_seconds":1582,"text":"and the um actually the discussion about required gas field was not marked as","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1582s"},{"start_seconds":1588,"text":"resolved on GitHub and so I just want to make sure that we are in the same plate like we are okay if the balls required","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1588s"},{"start_seconds":1596,"text":"gas field yeah it it was resolved so your all are okay about it and we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1596s"},{"start_seconds":1604,"text":"fixed the comment and it's enough yeah all right so let's mark it as resolved and then the balance one uh we I I","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1604s"},{"start_seconds":1612,"text":"changed it to iacto near under underscore yeah yeah yeah I just left the final uh final uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1612s"},{"start_seconds":1620,"text":"comment that that you use uh camel case and it's not like in the name naming convention so we probably want to use","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1620s"},{"start_seconds":1628,"text":"yeah I switched it to all lowercase um all right maybe a couple minutes ago so okay or you can mark it as a result as well","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1628s"},{"start_seconds":1636,"text":"but we have just one result issue which is pretty significant one I think","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1636s"},{"start_seconds":1645,"text":"yeah let's move on to the next slide yeah let's move on okay","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1645s"},{"start_seconds":1651,"text":"uh Robert do you have anything else that you feel like our like we definitely","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1651s"},{"start_seconds":1659,"text":"need to address before we move with approving the snap I mean yeah I see I see a lot I mean","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1659s"},{"start_seconds":1668,"text":"but yeah sorry based on what I've seen and I was","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1668s"},{"start_seconds":1675,"text":"checking it yesterday like midday European Time and all of that was not result so I mean one General comment is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1675s"},{"start_seconds":1683,"text":"that would we agree I mean don't take me wrong I think like you know the whole standard is good it's like you know well thought but like","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1683s"},{"start_seconds":1692,"text":"one General comment is that it would be great if you know like the outer like really cleans out all of that stuff","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1692s"},{"start_seconds":1700,"text":"right so there were like a few comments which were marked as resolved but then not updated in the in the net itself just uh just to to stab you real quick","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1700s"},{"start_seconds":1709,"text":"everything here has been resolved except for the panic in the query function and uh clear up documentation by the way","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1709s"},{"start_seconds":1717,"text":"thank you right so","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1717s"},{"start_seconds":1724,"text":"I think we also like the fact that that you know this get key balance they have to remove it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1724s"},{"start_seconds":1732,"text":"um all right I mean when I was checking it yesterday was not removed and like the decision to remove it was I guess like two or three weeks ago if I","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1732s"},{"start_seconds":1739,"text":"understand correctly Ben said that just it was just updated yeah I mean it would have been updated like a couple weeks ago but you know there was there was a ton of comments","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1739s"},{"start_seconds":1748,"text":"kind of like in the last couple days and so I've been sort of scrambling to get those all in um but yeah everything here should be","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1748s"},{"start_seconds":1755,"text":"should yeah except except for the the panic and the documentation the documentation of the linting errors I will get to just I","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1755s"},{"start_seconds":1764,"text":"cannot right now because I'm underwater it'll be post consensus and that's not really that big of a deal in my opinion um uh but it will it will be done the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1764s"},{"start_seconds":1771,"text":"the bigger one is the Panic which I mean I think everyone's come to a conclusion except for Robert uh about the panic I think that you might still have opinions","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1771s"},{"start_seconds":1779,"text":"about that I don't know Matt myself Vlad and some other people I've talked to are fine with the panic but yeah maybe we can talk about that if that's a huge","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1779s"},{"start_seconds":1788,"text":"blocker for you Okay so okay so let's move only quickly like give you the motivation maybe someone","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1788s"},{"start_seconds":1795,"text":"will change the mind but if no no one would change the mind let's go with my charity um so in my opinion like again similar","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1795s"},{"start_seconds":1803,"text":"as I mean I posted already in a few places I think about it as NST that's NXT panics if you query for a refundable","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1803s"},{"start_seconds":1812,"text":"token phonics query functions usually don't panic that's like one of the different principles","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1812s"},{"start_seconds":1820,"text":"so that's why I'm against it like you know again looking from the composibility perspective","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1820s"},{"start_seconds":1827,"text":"right uh if I'm acquiring something I don't expect it will Panic it's like Panic is unusual situation","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1827s"},{"start_seconds":1836,"text":"situation that you know like we should not be able to handle right so now think about it I think we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1836s"},{"start_seconds":1845,"text":"need to return sorry for interrupting you uh now think about it I think we we need to return an option type so basically in JavaScript","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1845s"},{"start_seconds":1852,"text":"world will be undefined or null that was that was my initial um sort of inkling and and I commented","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1852s"},{"start_seconds":1860,"text":"that but the problem is that there's a ton of wallets and applications and everything that assume a panic","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1860s"},{"start_seconds":1867,"text":"um and so like from the backwards compatibility standpoint it'll be uh it'll be kind of annoying um you know because if it doesn't panic","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1867s"},{"start_seconds":1875,"text":"then they'll assume that it exists and then they'll try to render and it'll lead to weird behaviors because they assume that if it panics that's the case where it doesn't exist and you know","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1875s"},{"start_seconds":1883,"text":"everything's good um and so this is why I've written it this way just because are we sure that","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1883s"},{"start_seconds":1890,"text":"sorry are we sure like this is really the case of the implementation in the wallets because really it's an anti-patter it's like yes I'm worried","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1890s"},{"start_seconds":1900,"text":"basically like this pattern will be propagated in like many places like you know there will be another implementation I mean not the league drop but you know","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1900s"},{"start_seconds":1908,"text":"something else and this query functions will panic and again","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1908s"},{"start_seconds":1916,"text":"yeah we probably shouldn't take it as a president so I would consider it to add a comment that it was a compatibility","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1916s"},{"start_seconds":1924,"text":"decision to keep a panic there the problem is that the link drops have been in the wild for so long and there is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1924s"},{"start_seconds":1931,"text":"like no there has not been a standard for years and so all of these apps are building off of the assumption that it will panic and so I would like to keep","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1931s"},{"start_seconds":1940,"text":"it that way I don't think it's that big of a deal like it's not a huge you know like you can like yeah you probably should return null but for the case of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1940s"},{"start_seconds":1948,"text":"backwards compel compatibility I would prefer to keep it that way actually Ben given that we introduce a","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1948s"},{"start_seconds":1954,"text":"new method name uh okay can we can we use in like yes in the new in the new one um that's a good idea actually Vlad","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1954s"},{"start_seconds":1963,"text":"is in the new one we can probably return uh a null or an option of key info but in in the Legacy uh balance","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1963s"},{"start_seconds":1971,"text":"um method then okay I I'm in agreement with that well also to be honest guys I","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1971s"},{"start_seconds":1980,"text":"recently tried to find also like make yeah we have we have a lag","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1980s"},{"start_seconds":1987,"text":"may say that just makes sense yeah uh to be honest uh go on yeah I I try to find whether the panic","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1987s"},{"start_seconds":1997,"text":"in the view method is kind of an anti-pattern or is not suggested to be honest I haven't found any","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=1997s"},{"start_seconds":2004,"text":"explicit mentioning about it so I know what Robert is talking about we know fungible token maps and they are just","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2004s"},{"start_seconds":2013,"text":"return zero and so on but after the second thought uh it's it's probably not","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2013s"},{"start_seconds":2020,"text":"an entire pattern we can decide we can discuss but I don't think I mean","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2020s"},{"start_seconds":2029,"text":"yeah don't you think that you know like in general in in software engineering you know exceptions are","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2029s"},{"start_seconds":2038,"text":"should be exceptional I mean do in the exceptional situation I mean for me","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2038s"},{"start_seconds":2045,"text":"um maybe that's like the way how I was programming or you know interacting with it yeah I think this is usually in","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2045s"},{"start_seconds":2052,"text":"software we were trying to avoid panics usually yes but so it's like","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2052s"},{"start_seconds":2076,"text":"okay anyway um let's go I think we can continue I think we reach the consensus here um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2076s"},{"start_seconds":2083,"text":"okay so okay I guess so um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2083s"},{"start_seconds":2089,"text":"oh go ahead Robert yeah yeah can you go back to one side","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2089s"},{"start_seconds":2099,"text":"right so in fact like uh another thing which is like two things which are missing now like uh private","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2099s"},{"start_seconds":2106,"text":"crystallization to be honest I'm against like using um proposed Bosch serialization again it's been resolved","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2106s"},{"start_seconds":2113,"text":"so please please go back and and look at look at the GitHub because it's been updated everything here has been up okay except for the two that I mentioned before","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2113s"},{"start_seconds":2121,"text":"and the registration pattern was also resolved that is correct how did you resolve the registration","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2121s"},{"start_seconds":2129,"text":"pattern I put it into the security implications saying that if it's a fungible token drops or any sort of drop that requires some sort of prerequisite","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2129s"},{"start_seconds":2136,"text":"that you should ensure to you know do that for example uh registering the new user","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2136s"},{"start_seconds":2144,"text":"yeah just in the interests of time to move forward we need to have two-thirds majority these are the old um voting indications from the comments","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2144s"},{"start_seconds":2153,"text":"and obviously they were prior to the discussion that we just had so they're not very clear in terms of how everyone is leaning so I guess","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2153s"},{"start_seconds":2161,"text":"um can we like Vlad would you like to try to summarize sort of for on the group if you want to go around and have everyone kind of say I I I think I have","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2161s"},{"start_seconds":2169,"text":"a proposal here uh so it just for for the sake of uh time uh and we had a pretty extensive discussion already and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2169s"},{"start_seconds":2179,"text":"it seems like only one one um uh click the the claim method um return value concern is still not","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2179s"},{"start_seconds":2187,"text":"addressed and we we need to erect some disk decision there but other than that it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2187s"},{"start_seconds":2194,"text":"seems like the we are on the right track to approve the nap and I'm I still lean towards approving","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2194s"},{"start_seconds":2202,"text":"the snap this is my uh like believe that this this snap is is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2202s"},{"start_seconds":2209,"text":"critical and we need to have it um if there are some like foreign cases we need to address them but I'm I'm","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2209s"},{"start_seconds":2218,"text":"going to push it Forward I don't think we need another call and to do it and discuss it once again we will just do it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2218s"},{"start_seconds":2225,"text":"uh in in the in the pull request itself so once we arrive to the decision","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2225s"},{"start_seconds":2232,"text":"um I I like I will I will uh reach out to all the I can drive it I will reach out to all the working group members and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2232s"},{"start_seconds":2240,"text":"confirm that everything is good and ask you to post the uh it as a message uh to the pull request and after that we will","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2240s"},{"start_seconds":2249,"text":"just merge the pull request without having another call for it um how does this sound to you guys","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2249s"},{"start_seconds":2258,"text":"Alex yep um Robert the term uh yeah it doesn't make sense I mean I","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2258s"},{"start_seconds":2267,"text":"wouldn't basically like refer that we approved with now yes because yeah I think we are not ready","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2267s"},{"start_seconds":2277,"text":"no yeah it does not saying that I didn't know we just agree that you know at least one critical thing is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2277s"},{"start_seconds":2285,"text":"missing so formally it's not approved but uh as you said it's it's supposed to be there","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2285s"},{"start_seconds":2292,"text":"sure cool so are we saying okay do you feel like uh we need","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2292s"},{"start_seconds":2302,"text":"to make any major turns here or are we good here got some","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2302s"},{"start_seconds":2309,"text":"minor concerns about security implication basically I want some","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2309s"},{"start_seconds":2317,"text":"implications to be specified more clear but it's not as","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2317s"},{"start_seconds":2323,"text":"much about the standard itself but rather like the text just for just for some some more context","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2323s"},{"start_seconds":2332,"text":"I've I think I've addressed all of the concerns that you brought up could you please let me know um because you said I didn't I didn't mention anything about you know ensuring","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2332s"},{"start_seconds":2341,"text":"that you can't duplicate assets for a key or whatever uh like you can't try to take the same key and use it could you","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2341s"},{"start_seconds":2348,"text":"sing and things not duplicating assets I think the current text is very unclear","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2348s"},{"start_seconds":2356,"text":"it says only one key associated with the given assets like what you could send","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2356s"},{"start_seconds":2363,"text":"one nft and then create multiple and drop with different Keys pointing to the same and after this","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2363s"},{"start_seconds":2370,"text":"obviously should be protected against but what I was thinking is a different things like suppose that you create a","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2370s"},{"start_seconds":2380,"text":"new link drop with the same key as an existing one and if the implementation doesn't check for this then it will","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2380s"},{"start_seconds":2388,"text":"basically overwrite the Alden drop like destroy it and let and have a new link drop in its place and this is not good","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2388s"},{"start_seconds":2397,"text":"because an attacker could just basically destroy which falling drops and Destroy","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2397s"},{"start_seconds":2404,"text":"they don't need the private key to do it yeah I get what you're saying I think um like maybe something to consider is is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2404s"},{"start_seconds":2413,"text":"like whether we standardize the creation of Link drops or standardize like the claiming of Link shops and I think that that might fall more under the the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2413s"},{"start_seconds":2421,"text":"category of the creation step like make sure you can't create multiple link drops with the same public key or you know make sure they don't get","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2421s"},{"start_seconds":2428,"text":"overwritten but that I don't really think that's the purpose of this standard like in my eyes this is once you have link drops in the wild","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2428s"},{"start_seconds":2435,"text":"regardless of where they came from how do I claim them um but yeah I mean like it's not that big of you I could probably write that","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2435s"},{"start_seconds":2443,"text":"in because it is like you know it does pertain to link traps as a whole um yeah I I don't think that it's that","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2443s"},{"start_seconds":2450,"text":"that far of a fetch uh to to do that so I'm fine with with that but just to take into consideration that this I don't","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2450s"},{"start_seconds":2457,"text":"know if this is more so for creation or like claiming you know what I mean so but yeah I'll write that in yeah but I think that security","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2457s"},{"start_seconds":2465,"text":"considerations should be a bit wider so it's right that this issue is regarding","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2465s"},{"start_seconds":2473,"text":"the creation and we don't have a standard which means we just don't have a specific convention like specific","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2473s"},{"start_seconds":2479,"text":"method name specific way but still if we have a link drop standard we obviously expect them to be created","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2479s"},{"start_seconds":2488,"text":"somehow so we that's that's a good point oh I'll write that in I have a hard stop so I have to go unfortunately","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2488s"},{"start_seconds":2497,"text":"um thank you everyone um I guess we'll talk asynchronously on on GitHub yeah thanks so much ben appreciate all your work on this","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2497s"},{"start_seconds":2506,"text":"thank you all right see you later yeah and so let me just summarize it uh so we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2506s"},{"start_seconds":2512,"text":"are on the same page we are all very close to we are close to the we are uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2512s"},{"start_seconds":2520,"text":"uh all agree that this snap is necessary and we want to uh see it merged so and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2520s"},{"start_seconds":2528,"text":"we believe that only one unresolved issue is there that we will all work asynchronously uh and uh arrive to some","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2528s"},{"start_seconds":2537,"text":"decision uh so we are not approving the snap yet but we are not rejecting it we","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2537s"},{"start_seconds":2544,"text":"will just uh have it approved uh through the pull request discussion on GitHub","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2544s"},{"start_seconds":2553,"text":"is that okay it was everybody if so let's just thumbs up and move on to the next","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2553s"},{"start_seconds":2561,"text":"I'm good all right awesome we will move on to the other nap","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2561s"},{"start_seconds":2569,"text":"right now um just so that we can um give it the time it deserves as well so next is uh nip 469 uh at nft metadata","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2569s"},{"start_seconds":2578,"text":"update event to nip 171 uh the author of this step was unable to uh make the call La Clan so I asked evgeny to summarize","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2578s"},{"start_seconds":2587,"text":"the net on the author's behalf so Evgeni so the idea is simple we already have","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2587s"},{"start_seconds":2596,"text":"contract metadata and contract metadata update event and we have nft metadata","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2596s"},{"start_seconds":2604,"text":"and so they what the snap ads is an event when nft metadata is updated","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2604s"},{"start_seconds":2612,"text":"the purpose is to allow tools to track changes to nft metadata because there is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2612s"},{"start_seconds":2621,"text":"no standardized way how it's stored it's basically an implementation detail of","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2621s"},{"start_seconds":2627,"text":"the nft contract so without an event those tools will need to query an","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2627s"},{"start_seconds":2635,"text":"optimeter data potentially every block on every nft to just to know if it changed and this is","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2635s"},{"start_seconds":2643,"text":"not really practical so the idea is that instead they could watch for this event","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2643s"},{"start_seconds":2650,"text":"and query the metadata only when this event is triggered and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2650s"},{"start_seconds":2658,"text":"for this reason this event have actually only includes nft IDs and not the metadata itself because once you know","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2658s"},{"start_seconds":2667,"text":"that metadata change you can just use the view method to query it this way all","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2667s"},{"start_seconds":2676,"text":"the tools like wallets explorers whatever could watch for this event query the metadata only once the S7","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2676s"},{"start_seconds":2685,"text":"happens and the Seven tells that nft metadata changed for specific tokens","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2685s"},{"start_seconds":2696,"text":"awesome thank you for for that great summary uh so yeah this map also had um some discussion on GitHub and I'd","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2696s"},{"start_seconds":2704,"text":"love to invite Robert if you're still there to maybe give some a quick summary of some of the benefits and concerns before we get to the actual votes","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2704s"},{"start_seconds":2711,"text":"I think it's neither like it's really missing I mean like the event is something that people want to observe but on the other hand like we should not","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2711s"},{"start_seconds":2719,"text":"bloat event with all possible data right like copy it because indexers have the access to the to the chain so I think that was like","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2719s"},{"start_seconds":2728,"text":"the only thing I was discussing there right so um so it's really about like you know what and how we want to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2728s"},{"start_seconds":2736,"text":"um to to notify and then um not copying everything because it's also like creates a bad pattern in","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2736s"},{"start_seconds":2744,"text":"my opinion like if you standardize something you know it's something that you know people will learn from and people will","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2744s"},{"start_seconds":2751,"text":"replicate in in maybe um more customs in more custom","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2751s"},{"start_seconds":2758,"text":"um contracts or more custom applications right so I think like the only issue I had there is it's like putting too much","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2758s"},{"start_seconds":2766,"text":"into the yeah either itself uh just to mention that uh eviani","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2766s"},{"start_seconds":2775,"text":"actually brought a very good point that it this this snap helps uh the quality system of indexers to implement a more","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2775s"},{"start_seconds":2783,"text":"efficient way to keep track of the the existing nfts uh who that were issued","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2783s"},{"start_seconds":2789,"text":"before but then changed over time and there were different ideas and different reasons why that could happen and given","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2789s"},{"start_seconds":2797,"text":"that we already have the contract metadata update event it was natural to add another one to track the individual","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2797s"},{"start_seconds":2805,"text":"nft um metadata updates so if if a URL to to the resource has changed or","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2805s"},{"start_seconds":2814,"text":"something else inside the metadata has changed there is a chance to flag it from the contract to all the indexers","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2814s"},{"start_seconds":2823,"text":"out there by emitting this new type of event the standardized now and part of the map uh 171.","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2823s"},{"start_seconds":2833,"text":"um given that it's a non-breaking change it was easy to buy in and let it be there","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2833s"},{"start_seconds":2841,"text":"for whoever needed it's very hard to enforce though so they when we come to the concerns part uh there is already","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2841s"},{"start_seconds":2850,"text":"existing Foundation of um of of contracts or can you uh go to the next slide please","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2850s"},{"start_seconds":2859,"text":"uh so yeah uh the Legacy contracts out there don't support this method uh but they","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2859s"},{"start_seconds":2866,"text":"um hope is that going forward with more uh contracts appearance Network they will actually pick it up and the index","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2866s"},{"start_seconds":2874,"text":"service lives will be much easier going forward and they will need to maintain a custom Logic for all the new uh","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2874s"},{"start_seconds":2883,"text":"contracts they will probably be forced to maintain some heuristics for the old contracts for example not all the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2883s"},{"start_seconds":2892,"text":"contracts need to be updated they need to will leverage the fact that the nft could be updated on the contracts only","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2892s"},{"start_seconds":2900,"text":"mint them and never update uh it's I believe that most of them actually these days um","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2900s"},{"start_seconds":2908,"text":"and the other the only concern that was there in the very beginning that uh nft","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2908s"},{"start_seconds":2914,"text":"underscore update was the event name and it was ambiguous uh so the proposal was","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2914s"},{"start_seconds":2921,"text":"approved to to change it to nft underscore metadata underscore update name otherwise no other concerns were rised","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2921s"},{"start_seconds":2931,"text":"on this pull request of this map extension and yeah I believe all the working group","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2931s"},{"start_seconds":2939,"text":"members were uh agree in agreement that it's good to have and we can merge it uh approve it now but uh yeah we are ready","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2939s"},{"start_seconds":2948,"text":"to vote um we have all the um indications already posted on the GitHub","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2948s"},{"start_seconds":2958,"text":"um let me know like if if anybody from the working group has any concerns","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2958s"},{"start_seconds":2965,"text":"um do you want to speak now or you're proven it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2965s"},{"start_seconds":2972,"text":"approved um yeah so maybe I think it's better now just wanted to let you know yes sir there's one I'd like to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2972s"},{"start_seconds":2979,"text":"basically repeat like you know I added the comments about that manual Shield basically to raise the concern but this is like a side comment more about like","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2979s"},{"start_seconds":2987,"text":"thinking forward yes about it but yes uh 100 approving","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2987s"},{"start_seconds":2994,"text":"oh all right it was quick yeah that was an easier one","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=2994s"},{"start_seconds":3003,"text":"for sure nice to end with a good with a good uh with the decision so all right uh we will uh summarize the the next","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3003s"},{"start_seconds":3012,"text":"steps on this snap and also on the other one after this call normally we would open it up to q a but since we're short on time I guess um if you have any","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3012s"},{"start_seconds":3020,"text":"questions please drop them in the chat box and we can come back to it uh but really I just want to say a huge thank","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3020s"},{"start_seconds":3027,"text":"you to uh everyone who was involved in both of these naps uh you know the the authors the the all the subject matter","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3027s"},{"start_seconds":3036,"text":"experts uh the work group members uh it takes a lot of efforts and thoughtfulness to arrive to these","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3036s"},{"start_seconds":3043,"text":"decisions for the ecosystem and I really appreciate uh the healthy discussion that we had today so just to close it off I do want to","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3043s"},{"start_seconds":3051,"text":"quickly highlight some of the ways that you can get involved in the near developer ecosystem so if you have a specific idea in mind you can submit it","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3051s"},{"start_seconds":3058,"text":"using the dev Hub or find other communities to collaborate with if you have a technical idea that you want to get integrated into the","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3058s"},{"start_seconds":3066,"text":"ecosystem or you're seeking funding you can also submit an app after posting your initial idea on the dev hub you can also view all of the naps and","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3066s"},{"start_seconds":3074,"text":"their various statuses on GitHub and join their discussions there and then if you want to join the community you can check out the the near contract","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3074s"},{"start_seconds":3083,"text":"standards a telegram community group it's a great place to connect with others you can learn more about everything that's going on in the near Dev gov org","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3083s"},{"start_seconds":3091,"text":"website and our social channels and we thank you so much for attending today's call and hope you have a good rest of your day take care","url":"https://www.youtube.com/watch?v=KOIT8XDQNjM&t=3091s"}],"youtube_url":"https://youtube.com/watch?v=KOIT8XDQNjM","url":"https://near-pedia.xyz/videos/KOIT8XDQNjM"}