Question about co-chain and ASA inegrations


We have our BEP20 token and we are thinking on moving to Algorand.
I was reading about co-chains and I have a few questions:

  • as I understand, co-chains must be permissioned.
    • Is that true? No option to have a Permissionless co-chain?

Let’s assume that this is correct, and only permissioned co-chain can exist:

  • we want to have our validators nodes dynamic, for example:
    • anyone is refused until a sort of KYC is completed.
    • periodic test, for example to test each validator hardware can move a validator out of the list if failed
  • Are there any limits on numbers of validators, min and max?

Is that possible?

And last. On this co-chain we will like to have our own token, the one currently running as BEP20, so it is kind of doing ASA on a co-chain, but:

  • will this ASA be able to be traded on the MainNet?
  • can anyone buy and sell our token?

Welcome to Algorand!

BEP20 / ERC20 is equivalent to ASA on MainNet. If your goal is to switch from Binance chain to Algorand, you can create an ASA on MainNet.
You would get all the benefits of the Algorand blockchain: very low transaction fees, very high throughput, immediate finality (less than 5s to finalize a transaction without ever risk of forking), very strong security model (via sortition and player replaceability), …

One question to better understand your needs:
Why do you want to use a private network/co-chain?

Due to low transaction fees and high throughput, my personal opinion is that co-chains would be mostly useful for privacy reasons rather than cost/performance reasons.

Regarding co-chain technology, some answers are there:

In short, co-chain technology is not yet available. You can already create a private network with the validators/participation nodes of your choice (they would just be the nodes with a lot of private Algos in your network and you can control who receive those Algos). However, there would be no interaction with MainNet. Furthermore, all node managements would need to be done manually or the tooling would need to be developed.

Thank you Fabrice.
But what if we want to have our own token, tradable plus being able to have own validators? it’s kind of a hybrid between ASA and co-chain.
We can have our token on the MainNet and get better performance than our current BEP20, but we also want to be able to have our own validators without the need of creating a blockchain from scratch.

If you want your own validators/participation nodes, you indeed need a co-chain or private network.
Why do you want your own validators? For security reasons?

Note that if you still want to trade your asset on a public blockchain (whether it is Algorand or any other blockchain), your own validators will not be able to validate such transactions. In other words, assets that are on the main public blockchain are out of reach of your validators. This is the case with any blockchain design.

Thanks Fabrice.
Let’s assume that I want to have my own nodes and my own token. Is that possible?

Yes, you can run a private network:

However note that by default anyone may access your private network.
You will need an additional layer of encryption such as having your nodes behind a VPN to avoid this issue.

When creating a private network and wanting to reward giving nodes for staking (nodes will be given via voting with custom token) does the token need to be created on the co chain or is it ok to create it on the mainchain ?

If by “staking”, you mean participating in consensus with your tokens, then there is currently no mechanism in the Algorand source code that allows to provide such rewards. You would need to modify the code of the blockchain to obtain that or develop an external service.

In the latter case (using an external service), you may decide distribute the tokens on the co-chain or on mainnet.
In the former case, you would need to make the reward on the co-chain. But then, using a bridge (which does not yet exist and would need to be built), you may convert the rewards from the co-chain to mainnet, if you want so.