Every chaincode has a definition that includes certain parameters such as name, version, endorsement policy, and more. The approval of the chaincode is subject to the endorsement policy, which defines the voting mechanism. The endorsers (regarding the channel policies) are responsible for authenticating the chaincode. Each endorser should approve the same chaincode definition to be able to commit it to the channel. The chaincode needs to be approved only once by each endorser organization according to the channel policy.