@maci-protocol/website 0.0.0-ci.00107eb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/.eslintrc.js +157 -0
  2. package/CHANGELOG.md +566 -0
  3. package/LICENSE +21 -0
  4. package/README.md +58 -0
  5. package/babel.config.js +3 -0
  6. package/blog/2021-10-12-maci-v1.md +100 -0
  7. package/blog/2022-09-22-maci-v1-technical-introduction.md +180 -0
  8. package/blog/2023-01-18-maci-v1.1.1.md +121 -0
  9. package/blog/2024-01-18-roadmap.md +106 -0
  10. package/blog/2024-02-28-maci-v1.2.0.md +121 -0
  11. package/blog/2024-04-10-roadmap-q2.md +96 -0
  12. package/blog/2024-05-08-ethdam.md +169 -0
  13. package/blog/2024-05-22-the-origins-of-maci.md +38 -0
  14. package/blog/2024-05-28-upcoming-grants.md +85 -0
  15. package/blog/2024-06-17-understanding-maci.md +63 -0
  16. package/blog/2024-06-21-deciphering-maci.md +48 -0
  17. package/blog/2024-06-28-revolusioning-public-goods-funding.md +32 -0
  18. package/blog/2024-07-23-q2-review.md +72 -0
  19. package/blog/2024-07-30-roadmap-q3.md +61 -0
  20. package/blog/2024-08-10-maci-v2.md +102 -0
  21. package/blog/2024-08-29-anonymous-poll-joining.md +47 -0
  22. package/blog/2024-10-29-q3-review.md +63 -0
  23. package/blog/2024-11-20-maci-platform.md +93 -0
  24. package/blog/2024-12-01-maci-getting-started.md +294 -0
  25. package/blog/2025-03-21-roadmap-2025.md +112 -0
  26. package/blog/2025-08-18-maci-aragon-plugin.md +107 -0
  27. package/blog/2025-09-05-maci-coordinator-service.md +167 -0
  28. package/blog/assets/MACI_Bob_SignUp_1.png +0 -0
  29. package/blog/assets/MACI_Bob_SignUp_2.png +0 -0
  30. package/blog/assets/MACI_Complex_Message.png +0 -0
  31. package/blog/assets/MACI_Contracts.png +0 -0
  32. package/blog/assets/MACI_Sign_Up.png +0 -0
  33. package/blog/assets/MACI_Simple_Message.png +0 -0
  34. package/blog/assets/MACI_Verifier_1.png +0 -0
  35. package/blog/authors.yml +5 -0
  36. package/docusaurus.config.ts +219 -0
  37. package/package.json +66 -0
  38. package/src/components/ActionCard/index.tsx +30 -0
  39. package/src/components/ActionCard/styles.module.css +96 -0
  40. package/src/components/HomepageFeatures/index.tsx +91 -0
  41. package/src/components/HomepageFeatures/styles.module.css +17 -0
  42. package/src/components/ProjectCard/index.tsx +74 -0
  43. package/src/components/ProjectCard/styles.module.css +77 -0
  44. package/src/components/ProjectList/index.tsx +218 -0
  45. package/src/components/ProjectList/styles.module.css +180 -0
  46. package/src/content/projects.json +294 -0
  47. package/src/css/card.module.css +130 -0
  48. package/src/css/custom.css +91 -0
  49. package/src/icons/IconDiscord.tsx +16 -0
  50. package/src/icons/IconGithub.tsx +16 -0
  51. package/src/icons/IconWebsite.tsx +16 -0
  52. package/src/pages/blogs.tsx +58 -0
  53. package/src/pages/index.module.css +152 -0
  54. package/src/pages/index.tsx +66 -0
  55. package/src/pages/projects.tsx +44 -0
  56. package/src/pages/roadmap.md +109 -0
  57. package/src/pages/typedoc.tsx +11 -0
  58. package/src/plugins/blog-plugin/index.ts +86 -0
  59. package/src/react-app-env.d.ts +1 -0
  60. package/src/scripts/setupSolidityDocs.ts +67 -0
  61. package/src/scripts/setupTypedoc.ts +112 -0
  62. package/src/scripts/utils.ts +115 -0
  63. package/src/utils/getProjectsByFilter.ts +40 -0
  64. package/static/.nojekyll +0 -0
  65. package/static/audit_reports/20210922_Hashcloak_audit_report.pdf +0 -0
  66. package/static/audit_reports/202220930_Hashcloak_audit_report.pdf +0 -0
  67. package/static/audit_reports/20240223_PSE_Audit_audit_report.pdf +0 -0
  68. package/static/audit_reports/20240731_PSE_Audit_audit_report.pdf +0 -0
  69. package/static/fonts/DM_Sans.woff2 +0 -0
  70. package/static/fonts/Share_Tech_Mono.woff2 +0 -0
  71. package/static/img/box.png +0 -0
  72. package/static/img/box_dark.png +0 -0
  73. package/static/img/chain.png +0 -0
  74. package/static/img/chain_dark.png +0 -0
  75. package/static/img/chart.png +0 -0
  76. package/static/img/chart_dark.png +0 -0
  77. package/static/img/circuits/MACI-Circuits.excalidraw +39652 -0
  78. package/static/img/circuits/calculateTotal.svg +21 -0
  79. package/static/img/circuits/ecdh.svg +21 -0
  80. package/static/img/circuits/messageToCommand.svg +21 -0
  81. package/static/img/circuits/messageValidator.svg +21 -0
  82. package/static/img/circuits/poseidonHasher13.svg +21 -0
  83. package/static/img/circuits/privToPubkey.svg +21 -0
  84. package/static/img/circuits/processMessages.svg +21 -0
  85. package/static/img/circuits/processMessagesInputHasher.svg +21 -0
  86. package/static/img/circuits/processMessages_2_0.svg +21 -0
  87. package/static/img/circuits/processOne.svg +21 -0
  88. package/static/img/circuits/processTopup.svg +21 -0
  89. package/static/img/circuits/processingAfterPollEnds.svg +21 -0
  90. package/static/img/circuits/quinBatchLeavesExists.svg +21 -0
  91. package/static/img/circuits/quinCheckRoot.svg +21 -0
  92. package/static/img/circuits/quinGeneratePathIndices.svg +21 -0
  93. package/static/img/circuits/quinSelector.svg +21 -0
  94. package/static/img/circuits/resultsCommitmentVerifier.svg +21 -0
  95. package/static/img/circuits/splicer.svg +21 -0
  96. package/static/img/circuits/tallyInputHasher.svg +21 -0
  97. package/static/img/circuits/tallyVotes.svg +21 -0
  98. package/static/img/circuits/unpackElement.svg +21 -0
  99. package/static/img/circuits/verifySignature.svg +21 -0
  100. package/static/img/completingAPoll.svg +4 -0
  101. package/static/img/contracts.svg +16 -0
  102. package/static/img/coordinatorComponents.svg +21 -0
  103. package/static/img/favicon.ico +0 -0
  104. package/static/img/generateProofs.svg +4 -0
  105. package/static/img/hero.svg +9 -0
  106. package/static/img/maci-card.png +0 -0
  107. package/static/img/maci-rpgf-design.jpg +0 -0
  108. package/static/img/messageProcessingLocal.svg +21 -0
  109. package/static/img/offlineProcessing.svg +21 -0
  110. package/static/img/pse-logo-round.png +0 -0
  111. package/static/img/relayer-diagram.png +0 -0
  112. package/static/img/tallyCommitments.svg +4 -0
  113. package/static/img/voteTallyingLocal.svg +21 -0
  114. package/tsconfig.json +34 -0
  115. package/versioned_docs/version-v0.x/circuits.md +22 -0
  116. package/versioned_docs/version-v0.x/contract.md +186 -0
  117. package/versioned_docs/version-v0.x/faq.md +67 -0
  118. package/versioned_docs/version-v0.x/introduction.md +115 -0
  119. package/versioned_docs/version-v0.x/quadratic-vote-tallying-circuit.md +138 -0
  120. package/versioned_docs/version-v0.x/state-root-transition-circuit.md +230 -0
  121. package/versioned_docs/version-v1.2/audit.md +160 -0
  122. package/versioned_docs/version-v1.2/ci-pipeline.md +38 -0
  123. package/versioned_docs/version-v1.2/circuits.md +508 -0
  124. package/versioned_docs/version-v1.2/cli.md +689 -0
  125. package/versioned_docs/version-v1.2/contracts.md +445 -0
  126. package/versioned_docs/version-v1.2/contributing/code-of-conduct.md +91 -0
  127. package/versioned_docs/version-v1.2/contributing/contributing.md +129 -0
  128. package/versioned_docs/version-v1.2/coordinator-processing.md +46 -0
  129. package/versioned_docs/version-v1.2/deployment.md +122 -0
  130. package/versioned_docs/version-v1.2/installation.md +175 -0
  131. package/versioned_docs/version-v1.2/integrating.md +200 -0
  132. package/versioned_docs/version-v1.2/introduction.md +94 -0
  133. package/versioned_docs/version-v1.2/key-change.md +182 -0
  134. package/versioned_docs/version-v1.2/overview.md +47 -0
  135. package/versioned_docs/version-v1.2/poll-types.md +68 -0
  136. package/versioned_docs/version-v1.2/primitives.md +216 -0
  137. package/versioned_docs/version-v1.2/project-ideas.md +14 -0
  138. package/versioned_docs/version-v1.2/purpose.md +62 -0
  139. package/versioned_docs/version-v1.2/solidity-docs/MACI.md +345 -0
  140. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessor.md +266 -0
  141. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessorFactory.md +26 -0
  142. package/versioned_docs/version-v1.2/solidity-docs/Poll.md +381 -0
  143. package/versioned_docs/version-v1.2/solidity-docs/PollFactory.md +50 -0
  144. package/versioned_docs/version-v1.2/solidity-docs/SignUpToken.md +27 -0
  145. package/versioned_docs/version-v1.2/solidity-docs/Subsidy.md +218 -0
  146. package/versioned_docs/version-v1.2/solidity-docs/SubsidyFactory.md +27 -0
  147. package/versioned_docs/version-v1.2/solidity-docs/Tally.md +311 -0
  148. package/versioned_docs/version-v1.2/solidity-docs/TallyFactory.md +27 -0
  149. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQv.md +296 -0
  150. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQvFactory.md +27 -0
  151. package/versioned_docs/version-v1.2/solidity-docs/TopupCredit.md +61 -0
  152. package/versioned_docs/version-v1.2/solidity-docs/VkRegistry.md +457 -0
  153. package/versioned_docs/version-v1.2/solidity-docs/benchmarks/HasherBenchmarks.md +44 -0
  154. package/versioned_docs/version-v1.2/solidity-docs/crypto/Hasher.md +125 -0
  155. package/versioned_docs/version-v1.2/solidity-docs/crypto/IVerifier.md +11 -0
  156. package/versioned_docs/version-v1.2/solidity-docs/crypto/MockVerifier.md +17 -0
  157. package/versioned_docs/version-v1.2/solidity-docs/crypto/Pairing.md +85 -0
  158. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT3.md +9 -0
  159. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT4.md +9 -0
  160. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT5.md +9 -0
  161. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT6.md +9 -0
  162. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkCommon.md +16 -0
  163. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkConstants.md +40 -0
  164. package/versioned_docs/version-v1.2/solidity-docs/crypto/Verifier.md +61 -0
  165. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/EASGatekeeper.md +121 -0
  166. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/FreeForAllSignUpGatekeeper.md +40 -0
  167. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpGatekeeper.md +26 -0
  168. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpTokenGatekeeper.md +93 -0
  169. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperBase.md +79 -0
  170. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperMultiple.md +48 -0
  171. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperSingle.md +42 -0
  172. package/versioned_docs/version-v1.2/solidity-docs/index.md +4 -0
  173. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/ConstantInitialVoiceCreditProxy.md +40 -0
  174. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/InitialVoiceCreditProxy.md +26 -0
  175. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IEAS.md +40 -0
  176. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IHats.md +103 -0
  177. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMPFactory.md +26 -0
  178. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMessageProcessor.md +31 -0
  179. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPoll.md +217 -0
  180. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPollFactory.md +29 -0
  181. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallyFactory.md +28 -0
  182. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallySubsidyFactory.md +27 -0
  183. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVerifier.md +25 -0
  184. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVkRegistry.md +70 -0
  185. package/versioned_docs/version-v1.2/solidity-docs/mocks/MockHatsProtocol.md +133 -0
  186. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueue.md +464 -0
  187. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary.md +60 -0
  188. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary0.md +40 -0
  189. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinaryMaci.md +34 -0
  190. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary.md +75 -0
  191. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary0.md +40 -0
  192. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryBlankSl.md +40 -0
  193. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryMaci.md +40 -0
  194. package/versioned_docs/version-v1.2/solidity-docs/trees/EmptyBallotRoots.md +13 -0
  195. package/versioned_docs/version-v1.2/solidity-docs/utilities/CommonUtilities.md +25 -0
  196. package/versioned_docs/version-v1.2/solidity-docs/utilities/DomainObjs.md +40 -0
  197. package/versioned_docs/version-v1.2/solidity-docs/utilities/Params.md +36 -0
  198. package/versioned_docs/version-v1.2/solidity-docs/utilities/Utilities.md +79 -0
  199. package/versioned_docs/version-v1.2/spec.md +944 -0
  200. package/versioned_docs/version-v1.2/testing-in-detail.md +209 -0
  201. package/versioned_docs/version-v1.2/testing.md +472 -0
  202. package/versioned_docs/version-v1.2/topup.md +43 -0
  203. package/versioned_docs/version-v1.2/troubleshooting.md +51 -0
  204. package/versioned_docs/version-v1.2/trusted-setup.md +76 -0
  205. package/versioned_docs/version-v1.2/typedoc/cli/.nojekyll +1 -0
  206. package/versioned_docs/version-v1.2/typedoc/cli/index.md +15 -0
  207. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/AirdropArgs.md +89 -0
  208. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployArgs.md +154 -0
  209. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployPollArgs.md +154 -0
  210. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployedContracts.md +130 -0
  211. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenLocalStateArgs.md +168 -0
  212. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenProofsArgs.md +388 -0
  213. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IGenKeypairArgs.md +37 -0
  214. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IRegisteredUserArgs.md +63 -0
  215. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeMessagesArgs.md +76 -0
  216. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeSignupsArgs.md +76 -0
  217. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PollContracts.md +53 -0
  218. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/ProveOnChainArgs.md +128 -0
  219. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PublishArgs.md +154 -0
  220. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SignupArgs.md +89 -0
  221. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SubsidyData.md +73 -0
  222. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TallyData.md +166 -0
  223. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TopupArgs.md +89 -0
  224. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/VerifyArgs.md +128 -0
  225. package/versioned_docs/version-v1.2/typedoc/cli/modules.md +556 -0
  226. package/versioned_docs/version-v1.2/typedoc/core/.nojekyll +1 -0
  227. package/versioned_docs/version-v1.2/typedoc/core/classes/MaciState.md +295 -0
  228. package/versioned_docs/version-v1.2/typedoc/core/classes/Poll.md +1098 -0
  229. package/versioned_docs/version-v1.2/typedoc/core/index.md +110 -0
  230. package/versioned_docs/version-v1.2/typedoc/core/interfaces/BatchSizes.md +50 -0
  231. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IJsonMaciState.md +77 -0
  232. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IProcessMessagesCircuitInputs.md +242 -0
  233. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ISubsidyCircuitInputs.md +198 -0
  234. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ITallyCircuitInputs.md +231 -0
  235. package/versioned_docs/version-v1.2/typedoc/core/interfaces/MaxValues.md +37 -0
  236. package/versioned_docs/version-v1.2/typedoc/core/interfaces/TreeDepths.md +63 -0
  237. package/versioned_docs/version-v1.2/typedoc/core/modules.md +289 -0
  238. package/versioned_docs/version-v1.2/typedoc/crypto/.nojekyll +1 -0
  239. package/versioned_docs/version-v1.2/typedoc/crypto/classes/AccQueue.md +770 -0
  240. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G1Point.md +115 -0
  241. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G2Point.md +140 -0
  242. package/versioned_docs/version-v1.2/typedoc/crypto/classes/IncrementalQuinTree.md +470 -0
  243. package/versioned_docs/version-v1.2/typedoc/crypto/index.md +44 -0
  244. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Keypair.md +33 -0
  245. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/PoseidonFuncs.md +115 -0
  246. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Queue.md +33 -0
  247. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Signature.md +37 -0
  248. package/versioned_docs/version-v1.2/typedoc/crypto/modules.md +913 -0
  249. package/versioned_docs/version-v1.2/typedoc/domainobjs/.nojekyll +1 -0
  250. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Ballot.md +274 -0
  251. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Keypair.md +181 -0
  252. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Message.md +244 -0
  253. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PCommand.md +409 -0
  254. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PrivKey.md +206 -0
  255. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PubKey.md +289 -0
  256. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/StateLeaf.md +340 -0
  257. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/TCommand.md +200 -0
  258. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/VerifyingKey.md +240 -0
  259. package/versioned_docs/version-v1.2/typedoc/domainobjs/index.md +81 -0
  260. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/ICommand.md +104 -0
  261. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG1ContractParams.md +31 -0
  262. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG2ContractParams.md +31 -0
  263. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonBallot.md +42 -0
  264. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonCommand.md +32 -0
  265. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonKeyPair.md +31 -0
  266. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonPCommand.md +111 -0
  267. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonStateLeaf.md +42 -0
  268. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonTCommand.md +67 -0
  269. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IMessageContractParams.md +31 -0
  270. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeaf.md +39 -0
  271. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeafContractParams.md +42 -0
  272. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkContractParams.md +64 -0
  273. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkObjectParams.md +108 -0
  274. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/Proof.md +46 -0
  275. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/VoteOptionTreeLeaf.md +24 -0
  276. package/versioned_docs/version-v1.2/typedoc/domainobjs/modules.md +110 -0
  277. package/versioned_docs/version-v1.2/typedoc/index.md +4 -0
  278. package/versioned_docs/version-v1.2/versioning.md +94 -0
  279. package/versioned_docs/version-v1.2/workflow.md +142 -0
  280. package/versioned_docs/version-v2.x/case-studies.md +35 -0
  281. package/versioned_docs/version-v2.x/contributing/_category_.json +4 -0
  282. package/versioned_docs/version-v2.x/contributing/code-of-conduct.md +92 -0
  283. package/versioned_docs/version-v2.x/contributing/contributing.md +149 -0
  284. package/versioned_docs/version-v2.x/contributing/project-ideas.md +78 -0
  285. package/versioned_docs/version-v2.x/core-concepts/_category_.json +4 -0
  286. package/versioned_docs/version-v2.x/core-concepts/ballot.md +19 -0
  287. package/versioned_docs/version-v2.x/core-concepts/coordinator-processing.md +46 -0
  288. package/versioned_docs/version-v2.x/core-concepts/hashing-and-encryption.md +45 -0
  289. package/versioned_docs/version-v2.x/core-concepts/key-change.md +179 -0
  290. package/versioned_docs/version-v2.x/core-concepts/maci-keys.md +84 -0
  291. package/versioned_docs/version-v2.x/core-concepts/maci-messages.md +44 -0
  292. package/versioned_docs/version-v2.x/core-concepts/merkle-trees.md +23 -0
  293. package/versioned_docs/version-v2.x/core-concepts/poll-types.md +106 -0
  294. package/versioned_docs/version-v2.x/core-concepts/spec.md +883 -0
  295. package/versioned_docs/version-v2.x/core-concepts/state-leaf.md +42 -0
  296. package/versioned_docs/version-v2.x/core-concepts/workflow.md +142 -0
  297. package/versioned_docs/version-v2.x/getting-started.md +313 -0
  298. package/versioned_docs/version-v2.x/guides/_category_.json +4 -0
  299. package/versioned_docs/version-v2.x/guides/compile-circuits.md +163 -0
  300. package/versioned_docs/version-v2.x/guides/frontend.md +99 -0
  301. package/versioned_docs/version-v2.x/guides/integrating.md +73 -0
  302. package/versioned_docs/version-v2.x/guides/maciWrapper.md +173 -0
  303. package/versioned_docs/version-v2.x/guides/subgraph.md +79 -0
  304. package/versioned_docs/version-v2.x/guides/testing/_category_.json +4 -0
  305. package/versioned_docs/version-v2.x/guides/testing/testing-in-detail.md +203 -0
  306. package/versioned_docs/version-v2.x/guides/testing/testing.md +163 -0
  307. package/versioned_docs/version-v2.x/guides/troubleshooting.md +161 -0
  308. package/versioned_docs/version-v2.x/introduction.md +146 -0
  309. package/versioned_docs/version-v2.x/processes/_category_.json +4 -0
  310. package/versioned_docs/version-v2.x/processes/ci-pipeline.md +38 -0
  311. package/versioned_docs/version-v2.x/processes/versioning.md +94 -0
  312. package/versioned_docs/version-v2.x/resources.md +33 -0
  313. package/versioned_docs/version-v2.x/security/_category_.json +4 -0
  314. package/versioned_docs/version-v2.x/security/audit.md +167 -0
  315. package/versioned_docs/version-v2.x/security/trusted-setup.md +166 -0
  316. package/versioned_docs/version-v2.x/supported-networks/_category_.json +4 -0
  317. package/versioned_docs/version-v2.x/supported-networks/deployed-contracts.md +1108 -0
  318. package/versioned_docs/version-v2.x/supported-networks/supported-networks.md +47 -0
  319. package/versioned_docs/version-v2.x/technical-references/_category_.json +4 -0
  320. package/versioned_docs/version-v2.x/technical-references/smart-contracts/AccQueue.md +21 -0
  321. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Gatekeepers.md +40 -0
  322. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MACI.md +152 -0
  323. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  324. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Params.md +32 -0
  325. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Poll.md +104 -0
  326. package/versioned_docs/version-v2.x/technical-references/smart-contracts/PollFactory.md +43 -0
  327. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Tally.md +45 -0
  328. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VkRegistry.md +57 -0
  329. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  330. package/versioned_docs/version-v2.x/technical-references/smart-contracts/_category_.json +8 -0
  331. package/versioned_docs/version-v2.x/technical-references/technical-references.md +47 -0
  332. package/versioned_docs/version-v2.x/technical-references/typescript-code/_category_.json +4 -0
  333. package/versioned_docs/version-v2.x/technical-references/typescript-code/cli.md +699 -0
  334. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  335. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/processMessages.md +107 -0
  336. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/setup.md +101 -0
  337. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  338. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  339. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +37 -0
  340. package/versioned_docs/version-v2.x/use-cases/_category_.json +4 -0
  341. package/versioned_docs/version-v2.x/use-cases/governance.md +18 -0
  342. package/versioned_docs/version-v2.x/use-cases/polling.md +10 -0
  343. package/versioned_docs/version-v2.x/use-cases/public-goods.md +65 -0
  344. package/versioned_docs/version-v3.x/case-studies.md +35 -0
  345. package/versioned_docs/version-v3.x/contributing/_category_.json +4 -0
  346. package/versioned_docs/version-v3.x/contributing/code-of-conduct.md +92 -0
  347. package/versioned_docs/version-v3.x/contributing/contributing.md +155 -0
  348. package/versioned_docs/version-v3.x/contributing/project-ideas.md +78 -0
  349. package/versioned_docs/version-v3.x/core-concepts/_category_.json +4 -0
  350. package/versioned_docs/version-v3.x/core-concepts/ballot.md +19 -0
  351. package/versioned_docs/version-v3.x/core-concepts/coordinator-processing.md +46 -0
  352. package/versioned_docs/version-v3.x/core-concepts/coordinator-service.md +16 -0
  353. package/versioned_docs/version-v3.x/core-concepts/hashing-and-encryption.md +45 -0
  354. package/versioned_docs/version-v3.x/core-concepts/key-change.md +179 -0
  355. package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +84 -0
  356. package/versioned_docs/version-v3.x/core-concepts/maci-messages.md +44 -0
  357. package/versioned_docs/version-v3.x/core-concepts/merkle-trees.md +16 -0
  358. package/versioned_docs/version-v3.x/core-concepts/offchain-voting.md +14 -0
  359. package/versioned_docs/version-v3.x/core-concepts/poll-types.md +82 -0
  360. package/versioned_docs/version-v3.x/core-concepts/polls.md +105 -0
  361. package/versioned_docs/version-v3.x/core-concepts/spec.md +817 -0
  362. package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +42 -0
  363. package/versioned_docs/version-v3.x/core-concepts/workflow.md +149 -0
  364. package/versioned_docs/version-v3.x/guides/_category_.json +4 -0
  365. package/versioned_docs/version-v3.x/guides/compile-circuits.md +191 -0
  366. package/versioned_docs/version-v3.x/guides/integrating.md +137 -0
  367. package/versioned_docs/version-v3.x/guides/sdk.md +121 -0
  368. package/versioned_docs/version-v3.x/guides/subgraph.md +79 -0
  369. package/versioned_docs/version-v3.x/guides/testing/_category_.json +4 -0
  370. package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +191 -0
  371. package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +190 -0
  372. package/versioned_docs/version-v3.x/guides/troubleshooting.md +206 -0
  373. package/versioned_docs/version-v3.x/introduction.md +153 -0
  374. package/versioned_docs/version-v3.x/processes/_category_.json +4 -0
  375. package/versioned_docs/version-v3.x/processes/ci-pipeline.md +38 -0
  376. package/versioned_docs/version-v3.x/processes/versioning.md +94 -0
  377. package/versioned_docs/version-v3.x/quick-start.md +326 -0
  378. package/versioned_docs/version-v3.x/resources.md +34 -0
  379. package/versioned_docs/version-v3.x/security/_category_.json +4 -0
  380. package/versioned_docs/version-v3.x/security/audit.md +167 -0
  381. package/versioned_docs/version-v3.x/security/trusted-setup.md +172 -0
  382. package/versioned_docs/version-v3.x/supported-networks/_category_.json +4 -0
  383. package/versioned_docs/version-v3.x/supported-networks/costs.md +725 -0
  384. package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +112 -0
  385. package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +69 -0
  386. package/versioned_docs/version-v3.x/technical-references/_category_.json +4 -0
  387. package/versioned_docs/version-v3.x/technical-references/coordinator-service/_category_.json +8 -0
  388. package/versioned_docs/version-v3.x/technical-references/coordinator-service/index.md +24 -0
  389. package/versioned_docs/version-v3.x/technical-references/coordinator-service/installation.md +15 -0
  390. package/versioned_docs/version-v3.x/technical-references/coordinator-service/usage.md +64 -0
  391. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/_category_.json +8 -0
  392. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/index.md +51 -0
  393. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/installation.md +109 -0
  394. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +160 -0
  395. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  396. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +33 -0
  397. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Policies.md +39 -0
  398. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +170 -0
  399. package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +33 -0
  400. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +43 -0
  401. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +62 -0
  402. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  403. package/versioned_docs/version-v3.x/technical-references/smart-contracts/_category_.json +8 -0
  404. package/versioned_docs/version-v3.x/technical-references/technical-references.md +48 -0
  405. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  406. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +52 -0
  407. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +170 -0
  408. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +96 -0
  409. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  410. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  411. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +42 -0
  412. package/versioned_docs/version-v3.x/use-cases/_category_.json +4 -0
  413. package/versioned_docs/version-v3.x/use-cases/governance.md +18 -0
  414. package/versioned_docs/version-v3.x/use-cases/polling.md +10 -0
  415. package/versioned_docs/version-v3.x/use-cases/public-goods.md +65 -0
  416. package/versioned_sidebars/version-v0.x-sidebars.json +8 -0
  417. package/versioned_sidebars/version-v1.2-sidebars.json +8 -0
  418. package/versioned_sidebars/version-v2.x-sidebars.json +8 -0
  419. package/versioned_sidebars/version-v3.x-sidebars.json +8 -0
  420. package/versions.json +1 -0
