Agreement templates
Reusable legal-instrument templates live in the /templates directory. Registration in CyberAgreementRegistry is per chain, so a template can exist on one chain and not another: the cyberSTOCK template below is registered on Ethereum and Base Sepolia but not on Base or Arbitrum. Call getTemplateDetails(templateId) on the target chain before relying on a template; it reverts TemplateDoesNotExist for an unregistered id.
cyberSAFE
MetaLeX cyberSAFE US style Reg D v 1.0.md
YC post-money
Reg D (US)
MetaLeX cyberSAFE UK Cayman style Reg S v 1.0.md
YC post-money
Reg S (UK / Cayman)
MetaLeX cyberSAFE jx-neutral-style Reg D raise v 1.0.md
Jurisdiction-neutral
Reg D (US)
MetaLeX cyberSAFE jx-neutral-style Reg S raise v 1.0.md
Jurisdiction-neutral
Reg S
mlx_safe_reg_d_v1_3.md / mlx_safe_reg_s_v1_3.md
v1.3 series
Reg D / Reg S
cyberSAFT
MetaLeX cyberSAFT reg D v.1.0.md
Reg D
MetaLeX cyberSAFT Reg S raise v 1.0.md
Reg S
mlx_saft_reg_d_v1_3.md / mlx_saft_reg_s_v1_3.md
v1.3 series
cyberSAFTE
mlx_safte_reg_d_v1_3.md: Reg D, v1.3.
cyberSTOCK
mlx_cyberstock_reg_d_v1_0.md: a tokenized-share subscription agreement, Reg D, v1.0, with template idbytes32(bytes("metalex_cyberstock_reg_d_v1_0")).
cyberTokenWarrant
MetaLeX cyberTokenWarrant a16z US style reg D v 1.0.md
a16z-derived, Reg D (US)
MetaLeX cyberTokenWarrant a16z jx-neutral-style-issuer Reg D raise v 1.0.md
jx-neutral, Reg D
MetaLeX cyberTokenWarrant a16z-jx-neutral-style-issuer Reg S raise v 1.0.md
jx-neutral, Reg S
MetaLeX cyberTokenWarrant non-US Reg S v 1.0.md
Reg S
mlx_safe_tw_reg_d_v1_3.md / mlx_safe_tw_reg_s_v1_3.md
v1.3 series
MetaDAO Futarchy Governance SPC
MetaDAO Futarchy Governance SPC - Board Consent - Approval of SegCo v 1.0.mdMetaDAO Futarchy Governance SPC - SegCo combined v 1.0.md
LeXcheX agreement
MetaLeX LeXCheX Agreement.md, which a credential subject countersigns on receiving a LeXcheX credential.
Custom templates
Anyone can register a template with CyberAgreementRegistry.createTemplate(templateId, title, legalContractUri, globalFields, partyFields). Template ids are caller-chosen bytes32 values (by convention, bytes32(bytes("<name>"))) and must be unused, and a template's fields cannot be overwritten once created. The directory also holds a combined cyberSAFE and cyberTokenWarrant template prepared for one issuer, as an example of a custom variant.
Standalone agreements (createStandaloneContractAndSign) skip this step. The registry derives the template id from keccak256(abi.encode(title, legalContractUri, globalFields, partyFields)) and registers the template on first use.
The two DEPRECATED-* files in the directory (SAFE-version-0-1, SAFEplusT-version-0-1) are not for new agreements.
See also
Last updated
Was this helpful?
