Skip to content

semaphore:create-group

Create a Semaphore group on the canonical contract and bind the predicted group id to . Without --admin the transaction sender becomes the admin (correct through Safes and forwarders).

⚗️ Experimental — available at next.evmcrispr.com.

Supports runtime fields inside smart blocks. Use explicit @helper! expressions or captured outputs; other fields are evaluated at build time.

semaphore:create-group <variable>
NameTypeEvaluationDescription
variablevariableBuild timeVariable to bind the new group id to
NameTypeEvaluationDescription
--adminaddressRuntime in smart blocksGroup admin (default: the transaction sender)
  • The group id is predicted from groupCounter at planning time — an external group creation landing before your transaction shifts it (the same character as contracts:deploy address prediction).
  • Creating a group also primes the member cache, so later member scans only cover blocks after creation.
load semaphore
semaphore:create-group $group
semaphore:add-member $membercommitment to $group
print "Created group" $group "with root" @semaphore:root($group)