@@ -0,0 +1,167 @@
1
+ ---
2
+ slug: maci-coordinator-service
3
+ title: MACI Coordinator Service
4
+ description: Announcing our coordinator service for MACI
5
+ authors:
6
+ - name: ctrlc03
7
+ title: MACI former team lead
8
+ url: https://x.com/ctrlc03
9
+ image_url: https://avatars.githubusercontent.com/u/93448202?v=4c
10
+ - name: NicoSerranoP
11
+ title: MACI team member
12
+ url: https://x.com/NicoSerranoP
13
+ image_url: https://avatars.githubusercontent.com/u/38594836?v=4
14
+ tags: [voting, security, anonymity, MACI, coordinator]
15
+ excerpt: "A MACI plugin for Aragon OSx to enable private voting in DAOs"
16
+ ---
17
+
18
+ Hey Anon,
19
+
20
+ Welcome back to our MACI blog.
21
+
22
+ Today, we are excited to officially announce something we have referenced frequently: the Coordinator Service.
23
+
24
+ If you ever used MACI, for instance to run a Retroactive Public Goods Funding (RPGF) or Quadratic Funding (QF) round, you might be aware of how tedious it was to operate. The manual process of running scripts to finalise a round and calculate the tally as well as all of the zk-SNARK proofs could require some time and technical expertise. All these steps had to be done in the terminal and you needed to be familiar with MACI's inner workings to understand the process.
25
+
26
+ **Fear no more - the coordinator service is here to make your life easier.**
27
+
28
+ ## The vision: MACI for everyone
29
+
30
+ Our goal is ambitious, yet simple: **completely eliminate the need for any technical knowledge to use MACI**. No more terminal commands, no more manual proof generation, no more complex scripts. Just configure once, run inside a Docker container on your server, and enjoy the full power of MACI's privacy-preserving voting infrastructure.
31
+
32
+ ## Technical implementation
33
+
34
+ The service was built with the following technologies for reliability and scalability:
35
+
36
+ - TypeScript for type-safe, maintainable code
37
+ - Nest.js framework for enterprise-grade architecture
38
+ - REST API for standard CRUD operations
39
+ - WebSocket endpoints for real-time updates during intensive computations
40
+ - MACI SDK package to have all the logic and functions ready to use
41
+ - Docker-ready for simple deployment anywhere
42
+
43
+ The core functionalities of the service are as follows:
44
+
45
+ - Deploy a MACI [subgraph](https://github.com/privacy-scaling-explorations/maci/tree/dev/apps/coordinator/ts/subgraph) to query on-chain data easily
46
+ - [Deploy](https://github.com/privacy-scaling-explorations/maci/tree/dev/apps/coordinator/ts/deployer) the MACI smart contracts, including polls
47
+ - [Finalise](https://github.com/privacy-scaling-explorations/maci/tree/dev/apps/coordinator/ts/proof) polls by processing votes and tallying the results
48
+ - [Schedule](https://github.com/privacy-scaling-explorations/maci/tree/main/apps/coordinator/ts/scheduler) polls for automatic finalization when the voting period ends
49
+ - [Health](https://github.com/privacy-scaling-explorations/maci/tree/main/apps/coordinator/ts/health) endpoint to check everything is setup and working
50
+
51
+ Let's dive into more details in the following sections.
52
+
53
+ ### Subraph deployment
54
+
55
+ The endpoint to deploy a subgraph requires some configuration in the `.env` file, as well as an HTTP request to the endpoint responsible for this `https://coordinator.maci.vote/v1/subgraph/deploy`. Make sure you have an account in [The Graph](https://thegraph.com/studio/) to setup your `.env` file before starting the coordinator service.
56
+
57
+ ### Contracts deployment
58
+
59
+ There are two endpoints in this module: deploy maci (`https://coordinator.maci.vote/v1/deploy/maci`) and deploy poll (`https://coordinator.maci.vote/v1/deploy/poll`). This will take care of all contracts deployment and configuration. It is worth pointing out that you should read the [coordinator service API documentation](https://coordinator.maci.vote/api) and the [MACI guides](https://maci.pse.dev/docs/core-concepts/workflow) to understand the roles of each contract (MACI, poll, policy, initialVoiceCredit).
60
+
61
+ You can deploy one MACI contract (and its internal smart contracts) that will have one gatekeeper policy (e.g. FreeForAll) for all voters to sign up. After that you can deploy multiple polls with different settings (start date, end date, gatekeeper policy, etc). Each voter will have to join each poll to be eligible to participate in. The poll's gatekeeper will check the voter eligibility to join the poll.
62
+
63
+ ### Finalisation
64
+
65
+ This step includes three separate actions:
66
+
67
+ 1. Merge - calculate the state merkle tree root and store a commitment to its root (`https://coordinator.maci.vote/v1/proof/merge`)
68
+ 2. Process - fetch all smart contracts events to reconstruct the state locally and process all votes. This includes decrypting votes, checking validity, and finally tallying them. zk-SNARK proofs are generated for each batch of votes processed (`https://coordinator.maci.vote/v1/proof/generate`)
69
+ 3. Submit - submitting all of the zk-SNARK proofs on chain to prove that the poll was processed correctly. Finally, submit the tally results on chain so that they can be seen by everyone (`https://coordinator.maci.vote/v1/proof/submit`)
70
+
71
+ We chose to separate each action into its own endpoint to avoid long-running computations that could lead to network errors or timeouts.
72
+
73
+ ### Schedule
74
+
75
+ After finishing up the finalisation module, we realized that it would be a lot easier for users to create polls and schedule the finalization process. This removes the need for users to manually call the finalization endpoints described above.
76
+
77
+ 1. To schedule a deployed poll you can use `https://coordinator.maci.vote/v1/scheduler/register`.
78
+ 2. To check if a poll is scheduled you can use `https://coordinator.maci.vote/v1/scheduler/status`
79
+ 3. To delete a scheduled poll you can use `https://coordinator.maci.vote/v1/scheduler/delete`
80
+
81
+ ## How to use
82
+
83
+ ### Run it from source
84
+
85
+ 1. Clone the MACI repository: [https://github.com/privacy-scaling-explorations/maci](https://github.com/privacy-scaling-explorations/maci)
86
+ 2. Install dependencies and build the project
87
+
88
+ ```bash
89
+ pnpm install
90
+ pnpm run build
91
+ ```
92
+
93
+ 3. Download the zkeys for the coordinator
94
+
95
+ ```bash
96
+ pnpm run download-zkeys:ceremony:coordinator
97
+ ```
98
+
99
+ 4. Generate a coordinator MACI keypair. Remember to store those values for later.
100
+
101
+ ```bash
102
+ pnpm run generate-maci-keypair
103
+ ```
104
+
105
+ 5. Move to the coordinator service directory
106
+
107
+ ```bash
108
+ cd apps/coordinator
109
+ ```
110
+
111
+ 6. Configure your `.env` file. Make sure to configure it with your own secure values. The coordinator MACI private key from the previous step should be set here
112
+
113
+ ```bash
114
+ cp .env.example .env
115
+ ```
116
+
117
+ 7. Start the service
118
+
119
+ ```bash
120
+ pnpm run start
121
+ # or
122
+ pnpm run start:prod
123
+ ```
124
+
125
+ ### Run it with Docker
126
+
127
+ 1. Clone the MACI repository: [https://github.com/privacy-scaling-explorations/maci](https://github.com/privacy-scaling-explorations/maci)
128
+ 2. Go inside the project directory
129
+
130
+ ```bash
131
+ cd maci
132
+ ```
133
+
134
+ 3. Build the docker image and run the container
135
+
136
+ ```bash
137
+ # Build docker
138
+ docker compose -f apps/coordinator/docker-compose.yml build
139
+
140
+ # Run container detached
141
+ docker compose -f apps/coordinator/docker-compose.yml up -d
142
+ ```
143
+
144
+ ## Usage notes
145
+
146
+ 1. You can check out the documentation while the service is running in [http://localhost:3001/api](http://localhost:3001/api)
147
+
148
+ 2. We have a [e2e.deploy.test.ts](https://github.com/privacy-scaling-explorations/maci/blob/main/apps/coordinator/tests/e2e.deploy.test.ts) file that performs a complete process: deployment, voting and finalization. You can use it to guide yourself.
149
+
150
+ ## Future work
151
+
152
+ We are researching about different cryptographic methods to decentralize the coordinator. The idea is to eliminate reliance on a single centralized service for finalizing polls. A group of people would be able to spin up their own coordinator services and finalize the poll in a multi-party computation. For more info check out our MACI v4 research.
153
+
154
+ ## Conclusion
155
+
156
+ The MACI Coordinator Service represents a significant leap forward in making MACI accessible to everyone. Whether you're running a small community poll or a large-scale funding round, the coordinator service handles the complexity so you can focus on what matters - empowering your community with private, secure voting.
157
+
158
+ Ready to get started? Head over to our documentation and deploy your first MACI round today!
159
+
160
+ Please reach out if you would like to integrate the service into your frontend.
161
+
162
+ ## References
163
+
164
+ - [MACI repo](https://github.com/privacy-scaling-explorations/maci)
165
+ - [Sample frontend](https://github.com/privacy-scaling-explorations/maci-aragon-osx-gov-app) using the coordinator service
166
+ - [Code examples](https://github.com/privacy-scaling-explorations/maci-aragon-osx-gov-app/blob/main/plugins/maciVoting/contexts/CoordinatorContext.tsx)
167
+ - [Documentation](https://maci.pse.dev/docs/category/coordinator-service)
Binary file
Binary file
Binary file
@@ -0,0 +1,5 @@
1
+ PSE:
2
+ name: Privacy and Scaling Explorations (PSE)
3
+ title: Zero-Knowledge research team
4
+ url: https://pse.dev
5
+ image_url: /img/pse-logo-round.png
@@ -0,0 +1,219 @@
1
+ import rehypeKatex from "rehype-katex";
2
+ import remarkMath from "remark-math";
3
+
4
+ import type * as Preset from "@docusaurus/preset-classic";
5
+ import type { Config } from "@docusaurus/types";
6
+
7
+ import { loadContent } from "./src/plugins/blog-plugin/index";
8
+
9
+ const GITHUB_URL = "https://github.com/privacy-scaling-explorations/maci";
10
+
11
+ async function getConfig(): Promise<Config> {
12
+ const blogPosts = await loadContent();
13
+
14
+ const config: Config = {
15
+ title: "MACI",
16
+ tagline: "Minimal Anti-Collusion Infrastructure",
17
+ favicon: "img/favicon.ico",
18
+
19
+ // Set the production url of your site here
20
+ url: "https://maci.pse.dev",
21
+ // Set the /<baseUrl>/ pathname under which your site is served
22
+ // For GitHub pages deployment, it is often '/<projectName>/'
23
+ baseUrl: "/",
24
+
25
+ // GitHub pages deployment config.
26
+ // If you aren't using GitHub pages, you don't need these.
27
+ organizationName: "privacy-scaling-explorations", // Usually your GitHub org/user name.
28
+ projectName: "maci", // Usually your repo name.
29
+
30
+ onBrokenLinks: "warn",
31
+ onBrokenMarkdownLinks: "warn",
32
+
33
+ // Even if you don't use internationalization, you can use this field to set
34
+ // useful metadata like html lang. For example, if your site is Chinese, you
35
+ // may want to replace "en" with "zh-Hans".
36
+ i18n: {
37
+ defaultLocale: "en",
38
+ locales: ["en"],
39
+ },
40
+
41
+ presets: [
42
+ [
43
+ "classic",
44
+ {
45
+ docs: {
46
+ routeBasePath: "docs/",
47
+ sidebarPath: "./sidebars.ts",
48
+ editUrl: ({ versionDocsDirPath, docPath }) =>
49
+ `${GITHUB_URL}/edit/dev/apps/website/${versionDocsDirPath}/${docPath}`,
50
+ remarkPlugins: [remarkMath],
51
+ rehypePlugins: [rehypeKatex],
52
+ includeCurrentVersion: false,
53
+ versions: {
54
+ "v1.2": {
55
+ banner: "none",
56
+ },
57
+ },
58
+ },
59
+ blog: {
60
+ showReadingTime: true,
61
+
62
+ editUrl: ({ blogDirPath, blogPath }) => `${GITHUB_URL}/edit/dev/apps/website/${blogDirPath}/${blogPath}`,
63
+ remarkPlugins: [remarkMath],
64
+ rehypePlugins: [rehypeKatex],
65
+ onUntruncatedBlogPosts: "ignore",
66
+ },
67
+ theme: {
68
+ customCss: "./src/css/custom.css",
69
+ },
70
+ } satisfies Preset.Options,
71
+ ],
72
+ ],
73
+
74
+ plugins: [
75
+ [
76
+ "@easyops-cn/docusaurus-search-local",
77
+ {
78
+ hashed: true,
79
+ language: ["en"],
80
+ // If the `indexDocs` is set to `true`, Docusaurus will index docs.
81
+ // If the `indexBlog` is set to `true`, Docusaurus will index blogs.
82
+ indexDocs: true,
83
+ indexBlog: true,
84
+ // If the `indexPages` is set to `true`, Docusaurus will index pages.
85
+ indexPages: true,
86
+ // // Docs route base path, default to '/docs'.
87
+ // docsRouteBasePath: '/docs',
88
+ // Blog route base path, default to '/blog'.
89
+ blogRouteBasePath: "/blog",
90
+ },
91
+ ],
92
+ "docusaurus-plugin-image-zoom",
93
+ "docusaurus-plugin-matomo",
94
+ ],
95
+ stylesheets: [
96
+ {
97
+ href: "https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css",
98
+ type: "text/css",
99
+ integrity: "sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM",
100
+ crossorigin: "anonymous",
101
+ },
102
+ ],
103
+ customFields: {
104
+ blogPosts: Array.isArray(blogPosts) ? blogPosts : [],
105
+ },
106
+ themeConfig: {
107
+ prism: {
108
+ additionalLanguages: ["bash"],
109
+ },
110
+ image: "img/maci-card.png",
111
+ navbar: {
112
+ title: "MACI",
113
+ items: [
114
+ {
115
+ label: "Documentation",
116
+ href: "/docs/introduction",
117
+ position: "left",
118
+ },
119
+ {
120
+ to: "/blogs",
121
+ label: "Blog",
122
+ },
123
+ {
124
+ to: "/roadmap",
125
+ label: "Roadmap",
126
+ position: "left",
127
+ },
128
+ {
129
+ to: "/projects",
130
+ label: "Projects",
131
+ position: "left",
132
+ },
133
+ {
134
+ type: "docsVersionDropdown",
135
+ position: "right",
136
+ dropdownActiveClassDisabled: true,
137
+ // TODO: add /versions page to explain major versions & link to blog posts
138
+ // dropdownItemsAfter: [
139
+ // {
140
+ // type: 'html',
141
+ // value: '<hr class="dropdown-separator">',
142
+ // },
143
+ // {
144
+ // to: '/versions',
145
+ // label: 'All versions',
146
+ // },
147
+ // ],
148
+ },
149
+ {
150
+ type: "search",
151
+ position: "right",
152
+ },
153
+ {
154
+ href: GITHUB_URL,
155
+ label: "GitHub",
156
+ position: "right",
157
+ },
158
+ ],
159
+ },
160
+ footer: {
161
+ links: [
162
+ {
163
+ title: "Docs",
164
+ items: [
165
+ {
166
+ label: "Documentation",
167
+ to: "/docs/introduction",
168
+ },
169
+ {
170
+ label: "GitHub",
171
+ href: GITHUB_URL,
172
+ },
173
+ ],
174
+ },
175
+ {
176
+ title: "Community",
177
+ items: [
178
+ {
179
+ label: "Discord",
180
+ href: "https://discord.com/invite/sF5CT5rzrR",
181
+ },
182
+ {
183
+ label: "Twitter",
184
+ href: "https://twitter.com/zkMACI",
185
+ },
186
+ ],
187
+ },
188
+ {
189
+ title: "More",
190
+ items: [
191
+ {
192
+ label: "Blog",
193
+ to: "/blog",
194
+ },
195
+ ],
196
+ },
197
+ ],
198
+ copyright: `Copyright © ${new Date().getFullYear().toString()} Privacy and Scaling Explorations`,
199
+ },
200
+ zoom: {},
201
+ matomo: {
202
+ matomoUrl: "https://psedev.matomo.cloud/",
203
+ siteId: "18",
204
+ phpLoader: "matomo.php",
205
+ jsLoader: "matomo.js",
206
+ },
207
+ mermaid: {
208
+ theme: { light: "neutral", dark: "forest" },
209
+ },
210
+ } satisfies Preset.ThemeConfig,
211
+ markdown: {
212
+ mermaid: true,
213
+ },
214
+ themes: ["@docusaurus/theme-mermaid"],
215
+ };
216
+ return config;
217
+ }
218
+
219
+ export default getConfig();
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@maci-protocol/website",
3
+ "version": "0.0.0-ci.00107eb",
4
+ "private": false,
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "scripts": {
9
+ "setup-typedoc": "ts-node ./src/scripts/setupTypedoc.ts",
10
+ "setup-soliditydocs": "ts-node ./src/scripts/setupSolidityDocs.ts",
11
+ "docusaurus": "docusaurus",
12
+ "start": "docusaurus start",
13
+ "prebuild": "pnpm run setup-typedoc && pnpm run setup-soliditydocs",
14
+ "build": "docusaurus build",
15
+ "swizzle": "docusaurus swizzle",
16
+ "deploy": "docusaurus deploy",
17
+ "clear": "docusaurus clear",
18
+ "serve": "docusaurus serve",
19
+ "write-translations": "docusaurus write-translations",
20
+ "write-heading-ids": "docusaurus write-heading-ids",
21
+ "types": "tsc -p tsconfig.json --noEmit"
22
+ },
23
+ "dependencies": {
24
+ "@docusaurus/core": "^3.8.1",
25
+ "@docusaurus/preset-classic": "^3.8.1",
26
+ "@docusaurus/theme-classic": "^3.8.1",
27
+ "@docusaurus/theme-common": "^3.8.1",
28
+ "@docusaurus/theme-mermaid": "^3.8.1",
29
+ "@easyops-cn/docusaurus-search-local": "^0.52.1",
30
+ "@mdx-js/react": "^3.1.0",
31
+ "clsx": "^2.1.1",
32
+ "docusaurus-plugin-image-zoom": "^3.0.1",
33
+ "docusaurus-plugin-matomo": "^0.0.8",
34
+ "gray-matter": "^4.0.3",
35
+ "prism-react-renderer": "^2.4.1",
36
+ "react": "^19.1.1",
37
+ "react-dom": "^19.1.1",
38
+ "rehype-katex": "^7.0.1",
39
+ "remark-math": "^6.0.0"
40
+ },
41
+ "devDependencies": {
42
+ "@docusaurus/module-type-aliases": "^3.8.1",
43
+ "@docusaurus/tsconfig": "^3.8.1",
44
+ "@docusaurus/types": "^3.8.1",
45
+ "@types/node": "^24.2.0",
46
+ "@types/react": "^19.1.9",
47
+ "ts-node": "^10.9.2",
48
+ "typescript": "^5.9.2"
49
+ },
50
+ "browserslist": {
51
+ "production": [
52
+ ">0.5%",
53
+ "not dead",
54
+ "not op_mini all"
55
+ ],
56
+ "development": [
57
+ "last 3 chrome version",
58
+ "last 3 firefox version",
59
+ "last 5 safari version"
60
+ ]
61
+ },
62
+ "engines": {
63
+ "node": ">=18.0"
64
+ },
65
+ "gitHead": "a35d35aea039b6cd1abbe8d842ac2aa754661135"
66
+ }
@@ -0,0 +1,30 @@
1
+ import styles from "./styles.module.css";
2
+
3
+ interface ActionCardProps {
4
+ title: string;
5
+ description: string;
6
+ buttonText: string;
7
+ buttonUrl: string;
8
+ }
9
+
10
+ const ActionCard: React.FC<ActionCardProps> = ({ buttonText, buttonUrl, description, title }: ActionCardProps) => (
11
+ <div className={styles.actionCard}>
12
+ <div className={styles.actionCardBody}>
13
+ <div className={styles.actionCardContent}>
14
+ <div className={styles.actionCardText}>
15
+ <h2 className={styles.actionCardTitle}>{title}</h2>
16
+
17
+ <p className={styles.actionCardDescription}>{description}</p>
18
+ </div>
19
+
20
+ <div className={styles.actionCardButtonContainer}>
21
+ <a className={styles.actionCardButton} href={buttonUrl} rel="noopener noreferrer" target="_blank">
22
+ {buttonText}
23
+ </a>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ );
29
+
30
+ export default ActionCard;
@@ -0,0 +1,96 @@
1
+ .actionCard {
2
+ background-color: #1a202c; /* darkBlue */
3
+ color: white;
4
+ border-radius: 24px;
5
+ width: 100%;
6
+ padding: 64px 32px;
7
+ }
8
+
9
+ .actionCardBody {
10
+ padding: 0;
11
+ }
12
+
13
+ .actionCardContent {
14
+ display: flex;
15
+ flex-direction: column;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ gap: 2rem;
19
+ }
20
+
21
+ .actionCardText {
22
+ width: 100%;
23
+ }
24
+
25
+ .actionCardTitle {
26
+ font-size: 30px;
27
+ line-height: 44px;
28
+ font-weight: normal;
29
+ color: white;
30
+ }
31
+
32
+ .actionCardDescription {
33
+ margin-top: 1rem;
34
+ font-size: 16px;
35
+ line-height: 25px;
36
+ font-weight: normal;
37
+ color: #a0aec0; /* text.400 */
38
+ }
39
+
40
+ .actionCardButtonContainer {
41
+ width: 100%;
42
+ }
43
+
44
+ .actionCardButton {
45
+ display: inline-block;
46
+ padding: 0.5rem 1rem;
47
+ background-color: #3182ce; /* primary */
48
+ color: white;
49
+ text-decoration: none;
50
+ border-radius: 0.25rem;
51
+ font-size: 1rem;
52
+ line-height: 1.5;
53
+ text-align: center;
54
+ }
55
+
56
+ @media (min-width: 768px) {
57
+ .actionCardContent {
58
+ flex-direction: row;
59
+ gap: 0;
60
+ }
61
+
62
+ .actionCardText {
63
+ width: 522px;
64
+ }
65
+
66
+ .actionCardTitle {
67
+ font-size: 40px;
68
+ }
69
+
70
+ .actionCardDescription {
71
+ font-size: 20px;
72
+ line-height: 32px;
73
+ }
74
+
75
+ .actionCardButtonContainer {
76
+ width: auto;
77
+ }
78
+
79
+ .actionCardButton {
80
+ padding: 0.75rem 1.5rem;
81
+ font-size: 1.125rem;
82
+ border-radius: 30px;
83
+ }
84
+ }
85
+
86
+ @media (min-width: 992px) {
87
+ .actionCard {
88
+ padding: 41px 80px;
89
+ }
90
+ }
91
+
92
+ @media (min-width: 1280px) {
93
+ .actionCard {
94
+ width: 1110px;
95
+ }
96
+ }