I dont know much about how precise timestamps are on blockchain/s, but the deterministic is always the block number. There is opcall to calculate with the current time as well, so i believe it might be calculated correctly. I think there is committee of 1000 servers who vote for block, so it is quite unprobable that half of them will have their time unsynced…
NFTs represent unit of something… Eg one appartment is one unit. If we make it tradable on 1000000 parts than it is fractional nft. There is ARC-0003 covering this, possibly some others algorand standards.
According to the standard you deploy json spec to the ipfs or web and hash of this document with api call to the blockchain… To create ASA it is matter of one form to be filled in, you do not need even programming skills.
Check these currently 63 projects which can help you minting NFTs and sell them… Algorand Ecosystem
Smart contracts as well as logic sigs are public… You can see them in public explorer in decompiled way.
Algorand is completely deterministic regarding transaction and smart contract execution.
Smart contracts can only access the timestamp of previous blocks not of the current block (nor the time of the machine executing the smart contract).
The timestamps of blocks are chosen by the block proposer (within some limits to prevent abuse). As such they are not a perfect representation of time: malicious block proposer can fast forward or slow down a little bit time, and good proposers can then fix it in future timestamps. Timestamps are ensure to be increasing (time does not go backward).
Algorand is account-based and keep all smart contracts on-chain.