# Membership by invitation This zome will use the Progenitor pattern, with a configurable property "progenitor_addresses". `validate_agent` will only return true if the agent provides a proof signed by one of the progenitors of the DNA in the form of: ```rust struct Certificate { progenitor_address: Address, dna_address: Address, agent_address: Address } ``` that meets this conditions: - Is signed by the progenitor_address - The progenitor_address is included in the "progenitor_addresses" property - The agent being validated is the one included in agent_address - The dna_address matches the DNA_ADDRESS This certificate will need to be generated outside this DNA, maybe with some kind of lobby DNA of the sorts.