Hi
Please can you clarify for time lock policies e.g
{
"type": "after",
"slot": 54146343
},
What is the slot unit equivalent in real time say I want to set it for 3 months ?
Hi
Please can you clarify for time lock policies e.g
{
"type": "after",
"slot": 54146343
},
What is the slot unit equivalent in real time say I want to set it for 3 months ?
Hi,
1 epoch = 420000 slots
1 epoch = 5 days
1 month = 6 epochs
U will need to sum the current slot + slots for 3 month (420000 x 18 epochs)
For example, if u want to lock the policy after 3 months and if the current slot is 54146343 then
420000 slots per epoch x 18 epochs = 7560000 slots
54146343 + 7560000 = 61706343
e.g
{
“type”: “after”,
“slot”: 61706343
},
Cheers,
Thanks so much I literally could not find that anywhere in Cardano docs.
To mint a token that has to be held for one month before resale is that best placed in policy metadata or minting script do you know thank you again !
The policy lock option meaning that after that period another tokens can’t be minted/burned under that policy… so if u already know how much tokens u need to create from the begining then u don’t need to lock the policy after 3 months…
Let’s take hosky token for example
The policy is
Metadata:
Conclusion: if u want to create a fix number of tokens and u will not want to create/burn more tokens (under the same policy) then u can lock the policy imediatly…
If u want to keep minting tokens on future then u should not lock the policy imediatly (u should lock after few months or even 1 year)
Also, use "before"
, not "after"
. The logic is that this is a requirement, when tokens are allowed to be minted.
"after"
would mean that you are only allowed to start minting at that slot.
Does not make sense at the top level, but in a more complicated policy, you could say that before a certain slot this key can mint and after that slot this right goes to that other key.
Right, before
Hi ok I that helps my understanding.
Yes so the token plan is
Mint amount = 190mill > payment wallet
targetaddr (mainnet wallet ) 5 million (at time of mint)
then either
Transfer amount 5 mill every month for 3 months.
Could / should that be automated in a script else I can manually do that.
How do I calculate the fees so that I add the amount to the token amount so that I have minted round numbers ?
Can I use a normal editor on the policy.script after making the key hash I mean ?
So normal JSON format, do you use any linting apps else I use Visual Studio ?
Then, you have transferred 20 million and 170 million stay in the minting/payment address forever?
If you mint all at once you could also time lock to immediately after that minting.
I’m sure a Plutus script could do that, but I would not want to learn that with you, right now.
I’m using (n)vim with JSON syntax highlighting, but Visual Studio (Code) seems like a good choice, too.
EDIT: Oh, I forgot:
I don’t know what you mean, here. The minimal fees for the transactions and the minimal ADA that have to be sent along the tokens will always be some very non-round fraction, but that does not prevent at all that you mint and transfer round numbers of your token. You cannot pay fees in your just-invented token, anyway.
Ah ok that is good news then so the fees are lovelace the minted token will be whole numbers I now dont know why I event thought differently. ? :-
What does the policy.script syntax look like for immediate locking ?
Is it before: somepast slot number ?
{
“type”: “before”,
“slot”: 61706343
},
It’s not a special syntax. It’s just a slot number in the very near future. (But not so near that you cannot finish your work – including repairs to f’ups – in that time frame. I’d probably choose one to three days if you expect to perhaps need some answers from these forums or so.)
Slot number in the past will not work. The minting will get rejected, … because it’s policy says, it’s not allowed anymore.
BTW: The cardano-cli transaction build
will need an --invalid-hereafter
parameter with the same or an earlier slot number. At least it barked at me, when I didn’t include that. Makes some sense to ensure that the transaction will not go through if it violates the policy.
Ok noted.
Wonder is it best to mint like one test token first and check everything is there then burn it ?
I will have to test that my Mainnet connection is syncing as per my other thread first before I can do any minting. Just to add I have Deadalus wallet also running the mainnet version maybe I can try to query the tip of mainnet with that or do I need special ports ?
Its quite nerve racking with many possible variables.
So if I did equivalent 1 epoch is that 420000 slots after Epoch 314 should be ok if I add that number to current slot using explorer ?
https://explorer.cardano.org/en.html
so for example
[50620499] + 420000 =
50662499
{
“type”: “after”,
“slot”: 50662499
},
Also are there any other security recommendations or can you refer me to where I may find them ?
Also a complete list of metadata variables too please ?
Its quite nerve racking with many possible variables.
Honestly, you seem to be in quite a hurry to learn everything at once.
Hi yes I am due to mint this weekend so its how my brain is wired. Am sure there is always room for learning more, I do live that way.
Wonder is it best to mint like one test token first and check everything is there then burn it ?
You can do that. Just costs transaction fees, not more.
And everyone can see these transactions forever. But judging from the forum traffic, very few are nosy and at the same time blockchain explorer fluent enough to do it. And it doesn’t matter much.
So if I did equivalent 1 epoch is that 420000 slots after Epoch 314 should be ok if I add that number to current slot using explorer ?
5Ă—24Ă—60Ă—60=432 000, not 420 000.
so for example
[50620499] + 420000 =
50662499{
“type”: “after”,
“slot”: 50662499},
"before"
not "after"
. The policy says, when minting is allowed, not when it is forbidden.
Also are there any other security recommendations or can you refer me to where I may find them ?
There are not many security considerations when minting. You do not operate something on the Internet for a longer time, but just submit some transactions. Keep your .skey
files safe! Backup them! Best together with all the files used in the minting process. They are not big.
Also a complete list of metadata variables too please ?
https://github.com/cardano-foundation/CIPs/tree/master/CIP-0025 contains everything that is standardised up to now. I’m not aware that they treat any other variables in a special way. On pool.pm, additional elements on the top-level are just all listed as they are given in the JSON.
"before"
not"after"
. The policy says, when minting is allowed, not when it is forbidden.
Brilliant answer as standard from you Sean thanks
If am honest I am not sure I got the understanding of what you are explaining here I think you are saying to clarify then that the policy “after” because then it will be locked and no more changes after that, That sounds right as I type it
CIPs/CIP-0025 at master · cardano-foundation/CIPs · GitHub contains everything that is standardised up to now. I’m not aware that they treat any other variables in a special way. On pool.pm, additional elements on the top-level are just all listed as they are given in the JSON.
Feels very lean on what is standardised metadata tags. So everything other than whats on this list is treated as custom and does nothing on Pool.pm ?
"<policy_id>": {
"<asset_name>": {
"name": <string>,
"image": <uri | array>,
"mediaType": "image/<mime_sub_type>",
"description": <string | array>
"files": [{
"name": <string>,
"mediaType": <mime_type>,
"src": <uri | array>,
<other_properties>
So everything other than whats on this list is treated as custom and does nothing on Pool.pm ?
pool.pm shows everything else verbatim. Take, for example, one NFT that I personally do not find as senseless as all the ugly apes:
Cardano visual explorer
If you look at its minting transaction and click on the metadata value, there:
Transaction a2cbeb4e9af0a6098f6d788841d830b2a419513df871d647017a41a86acebbc9 page with transaction assurance, timestamp, UTXO, certificates, and more.
You see all the custom fields from “Abundance” till “Temperature”. pool.pm doesn’t know what they mean and doesn’t need to. It just shows them.
(Other than that, this one is special, since it doesn’t use IPFS, but the content is completely included on the blockchain, the large data:
URIs you see there. One of the reasons I like it.)
If am honest I am not sure I got the understanding of what you are explaining here I think you are saying to clarify then that the policy “after” because then it will be locked and no more changes after that, That sounds right as I type it
Let’s go by example:
{
"type": "all",
"scripts":
[
{
"type": "before",
"slot": 58500000
},
{
"type": "sig",
"keyHash": "XXXXXXXXX"
}
]
}
This says that tokens under this policy can be minted (or burned, which is just minting with a negative amount) if all
of the following are satisfied: the slot is before
58 500 000 (which is in a little more than three months) and the transaction is sig
ned by XXXXXXXXX.
So, an after
wouldn’t make much sense, here. You can only mint after that slot, but you then couldn’t submit a transaction with this policy before that slot, anyway.
You want this type of script, probably.
But why does after
exist, when it makes not so much sense? If we take a slightly more complicated example:
{
"type": "any",
"scripts":
[
{
"type": "all",
"scripts":
[
{
"type": "before",
"slot": 58500000
},
{
"type": "sig",
"keyHash": "XXXXXXXXX"
}
]
},
{
"type": "all"
"scripts":
[
{
"type": "after",
"slot": 58500000
},
{
"type": "sig",
"keyHash": "YYYYYYYYY"
},
{
"type": "sig",
"keyHash": "ZZZZZZZZZ"
}
]
}
]
}
Under this policy, the token can be minted if any
of the following are satisfied:
all
of before
slot 58 500 000 and sig
ned by XXXXXXXXX, orall
of after
slot 58 500 000 and sig
ned by YYYYYYYYY and ZZZZZZZZZSo, the right to mint is transferred from one key to two other keys at that point in time. In this case (if someone wants that for whatever reason), an after
makes sense.
The most complete documentation of these scripts that I have found is at https://github.com/input-output-hk/cardano-node/blob/master/doc/reference/simple-scripts.md#json-script-syntax.