PageSourceSearch

https://gemforge.xyz/getting-started/

html gemforge.xyz collected 2026-09-25 22:48:17 UTC 32,100 bytes, 419 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="h-full">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <meta name="turbo-cache-control" content="no-cache" data-turbo-track="reload" data-track-token="3.6.0.792839529395">
7
8    <!-- See retype.com -->
9    <meta name="generator" content="Retype 3.6.0">
10
11    <!-- Primary Meta Tags -->
12    <title>Getting started | Gemforge</title>
13    <meta name="title" content="Getting started | Gemforge">
14    <meta name="description" content="Gemforge is written in Node.js and works on all the platforms that Node runs on.">
15
16    <!-- Canonical -->
17    <link rel="canonical" href="https://gemforge.xyz/getting-started/">
18
19    <!-- Open Graph / Facebook -->
20    <meta property="og:type" content="website">
21    <meta property="og:url" content="https://gemforge.xyz/getting-started/">
22    <meta property="og:title" content="Getting started | Gemforge">
23    <meta property="og:description" content="Gemforge is written in Node.js and works on all the platforms that Node runs on.">
24
25    <!-- Twitter -->
26    <meta property="twitter:card" content="summary_large_image">
27    <meta property="twitter:url" content="https://gemforge.xyz/getting-started/">
28    <meta property="twitter:title" content="Getting started | Gemforge">
29    <meta property="twitter:description" content="Gemforge is written in Node.js and works on all the platforms that Node runs on.">
30
31    
31<script data-cfasync="false">(function () { var el = document.documentElement, m = localStorage.getItem("doc_theme"), wm = window.matchMedia; if (m === "dark" || (!m && wm && wm("(prefers-color-scheme: dark)").matches)) { el.classList.add("dark") } else { el.classList.remove("dark") } })();</script>
31
32
33    <link href="../static/favicon.png" rel="icon">
34    <link href="../resources/css/retype.css?v=3.6.0.792839529395" rel="stylesheet">
35
36    
36<script data-cfasync="false" src="../resources/js/config.js?v=3.6.0.792839529395" data-turbo-eval="false" defer></script>
36
37    
37<script data-cfasync="false" src="../resources/js/retype.js?v=3.6.0" data-turbo-eval="false" defer></script>
37
38    
38<script id="lunr-js" data-cfasync="false" src="../resources/js/lunr.js?v=3.6.0.792839529395" data-turbo-eval="false" defer></script>
38
39    
39<script id="prism-js" data-cfasync="false" src="../resources/js/prism.js?v=3.6.0.792839529395" defer></script>
39
40</head>
41<body>
42    <div id="docs-app" class="relative text-base antialiased text-gray-700 bg-white font-body dark:bg-dark-850 dark:text-dark-300">
43        <div class="absolute bottom-0 left-0 bg-gray-100 dark:bg-dark-800" style="top: 5rem; right: 50%"></div>
44    
45        <header id="docs-site-header" class="sticky top-0 z-30 flex w-full h-16 bg-white border-b border-gray-200 md:h-20 dark:bg-dark-850 dark:border-dark-650">
46            <div class="container relative flex items-center justify-between pr-6 grow md:justify-start">
47                <!-- Mobile menu button skeleton -->
48                <button v-cloak class="skeleton docs-mobile-menu-button flex items-center justify-center shrink-0 overflow-hidden dark:text-white focus:outline-none rounded-full w-10 h-10 ml-3.5 md:hidden"><svg xmlns="http://www.w3.org/2000/svg" class="mb-px shrink-0" width="24" height="24" viewBox="0 0 24 24" role="presentation" style="margin-bottom: 0px;"><g fill="currentColor"><path d="M2 4h20v2H2zM2 11h20v2H2zM2 18h20v2H2z"></path></g></svg></button>
49                <div v-cloak id="docs-sidebar-toggle"></div>
50        
51                <!-- Logo -->
52                <div class="flex items-center justify-between h-full py-2 md:w-75">
53                    <div class="flex items-center px-2 md:px-6">
54                        <a id="docs-site-logo" href="../" class="flex items-center leading-snug text-2xl">
55                            <span class="w-10 mr-2 grow-0 shrink-0 overflow-hidden">
56                                <img class="max-h-10 dark:hidden md:inline-block" src="../static/logo.png">
57                                <img class="max-h-10 hidden dark:inline-block" src="../static/logo.png">
58                            </span>
59                            <span class="dark:text-white font-semibold line-clamp-1 md:line-clamp-2">Gemforge</span>
60                        </a>
61                    </div>
62        
63                    <span class="hidden h-8 border-r md:inline-block dark:border-dark-650"></span>
64                </div>
65        
66                <div class="flex justify-between md:grow">
67                    <!-- Top Nav -->
68                    <nav class="hidden md:flex">
69                        <ul class="flex flex-col mb-4 md:pl-16 md:mb-0 md:flex-row md:items-center">
70                            <li class="mr-6">
71                                <a class="py-2 md:mb-0 inline-flex items-center text-sm whitespace-nowrap transition-colors duration-200 ease-linear md:text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200" href="https://github.com/gemstation/gemforge">Github</a>
72                            </li>
73                            <li class="mr-6">
74                                <a class="py-2 md:mb-0 inline-flex items-center text-sm whitespace-nowrap transition-colors duration-200 ease-linear md:text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200" href="https://npmjs.com/package/gemforge">NPM</a>
75                            </li>
76                            <li class="mr-6">
77                                <a class="py-2 md:mb-0 inline-flex items-center text-sm whitespace-nowrap transition-colors duration-200 ease-linear md:text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200" href="https://twitter.com/hiddentao">Twitter</a>
78                            </li>
79        
80                        </ul>
81                    </nav>
82        
83                    <!-- Header Right Skeleton -->
84                    <div v-cloak class="flex justify-end grow skeleton">
85        
86                        <!-- Search input mock -->
87                        <div class="relative hidden w-40 lg:block lg:max-w-sm lg:ml-auto">
88                            <div class="absolute flex items-center justify-center h-full pl-3 dark:text-dark-300">
89                                <svg xmlns="http://www.w3.org/2000/svg" class="icon-base" width="16" height="16" viewBox="0 0 24 24" aria-labelledby="icon" role="presentation" style="margin-bottom: 1px;"><g fill="currentColor" ><path d="M21.71 20.29l-3.68-3.68A8.963 8.963 0 0020 11c0-4.96-4.04-9-9-9s-9 4.04-9 9 4.04 9 9 9c2.12 0 4.07-.74 5.61-1.97l3.68 3.68c.2.19.45.29.71.29s.51-.1.71-.29c.39-.39.39-1.03 0-1.42zM4 11c0-3.86 3.14-7 7-7s7 3.14 7 7c0 1.92-.78 3.66-2.04 4.93-.01.01-.02.01-.02.01-.01.01-.01.01-.01.02A6.98 6.98 0 0111 18c-3.86 0-7-3.14-7-7z" ></path></g></svg>
90                            </div>
91                            <input class="w-full h-10 placeholder-gray-400 transition-colors duration-200 ease-in bg-gray-200 border border-transparent roun
91ded md:text-sm hover:bg-white hover:border-gray-300 focus:outline-none focus:bg-white focus:border-gray-500 dark:bg-dark-600 dark:border-dark-600 dark:placeholder-dark-400" style="padding: 0.625rem 0.75rem 0.625rem 2rem" type="text" placeholder="Search">
92                        </div>
93        
94                        <!-- Mobile search button -->
95                        <div class="flex items-center justify-center w-10 h-10 lg:hidden">
96                            <svg xmlns="http://www.w3.org/2000/svg" class="shrink-0 icon-base" width="20" height="20" viewBox="0 0 24 24" aria-labelledby="icon" role="presentation" style="margin-bottom: 0px;"><g fill="currentColor" ><path d="M21.71 20.29l-3.68-3.68A8.963 8.963 0 0020 11c0-4.96-4.04-9-9-9s-9 4.04-9 9 4.04 9 9 9c2.12 0 4.07-.74 5.61-1.97l3.68 3.68c.2.19.45.29.71.29s.51-.1.71-.29c.39-.39.39-1.03 0-1.42zM4 11c0-3.86 3.14-7 7-7s7 3.14 7 7c0 1.92-.78 3.66-2.04 4.93-.01.01-.02.01-.02.01-.01.01-.01.01-.01.02A6.98 6.98 0 0111 18c-3.86 0-7-3.14-7-7z" ></path></g></svg>
97                        </div>
98        
99                        <!-- Dark mode switch placeholder -->
100                        <div class="w-10 h-10 lg:ml-2"></div>
101        
102                        <!-- History button -->
103                        <div class="flex items-center justify-center w-10 h-10" style="margin-right: -0.625rem;">
104                            <svg xmlns="http://www.w3.org/2000/svg" class="shrink-0 icon-base" width="22" height="22" viewBox="0 0 24 24" aria-labelledby="icon" role="presentation" style="margin-bottom: 0px;"><g fill="currentColor" ><g ><path d="M12.01 6.01c-.55 0-1 .45-1 1V12a1 1 0 00.4.8l3 2.22a.985.985 0 001.39-.2.996.996 0 00-.21-1.4l-2.6-1.92V7.01c.02-.55-.43-1-.98-1z"></path><path d="M12.01 1.91c-5.33 0-9.69 4.16-10.05 9.4l-.29-.26a.997.997 0 10-1.34 1.48l1.97 1.79c.19.17.43.26.67.26s.48-.09.67-.26l1.97-1.79a.997.997 0 10-1.34-1.48l-.31.28c.34-4.14 3.82-7.41 8.05-7.41 4.46 0 8.08 3.63 8.08 8.09s-3.63 8.08-8.08 8.08c-2.18 0-4.22-.85-5.75-2.4a.996.996 0 10-1.42 1.4 10.02 10.02 0 007.17 2.99c5.56 0 10.08-4.52 10.08-10.08.01-5.56-4.52-10.09-10.08-10.09z"></path></g></g></svg>
105                        </div>
106                    </div>
107        
108                    <div v-cloak class="flex justify-end grow">
109                        <div id="docs-mobile-search-button"></div>
110                        <doc-search-desktop></doc-search-desktop>
111        
112                        <doc-theme-switch class="lg:ml-2"></doc-theme-switch>
113                        <doc-history></doc-history>
114                    </div>
115                </div>
116            </div>
117        </header>
118    
119        <div class="container relative flex bg-white">
120            <!-- Sidebar Skeleton -->
121            <div v-cloak class="fixed flex flex-col shrink-0 duration-300 ease-in-out bg-gray-100 border-gray-200 sidebar top-20 w-75 border-r h-screen md:sticky transition-transform skeleton dark:bg-dark-800 dark:border-dark-650">
122            
123                <!-- Render this div, if config.showSidebarFilter is `true` -->
124                <div class="flex items-center h-16 px-6">
125                    <input class="w-full h-8 px-3 py-2 transition-colors duration-200 ease-linear bg-white border border-gray-200 rounded shadow-none text-sm focus:outline-none focus:border-gray-600 dark:bg-dark-600 dark:border-dark-600" type="text" placeholder="Filter">
126                </div>
127            
128                <div class="pl-6 mt-1 mb-4">
129                    <div class="w-32 h-3 mb-4 bg-gray-200 rounded-full loading dark:bg-dark-600"></div>
130                    <div class="w-48 h-3 mb-4 bg-gray-200 rounded-full loading dark:bg-dark-600"></div>
131                    <div class="w-40 h-3 mb-4 bg-gray-200 rounded-full loading dark:bg-dark-600"></div>
132                    <div class="w-32 h-3 mb-4 bg-gray-200 rounded-full loading dark:bg-dark-600"></div>
133                    <div class="w-48 h-3 mb-4 bg-gray-200 rounded-full loading dark:bg-dark-600"></div>
134                    <div class="w-40 h-3 mb-4 bg-gray-200 rounded-full loading dark:bg-dark-600"></div>
135                </div>
136            
137                <div class="shrink-0 mt-auto bg-transparent dark:border-dark-650">
138                    <a class="flex items-center justify-center flex-nowrap h-16 text-gray-400 dark:text-dark-400 hover:text-gray-700 dark:hover:text-dark-300 transition-colors duration-150 ease-in docs-powered-by" target="_blank" href="https://retype.com/" rel="noopener">
139                        <span class="text-xs whitespace-nowrap">Powered by</span>
140                        <svg xmlns="http://www.w3.org/2000/svg" class="ml-2" fill="currentColor" width="96" height="20" overflow="visible"><path d="M0 0v20h13.59V0H0zm11.15 17.54H2.44V2.46h8.71v15.08zM15.8 20h2.44V4.67L15.8 2.22zM20.45 6.89V20h2.44V9.34z"/><g><path d="M40.16 8.44c0 1.49-.59 2.45-1.75 2.88l2.34 3.32h-2.53l-2.04-2.96h-1.43v2.96h-2.06V5.36h3.5c1.43 0 2.46.24 3.07.73s.9 1.27.9 2.35zm-2.48 1.1c.26-.23.38-.59.38-1.09 0-.5-.13-.84-.4-1.03s-.73-.28-1.39-.28h-1.54v2.75h1.5c.72 0 1.2-.12 1.45-.35zM51.56 5.36V7.2h-4.59v1.91h4.13v1.76h-4.13v1.92h4.74v1.83h-6.79V5.36h6.64zM60.09 7.15v7.48h-2.06V7.15h-2.61V5.36h7.28v1.79h-2.61zM70.81 14.64h-2.06v-3.66l-3.19-5.61h2.23l1.99 3.45 1.99-3.45H74l-3.19 5.61v3.66zM83.99 6.19c.65.55.97 1.4.97 2.55s-.33 1.98-1 2.51-1.68.8-3.04.8h-1.23v2.59h-2.06V5.36h3.26c1.42 0 2.45.28 3.1.83zm-1.51 3.65c.25-.28.37-.69.37-1.22s-.16-.92-.48-1.14c-.32-.23-.82-.34-1.5-.34H79.7v3.12h1.38c.68 0 1.15-.14 1.4-.42zM95.85 5.36V7.2h-4.59v1.91h4.13v1.76h-4.13v1.92H96v1.83h-6.79V5.36h6.64z"/></g></svg>
141                    </a>
142                </div>
143            </div>
144            
145            <!-- Sidebar component -->
146            <doc-sidebar v-cloak>
147                <template #sidebar-footer>
148                    <div class="shrink-0 mt-auto border-t md:bg-transparent md:border-none dark:border-dark-650">
149            
150                        <div class="py-3 px-6 md:hidden border-b dark:border-dark-650">
151                            <nav>
152                                <ul class="flex flex-wrap justify-center items-center">
153                                    <li class="mr-6">
154                                        <a class="block py-1 inline-flex items-center text-sm whitespace-nowrap transition-colors duration-200 ease-linear md:text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200" href="https://github.com/gemstation/gemforge">Github</a>
155                                    </li>
156                                    <li class="mr-6">
157                                        <a class="block py-1 inline-flex items-center text-sm whitespace-nowrap transition-colors duration-200 ease-linear md:text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200" href="https://npmjs.com/package/gemforge">NPM</a>
158                                    </li>
159                                    <li class="mr-6">
160                                        <a class="block py-1 inline-flex items-center text-sm whitespace-nowrap transition-colors duration-200 ease-linear md:text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200" href="https://twitter.com/hiddentao">Twitter</a>
161                                    </li>
162            
163                                </ul>
164                            </nav>
165                        </div>
166            
167                        <a class="flex items-center justify-center flex-nowrap h-16 text-gray-400 dark:text-dark-400 hover:text-gray-700 dark:hover:text-dark-300 transition-colors duration-150 ease-in docs-powered-by" target="_blank" href="https://retype.com/" rel="noopener">
168                            <span class="text-xs whitespace-nowrap">Powered by</span>
169                            <svg xmlns="http://www.w3.org/2000/svg" class="ml-2" fill="currentColor" width="96" height="20" overflow="visible"><path d="M0 0v20h13.59V0H0zm11.15 17.54H2.44V2.46h8.71v15.08zM15.8 20h2.44V4.67L15.8 2.22zM20.45 6.89V20h2.44V9.34z"/><g><path d="M40.16 8.44c0 1.49-.59 2.45-1.75 2.88l2.34 3.32h-2.53l-2.04-2.96h-1.43v2.96h-2.06V5.36h3.5c1.43 0 2.46.24 3.07.73s.9 1.27.9 2.35zm-2.48 1.1c.26-.23.38-.59.38-1.09 0-.5-.13-.84-.4-1.03s-.73-.28-1.39-.28h-1.54v2.75h1.5c.72 0 1.2-.12 1.45-.35zM51.56 5.36V7.2h-4.59v1.91h4.13v1.76h-4.13v1.92h4.74v1.83h-6.79V5.36h6.64zM60.09 7.15v7.48h-2.06V7.15h-2.61V5.36h7.28v1.79h-2.61zM70.81 14.64h-2.06v-3.66l-3.19-5.61h2.23l1.99 3.45 1.99-3.45H74l-3.19 5.61v3.66zM83.99 6.19c.65.55.97 1.4.97 2.55s-.33 1.98-1 2.51-1.68.8-3.04.8h-1.23v2.59h-2.06V5.36h3.26c1.42 0 2.45.28 3.1.83zm-1.51 3.65c.25-.28.37-.69.37-1.22s-.16-.92-.48-1.14c-.32-.23-.82-.34-1.5-.34H79.7v3.12h1.38c.68 0 1.15-.14 1.4-.42zM95.85 5.36V7.2h-4.59v1.91h4.13v1.76h-4.13v1.92H96v1.83h-6.79V5.36h6.64z"/></g></svg>
170                        </a>
171                    </div>
172                </template>
173            </doc-sidebar>
174    
175            <div class="grow min-w-0 dark:bg-dark-850">
176                <!-- Render "toolbar" template here on api pages --><!-- Render page content -->
177                <div class="flex">
178                    <div class="min-w-0 p-4 grow md:px-16">
179                        <main class="relative pb-12 lg:pt-2">
180                            <div class="docs-markdown" id="docs-content">
181                                <!-- Rendered if sidebar right is enabled -->
182                                <div id="docs-sidebar-right-toggle"></div>
183                                <!-- Page content  -->
184<doc-anchor-target id="getting-started" class="break-words">
185    <h1>
186        <doc-anchor-trigger class="header-anchor-trigger" to="#getting-started">#</doc-anchor-trigger>
187        <span>Getting started</span>
188    </h1>
189</doc-anchor-target>
190<doc-anchor-target id="step-1---installation">
191    <h2>
192        <doc-anchor-trigger class="header-anchor-trigger" to="#step-1---installation">#</doc-anchor-trigger>
193        <span>Step 1 - Installation</span>
194    </h2>
195</doc-anchor-target>
196<p>Gemforge is written in <a href="http://nodejs.org">Node.js</a> and works on all the platforms that Node runs on.</p>
197<div class="flex mb-6">
198    <div class="shrink-0 w-1 rounded-tl rounded-bl bg-blue-500 dark:bg-blue-400"></div>
199    <div class="flex w-full py-4 border border-l-0 border-gray-300 rounded-tr rounded-br doc-alert bg-white dark:bg-dark-700 dark:border-dark-700" role="alert">
200        <div class="flex items-center ml-4 h-7">
201            <svg xmlns="http://www.w3.org/2000/svg" class="mb-px text-blue-500 dark:text-blue-400" width="22" height="22" viewBox="0 0 24 24" role="presentation">
202                <g fill="currentColor"><g>
203                    <path d="M12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9z"></path>
204                    <path d="M12 11c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zM12.01 7c-.56 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"></path>
205                    <path fill="none" d="M0 0h24v24H0z"></path>
206                </g></g>
207            </svg>
208        </div>
209        <div class="pr-5 ml-3 w-full">
210<p><strong>Node v16 or above is required.</strong> We recommend using <a href="https://github.com/nvm-sh/nvm">nvm</a> to manage different Node versions on your machine.</p>
211        </div>
212    </div>
213</div>
214<p>It&#x27;s best to install Gemforge globally in your Node environment, depending on which package manager you use:</p>
215<doc-tabs>
216<doc-tab v-cloak id="pnpm">
217<template #title>pnpm</template>
218<div class="codeblock-wrapper"><doc-codeblock>
219<pre class="language-bash"><code v-pre class="language-bash">pnpm add --global gemforge</code></pre>
220</doc-codeblock></div>
221</doc-tab>
222<doc-tab v-cloak id="npm">
223<template #title>npm</template>
224<div class="codeblock-wrapper"><doc-codeblock>
225<pre class="language-bash"><code v-pre class="language-bash">npm install --global gemforge</code></pre>
226</doc-codeblock></div>
227</doc-tab>
228<doc-tab v-cloak id="yarn">
229<template #title>yarn</template>
230<div class="codeblock-wrapper"><doc-codeblock>
231<pre class="language-bash"><code v-pre class="language-bash">yarn add --global gemforge</code></pre>
232</doc-codeblock></div>
233</doc-tab>
234</doc-tabs>
235<p>At this point you should be able to run the <code v-pre>gemforge</code> command:</p>
236<div class="codeblock-wrapper"><doc-codeblock>
237<pre class="language-bash"><code v-pre class="language-bash">&gt; gemforge --help
238Usage: gemforge [options] [command]
239
240Options:
241  -V, --version               output the version number
242  -h, --help                  display help for command
243
244Commands:
245  init [options]              Initialize a gemforge config file for an existing project.
246  scaffold [options]          Generate diamond smart contract project scaffolding.
247  build [options]             Build a project.
248  deploy [options] [network]  Deploy the diamond to a network.
249  help [command]              display help for command</code></pre>
250</doc-codeblock></div>
251<doc-anchor-target id="step-2---project-setup">
252    <h2>
253        <doc-anchor-trigger class="header-anchor-trigger" to="#step-2---project-setup">#</doc-anchor-trigger>
254        <span>Step 2 - Project setup</span>
255    </h2>
256</doc-anchor-target>
257<p>Gemforge provides <a href="../frameworks/">example projects</a> to get you started.</p>
258<p>These can be cloned and setup in an empty folder using the <a href="../commands/scaffold/">scaffold</a> command:</p>
259<doc-tabs>
260<doc-tab v-cloak id="foundry">
261<template #title>Foundry</template>
262<div class="codeblock-wrapper"><doc-codeblock>
263<pre class="language-bash"><code v-pre class="language-bash">gemforge scaffold --folder /path/to/new_or_empty_folder</code></pre>
264</doc-codeblock></div>
265</doc-tab>
266<doc-tab v-cloak id="hardhat">
267<template #title>
267Hardhat</template>
268<div class="codeblock-wrapper"><doc-codeblock>
269<pre class="language-bash"><code v-pre class="language-bash">gemforge scaffold --hardhat --folder /path/to/new_or_empty_folder</code></pre>
270</doc-codeblock></div>
271</doc-tab>
272</doc-tabs>
273<doc-panel id="use-with-an-existing-project" collapsed>
274    <template #title>Use with an existing project</template>
275<p>If you have an existing Diamond Standard project then you can use the <a href="../commands/init/">init</a> command to create a Gemforge <a href="../configuration/">configuration file</a>.</p>
276<doc-tabs>
277<doc-tab v-cloak id="foundry">
278<template #title>Foundry</template>
279<div class="codeblock-wrapper"><doc-codeblock>
280<pre class="language-bash"><code v-pre class="language-bash">gemforge init</code></pre>
281</doc-codeblock></div>
282</doc-tab>
283<doc-tab v-cloak id="hardhat">
284<template #title>Hardhat</template>
285<div class="codeblock-wrapper"><doc-codeblock>
286<pre class="language-bash"><code v-pre class="language-bash">gemforge init --hardhat</code></pre>
287</doc-codeblock></div>
288</doc-tab>
289</doc-tabs>
290<p>The <code v-pre>gemforge.config.cjs</code> file will have been created in the current folder. You will probably need to edit this file to <a href="../configuration/">customize it</a> for your project.</p>
291<div class="flex mb-6">
292    <div class="shrink-0 w-1 rounded-tl rounded-bl bg-blue-500 dark:bg-blue-400"></div>
293    <div class="flex w-full py-4 border border-l-0 border-gray-300 rounded-tr rounded-br doc-alert bg-white dark:bg-dark-700 dark:border-dark-700" role="alert">
294        <div class="flex items-center ml-4 h-7">
295            <svg xmlns="http://www.w3.org/2000/svg" class="mb-px text-blue-500 dark:text-blue-400" width="22" height="22" viewBox="0 0 24 24" role="presentation">
296                <g fill="currentColor"><g>
297                    <path d="M12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9z"></path>
298                    <path d="M12 11c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zM12.01 7c-.56 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"></path>
299                    <path fill="none" d="M0 0h24v24H0z"></path>
300                </g></g>
301            </svg>
302        </div>
303        <div class="pr-5 ml-3 w-full">
304<p>Note: Gemforge assumes that your project uses the <a href="https://github.com/mudgen/diamond-2-hardhat">diamond-2-hardhat</a> reference repository for the core Diamond Standard libraries. It also assumes that the <a href="../configuration/diamond/">core facets</a> are part of your diamond.</p>
305        </div>
306    </div>
307</div>
308</doc-panel>
309<doc-anchor-target id="step-3---build-contracts">
310    <h2>
311        <doc-anchor-trigger class="header-anchor-trigger" to="#step-3---build-contracts">#</doc-anchor-trigger>
312        <span>Step 3 - Build contracts</span>
313    </h2>
314</doc-anchor-target>
315<p>To generate all necessary Diamond code and compile your project inside the project folder:</p>
316<div class="codeblock-wrapper"><doc-codeblock>
317<pre class="language-bash"><code v-pre class="language-bash">gemforge build</code></pre>
318</doc-codeblock></div>
319<doc-anchor-target id="step-4---deploy-contracts">
320    <h2>
321        <doc-anchor-trigger class="header-anchor-trigger" to="#step-4---deploy-contracts">#</doc-anchor-trigger>
322        <span>Step 4 - Deploy contracts</span>
323    </h2>
324</doc-anchor-target>
325<p>Assuming a local test node is running at http://localhost:8545, use the following to deploy your Diamond code and facets to it:</p>
326<div class="codeblock-wrapper"><doc-codeblock>
327<pre class="language-bash"><code v-pre class="language-bash">gemforge deploy local</code></pre>
328</doc-codeblock></div>
329<p>At this point you&#x27;ve just built and deployed a Diamond Standard project to your local test node using Gemforge!</p>
330<doc-anchor-target id="step-5---next-steps">
331    <h2>
332        <doc-anchor-trigger class="header-anchor-trigger" to="#step-5---next-steps">#</doc-anchor-trigger>
333        <span>Step 5 - Next steps</span>
334    </h2>
335</doc-anchor-target>
336<ul>
337<li><a href="../development/facets/">Add facets and methods</a></li>
338<li><a href="../development/storage/">Update the storage structure</a></li>
339<li><a href="../development/initialization/">Customize initialization</a></li>
340</ul>
341
342                                
343                                <!-- Required only on API pages -->
344                                <doc-toolbar-member-filter-no-results></doc-toolbar-member-filter-no-results>
345                            </div>
346                            <footer class="clear-both">
347                                <div class="flex flex-wrap items-center justify-between mt-14">
348                                    <a class="my-2.5 inline-flex items-center text-sm whitespace-nowrap text-blue-500 dark:text-blue-400 hover:text-blue-700 hover:underline" href="https://github.com/gemstation/gemforge-docs/blob/master/getting-started.md" target="_blank" rel="noopener">
349                                        <svg class="mr-1.5" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor" overflow="visible"><path d="M20 12c-.55 0-1 .45-1 1v7c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h7c.55 0 1-.45 1-1s-.45-1-1-1H4C2.35 3 1 4.35 1 6v14c0 1.65 1.35 3 3 3h14c1.65 0 3-1.35 3-3v-7c0-.55-.45-1-1-1z" /><path d="M22.21 1.79c-1.18-1.18-3.24-1.18-4.41 0l-9.5 9.5c-.13.13-.22.29-.26.46l-1 4c-.08.34.01.7.26.95.18.2.44.3.7.3.08 0 .16-.01.24-.03l4-1c.18-.04.34-.13.46-.26l9.5-9.5c1.22-1.22 1.22-3.2.01-4.42zm-1.42 3l-9.3 9.3-2.11.53.53-2.11 9.3-9.3c.42-.42 1.16-.42 1.59 0 .43.43.43 1.15-.01 1.58z" /><path fill="none" d="M0 0h24v24H0z" /></svg>
350                                        <span>Edit this page</span>
351                                    </a>
352                                </div>
353                            
354                                <nav class="flex mt-14">
355                                    <div class="w-1/2">
356                                        <a class="px-5 py-4 h-full flex items-center break-normal font-medium text-blue-500 dark:text-blue-400 border border-gray-300 hover:border-gray-400 dark:border-dark-650 dark:hover:border-dark-450 rounded-l-lg transition-colors duration-150 relative hover:z-5" href="../">
357                                            <svg xmlns="http://www.w3.org/2000/svg" class="mr-3" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" overflow="visible"><path d="M19 11H7.41l5.29-5.29a.996.996 0 10-1.41-1.41l-7 7a1 1 0 000 1.42l7 7a1.024 1.024 0 001.42-.01.996.996 0 000-1.41L7.41 13H19c.55 0 1-.45 1-1s-.45-1-1-1z" /><path fill="none" d="M0 0h24v24H0z" /></svg>
358                                            <span>
359                                                <span class="block text-xs font-normal text-gray-400 dark:text-dark-400">Previous</span>
360                                                <span class="block mt-1">Introduction</span>
361                                            </span>
362                                        </a>
363                                    </div>
364                            
365                                    <div class="w-1/2">
366                                        <a class="px-5 py-4 -mx-px h-full flex items-center justify-end break-normal font-medium text-blue-500 dark:text-blue-400 border border-gray-300 hover:border-gray-400 dark:border-dark-650 dark:hover:border-dark-450 rounded-r-lg transition-colors duration-150 relative hover:z-5" href="../commands/">
367                                            <span>
368                                                <span class="block text-xs font-normal text-right text-gray-400 dark:text-dark-400">Next</span>
369                                                <span class="block mt-1">Commands</span>
370                                            </span>
371                                            <svg xmlns="http://www.w3.org/2000/svg" class="ml-3" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" overflow="visible"><path d="M19.92 12.38a1 1 0 00-.22-1.09l-7-7a.996.996 0 10-1.41 1.41l5.3 5.3H5c-.55 0-1 .45-1 1s.45 1 1 1h11.59l-5.29 5.29a.996.996 0 000 1.41c.19.2.44.3.7.3s.51-.1.71-.29l7-7c.09-.09.16-.21.21-.33z" /><path fill="none" d="M0 0h24v24H0z" /></svg>
372                                        </a>
373                                    </div>
374                                </nav>
375                            </footer>
376                        </main>
377                
378                        <div class="border-t dark:border-dark-650 pt-6 mb-8">
379                            <footer class="flex flex-wrap items-center justify-between">
380                                <div>
381                                    <ul class="flex flex-wrap items-center text-sm">
382                                        <li>
383                                            <a class="block mr-4 py-2 text-sm whitespace-nowrap transition-colors duration-200 ease-linear text-blue-500 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-200 md:mb-0" href="https://github.com/gemstation/gemforge">Github</a>
384                                        </li>
385                                    </ul>
386                                </div>
387                                <div class="docs-copyright py-2 text-gray-500 dark:text-dark-350 text-sm leading-relaxed"><p>© Copyright 2025 <a href="https://gemforge.xyz">Gemforge</a>. All rights reserved.</p></div>
388                            </footer>
389                        </div>
390                    </div>
391                
392                    <!-- Rendered if sidebar right is enabled -->
393                    <!-- Sidebar right skeleton-->
394                    <div v-cloak class="fixed top-0 bottom-0 right-0 translate-x-full bg-white border-gray-200 lg:sticky lg:border-l lg:shrink-0 lg:pt-6 lg:transform-none sm:w-1/2 lg:w-64 lg:z-0 md:w-104 sidebar-right skeleton dark:bg-dark-850 dar
394k:border-dark-650">
395                        <div class="pl-5">
396                            <div class="w-32 h-3 mb-4 bg-gray-200 dark:bg-dark-600 rounded-full loading"></div>
397                            <div class="w-48 h-3 mb-4 bg-gray-200 dark:bg-dark-600 rounded-full loading"></div>
398                            <div class="w-40 h-3 mb-4 bg-gray-200 dark:bg-dark-600 rounded-full loading"></div>
399                        </div>
400                    </div>
401                
402                    <!-- User should be able to hide sidebar right -->
403                    <doc-sidebar-right v-cloak></doc-sidebar-right>
404                </div>
405
406            </div>
407        </div>
408    
409        <doc-search-mobile></doc-search-mobile>
410        <doc-back-to-top></doc-back-to-top>
411    </div>
412
413
414    <div id="docs-overlay-target"></div>
415
416    
416<script data-cfasync="false">window.__DOCS__ = { "title": "Getting started", level: 1, icon: "file", hasPrism: true, hasMermaid: false, hasMath: false, tocDepth: 23 }</script>
vendor: 1 bytes, line 416
416
417<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"8a8d73ad48b840ccb426530c44511052","r":1,"spa":2}' crossorigin="anonymous"></script>
417
418</body>
419</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.