How to allocate x amount of tokens from a main smart contract to another contract for use in a promotional giveaway type dapp

I would like to have a certain amount of tokenX lets call it allocated to another contract that has stricter limits, and is only for transferring and then giving the transferer back 150% of what they send to a friend. I hope that makes sense the way I said it. Can someone point me in the right direction to get knowledge of this ? Does it have to be at creation time of Main tokenX smart contract? Or is it possible to later just get the tokens sent from an upgradeable contract upgrade? Because I believe the main contract will be upgradeable.

Is the best way to do this to make a seperate pool of tokenX, like just purchase them like normal so I then have say 10000 tokenX tokens . Can I initialize a new smart contract using that same tokenX ? I"m not sure this can be done.

Thanks Very Much

I'm not sure I understand what you're trying to do. Can you give me a clearer example?

Ok lets say there is a main erc20 token contract that handles mint, burn, and some other technologies for a new crypto. Then they want to have like a giveaway, where someone gives x tokens to a friend and gets back x3 tokens . (All the same token as the main token). So I know how to do the transfer and all that ,but I can't wrap my head around the beginning or genesis of this giveaway contract. What is the best way to initialize this new contract with like 10000 tokens of another contract?

Your ERC20 token needs to have a mint function that only be called by some privileged address (e.g. owner of the token contract). After creating this giveaway contract, you use this owner address to call mint function to mint the tokens to this giveaway contract.

Alternatively if you don't have a mint function, when deploying the ERC20 token contract, you would specify the total supply. Normally for token contracts w/ no mint functionality, these tokens will go to the owner by default so then it is just a normal token transfer to fund this giveaway contract w/ tokens.