Smart Assets / AssetScript documentation


where can I find a documentation or examples for Smart Assets?. I only found examples and documentation for smart accounts but not for smart assets?


Hello Klauss,

This feature was disabled in source code. And it won’t be released any soon.
But, it’s possible to enable and activate it in your own fork, and try it on your private blockchain.
The documentation also was removed from the site, but you can find it in old commits of waves-documentation repository.

Thanks Alexey.
Du you know, why it was disabled? Were there any problems with smart assets?

No, no problems. We’ve decided to concentrate on Smart Accounts in the upcoming release.
Also use-cases for Smart Assets are few and unclear we have to collect more of them to validate the functionality.

I think smart assets are quite important. At the moment smart assets are the only way to ensure that your token is legal compliant (by controlling 3rd party trading). If marketed right, this could be a huge usecase. It would be one of the first legal compliant frameworks in crypto space and could be used by dozens of investment fonds to start offering completely legal fonds.

That would be pretty good for waves. I really think a infrastructure where you can set up 100% legal compliant tokens is huge and would bring a lot of attention and projects to waves chain.

Our plan was to offer a security token. In Europe, Switzerland and USA, security tokens are regulated. For this we have to ensure, that only kyc verified addresses can trade the token. I think, smart assets would be very useful to offer security tokens.

1 Like

Hi all,

well, on the first view, i also thought that it is a desaster that Smart Assets have been disabled. On the second view, i’m not so sure.

  1. For the mentioned examples, like securities, i’m not even sure if a Smart Asset is a good idea. Imagine you have a new KYC verified user entering the system, wouldn’t that mean that you have to change the contract of the asset? If so, that would not be a trustless approach, because that would mean that at least one entity need to be able to change the contract and this entity needs to be trusted. Of course that could be solved by using data transactions (storing valid public keys of KYC certified participants), but you would still be limited to the amount of data that could be stored in one account. I’m not quite sure if this is limited, the documentation says: “Maximum number of entries in data transaction is 100.”, but it’s unclear to me if this is the limitation for one transaction, or a limitation of the totally storable data entries. Maybe one of the core devs could shed some light on this.

  2. As an alternative, it may be possible to (as part of the KYC process) establish a Smart Contract on the accounts of the KYC verified participants that ensures that a certain asset is only send to another account that has the same Smart Contract deployed. By this, the system should ensure that the asset (here the security) is just traded / transferred among KYC certified participants.

What are your thoughts on this?


1 Like

I think, solution 2 could be a solution. At first, I also tried solution 1, but I think there could be problems, if you have to store and check hundreds of verified public keys.
But you also have to assure that no trades on dex are possible between a verified account and a not verified account. Is this possible? Haven’t checked this yet.

In solution 2 to ensure that token could not be transferred to other non-certified account it could be initially send to an address created from hash of the address of certified account. So, to verify that the account is certified you have to hash it, build an address from that hash and check that token is present of this address.

1 Like

HI Alexey.
I’ve been studying Waves along witih a few other possible tech solutions to a project I have been working towards for a very long time. the smart contract stuff is a major step forward, but what I have been wanting to do really deals with smart assets done in a certain way.

You mention this area is diabled in the source, but possible re-enable and run on ones own private blockchain. This is of interest to me as a possible option down the road as the project could be pushing tens of thousands of transactions per second if not more if it catches on. We may have to go that direction for legal reasons anyway. The genesis of this starts from what I do for a living normally (which I won’t mention or get into here or the nature of the project exactly) and its part of what i have been evaluating different solutions for, so I am hoping you can help or point me in the right direction.
I actually got kicked off the telegram chat earlier this spring while I was trying to figure out certain platforms speed capabilites if run privately - simply for mentioning them by name and how they would compare to Waves or what Waves offered the other solutions didn’t.
Lesson learned I guess even though it was a bit of a turn off, but Waves is still a contender because of its ‘completeness’ and at least leaning towards what I want to do in the immediate future while others haven’t goten there since I started looking at them and waves a year ago. Those other solutions also are missing other stuff I feel allows for us to fast track and easily set things up for repurposing/multi-project use. They also had a lack of DEX which I aboslutely need.
Still, the missing part is smart assets and knowing more about how they would work on Waves in the context of my project. If that becomes a match, the next question simply being…Just how “fast”, fast can be with Waves using the wavesnet vs. a private blockchain run version of it and what that takes to operate at those numbers if privately run currently? If not, are there plans for it to scale to those kinds of levels?

Lennart is correct. If done right, Smart Assets can do things for people like us in north america with securities exchange commissions fumbling about when it comes to crypto currencies that we are largely cut off from. Smart Assets are a game changer when it comes to project finance and creating applications that drive long term value - giving cryptocurries greater accesss to practical application use cases by the general public and I believe is the kicker when it comes to massive wide adoption rates.
You mentioned the decision to disable smart assets came in part from a lack of use-cases for them and mention you need to collect more of them validate the functionality.
What if I told you I have about 10 of them? All spawned from a single projet concept?
Can we work something out here so you can take a look at them and I can be assured of NDA/MNDNCA?
These projects don’t require a huge amount to do and we have done a lot of it already building the needed components over the last year to give the smart assets, their functional purpose and on that front we are ready to as of this past weekend to start building out the bits that go into it in the next phase. The last part is the CC/SA/DEX solution and testing while I go about the process of putting the thing into it that drives interest. That thing though is essentially hotswappable for something else that is similar and it becomes an entirely new… well I can’t even say it withot giving it away slightly.
And that is the problem. It’s got some protections built into because of what the “thing” is, (the nature of it and its complexities and time to acquire… let’s say) and thus is not easy for just anyone to do. But there is a massive industry out there that absolutely will be looking to impliment it for their own thing of which they have and almost endless supply of that they will want apply tihs to. If they get wind of it I want to be in a position for them to come to us and get it done as a service or deal, or if they decide to go it on their own we will have done it first with first mover advantage. Plus a lot of tricks let up oursleaves. I’m actually stunned it hasn’t been done yet.
I just want to protect it so that it has the best chance of getting done right but I can’t get those answers without consulting with a platform, on the level. I don’t suppose a smart contract can sort that out?
The worst thing I could right now is sit on it because the timing of this is extremely important in order to have the maximum paradigm shifting effect. Be it us that does it some other company that does it, the pivot really comes down to execution and getting it “right” out of the gate. Your technology is the closest there is to the components I need to make it work but I need confirmation of that before proceeding. Perhaps if by knowing about these use cases I have in full, even if the tech “isn’t there yet”, we will both understand what that is and adapt to it.
It can’t work without the speed and you guys seem to be the fastest. I can’t do this on ETH that’s for sure and it was tested and proven recently. Right now its basically you guys take a look, review and I proceed now in some form, or wait to get blown by, zoomed past someone else having built a fully custom solution, focusing on the speed to get it there… they will have that, but be missing the “thing” to put in it, but know the “killer app” it becomes when someone has the right ‘thing’ and drop it in. And they will be lining up.

With that said… is it possible to discuss this stuff with Waves and how does one go about making that happen? I can imagine you have stuff thrown at you all the time sounding like this, but if you are not seeing much for use cases with Smart Assets that resulted in it being put on the back burner… I can pretty much guarantee that won’t be the case after being introduced to just one of them that I have. You know one of them, it all unlocks for anything else. You start popping them off in your head. Fair warning on that part. That also means it unlocks for a lot of others out there who can give the big industry players a run for their money and then some if they themselves a “thing” to put into it.
Like what Waves made possible for regular people being able to create their own currency… its like that. Put the two together. I think you get an idea where that can go.
Something to think about.
Let me know.