Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Ok, correct me please. There's actually only ONE "smart contract" in the entire Solana chain called SPL-Token Program or just Token Program in short, is that right? So tokens are not created or stay inside smart contracts.
Could you explain, if I want to transfer 1 USDC to another wallet, which address should I use? I don't understand what "interact with a specific token" means. I thought tokens are all controlled by a token program (like USDC token is controlled by USDC token program) so our code just sends instructions to token program to send 1 USDC to someone. But here, do I talk to the USDC token itself?
Why do you need an address for token (Token Mint) when you have address for Program (smart contract). Do you have an example of a Token Mint? I don't agree with what you said about Token Program ID and Token Program. AFAIK, Token Program is a MOTHER program that takes care of other programs. Please view this - nimb.ws/VreUTd. Otherwise, we won't have the constant TOKEN_PROGRAM_ID.