diff --git a/404.html b/404.html index 62ab462..68f2e81 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ Page Not Found | Jackal Chain Docs - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/041d8db4.dba44ae6.js b/assets/js/041d8db4.1a5fbbf3.js similarity index 81% rename from assets/js/041d8db4.dba44ae6.js rename to assets/js/041d8db4.1a5fbbf3.js index eb25f6a..bcf9259 100644 --- a/assets/js/041d8db4.dba44ae6.js +++ b/assets/js/041d8db4.1a5fbbf3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[6487],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=r(7462),o=(r(7294),r(3905));const a={sidebar_position:2},i="APIs",s={unversionedId:"developers/apis/apis",id:"developers/apis/apis",title:"APIs",description:"Self Custodial",source:"@site/docs/developers/apis/2_apis.md",sourceDirName:"developers/apis",slug:"/developers/apis/apis",permalink:"/docs/developers/apis/apis",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/apis/2_apis.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"About Jackal APIs",permalink:"/docs/developers/apis/intro"}},l={},c=[{value:"Self Custodial",id:"self-custodial",level:2},{value:"Jackal Custodial",id:"jackal-custodial",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"apis"},"APIs"),(0,o.kt)("h2",{id:"self-custodial"},"Self Custodial"),(0,o.kt)("p",null,"Coming Soon"),(0,o.kt)("h2",{id:"jackal-custodial"},"Jackal Custodial"),(0,o.kt)("p",null,"Coming Soon"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[6487],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=r(7462),o=(r(7294),r(3905));const a={sidebar_position:2},i="APIs",s={unversionedId:"developers/apis/apis",id:"developers/apis/apis",title:"APIs",description:"Self Custodial",source:"@site/docs/developers/apis/2_apis.md",sourceDirName:"developers/apis",slug:"/developers/apis/apis",permalink:"/docs/developers/apis/apis",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/apis/2_apis.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"About Jackal APIs",permalink:"/docs/developers/apis/intro"},next:{title:"About These Libraries",permalink:"/docs/developers/dAppLibraries/intro"}},l={},c=[{value:"Self Custodial",id:"self-custodial",level:2},{value:"Jackal Custodial",id:"jackal-custodial",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"apis"},"APIs"),(0,o.kt)("h2",{id:"self-custodial"},"Self Custodial"),(0,o.kt)("p",null,"Coming Soon"),(0,o.kt)("h2",{id:"jackal-custodial"},"Jackal Custodial"),(0,o.kt)("p",null,"Coming Soon"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3d14bff3.a25ef268.js b/assets/js/3d14bff3.f35b2014.js similarity index 67% rename from assets/js/3d14bff3.a25ef268.js rename to assets/js/3d14bff3.f35b2014.js index f7f6214..f5fcfb2 100644 --- a/assets/js/3d14bff3.a25ef268.js +++ b/assets/js/3d14bff3.f35b2014.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[737],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},v=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=l(r),v=a,f=d["".concat(p,".").concat(v)]||d[v]||u[v]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=v;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={sidebar_position:1},i="Getting Started",s={unversionedId:"developers/intro",id:"developers/intro",title:"Getting Started",description:"Web-Apps",source:"@site/docs/developers/intro.md",sourceDirName:"developers",slug:"/developers/intro",permalink:"/docs/developers/intro",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Jackal.go",permalink:"/docs/developers/dAppLibraries/jackal_go"},next:{title:"About Jackal APIs",permalink:"/docs/developers/apis/intro"}},p={},l=[{value:"Web-Apps",id:"web-apps",level:2},{value:"Server-side",id:"server-side",level:2},{value:"APIs",id:"apis",level:2}],c={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"getting-started"},"Getting Started"),(0,a.kt)("h2",{id:"web-apps"},"Web-Apps"),(0,a.kt)("p",null,"To get started building web apps that leverage Jackal, head over to\nthe ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/dAppLibraries/jackal_js"},"Jackal.js Quickstart")),(0,a.kt)("h2",{id:"server-side"},"Server-side"),(0,a.kt)("p",null,"To get started building server-side apps that leverage Jackal, head over to\nthe ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/dAppLibraries/jackal_nodejs"},"Jackal.nodejs Quickstart"),"\nor ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/dAppLibraries/jackal_go"},"Jackalgo Quickstart"),"."),(0,a.kt)("h2",{id:"apis"},"APIs"),(0,a.kt)("p",null,"To get started building using our APIs, check out ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/apis/apis"},"API Quickstart"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[737],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},v=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=l(r),v=a,f=d["".concat(p,".").concat(v)]||d[v]||u[v]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=v;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={sidebar_position:1},i="Getting Started",s={unversionedId:"developers/intro",id:"developers/intro",title:"Getting Started",description:"Web-Apps",source:"@site/docs/developers/intro.md",sourceDirName:"developers",slug:"/developers/intro",permalink:"/docs/developers/intro",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Setting Up",permalink:"/docs/nodes/install"},next:{title:"About Jackal APIs",permalink:"/docs/developers/apis/intro"}},p={},l=[{value:"Web-Apps",id:"web-apps",level:2},{value:"Server-side",id:"server-side",level:2},{value:"APIs",id:"apis",level:2}],c={toc:l},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"getting-started"},"Getting Started"),(0,a.kt)("h2",{id:"web-apps"},"Web-Apps"),(0,a.kt)("p",null,"To get started building web apps that leverage Jackal, head over to\nthe ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/dAppLibraries/jackal_js"},"Jackal.js Quickstart")),(0,a.kt)("h2",{id:"server-side"},"Server-side"),(0,a.kt)("p",null,"To get started building server-side apps that leverage Jackal, head over to\nthe ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/dAppLibraries/jackal_nodejs"},"Jackal.nodejs Quickstart"),"\nor ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/dAppLibraries/jackal_go"},"Jackalgo Quickstart"),"."),(0,a.kt)("h2",{id:"apis"},"APIs"),(0,a.kt)("p",null,"To get started building using our APIs, check out ",(0,a.kt)("a",{parentName:"p",href:"/docs/developers/apis/apis"},"API Quickstart"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.7e103a53.js b/assets/js/935f2afb.2bcc881a.js similarity index 92% rename from assets/js/935f2afb.7e103a53.js rename to assets/js/935f2afb.2bcc881a.js index 41af2aa..1b9a6d6 100644 --- a/assets/js/935f2afb.7e103a53.js +++ b/assets/js/935f2afb.2bcc881a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Welcome to Jackal Wiki","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Overview","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Discover the Jackal Protocol","href":"/docs/overview/jackal-tldr","docId":"overview/jackal-tldr"},{"type":"link","label":"What Is The JKL Token?","href":"/docs/overview/jkl","docId":"overview/jkl"},{"type":"link","label":"Why Choose Jackal Protocol","href":"/docs/overview/why-jackal","docId":"overview/why-jackal"}]},{"type":"category","label":"Using Jackal","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Wallets","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Keplr Wallet","href":"/docs/using-jackal/wallet/keplr","docId":"using-jackal/wallet/keplr"}]},{"type":"link","label":"Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol","href":"/docs/using-jackal/fund","docId":"using-jackal/fund"},{"type":"link","label":"How to Delegate JKL Tokens to a Validator","href":"/docs/using-jackal/delegate","docId":"using-jackal/delegate"},{"type":"link","label":"Jackal Dashboard Guide","href":"/docs/using-jackal/dashboard","docId":"using-jackal/dashboard"}]},{"type":"category","label":"Community and Contributors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Join the Community!","href":"/docs/contributors/join","docId":"contributors/join"},{"type":"link","label":"Jackal Foundation","href":"/docs/contributors/foundation","docId":"contributors/foundation"},{"type":"link","label":"Jackal Labs","href":"/docs/contributors/labs","docId":"contributors/labs"}]},{"type":"category","label":"The Protocol","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Blockchain Modules","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Module Overview","href":"/docs/protocol/modules/module-overview","docId":"protocol/modules/module-overview"},{"type":"link","label":"JKLmint Module","href":"/docs/protocol/modules/jklmint","docId":"protocol/modules/jklmint"},{"type":"link","label":"Name Service Module","href":"/docs/protocol/modules/rns","docId":"protocol/modules/rns"},{"type":"link","label":"WASM Module","href":"/docs/protocol/modules/wasm","docId":"protocol/modules/wasm"},{"type":"link","label":"Storage Module","href":"/docs/protocol/modules/storage","docId":"protocol/modules/storage"},{"type":"link","label":"Filetree Module","href":"/docs/protocol/modules/filetree","docId":"protocol/modules/filetree"}]},{"type":"link","label":"Jackal Proof-of-Persistence Documentation","href":"/docs/protocol/p-o-p","docId":"protocol/p-o-p"},{"type":"link","label":"JKL Token","href":"/docs/protocol/tokens","docId":"protocol/tokens"},{"type":"link","label":"Encryption in Jackal Protocol","href":"/docs/protocol/encryption","docId":"protocol/encryption"},{"type":"link","label":"Validators","href":"/docs/protocol/validators","docId":"protocol/validators"}]},{"type":"category","label":"Official Links","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Jackal Protocol Links","href":"/docs/official-links/jackal-protocol","docId":"official-links/jackal-protocol"},{"type":"link","label":"Jackal Foundation Links","href":"/docs/official-links/jackal-foundation","docId":"official-links/jackal-foundation"},{"type":"link","label":"Jackal Labs Links","href":"/docs/official-links/jackal-labs","docId":"official-links/jackal-labs"}]},{"type":"category","label":"Ecosystem","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Grants and Funding","href":"/docs/ecosystem/grants-funding","docId":"ecosystem/grants-funding"},{"type":"link","label":"Partnerships","href":"/docs/ecosystem/partnerships","docId":"ecosystem/partnerships"}]},{"type":"category","label":"Nodes & Providers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Full Nodes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Hardware","href":"/docs/nodes/nodes/hardware","docId":"nodes/nodes/hardware"},{"type":"link","label":"Installing Canined","href":"/docs/nodes/nodes/installation","docId":"nodes/nodes/installation"},{"type":"link","label":"Joining Testnet","href":"/docs/nodes/nodes/testnet","docId":"nodes/nodes/testnet"},{"type":"link","label":"Joining Mainnet","href":"/docs/nodes/nodes/mainnet","docId":"nodes/nodes/mainnet"}]},{"type":"category","label":"Validators","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating Validator","href":"/docs/nodes/validators/joining","docId":"nodes/validators/joining"}]},{"type":"category","label":"Storage Providers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Hardware","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"DIY Build","href":"/docs/nodes/providers/hardware/diy-serious copy","docId":"nodes/providers/hardware/diy-serious copy"},{"type":"link","label":"Enterprise Build","href":"/docs/nodes/providers/hardware/enterprise","docId":"nodes/providers/hardware/enterprise"}]},{"type":"link","label":"Creating Provider","href":"/docs/nodes/providers/building","docId":"nodes/providers/building"},{"type":"link","label":"Setting Up JProvd","href":"/docs/nodes/providers/setting_up","docId":"nodes/providers/setting_up"}]},{"type":"link","label":"Setting Up","href":"/docs/nodes/install","docId":"nodes/install"}]},{"type":"category","label":"Developers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"dApp Libraries","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About These Libraries","href":"/docs/developers/dAppLibraries/intro","docId":"developers/dAppLibraries/intro"},{"type":"link","label":"Jackal.js-protos / Jackal.nodejs-protos","href":"/docs/developers/dAppLibraries/jackal_protos","docId":"developers/dAppLibraries/jackal_protos"},{"type":"link","label":"Jackal.js","href":"/docs/developers/dAppLibraries/jackal_js","docId":"developers/dAppLibraries/jackal_js"},{"type":"link","label":"Jackal.nodejs","href":"/docs/developers/dAppLibraries/jackal_nodejs","docId":"developers/dAppLibraries/jackal_nodejs"},{"type":"link","label":"Jackal.go","href":"/docs/developers/dAppLibraries/jackal_go","docId":"developers/dAppLibraries/jackal_go"}]},{"type":"link","label":"Getting Started","href":"/docs/developers/intro","docId":"developers/intro"},{"type":"category","label":"APIs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Jackal APIs","href":"/docs/developers/apis/intro","docId":"developers/apis/intro"},{"type":"link","label":"APIs","href":"/docs/developers/apis/apis","docId":"developers/apis/apis"}]}]}]},"docs":{"contributors/foundation":{"id":"contributors/foundation","title":"Jackal Foundation","description":"What is the Jackal Foundation?","sidebar":"tutorialSidebar"},"contributors/join":{"id":"contributors/join","title":"Join the Community!","description":"The Jackal Community is open to all.","sidebar":"tutorialSidebar"},"contributors/labs":{"id":"contributors/labs","title":"Jackal Labs","description":"Who is Jackal Labs?","sidebar":"tutorialSidebar"},"developers/apis/apis":{"id":"developers/apis/apis","title":"APIs","description":"Self Custodial","sidebar":"tutorialSidebar"},"developers/apis/intro":{"id":"developers/apis/intro","title":"About Jackal APIs","description":"Coming Soon","sidebar":"tutorialSidebar"},"developers/dAppLibraries/intro":{"id":"developers/dAppLibraries/intro","title":"About These Libraries","description":"The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_go":{"id":"developers/dAppLibraries/jackal_go","title":"Jackal.go","description":"Quickstart","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_js":{"id":"developers/dAppLibraries/jackal_js","title":"Jackal.js","description":"Implements Jacakl.js-protos","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_nodejs":{"id":"developers/dAppLibraries/jackal_nodejs","title":"Jackal.nodejs","description":"Quickstart","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_protos":{"id":"developers/dAppLibraries/jackal_protos","title":"Jackal.js-protos / Jackal.nodejs-protos","description":"About","sidebar":"tutorialSidebar"},"developers/intro":{"id":"developers/intro","title":"Getting Started","description":"Web-Apps","sidebar":"tutorialSidebar"},"ecosystem/grants-funding":{"id":"ecosystem/grants-funding","title":"Grants and Funding","description":"The Jackal Foundation facilitates non-equity grants, seed funding, and beyond through our various funding programs.","sidebar":"tutorialSidebar"},"ecosystem/partnerships":{"id":"ecosystem/partnerships","title":"Partnerships","description":"Blockchain and web3 native software engineering teams often wish to become core contributors through a partnership with","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Welcome to Jackal Wiki","description":"Welcome, explorer, to the Jackal Wiki, where you\'ll embark on a journey to discover a more secure, simple, and","sidebar":"tutorialSidebar"},"nodes/install":{"id":"nodes/install","title":"Setting Up","description":"Pre-Requisites","sidebar":"tutorialSidebar"},"nodes/nodes/hardware":{"id":"nodes/nodes/hardware","title":"Hardware","description":"We recommend a minimum hardware requirement of:","sidebar":"tutorialSidebar"},"nodes/nodes/installation":{"id":"nodes/nodes/installation","title":"Installing Canined","description":"Pre-Requisites","sidebar":"tutorialSidebar"},"nodes/nodes/mainnet":{"id":"nodes/nodes/mainnet","title":"Joining Mainnet","description":"Perform the following as the jackal user.","sidebar":"tutorialSidebar"},"nodes/nodes/testnet":{"id":"nodes/nodes/testnet","title":"Joining Testnet","description":"After installing canined. You can join the testnet by following these steps:","sidebar":"tutorialSidebar"},"nodes/providers/building":{"id":"nodes/providers/building","title":"Creating Provider","description":"Disclaimer","sidebar":"tutorialSidebar"},"nodes/providers/hardware/diy-serious copy":{"id":"nodes/providers/hardware/diy-serious copy","title":"DIY Build","description":"For DIY individuals looking to power web3 infrastructure and increase your ROI- here is the recommended system for","sidebar":"tutorialSidebar"},"nodes/providers/hardware/enterprise":{"id":"nodes/providers/hardware/enterprise","title":"Enterprise Build","description":"For teams looking to build a large storage system of ~2.1 Petabytes of storage, the estimated base price of the box with","sidebar":"tutorialSidebar"},"nodes/providers/setting_up":{"id":"nodes/providers/setting_up","title":"Setting Up JProvd","description":"Pre-Requisites","sidebar":"tutorialSidebar"},"nodes/validators/joining":{"id":"nodes/validators/joining","title":"Creating Validator","description":"This guide assumes you are using the same machine as the full node.","sidebar":"tutorialSidebar"},"official-links/jackal-foundation":{"id":"official-links/jackal-foundation","title":"Jackal Foundation Links","description":"Here are the official website links for Jackal Foundation. Please use and bookmark these links to reduce the likelihood","sidebar":"tutorialSidebar"},"official-links/jackal-labs":{"id":"official-links/jackal-labs","title":"Jackal Labs Links","description":"Here are the official website links for Jackal Labs. Please use and bookmark these links to reduce the likelihood of","sidebar":"tutorialSidebar"},"official-links/jackal-protocol":{"id":"official-links/jackal-protocol","title":"Jackal Protocol Links","description":"Here are the official website links of the Jackal Protocol. Please use and bookmark these links to reduce the likelihood","sidebar":"tutorialSidebar"},"overview/jackal-tldr":{"id":"overview/jackal-tldr","title":"Discover the Jackal Protocol","description":"The Jackal Protocol provides a decentralized infrastructure for secure and scalable data storage, enabling individuals,","sidebar":"tutorialSidebar"},"overview/jkl":{"id":"overview/jkl","title":"What Is The JKL Token?","description":"The JKL Token is the driving force behind the revolutionary Jackal Protocol. This versatile native token seamlessly","sidebar":"tutorialSidebar"},"overview/why-jackal":{"id":"overview/why-jackal","title":"Why Choose Jackal Protocol","description":"The Jackal Protocol offers various advantages for individuals, small businesses, and large enterprises seeking secure,","sidebar":"tutorialSidebar"},"protocol/encryption":{"id":"protocol/encryption","title":"Encryption in Jackal Protocol","description":"The Jackal Protocol utilizes encryption techniques to ensure the privacy and security of user data. The two primary","sidebar":"tutorialSidebar"},"protocol/modules/filetree":{"id":"protocol/modules/filetree","title":"Filetree Module","description":"Overview","sidebar":"tutorialSidebar"},"protocol/modules/jklmint":{"id":"protocol/modules/jklmint","title":"JKLmint Module","description":"The jklmint module is responsible for the management of the native JKL token within the Jackal Protocol. This module","sidebar":"tutorialSidebar"},"protocol/modules/module-overview":{"id":"protocol/modules/module-overview","title":"Module Overview","description":"Protocol Overview","sidebar":"tutorialSidebar"},"protocol/modules/rns":{"id":"protocol/modules/rns","title":"Name Service Module","description":"The rns (Reverse Name Service) module is an essential component of the Jackal Protocol, providing a user-friendly","sidebar":"tutorialSidebar"},"protocol/modules/storage":{"id":"protocol/modules/storage","title":"Storage Module","description":"The Jackal Protocol incorporates two crucial algorithms for decentralized storage: Jackal Proof-of-Persistence (JPOP)","sidebar":"tutorialSidebar"},"protocol/modules/wasm":{"id":"protocol/modules/wasm","title":"WASM Module","description":"The wasm module in the Jackal Protocol incorporates the CosmWasm smart contracting platform, which is designed","sidebar":"tutorialSidebar"},"protocol/p-o-p":{"id":"protocol/p-o-p","title":"Jackal Proof-of-Persistence Documentation","description":"Overview","sidebar":"tutorialSidebar"},"protocol/tokens":{"id":"protocol/tokens","title":"JKL Token","description":"Overview","sidebar":"tutorialSidebar"},"protocol/validators":{"id":"protocol/validators","title":"Validators","description":"The Jackal Validators are secure web servers, dedicated machines that participate in the consensus protocol by","sidebar":"tutorialSidebar"},"using-jackal/dashboard":{"id":"using-jackal/dashboard","title":"Jackal Dashboard Guide","description":"The Jackal Dashboard is your one-stop destination for interacting with the Jackal Protocol and Cosmos ecosystem. This","sidebar":"tutorialSidebar"},"using-jackal/delegate":{"id":"using-jackal/delegate","title":"How to Delegate JKL Tokens to a Validator","description":"This guide will help you delegate your JKL tokens to a validator on the Jackal Protocol, which helps secure the network","sidebar":"tutorialSidebar"},"using-jackal/fund":{"id":"using-jackal/fund","title":"Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol","description":"This guide will help you access JKL tokens on the Osmosis Decentralized Exchange (DEX) and withdraw them to the Jackal Protocol using the Inter-Blockchain Communication Protocol (IBC).","sidebar":"tutorialSidebar"},"using-jackal/wallet/keplr":{"id":"using-jackal/wallet/keplr","title":"Keplr Wallet","description":"The Keplr browser extension is a wallet for accessing some Jackal applications in","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Welcome to Jackal Wiki","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Overview","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Discover the Jackal Protocol","href":"/docs/overview/jackal-tldr","docId":"overview/jackal-tldr"},{"type":"link","label":"What Is The JKL Token?","href":"/docs/overview/jkl","docId":"overview/jkl"},{"type":"link","label":"Why Choose Jackal Protocol","href":"/docs/overview/why-jackal","docId":"overview/why-jackal"}]},{"type":"category","label":"Using Jackal","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Wallets","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Keplr Wallet","href":"/docs/using-jackal/wallet/keplr","docId":"using-jackal/wallet/keplr"}]},{"type":"link","label":"Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol","href":"/docs/using-jackal/fund","docId":"using-jackal/fund"},{"type":"link","label":"How to Delegate JKL Tokens to a Validator","href":"/docs/using-jackal/delegate","docId":"using-jackal/delegate"},{"type":"link","label":"Jackal Dashboard Guide","href":"/docs/using-jackal/dashboard","docId":"using-jackal/dashboard"}]},{"type":"category","label":"Community and Contributors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Join the Community!","href":"/docs/contributors/join","docId":"contributors/join"},{"type":"link","label":"Jackal Foundation","href":"/docs/contributors/foundation","docId":"contributors/foundation"},{"type":"link","label":"Jackal Labs","href":"/docs/contributors/labs","docId":"contributors/labs"}]},{"type":"category","label":"The Protocol","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Blockchain Modules","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Module Overview","href":"/docs/protocol/modules/module-overview","docId":"protocol/modules/module-overview"},{"type":"link","label":"JKLmint Module","href":"/docs/protocol/modules/jklmint","docId":"protocol/modules/jklmint"},{"type":"link","label":"Name Service Module","href":"/docs/protocol/modules/rns","docId":"protocol/modules/rns"},{"type":"link","label":"WASM Module","href":"/docs/protocol/modules/wasm","docId":"protocol/modules/wasm"},{"type":"link","label":"Storage Module","href":"/docs/protocol/modules/storage","docId":"protocol/modules/storage"},{"type":"link","label":"Filetree Module","href":"/docs/protocol/modules/filetree","docId":"protocol/modules/filetree"}]},{"type":"link","label":"Jackal Proof-of-Persistence Documentation","href":"/docs/protocol/p-o-p","docId":"protocol/p-o-p"},{"type":"link","label":"JKL Token","href":"/docs/protocol/tokens","docId":"protocol/tokens"},{"type":"link","label":"Encryption in Jackal Protocol","href":"/docs/protocol/encryption","docId":"protocol/encryption"},{"type":"link","label":"Validators","href":"/docs/protocol/validators","docId":"protocol/validators"}]},{"type":"category","label":"Official Links","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Jackal Protocol Links","href":"/docs/official-links/jackal-protocol","docId":"official-links/jackal-protocol"},{"type":"link","label":"Jackal Foundation Links","href":"/docs/official-links/jackal-foundation","docId":"official-links/jackal-foundation"},{"type":"link","label":"Jackal Labs Links","href":"/docs/official-links/jackal-labs","docId":"official-links/jackal-labs"}]},{"type":"category","label":"Ecosystem","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Grants and Funding","href":"/docs/ecosystem/grants-funding","docId":"ecosystem/grants-funding"},{"type":"link","label":"Partnerships","href":"/docs/ecosystem/partnerships","docId":"ecosystem/partnerships"}]},{"type":"category","label":"Nodes & Providers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Full Nodes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Hardware","href":"/docs/nodes/nodes/hardware","docId":"nodes/nodes/hardware"},{"type":"link","label":"Installing Canined","href":"/docs/nodes/nodes/installation","docId":"nodes/nodes/installation"},{"type":"link","label":"Joining Testnet","href":"/docs/nodes/nodes/testnet","docId":"nodes/nodes/testnet"},{"type":"link","label":"Joining Mainnet","href":"/docs/nodes/nodes/mainnet","docId":"nodes/nodes/mainnet"}]},{"type":"category","label":"Validators","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating Validator","href":"/docs/nodes/validators/joining","docId":"nodes/validators/joining"}]},{"type":"category","label":"Storage Providers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Hardware","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"DIY Build","href":"/docs/nodes/providers/hardware/diy-serious copy","docId":"nodes/providers/hardware/diy-serious copy"},{"type":"link","label":"Enterprise Build","href":"/docs/nodes/providers/hardware/enterprise","docId":"nodes/providers/hardware/enterprise"}]},{"type":"link","label":"Creating Provider","href":"/docs/nodes/providers/building","docId":"nodes/providers/building"},{"type":"link","label":"Setting Up JProvd","href":"/docs/nodes/providers/setting_up","docId":"nodes/providers/setting_up"}]},{"type":"link","label":"Setting Up","href":"/docs/nodes/install","docId":"nodes/install"}]},{"type":"category","label":"Developers","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Getting Started","href":"/docs/developers/intro","docId":"developers/intro"},{"type":"category","label":"APIs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About Jackal APIs","href":"/docs/developers/apis/intro","docId":"developers/apis/intro"},{"type":"link","label":"APIs","href":"/docs/developers/apis/apis","docId":"developers/apis/apis"}]},{"type":"category","label":"dApp Libraries","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"About These Libraries","href":"/docs/developers/dAppLibraries/intro","docId":"developers/dAppLibraries/intro"},{"type":"link","label":"Jackal.js-protos / Jackal.nodejs-protos","href":"/docs/developers/dAppLibraries/jackal_protos","docId":"developers/dAppLibraries/jackal_protos"},{"type":"link","label":"Jackal.js","href":"/docs/developers/dAppLibraries/jackal_js","docId":"developers/dAppLibraries/jackal_js"},{"type":"link","label":"Jackal.nodejs","href":"/docs/developers/dAppLibraries/jackal_nodejs","docId":"developers/dAppLibraries/jackal_nodejs"},{"type":"link","label":"Jackal.go","href":"/docs/developers/dAppLibraries/jackal_go","docId":"developers/dAppLibraries/jackal_go"}]}]}]},"docs":{"contributors/foundation":{"id":"contributors/foundation","title":"Jackal Foundation","description":"What is the Jackal Foundation?","sidebar":"tutorialSidebar"},"contributors/join":{"id":"contributors/join","title":"Join the Community!","description":"The Jackal Community is open to all.","sidebar":"tutorialSidebar"},"contributors/labs":{"id":"contributors/labs","title":"Jackal Labs","description":"Who is Jackal Labs?","sidebar":"tutorialSidebar"},"developers/apis/apis":{"id":"developers/apis/apis","title":"APIs","description":"Self Custodial","sidebar":"tutorialSidebar"},"developers/apis/intro":{"id":"developers/apis/intro","title":"About Jackal APIs","description":"Coming Soon","sidebar":"tutorialSidebar"},"developers/dAppLibraries/intro":{"id":"developers/dAppLibraries/intro","title":"About These Libraries","description":"The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_go":{"id":"developers/dAppLibraries/jackal_go","title":"Jackal.go","description":"Quickstart","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_js":{"id":"developers/dAppLibraries/jackal_js","title":"Jackal.js","description":"Implements Jacakl.js-protos","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_nodejs":{"id":"developers/dAppLibraries/jackal_nodejs","title":"Jackal.nodejs","description":"Quickstart","sidebar":"tutorialSidebar"},"developers/dAppLibraries/jackal_protos":{"id":"developers/dAppLibraries/jackal_protos","title":"Jackal.js-protos / Jackal.nodejs-protos","description":"About","sidebar":"tutorialSidebar"},"developers/intro":{"id":"developers/intro","title":"Getting Started","description":"Web-Apps","sidebar":"tutorialSidebar"},"ecosystem/grants-funding":{"id":"ecosystem/grants-funding","title":"Grants and Funding","description":"The Jackal Foundation facilitates non-equity grants, seed funding, and beyond through our various funding programs.","sidebar":"tutorialSidebar"},"ecosystem/partnerships":{"id":"ecosystem/partnerships","title":"Partnerships","description":"Blockchain and web3 native software engineering teams often wish to become core contributors through a partnership with","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Welcome to Jackal Wiki","description":"Welcome, explorer, to the Jackal Wiki, where you\'ll embark on a journey to discover a more secure, simple, and","sidebar":"tutorialSidebar"},"nodes/install":{"id":"nodes/install","title":"Setting Up","description":"Pre-Requisites","sidebar":"tutorialSidebar"},"nodes/nodes/hardware":{"id":"nodes/nodes/hardware","title":"Hardware","description":"We recommend a minimum hardware requirement of:","sidebar":"tutorialSidebar"},"nodes/nodes/installation":{"id":"nodes/nodes/installation","title":"Installing Canined","description":"Pre-Requisites","sidebar":"tutorialSidebar"},"nodes/nodes/mainnet":{"id":"nodes/nodes/mainnet","title":"Joining Mainnet","description":"Perform the following as the jackal user.","sidebar":"tutorialSidebar"},"nodes/nodes/testnet":{"id":"nodes/nodes/testnet","title":"Joining Testnet","description":"After installing canined. You can join the testnet by following these steps:","sidebar":"tutorialSidebar"},"nodes/providers/building":{"id":"nodes/providers/building","title":"Creating Provider","description":"Disclaimer","sidebar":"tutorialSidebar"},"nodes/providers/hardware/diy-serious copy":{"id":"nodes/providers/hardware/diy-serious copy","title":"DIY Build","description":"For DIY individuals looking to power web3 infrastructure and increase your ROI- here is the recommended system for","sidebar":"tutorialSidebar"},"nodes/providers/hardware/enterprise":{"id":"nodes/providers/hardware/enterprise","title":"Enterprise Build","description":"For teams looking to build a large storage system of ~2.1 Petabytes of storage, the estimated base price of the box with","sidebar":"tutorialSidebar"},"nodes/providers/setting_up":{"id":"nodes/providers/setting_up","title":"Setting Up JProvd","description":"Pre-Requisites","sidebar":"tutorialSidebar"},"nodes/validators/joining":{"id":"nodes/validators/joining","title":"Creating Validator","description":"This guide assumes you are using the same machine as the full node.","sidebar":"tutorialSidebar"},"official-links/jackal-foundation":{"id":"official-links/jackal-foundation","title":"Jackal Foundation Links","description":"Here are the official website links for Jackal Foundation. Please use and bookmark these links to reduce the likelihood","sidebar":"tutorialSidebar"},"official-links/jackal-labs":{"id":"official-links/jackal-labs","title":"Jackal Labs Links","description":"Here are the official website links for Jackal Labs. Please use and bookmark these links to reduce the likelihood of","sidebar":"tutorialSidebar"},"official-links/jackal-protocol":{"id":"official-links/jackal-protocol","title":"Jackal Protocol Links","description":"Here are the official website links of the Jackal Protocol. Please use and bookmark these links to reduce the likelihood","sidebar":"tutorialSidebar"},"overview/jackal-tldr":{"id":"overview/jackal-tldr","title":"Discover the Jackal Protocol","description":"The Jackal Protocol provides a decentralized infrastructure for secure and scalable data storage, enabling individuals,","sidebar":"tutorialSidebar"},"overview/jkl":{"id":"overview/jkl","title":"What Is The JKL Token?","description":"The JKL Token is the driving force behind the revolutionary Jackal Protocol. This versatile native token seamlessly","sidebar":"tutorialSidebar"},"overview/why-jackal":{"id":"overview/why-jackal","title":"Why Choose Jackal Protocol","description":"The Jackal Protocol offers various advantages for individuals, small businesses, and large enterprises seeking secure,","sidebar":"tutorialSidebar"},"protocol/encryption":{"id":"protocol/encryption","title":"Encryption in Jackal Protocol","description":"The Jackal Protocol utilizes encryption techniques to ensure the privacy and security of user data. The two primary","sidebar":"tutorialSidebar"},"protocol/modules/filetree":{"id":"protocol/modules/filetree","title":"Filetree Module","description":"Overview","sidebar":"tutorialSidebar"},"protocol/modules/jklmint":{"id":"protocol/modules/jklmint","title":"JKLmint Module","description":"The jklmint module is responsible for the management of the native JKL token within the Jackal Protocol. This module","sidebar":"tutorialSidebar"},"protocol/modules/module-overview":{"id":"protocol/modules/module-overview","title":"Module Overview","description":"Protocol Overview","sidebar":"tutorialSidebar"},"protocol/modules/rns":{"id":"protocol/modules/rns","title":"Name Service Module","description":"The rns (Reverse Name Service) module is an essential component of the Jackal Protocol, providing a user-friendly","sidebar":"tutorialSidebar"},"protocol/modules/storage":{"id":"protocol/modules/storage","title":"Storage Module","description":"The Jackal Protocol incorporates two crucial algorithms for decentralized storage: Jackal Proof-of-Persistence (JPOP)","sidebar":"tutorialSidebar"},"protocol/modules/wasm":{"id":"protocol/modules/wasm","title":"WASM Module","description":"The wasm module in the Jackal Protocol incorporates the CosmWasm smart contracting platform, which is designed","sidebar":"tutorialSidebar"},"protocol/p-o-p":{"id":"protocol/p-o-p","title":"Jackal Proof-of-Persistence Documentation","description":"Overview","sidebar":"tutorialSidebar"},"protocol/tokens":{"id":"protocol/tokens","title":"JKL Token","description":"Overview","sidebar":"tutorialSidebar"},"protocol/validators":{"id":"protocol/validators","title":"Validators","description":"The Jackal Validators are secure web servers, dedicated machines that participate in the consensus protocol by","sidebar":"tutorialSidebar"},"using-jackal/dashboard":{"id":"using-jackal/dashboard","title":"Jackal Dashboard Guide","description":"The Jackal Dashboard is your one-stop destination for interacting with the Jackal Protocol and Cosmos ecosystem. This","sidebar":"tutorialSidebar"},"using-jackal/delegate":{"id":"using-jackal/delegate","title":"How to Delegate JKL Tokens to a Validator","description":"This guide will help you delegate your JKL tokens to a validator on the Jackal Protocol, which helps secure the network","sidebar":"tutorialSidebar"},"using-jackal/fund":{"id":"using-jackal/fund","title":"Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol","description":"This guide will help you access JKL tokens on the Osmosis Decentralized Exchange (DEX) and withdraw them to the Jackal Protocol using the Inter-Blockchain Communication Protocol (IBC).","sidebar":"tutorialSidebar"},"using-jackal/wallet/keplr":{"id":"using-jackal/wallet/keplr","title":"Keplr Wallet","description":"The Keplr browser extension is a wallet for accessing some Jackal applications in","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a4043c8d.1e7ea833.js b/assets/js/a4043c8d.1e7ea833.js new file mode 100644 index 0000000..5df2a3d --- /dev/null +++ b/assets/js/a4043c8d.1e7ea833.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[6683],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(n),g=l,f=d["".concat(i,".").concat(g)]||d[g]||c[g]||a;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,o=new Array(a);o[0]=g;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[d]="string"==typeof e?e:l,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var r=n(7462),l=(n(7294),n(3905));const a={sidebar_position:4},o="Setting Up",s={unversionedId:"nodes/install",id:"nodes/install",title:"Setting Up",description:"Pre-Requisites",source:"@site/docs/nodes/1_install.md",sourceDirName:"nodes",slug:"/nodes/install",permalink:"/docs/nodes/install",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/nodes/1_install.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Setting Up JProvd",permalink:"/docs/nodes/providers/setting_up"},next:{title:"Getting Started",permalink:"/docs/developers/intro"}},i={},u=[{value:"Pre-Requisites",id:"pre-requisites",level:2},{value:"Enable Firewall Rules",id:"enable-firewall-rules",level:3},{value:"Create Jackal user",id:"create-jackal-user",level:3},{value:"Installing required tools",id:"installing-required-tools",level:3},{value:"Installing Go",id:"installing-go",level:3}],p={toc:u},d="wrapper";function c(e){let{components:t,...n}=e;return(0,l.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"setting-up"},"Setting Up"),(0,l.kt)("h2",{id:"pre-requisites"},"Pre-Requisites"),(0,l.kt)("p",null,"There are a few things needed before installing."),(0,l.kt)("p",null,"While logged in as the 'root' or 'admin' user, we add a 'jackal' user and give them root privileges."),(0,l.kt)("h3",{id:"enable-firewall-rules"},"Enable Firewall Rules"),(0,l.kt)("p",null,"Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules\nrequired for access on both validators and providers:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw allow 22\nsudo ufw allow 80\nsudo ufw allow 443\n")),(0,l.kt)("p",null,"Additional ports are required if you are running a validator:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw allow 26657\nsudo ufw allow 26658\n")),(0,l.kt)("p",null,"The only additional port required for a provider is 3333:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw allow 3333\n")),(0,l.kt)("p",null,"If you are running a combined validator/provider, you need to allow all of the above ports. After adding ports to the\nrules list, you will need to start the firewall:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw enable\n")),(0,l.kt)("p",null,"After starting the firewall, verify all of the required rules are in place by running:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw status verbose\n")),(0,l.kt)("p",null,"Your output should be similar to the following:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"Status: active\n\nTo Action From\n-- ------ ----\n22 ALLOW Anywhere\n80 ALLOW Anywhere\n443 ALLOW Anywhere\n1317 ALLOW Anywhere\n3333 ALLOW Anywhere\n26657 ALLOW Anywhere\n26658 ALLOW Anywhere\n")),(0,l.kt)("h3",{id:"create-jackal-user"},"Create Jackal user"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},'sudo adduser --gecos "" jackal\nsudo usermod -aG sudo jackal\n')),(0,l.kt)("p",null,"Log in as the jackal user to complete the below steps:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo su - jackal\n")),(0,l.kt)("h3",{id:"installing-required-tools"},"Installing required tools"),(0,l.kt)("p",null,"This will install the necessary tools to build the jackal chain source, along with lz4 compression tool and jquery tool."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo apt update\nsudo apt install build-essential lz4 jq\n")),(0,l.kt)("h3",{id:"installing-go"},"Installing Go"),(0,l.kt)("p",null,"Follow more in-depth instructions to install Go v1.19 or higher ",(0,l.kt)("a",{parentName:"p",href:"https://golang.org/doc/install"},"here"),"."),(0,l.kt)("p",null,"On Ububtu you can install it with:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"GOVER=$(curl https://go.dev/VERSION?m=text)\nwget https://golang.org/dl/${GOVER}.linux-amd64.tar.gz\nsudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${GOVER}.linux-amd64.tar.gz\n")),(0,l.kt)("p",null,"Add the following golang path info to the current users ",(0,l.kt)("inlineCode",{parentName:"p"},"~/.profile"),"."),(0,l.kt)("p",null,"Also add it to the skeleton profile so all new users have it. ",(0,l.kt)("inlineCode",{parentName:"p"},"/etc/skel/.profile")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},'# add environmental variables for Go\nif [ -f "/usr/local/go/bin/go" ] ; then\n export GOROOT=/usr/local/go\n export GOPATH=${HOME}/go\n export GOBIN=$GOPATH/bin\n export PATH=${PATH}:${GOROOT}/bin:${GOBIN}\n export GO111MODULE=on\nfi\n')),(0,l.kt)("p",null,"Restarting the shell with youre profile settings or just rebasing them like so is required."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"source ~/.profile\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a4043c8d.c212c6d1.js b/assets/js/a4043c8d.c212c6d1.js deleted file mode 100644 index 91bd0ff..0000000 --- a/assets/js/a4043c8d.c212c6d1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[6683],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(n),g=l,f=d["".concat(i,".").concat(g)]||d[g]||c[g]||a;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,o=new Array(a);o[0]=g;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[d]="string"==typeof e?e:l,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var r=n(7462),l=(n(7294),n(3905));const a={sidebar_position:4},o="Setting Up",s={unversionedId:"nodes/install",id:"nodes/install",title:"Setting Up",description:"Pre-Requisites",source:"@site/docs/nodes/1_install.md",sourceDirName:"nodes",slug:"/nodes/install",permalink:"/docs/nodes/install",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/nodes/1_install.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Setting Up JProvd",permalink:"/docs/nodes/providers/setting_up"},next:{title:"About These Libraries",permalink:"/docs/developers/dAppLibraries/intro"}},i={},u=[{value:"Pre-Requisites",id:"pre-requisites",level:2},{value:"Enable Firewall Rules",id:"enable-firewall-rules",level:3},{value:"Create Jackal user",id:"create-jackal-user",level:3},{value:"Installing required tools",id:"installing-required-tools",level:3},{value:"Installing Go",id:"installing-go",level:3}],p={toc:u},d="wrapper";function c(e){let{components:t,...n}=e;return(0,l.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"setting-up"},"Setting Up"),(0,l.kt)("h2",{id:"pre-requisites"},"Pre-Requisites"),(0,l.kt)("p",null,"There are a few things needed before installing."),(0,l.kt)("p",null,"While logged in as the 'root' or 'admin' user, we add a 'jackal' user and give them root privileges."),(0,l.kt)("h3",{id:"enable-firewall-rules"},"Enable Firewall Rules"),(0,l.kt)("p",null,"Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules\nrequired for access on both validators and providers:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw allow 22\nsudo ufw allow 80\nsudo ufw allow 443\n")),(0,l.kt)("p",null,"Additional ports are required if you are running a validator:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw allow 26657\nsudo ufw allow 26658\n")),(0,l.kt)("p",null,"The only additional port required for a provider is 3333:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw allow 3333\n")),(0,l.kt)("p",null,"If you are running a combined validator/provider, you need to allow all of the above ports. After adding ports to the\nrules list, you will need to start the firewall:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw enable\n")),(0,l.kt)("p",null,"After starting the firewall, verify all of the required rules are in place by running:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ufw status verbose\n")),(0,l.kt)("p",null,"Your output should be similar to the following:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"Status: active\n\nTo Action From\n-- ------ ----\n22 ALLOW Anywhere\n80 ALLOW Anywhere\n443 ALLOW Anywhere\n1317 ALLOW Anywhere\n3333 ALLOW Anywhere\n26657 ALLOW Anywhere\n26658 ALLOW Anywhere\n")),(0,l.kt)("h3",{id:"create-jackal-user"},"Create Jackal user"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},'sudo adduser --gecos "" jackal\nsudo usermod -aG sudo jackal\n')),(0,l.kt)("p",null,"Log in as the jackal user to complete the below steps:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo su - jackal\n")),(0,l.kt)("h3",{id:"installing-required-tools"},"Installing required tools"),(0,l.kt)("p",null,"This will install the necessary tools to build the jackal chain source, along with lz4 compression tool and jquery tool."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"sudo apt update\nsudo apt install build-essential lz4 jq\n")),(0,l.kt)("h3",{id:"installing-go"},"Installing Go"),(0,l.kt)("p",null,"Follow more in-depth instructions to install Go v1.19 or higher ",(0,l.kt)("a",{parentName:"p",href:"https://golang.org/doc/install"},"here"),"."),(0,l.kt)("p",null,"On Ububtu you can install it with:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"GOVER=$(curl https://go.dev/VERSION?m=text)\nwget https://golang.org/dl/${GOVER}.linux-amd64.tar.gz\nsudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${GOVER}.linux-amd64.tar.gz\n")),(0,l.kt)("p",null,"Add the following golang path info to the current users ",(0,l.kt)("inlineCode",{parentName:"p"},"~/.profile"),"."),(0,l.kt)("p",null,"Also add it to the skeleton profile so all new users have it. ",(0,l.kt)("inlineCode",{parentName:"p"},"/etc/skel/.profile")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},'# add environmental variables for Go\nif [ -f "/usr/local/go/bin/go" ] ; then\n export GOROOT=/usr/local/go\n export GOPATH=${HOME}/go\n export GOBIN=$GOPATH/bin\n export PATH=${PATH}:${GOROOT}/bin:${GOBIN}\n export GO111MODULE=on\nfi\n')),(0,l.kt)("p",null,"Restarting the shell with youre profile settings or just rebasing them like so is required."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-sh"},"source ~/.profile\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dda406b3.b06cd6bb.js b/assets/js/dda406b3.3e7cc2e0.js similarity index 66% rename from assets/js/dda406b3.b06cd6bb.js rename to assets/js/dda406b3.3e7cc2e0.js index 6d233f2..0894ef2 100644 --- a/assets/js/dda406b3.b06cd6bb.js +++ b/assets/js/dda406b3.3e7cc2e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[316],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>f});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},p=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},b=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(t),b=o,f=u["".concat(c,".").concat(b)]||u[b]||d[b]||i;return t?n.createElement(f,a(a({ref:r},p),{},{components:t})):n.createElement(f,a({ref:r},p))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[u]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=t(7462),o=(t(7294),t(3905));const i={sidebar_position:1},a="About These Libraries",s={unversionedId:"developers/dAppLibraries/intro",id:"developers/dAppLibraries/intro",title:"About These Libraries",description:"The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These",source:"@site/docs/developers/dAppLibraries/1_intro.md",sourceDirName:"developers/dAppLibraries",slug:"/developers/dAppLibraries/intro",permalink:"/docs/developers/dAppLibraries/intro",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/dAppLibraries/1_intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Setting Up",permalink:"/docs/nodes/install"},next:{title:"Jackal.js-protos / Jackal.nodejs-protos",permalink:"/docs/developers/dAppLibraries/jackal_protos"}},c={},l=[],p={toc:l},u="wrapper";function d(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"about-these-libraries"},"About These Libraries"),(0,o.kt)("p",null,"The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These\nare a work in progress and will be expanded on over time."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[316],{3905:(e,r,t)=>{t.d(r,{Zo:()=>l,kt:()=>f});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},b=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(t),b=o,f=u["".concat(c,".").concat(b)]||u[b]||d[b]||i;return t?n.createElement(f,a(a({ref:r},l),{},{components:t})):n.createElement(f,a({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=b;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[u]="string"==typeof e?e:o,a[1]=s;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var n=t(7462),o=(t(7294),t(3905));const i={sidebar_position:1},a="About These Libraries",s={unversionedId:"developers/dAppLibraries/intro",id:"developers/dAppLibraries/intro",title:"About These Libraries",description:"The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These",source:"@site/docs/developers/dAppLibraries/1_intro.md",sourceDirName:"developers/dAppLibraries",slug:"/developers/dAppLibraries/intro",permalink:"/docs/developers/dAppLibraries/intro",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/dAppLibraries/1_intro.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"APIs",permalink:"/docs/developers/apis/apis"},next:{title:"Jackal.js-protos / Jackal.nodejs-protos",permalink:"/docs/developers/dAppLibraries/jackal_protos"}},c={},p=[],l={toc:p},u="wrapper";function d(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"about-these-libraries"},"About These Libraries"),(0,o.kt)("p",null,"The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These\nare a work in progress and will be expanded on over time."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec604ac9.649f996b.js b/assets/js/ec604ac9.f292add3.js similarity index 66% rename from assets/js/ec604ac9.649f996b.js rename to assets/js/ec604ac9.f292add3.js index 22cc7f4..406edd9 100644 --- a/assets/js/ec604ac9.649f996b.js +++ b/assets/js/ec604ac9.f292add3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[9061],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>b});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},s=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(t),f=o,b=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return t?n.createElement(b,i(i({ref:r},s),{},{components:t})):n.createElement(b,i({ref:r},s))}));function b(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=t(7462),o=(t(7294),t(3905));const a={sidebar_position:5},i="Jackal.go",c={unversionedId:"developers/dAppLibraries/jackal_go",id:"developers/dAppLibraries/jackal_go",title:"Jackal.go",description:"Quickstart",source:"@site/docs/developers/dAppLibraries/5_jackal_go.md",sourceDirName:"developers/dAppLibraries",slug:"/developers/dAppLibraries/jackal_go",permalink:"/docs/developers/dAppLibraries/jackal_go",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/dAppLibraries/5_jackal_go.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Jackal.nodejs",permalink:"/docs/developers/dAppLibraries/jackal_nodejs"},next:{title:"Getting Started",permalink:"/docs/developers/intro"}},l={},p=[{value:"Quickstart",id:"quickstart",level:2}],s={toc:p},d="wrapper";function u(e){let{components:r,...t}=e;return(0,o.kt)(d,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"jackalgo"},"Jackal.go"),(0,o.kt)("h2",{id:"quickstart"},"Quickstart"),(0,o.kt)("p",null,"Coming Soon"))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[9061],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>b});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},s=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(t),f=o,b=u["".concat(p,".").concat(f)]||u[f]||d[f]||a;return t?n.createElement(b,i(i({ref:r},s),{},{components:t})):n.createElement(b,i({ref:r},s))}));function b(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var c={};for(var p in r)hasOwnProperty.call(r,p)&&(c[p]=r[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=t(7462),o=(t(7294),t(3905));const a={sidebar_position:5},i="Jackal.go",c={unversionedId:"developers/dAppLibraries/jackal_go",id:"developers/dAppLibraries/jackal_go",title:"Jackal.go",description:"Quickstart",source:"@site/docs/developers/dAppLibraries/5_jackal_go.md",sourceDirName:"developers/dAppLibraries",slug:"/developers/dAppLibraries/jackal_go",permalink:"/docs/developers/dAppLibraries/jackal_go",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/developers/dAppLibraries/5_jackal_go.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Jackal.nodejs",permalink:"/docs/developers/dAppLibraries/jackal_nodejs"}},p={},l=[{value:"Quickstart",id:"quickstart",level:2}],s={toc:l},u="wrapper";function d(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"jackalgo"},"Jackal.go"),(0,o.kt)("h2",{id:"quickstart"},"Quickstart"),(0,o.kt)("p",null,"Coming Soon"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.3e1f8db3.js b/assets/js/runtime~main.3e1f8db3.js deleted file mode 100644 index 2897253..0000000 --- a/assets/js/runtime~main.3e1f8db3.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,f,a,t,r,b={},d={};function c(e){var f=d[e];if(void 0!==f)return f.exports;var a=d[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,c),a.loaded=!0,a.exports}c.m=b,c.c=d,e=[],c.O=(f,a,t,r)=>{if(!a){var b=1/0;for(i=0;i=r)&&Object.keys(c.O).every((e=>c.O[e](a[o])))?a.splice(o--,1):(d=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[a,t,r]},c.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return c.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);c.r(r);var b={};f=f||[null,a({}),a([]),a(a)];for(var d=2&t&&e;"object"==typeof d&&!~f.indexOf(d);d=a(d))Object.getOwnPropertyNames(d).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,c.d(r,b),r},c.d=(e,f)=>{for(var a in f)c.o(f,a)&&!c.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((f,a)=>(c.f[a](e,f),f)),[])),c.u=e=>"assets/js/"+({53:"935f2afb",63:"24b4006e",92:"29af3fe3",229:"03cdf430",316:"dda406b3",604:"ab3acb2a",737:"3d14bff3",1078:"5402824b",1148:"3e125dc6",1172:"b46b7d8b",1210:"18a433c4",1232:"7d26c06c",1314:"7f9142bb",1385:"15018644",1770:"65b97a36",1817:"9c403616",1947:"e1923b53",2127:"fd23986e",2782:"f1994572",2855:"d866114a",2891:"f3769d49",3085:"1f391b9e",3298:"ea96f03c",3523:"e289ecfd",4195:"c4f5d8e4",4286:"c97fbebf",4808:"ebbc57e7",4878:"c894e2df",5275:"5a6f97fe",5533:"874276e5",5689:"8b564e48",5798:"d1f710bd",5863:"bbf127f0",6164:"9093546b",6174:"23f3f2f9",6216:"b92c85d1",6487:"041d8db4",6683:"a4043c8d",7026:"259b7029",7275:"7b9432de",7414:"393be207",7918:"17896441",8206:"24536a89",8425:"b1fc7db6",8938:"5da52a1e",8957:"8a56e0ba",9042:"0558eea0",9061:"ec604ac9",9293:"365ebb01",9404:"d07072fe",9514:"1be78505",9671:"0e384e19"}[e]||e)+"."+{53:"7e103a53",63:"30737e09",92:"b60f901c",229:"7e02b891",316:"b06cd6bb",604:"76abcdc6",737:"a25ef268",1078:"4a587681",1148:"0e24697b",1172:"1c0f04c0",1210:"6917106a",1232:"feb8587b",1314:"819d8831",1385:"6fe0ce4b",1770:"a013b9ec",1817:"f33e19b2",1947:"169a8c97",2127:"6b726842",2782:"95359acc",2855:"d0d638cd",2891:"65f70b15",3085:"91011971",3298:"023d2762",3523:"4d9bf765",4195:"2b582468",4286:"482e71ef",4808:"f8960240",4878:"64f123fb",4972:"6c3329cb",5275:"717599dd",5533:"896c7d69",5689:"edcb4052",5798:"6916f84a",5863:"f450fa8e",6164:"8ff0d5a1",6174:"f7b88f60",6216:"819ca774",6487:"dba44ae6",6683:"c212c6d1",7026:"7c7113bb",7275:"469181e7",7414:"c08b369d",7918:"cb14df91",8206:"a554894d",8425:"29627de6",8938:"c10ab025",8957:"b5bf4935",9042:"d0dc91a4",9061:"649f996b",9293:"4242157c",9404:"5fe674f0",9455:"9e25e52e",9514:"edbc8ded",9671:"639cda40"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),t={},r="canine-docs:",c.l=(e,f,a,b)=>{if(t[e])t[e].push(f);else{var d,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],d.parentNode&&d.parentNode.removeChild(d),r&&r.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=l.bind(null,d.onerror),d.onload=l.bind(null,d.onload),o&&document.head.appendChild(d)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/",c.gca=function(e){return e={15018644:"1385",17896441:"7918","935f2afb":"53","24b4006e":"63","29af3fe3":"92","03cdf430":"229",dda406b3:"316",ab3acb2a:"604","3d14bff3":"737","5402824b":"1078","3e125dc6":"1148",b46b7d8b:"1172","18a433c4":"1210","7d26c06c":"1232","7f9142bb":"1314","65b97a36":"1770","9c403616":"1817",e1923b53:"1947",fd23986e:"2127",f1994572:"2782",d866114a:"2855",f3769d49:"2891","1f391b9e":"3085",ea96f03c:"3298",e289ecfd:"3523",c4f5d8e4:"4195",c97fbebf:"4286",ebbc57e7:"4808",c894e2df:"4878","5a6f97fe":"5275","874276e5":"5533","8b564e48":"5689",d1f710bd:"5798",bbf127f0:"5863","9093546b":"6164","23f3f2f9":"6174",b92c85d1:"6216","041d8db4":"6487",a4043c8d:"6683","259b7029":"7026","7b9432de":"7275","393be207":"7414","24536a89":"8206",b1fc7db6:"8425","5da52a1e":"8938","8a56e0ba":"8957","0558eea0":"9042",ec604ac9:"9061","365ebb01":"9293",d07072fe:"9404","1be78505":"9514","0e384e19":"9671"}[e]||e,c.p+c.u(e)},(()=>{var e={1303:0,532:0};c.f.j=(f,a)=>{var t=c.o(e,f)?e[f]:void 0;if(0!==t)if(t)a.push(t[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var r=new Promise(((a,r)=>t=e[f]=[a,r]));a.push(t[2]=r);var b=c.p+c.u(f),d=new Error;c.l(b,(a=>{if(c.o(e,f)&&(0!==(t=e[f])&&(e[f]=void 0),t)){var r=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;d.message="Loading chunk "+f+" failed.\n("+r+": "+b+")",d.name="ChunkLoadError",d.type=r,d.request=b,t[1](d)}}),"chunk-"+f,f)}},c.O.j=f=>0===e[f];var f=(f,a)=>{var t,r,b=a[0],d=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(t in d)c.o(d,t)&&(c.m[t]=d[t]);if(o)var i=o(c)}for(f&&f(a);n{"use strict";var e,a,f,t,d,r={},b={};function c(e){var a=b[e];if(void 0!==a)return a.exports;var f=b[e]={id:e,loaded:!1,exports:{}};return r[e].call(f.exports,f,f.exports,c),f.loaded=!0,f.exports}c.m=r,c.c=b,e=[],c.O=(a,f,t,d)=>{if(!f){var r=1/0;for(i=0;i=d)&&Object.keys(c.O).every((e=>c.O[e](f[o])))?f.splice(o--,1):(b=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[f,t,d]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var d=Object.create(null);c.r(d);var r={};a=a||[null,f({}),f([]),f(f)];for(var b=2&t&&e;"object"==typeof b&&!~a.indexOf(b);b=f(b))Object.getOwnPropertyNames(b).forEach((a=>r[a]=()=>e[a]));return r.default=()=>e,c.d(d,r),d},c.d=(e,a)=>{for(var f in a)c.o(a,f)&&!c.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((a,f)=>(c.f[f](e,a),a)),[])),c.u=e=>"assets/js/"+({53:"935f2afb",63:"24b4006e",92:"29af3fe3",229:"03cdf430",316:"dda406b3",604:"ab3acb2a",737:"3d14bff3",1078:"5402824b",1148:"3e125dc6",1172:"b46b7d8b",1210:"18a433c4",1232:"7d26c06c",1314:"7f9142bb",1385:"15018644",1770:"65b97a36",1817:"9c403616",1947:"e1923b53",2127:"fd23986e",2782:"f1994572",2855:"d866114a",2891:"f3769d49",3085:"1f391b9e",3298:"ea96f03c",3523:"e289ecfd",4195:"c4f5d8e4",4286:"c97fbebf",4808:"ebbc57e7",4878:"c894e2df",5275:"5a6f97fe",5533:"874276e5",5689:"8b564e48",5798:"d1f710bd",5863:"bbf127f0",6164:"9093546b",6174:"23f3f2f9",6216:"b92c85d1",6487:"041d8db4",6683:"a4043c8d",7026:"259b7029",7275:"7b9432de",7414:"393be207",7918:"17896441",8206:"24536a89",8425:"b1fc7db6",8938:"5da52a1e",8957:"8a56e0ba",9042:"0558eea0",9061:"ec604ac9",9293:"365ebb01",9404:"d07072fe",9514:"1be78505",9671:"0e384e19"}[e]||e)+"."+{53:"2bcc881a",63:"30737e09",92:"b60f901c",229:"7e02b891",316:"3e7cc2e0",604:"76abcdc6",737:"f35b2014",1078:"4a587681",1148:"0e24697b",1172:"1c0f04c0",1210:"6917106a",1232:"feb8587b",1314:"819d8831",1385:"6fe0ce4b",1770:"a013b9ec",1817:"f33e19b2",1947:"169a8c97",2127:"6b726842",2782:"95359acc",2855:"d0d638cd",2891:"65f70b15",3085:"91011971",3298:"023d2762",3523:"4d9bf765",4195:"2b582468",4286:"482e71ef",4808:"f8960240",4878:"64f123fb",4972:"6c3329cb",5275:"717599dd",5533:"896c7d69",5689:"edcb4052",5798:"6916f84a",5863:"f450fa8e",6164:"8ff0d5a1",6174:"f7b88f60",6216:"819ca774",6487:"1a5fbbf3",6683:"1e7ea833",7026:"7c7113bb",7275:"469181e7",7414:"c08b369d",7918:"cb14df91",8206:"a554894d",8425:"29627de6",8938:"c10ab025",8957:"b5bf4935",9042:"d0dc91a4",9061:"f292add3",9293:"4242157c",9404:"5fe674f0",9455:"9e25e52e",9514:"edbc8ded",9671:"639cda40"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},d="canine-docs:",c.l=(e,a,f,r)=>{if(t[e])t[e].push(a);else{var b,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var d=t[e];if(delete t[e],b.parentNode&&b.parentNode.removeChild(b),d&&d.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/",c.gca=function(e){return e={15018644:"1385",17896441:"7918","935f2afb":"53","24b4006e":"63","29af3fe3":"92","03cdf430":"229",dda406b3:"316",ab3acb2a:"604","3d14bff3":"737","5402824b":"1078","3e125dc6":"1148",b46b7d8b:"1172","18a433c4":"1210","7d26c06c":"1232","7f9142bb":"1314","65b97a36":"1770","9c403616":"1817",e1923b53:"1947",fd23986e:"2127",f1994572:"2782",d866114a:"2855",f3769d49:"2891","1f391b9e":"3085",ea96f03c:"3298",e289ecfd:"3523",c4f5d8e4:"4195",c97fbebf:"4286",ebbc57e7:"4808",c894e2df:"4878","5a6f97fe":"5275","874276e5":"5533","8b564e48":"5689",d1f710bd:"5798",bbf127f0:"5863","9093546b":"6164","23f3f2f9":"6174",b92c85d1:"6216","041d8db4":"6487",a4043c8d:"6683","259b7029":"7026","7b9432de":"7275","393be207":"7414","24536a89":"8206",b1fc7db6:"8425","5da52a1e":"8938","8a56e0ba":"8957","0558eea0":"9042",ec604ac9:"9061","365ebb01":"9293",d07072fe:"9404","1be78505":"9514","0e384e19":"9671"}[e]||e,c.p+c.u(e)},(()=>{var e={1303:0,532:0};c.f.j=(a,f)=>{var t=c.o(e,a)?e[a]:void 0;if(0!==t)if(t)f.push(t[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((f,d)=>t=e[a]=[f,d]));f.push(t[2]=d);var r=c.p+c.u(a),b=new Error;c.l(r,(f=>{if(c.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var d=f&&("load"===f.type?"missing":f.type),r=f&&f.target&&f.target.src;b.message="Loading chunk "+a+" failed.\n("+d+": "+r+")",b.name="ChunkLoadError",b.type=d,b.request=r,t[1](b)}}),"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,f)=>{var t,d,r=f[0],b=f[1],o=f[2],n=0;if(r.some((a=>0!==e[a]))){for(t in b)c.o(b,t)&&(c.m[t]=b[t]);if(o)var i=o(c)}for(a&&a(f);n Jackal Foundation | Jackal Chain Docs - +
-

Jackal Foundation

What is the Jackal Foundation?

The Jackal Foundation serves as the cornerstone of the Jackal Community. As a non-profit organization, it propels +

Jackal Foundation

What is the Jackal Foundation?

The Jackal Foundation serves as the cornerstone of the Jackal Community. As a non-profit organization, it propels development forward by conducting research, testing software, championing projects, and promoting decentralization.

What is the scope of the Jackal Foundation?

  • Maintain and enhance the Jackal Protocol.
  • Allocate resources to foster ecosystem growth.
  • Establish and oversee Jackal Collectives.
  • Manage the core governance of the Jackal Protocol.
  • Uphold and implement changes resulting from the governance process.
- + \ No newline at end of file diff --git a/docs/contributors/join.html b/docs/contributors/join.html index 42c4461..f85eb2d 100644 --- a/docs/contributors/join.html +++ b/docs/contributors/join.html @@ -5,14 +5,14 @@ Join the Community! | Jackal Chain Docs - +
-

Join the Community!

The Jackal Community is open to all.

The Jackal Protocol is a transparent, open source, and community-driven project. We welcome all who want to help build a +

Join the Community!

The Jackal Community is open to all.

The Jackal Protocol is a transparent, open source, and community-driven project. We welcome all who want to help build a self-custodial and secure digital future.

To contribute; please join below.

- + \ No newline at end of file diff --git a/docs/contributors/labs.html b/docs/contributors/labs.html index b42b4d6..82f3cb6 100644 --- a/docs/contributors/labs.html +++ b/docs/contributors/labs.html @@ -5,15 +5,15 @@ Jackal Labs | Jackal Chain Docs - +
-

Jackal Labs

Who is Jackal Labs?

Jackal Labs, a Canadian software development company, played a pivotal role in the early development of the Jackal +

Jackal Labs

Who is Jackal Labs?

Jackal Labs, a Canadian software development company, played a pivotal role in the early development of the Jackal Protocol. As a decentralized and autonomous entity, the Jackal Protocol is not owned or operated by Jackal Labs. Instead, Jackal Labs contributes to the protocol's evolution by proposing changes through on-chain governance.

What is the scope of Jackal Labs?

  • Spearhead the initial development of the Jackal Protocol.
  • Engage in ongoing research and development for the Protocol.
  • Suggest improvements to the protocol via the governance process.
- + \ No newline at end of file diff --git a/docs/developers/apis/apis.html b/docs/developers/apis/apis.html index 1d37396..c35fd94 100644 --- a/docs/developers/apis/apis.html +++ b/docs/developers/apis/apis.html @@ -5,13 +5,13 @@ APIs | Jackal Chain Docs - + - +
+ \ No newline at end of file diff --git a/docs/developers/apis/intro.html b/docs/developers/apis/intro.html index d04e3cd..c5f66c6 100644 --- a/docs/developers/apis/intro.html +++ b/docs/developers/apis/intro.html @@ -5,13 +5,13 @@ About Jackal APIs | Jackal Chain Docs - + - +
+ \ No newline at end of file diff --git a/docs/developers/dAppLibraries/intro.html b/docs/developers/dAppLibraries/intro.html index ed35173..acc4896 100644 --- a/docs/developers/dAppLibraries/intro.html +++ b/docs/developers/dAppLibraries/intro.html @@ -5,14 +5,14 @@ About These Libraries | Jackal Chain Docs - +
-

About These Libraries

The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These -are a work in progress and will be expanded on over time.

- +

About These Libraries

The following sections outline the basics of how to use the available libraries to interact with the Jackal chain. These +are a work in progress and will be expanded on over time.

+ \ No newline at end of file diff --git a/docs/developers/dAppLibraries/jackal_go.html b/docs/developers/dAppLibraries/jackal_go.html index 1033756..f61402f 100644 --- a/docs/developers/dAppLibraries/jackal_go.html +++ b/docs/developers/dAppLibraries/jackal_go.html @@ -5,13 +5,13 @@ Jackal.go | Jackal Chain Docs - + - +
+ \ No newline at end of file diff --git a/docs/developers/dAppLibraries/jackal_js.html b/docs/developers/dAppLibraries/jackal_js.html index 26bce44..7fad222 100644 --- a/docs/developers/dAppLibraries/jackal_js.html +++ b/docs/developers/dAppLibraries/jackal_js.html @@ -5,12 +5,12 @@ Jackal.js | Jackal Chain Docs - +
-

Jackal.js

Implements Jacakl.js-protos

Full method documentation

Quickstart

To get started using Jackal in the browser, you'll need a few things!

Pre-requesites

Setting Up

To get started, make sure you start your project using Vite. If you have an existing React +

Jackal.js

Implements Jacakl.js-protos

Full method documentation

Quickstart

To get started using Jackal in the browser, you'll need a few things!

Pre-requesites

Setting Up

To get started, make sure you start your project using Vite. If you have an existing React app for example, re-init the project using Vite.

Install dependencies:

npm create vite@latest
npm install @jackallabs/jackal.js-protos @cosmjs/proto-signing
npm install -D vite-plugin-node-stdlib-browser

Jackal.js requires Node v20+. The easiest way to manage this is with NVM.

nvm use 20

Updating Vite Config

// In vite.config.js:
import { defineConfig } from 'vite'
import nodePolyfills from 'vite-plugin-node-stdlib-browser'

export default defineConfig({
plugins: [
nodePolyfills()
],
})

Connecting Your Wallet

Custom chain configurations are required for Testnet, and for Keplr on Mainnet. @@ -18,7 +18,7 @@ The following are the correct options to use. Jackal.js additionally supports ap settings. This requires some redundancy, but allows for greater flexibility in projects.

Wallet Selection

Currently Jackal,js supports Keplr and Leap wallets. Only a single wallet can be used at any time, but you can switch between them as desired.

const selectedWallet = 'keplr'
// OR
const selectedWallet = 'leap'

Testnet Configuration

const chainConfig = {
chainId: 'lupulella-2',
chainName: 'Jackal Testnet II',
rpc: 'https://testnet-rpc.jackalprotocol.com',
rest: 'https://testnet-api.jackalprotocol.com',
bip44: {
coinType: 118
},
coinType: 118,
stakeCurrency: {
coinDenom: 'JKL',
coinMinimalDenom: 'ujkl',
coinDecimals: 6
},
bech32Config: {
bech32PrefixAccAddr: 'jkl',
bech32PrefixAccPub: 'jklpub',
bech32PrefixValAddr: 'jklvaloper',
bech32PrefixValPub: 'jklvaloperpub',
bech32PrefixConsAddr: 'jklvalcons',
bech32PrefixConsPub: 'jklvalconspub'
},
currencies: [
{
coinDenom: 'JKL',
coinMinimalDenom: 'ujkl',
coinDecimals: 6
}
],
feeCurrencies: [
{
coinDenom: 'JKL',
coinMinimalDenom: 'ujkl',
coinDecimals: 6,
gasPriceStep: {
low: 0.002,
average: 0.002,
high: 0.02
}
}
],
features: []
}
const appConfig = {
signerChain: 'lupulella-2',
enabledChains: ['lupulella-2'],
queryAddr: 'https://testnet-grpc.jackalprotocol.com',
txAddr: 'https://testnet-rpc.jackalprotocol.com'
}

Mainnet Configuration

const chainConfig = {
chainId: 'jackal-1',
chainName: 'Jackal Mainnet',
rpc: 'https://rpc.jackalprotocol.com',
rest: 'https://api.jackalprotocol.com',
bip44: {
coinType: 118
},
coinType: 118,
stakeCurrency: {
coinDenom: 'JKL',
coinMinimalDenom: 'ujkl',
coinDecimals: 6
},
bech32Config: {
bech32PrefixAccAddr: 'jkl',
bech32PrefixAccPub: 'jklpub',
bech32PrefixValAddr: 'jklvaloper',
bech32PrefixValPub: 'jklvaloperpub',
bech32PrefixConsAddr: 'jklvalcons',
bech32PrefixConsPub: 'jklvalconspub'
},
currencies: [
{
coinDenom: 'JKL',
coinMinimalDenom: 'ujkl',
coinDecimals: 6
}
],
feeCurrencies: [
{
coinDenom: 'JKL',
coinMinimalDenom: 'ujkl',
coinDecimals: 6,
gasPriceStep: {
low: 0.002,
average: 0.002,
high: 0.02
}
}
],
features: []
}
const appConfig = {
signerChain: 'jackal-1',
enabledChains: ['jackal-1'],
queryAddr: 'https://grpc.jackalprotocol.com',
txAddr: 'https://rpc.jackalprotocol.com'
}

Bringing the full config together

const finalWalletConfig = {
selectedWallet,
...appConfig,
chainConfig
}
// Hooking up the wallet to your app
const wallet = await WalletHandler.trackWallet(finalWalletConfig)

Additionally, a query-only mode for the wallet can get accessed via the following:

const wallet = await WalletHandler.trackQueryWallet('https://grpc.jackalprotocol.com') // Use the gRPC-web address of your choice

Buying Storage Space

Every account that wishes to use the Jackal Protocol to store data needs to have a paid storage account. This means giving the protocol $8 USD per month per tb. We can do this with Jackal.js!

const storage = await StorageHandler.trackStorage(wallet)
// (Wallet address)
// duration in months (min 1)
// space in terabytes (min .001)
// 2 TB for 1 year:
await storage.buyStorage(WALLET_ADDRESS, 12, 2)

Creating a Root Folder

const minimumProviderVersion = '1.0.9'
const fileIo = await FileIo.trackIo(wallet, minimumProviderVersion)
const listOfRootFolders = ["Home", ...]
// you can create as many root folders as you would like this way. Home is the Jackal Dashboard default root directory.
// The first time a user connects, they must init the system
const storage = await StorageHandler.trackStorage(wallet)
const msg = storage.makeStorageInitMsg()
await fileIo.generateInitialDirs(msg, listOfRootFolders)
// after the first time, this code can be used instead. this will only create new root folders if they don't already exist
const newFolderCount = await fileIo.verifyFoldersExist(listOfRootFolders)

Creating a Child Folder

const fileIo = await FileIo.trackIo(wallet)
const parentFolderPath = PARENT_FOLDER_NAME_AND_PATH // for example Dashboard's root folder path is s/Home
const parent = await fileIo.downloadFolder(parentFolderPath)
const listOfChildFolders = ["Movies", "Pictures", ...]
await fileIo.createFolders(parent, listOfChildFolders)

Uploading a File

const fileIo = await FileIo.trackIo(wallet)
const parentFolderPath = PARENT_FOLDER_NAME_AND_PATH // for example Dashboard's root folder path is s/Home
const parent = await fileIo.downloadFolder(parentFolderPath)
const file = FILE_OBJECT // this MUST be an instance of File() that is in the browser memory
const fileName = file.name
const handler = await FileUploadHandler.trackFile(file, parentFolderPath)
const uploadList = {}
uploadList[fileName] = {
data: null,
exists: false,
handler: handler,
key: fileName,
uploadable: await handler.getForUpload()
}
await fileIo.staggeredUploadFiles(uploadList, parent, {counter: 0, complete: 0})

Downloading a File

const fileIo = await FileIo.trackIo(wallet)
/* optional */
const parentFolderPath = PARENT_FOLDER_NAME_AND_PATH // for example Dashboard's root folder path is s/Home
const parent = await fileIo.downloadFolder(parentFolderPath)
const childrenFiles = parent.getChildFiles()
const pathOfFirstChild = parent.getMyChildPath(childrenFiles[0].name)
/* end optional */
const downloadDetails = {
rawPath: FILE_PATH, // manual complete file path OR pathOfFirstChild
owner: OWNER_ADDRESS, // JKL address of file owner
isFolder: false
}
const fileHanlder = await fileIo.downloadFile(downloadDetails, {track: 0})
const file = fileHanlder.receiveBacon()
// do what you want with the File object returned by receiveBacon
- + \ No newline at end of file diff --git a/docs/developers/dAppLibraries/jackal_nodejs.html b/docs/developers/dAppLibraries/jackal_nodejs.html index 08f1b1e..193cc09 100644 --- a/docs/developers/dAppLibraries/jackal_nodejs.html +++ b/docs/developers/dAppLibraries/jackal_nodejs.html @@ -5,16 +5,16 @@ Jackal.nodejs | Jackal Chain Docs - +
-

Jackal.nodejs

Quickstart

Demo

A working demo repo can be found on GitHub.

Pre-requesites

Setting Up

Install dependencies:

npm install @jackallabs/jackal.nodejs
npm install -D @types/node typescript tscpaths

Jackal.js requires Node v20+. The easiest way to manage this is +

Jackal.nodejs

Quickstart

Demo

A working demo repo can be found on GitHub.

Pre-requesites

Setting Up

Install dependencies:

npm install @jackallabs/jackal.nodejs
npm install -D @types/node typescript tscpaths

Jackal.js requires Node v20+. The easiest way to manage this is with NVM.

nvm use 20

Wallet Instantiation

Jackal.nodejs does not use a traditional wallet like Jackal.js. Instead, MnemonicWallet.create(mnemonic) is used for wallet instantiation.

const appConfig = {
signerChain: 'lupulella-2',
queryAddr: 'https://testnet-grpc.jackalprotocol.com',
txAddr: 'https://testnet-rpc.jackalprotocol.com'
}

const m = await MnemonicWallet.create(mnemonic)

// Hooking up the wallet to your app
const w = await WalletHandler.trackWallet(appConfig, m)

Additionally, a query-only mode for the wallet can get accessed via the following:

const wallet = await WalletHandler.trackQueryWallet('https://testnet-grpc.jackalprotocol.com') // Use the gRPC-web address of your choice

Buying Storage Space

Every account that wishes to use the Jackal Protocol to store data needs to have a paid storage account. This means giving the protocol $8 USD per month per tb. We can do this with Jackal.js!

const storage = await StorageHandler.trackStorage(wallet)

// (Wallet address)
// duration in months (min 1)
// space in terabytes (min .001)
// 2 TB for 1 year:
await storage.buyStorage(WALLET_ADDRESS, 12, 2)

Creating a Root Folder

const minimumProviderVersion = '1.0.9'
const fileIo = await FileIo.trackIo(wallet, minimumProviderVersion)

const listOfRootFolders = ["Home", ...]
// you can create as many root folders as you would like this way. Home is the Jackal Dashboard default root directory.
// The first time a user connects, they must init the system
const storage = await StorageHandler.trackStorage(wallet)
const msg = storage.makeStorageInitMsg()
await fileIo.generateInitialDirs(msg, listOfRootFolders)

// after the first time, this code can be used instead. this will only create new root folders if they don't already exist
const newFolderCount = await fileIo.verifyFoldersExist(listOfRootFolders)

Creating a Child Folder

const fileIo = await FileIo.trackIo(wallet)
const parentFolderPath = PARENT_FOLDER_NAME_AND_PATH // for example Dashboard's root folder path is s/Home
const parent = await fileIo.downloadFolder(parentFolderPath)
const listOfChildFolders = ["Movies", "Pictures", ...]
await fileIo.createFolders(parent, listOfChildFolders)

Uploading a File

const fileIo = await FileIo.trackIo(wallet)

const parentFolderPath = PARENT_FOLDER_NAME_AND_PATH // for example Dashboard's root folder path is s/Home
const parent = await fileIo.downloadFolder(parentFolderPath)

const file = FILE_OBJECT // this MUST be an instance of File() that is in the browser memory
const fileName = file.name
const handler = await FileUploadHandler.trackFile(file, parentFolderPath)

const uploadList = {}
uploadList[fileName] = {
data: null,
exists: false,
handler: handler,
key: fileName,
uploadable: await handler.getForUpload()
}

await fileIo.staggeredUploadFiles(uploadList, parent, {counter: 0, complete: 0})

Downloading a File

const fileIo = await FileIo.trackIo(wallet)

/* optional */
const parentFolderPath = PARENT_FOLDER_NAME_AND_PATH // for example Dashboard's root folder path is s/Home
const parent = await fileIo.downloadFolder(parentFolderPath)
const childrenFiles = parent.getChildFiles()
const pathOfFirstChild = parent.getMyChildPath(childrenFiles[0].name)
/* end optional */

const downloadDetails = {
rawPath: FILE_PATH, // manual complete file path OR pathOfFirstChild
owner: OWNER_ADDRESS, // JKL address of file owner
isFolder: false
}

const fileHanlder = await fileIo.downloadFile(downloadDetails, { track: 0 })

const file = fileHanlder.receiveBacon()
// do what you want with the File object returned by receiveBacon
- + \ No newline at end of file diff --git a/docs/developers/dAppLibraries/jackal_protos.html b/docs/developers/dAppLibraries/jackal_protos.html index 1946005..02385ed 100644 --- a/docs/developers/dAppLibraries/jackal_protos.html +++ b/docs/developers/dAppLibraries/jackal_protos.html @@ -5,12 +5,12 @@ Jackal.js-protos / Jackal.nodejs-protos | Jackal Chain Docs - +
-

Jackal.js-protos / Jackal.nodejs-protos

About

The Protos modules for Jackal.js and Jackal.nodejs ("Protos") is the conversion layer the accepts raw protobufs from the +

Jackal.js-protos / Jackal.nodejs-protos

About

The Protos modules for Jackal.js and Jackal.nodejs ("Protos") is the conversion layer the accepts raw protobufs from the Jackal chain and converts them to useable typescrypt code. The differences between these 2 packages are only in the compatibility with either browser or Nodejs Javascript APIs and how they are packaged for consumption. Protos is designed @@ -20,7 +20,7 @@ Jackal.nodejs-protos does not need this.

Install dependencies:

(Jackal.js-protos)

npm create vite@latest
npm install jackal.js-protos eciesjs @cosmjs/launchpad @cosmjs/proto-signing @cosmjs/stargate
npm install -D vite-plugin-node-stdlib-browser

OR

(Jackal.nodejs-protos)

npm install jackal.nodejs-protos eciesjs @cosmjs/launchpad @cosmjs/proto-signing @cosmjs/stargate
npm install -D @types/node typescript tscpaths

Updating Vite Config

(Jackal.js-protos)

// In vite.config.js:
import { defineConfig } from 'vite'
import nodePolyfills from 'vite-plugin-node-stdlib-browser'

export default defineConfig({
plugins: [
nodePolyfills()
],
})

Next Steps

Once everything is set up as detailed above, you are free to create as little or as much using the methods exposed by Protos. Full documentation of these methods coming soon.

- + \ No newline at end of file diff --git a/docs/developers/intro.html b/docs/developers/intro.html index 43b117c..05e0869 100644 --- a/docs/developers/intro.html +++ b/docs/developers/intro.html @@ -5,16 +5,16 @@ Getting Started | Jackal Chain Docs - +
-

Getting Started

Web-Apps

To get started building web apps that leverage Jackal, head over to +

- +or Jackalgo Quickstart.

APIs

To get started building using our APIs, check out API Quickstart.

+ \ No newline at end of file diff --git a/docs/ecosystem/grants-funding.html b/docs/ecosystem/grants-funding.html index f37cd7c..ac497fe 100644 --- a/docs/ecosystem/grants-funding.html +++ b/docs/ecosystem/grants-funding.html @@ -5,16 +5,16 @@ Grants and Funding | Jackal Chain Docs - +
-

Grants and Funding

The Jackal Foundation facilitates non-equity grants, seed funding, and beyond through our various funding programs. +

Grants and Funding

The Jackal Foundation facilitates non-equity grants, seed funding, and beyond through our various funding programs. Ecosystem funding aims to focus on the following categories;

  • Research and Development
  • Infrastructure
  • Social Impact
  • dApps
  • Tooling
  • Services

For grants, applications will be reviewed based on the following criteria.

<100k100k - 200k200k+
One round of review.Two rounds of review.Interviews, formal committee review, full pitch.

For seed funding, the Jackal Foundation or Investment Network may support an ecosystem project with equity or token investments. For innovative founders that bring strategic value and adoption to the Jackal Ecosystem, please reach out directly to our team.

- + \ No newline at end of file diff --git a/docs/ecosystem/partnerships.html b/docs/ecosystem/partnerships.html index 261601f..a0d225d 100644 --- a/docs/ecosystem/partnerships.html +++ b/docs/ecosystem/partnerships.html @@ -5,16 +5,16 @@ Partnerships | Jackal Chain Docs - +
-

Partnerships

Blockchain and web3 native software engineering teams often wish to become core contributors through a partnership with +

Partnerships

Blockchain and web3 native software engineering teams often wish to become core contributors through a partnership with the Jackal Foundation. In a partnership role, the team would be assigned direct tasks and held to a high standard of execution, professionalism, and accountability. If your team desires to partner with the Jackal Foundation, please reach out directly, we look forward to working with you.

- + \ No newline at end of file diff --git a/docs/intro.html b/docs/intro.html index f843b81..c43a1b0 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -5,19 +5,19 @@ Welcome to Jackal Wiki | Jackal Chain Docs - +
-

Welcome to Jackal Wiki

Welcome, explorer, to the Jackal Wiki, where you'll embark on a journey to discover a more secure, simple, and +

Welcome to Jackal Wiki

Welcome, explorer, to the Jackal Wiki, where you'll embark on a journey to discover a more secure, simple, and self-custodial digital world.

The Jackal Protocol, an open-source and community-driven innovation, fosters a transparent and trustless ecosystem. You've found the ultimate hub for all things Jackal: protocol insights, usage tips, infrastructure knowledge, and unique opportunities.

Our enthusiastic teams at Jackal Labs and the Jackal Foundation diligently maintain the Jackal Wiki. If you happen to spot outdated information, don't hesitate to reach out—your input helps us ensure accuracy for the entire community. Let's shape the future of digital experiences together!

- + \ No newline at end of file diff --git a/docs/nodes/install.html b/docs/nodes/install.html index d3a7982..0ec8dfa 100644 --- a/docs/nodes/install.html +++ b/docs/nodes/install.html @@ -5,15 +5,15 @@ Setting Up | Jackal Chain Docs - +
-

Setting Up

Pre-Requisites

There are a few things needed before installing.

While logged in as the 'root' or 'admin' user, we add a 'jackal' user and give them root privileges.

Enable Firewall Rules

Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules +

Setting Up

Pre-Requisites

There are a few things needed before installing.

While logged in as the 'root' or 'admin' user, we add a 'jackal' user and give them root privileges.

Enable Firewall Rules

Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules required for access on both validators and providers:

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443

Additional ports are required if you are running a validator:

sudo ufw allow 26657
sudo ufw allow 26658

The only additional port required for a provider is 3333:

sudo ufw allow 3333

If you are running a combined validator/provider, you need to allow all of the above ports. After adding ports to the -rules list, you will need to start the firewall:

sudo ufw enable

After starting the firewall, verify all of the required rules are in place by running:

sudo ufw status verbose

Your output should be similar to the following:

Status: active

To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
1317 ALLOW Anywhere
3333 ALLOW Anywhere
26657 ALLOW Anywhere
26658 ALLOW Anywhere

Create Jackal user

sudo adduser --gecos "" jackal
sudo usermod -aG sudo jackal

Log in as the jackal user to complete the below steps:

sudo su - jackal

Installing required tools

This will install the necessary tools to build the jackal chain source, along with lz4 compression tool and jquery tool.

sudo apt update
sudo apt install build-essential lz4 jq

Installing Go

Follow more in-depth instructions to install Go v1.19 or higher here.

On Ububtu you can install it with:

GOVER=$(curl https://go.dev/VERSION?m=text)
wget https://golang.org/dl/${GOVER}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${GOVER}.linux-amd64.tar.gz

Add the following golang path info to the current users ~/.profile.

Also add it to the skeleton profile so all new users have it. /etc/skel/.profile

# add environmental variables for Go
if [ -f "/usr/local/go/bin/go" ] ; then
export GOROOT=/usr/local/go
export GOPATH=${HOME}/go
export GOBIN=$GOPATH/bin
export PATH=${PATH}:${GOROOT}/bin:${GOBIN}
export GO111MODULE=on
fi

Restarting the shell with youre profile settings or just rebasing them like so is required.

source ~/.profile
- +rules list, you will need to start the firewall:

sudo ufw enable

After starting the firewall, verify all of the required rules are in place by running:

sudo ufw status verbose

Your output should be similar to the following:

Status: active

To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
1317 ALLOW Anywhere
3333 ALLOW Anywhere
26657 ALLOW Anywhere
26658 ALLOW Anywhere

Create Jackal user

sudo adduser --gecos "" jackal
sudo usermod -aG sudo jackal

Log in as the jackal user to complete the below steps:

sudo su - jackal

Installing required tools

This will install the necessary tools to build the jackal chain source, along with lz4 compression tool and jquery tool.

sudo apt update
sudo apt install build-essential lz4 jq

Installing Go

Follow more in-depth instructions to install Go v1.19 or higher here.

On Ububtu you can install it with:

GOVER=$(curl https://go.dev/VERSION?m=text)
wget https://golang.org/dl/${GOVER}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${GOVER}.linux-amd64.tar.gz

Add the following golang path info to the current users ~/.profile.

Also add it to the skeleton profile so all new users have it. /etc/skel/.profile

# add environmental variables for Go
if [ -f "/usr/local/go/bin/go" ] ; then
export GOROOT=/usr/local/go
export GOPATH=${HOME}/go
export GOBIN=$GOPATH/bin
export PATH=${PATH}:${GOROOT}/bin:${GOBIN}
export GO111MODULE=on
fi

Restarting the shell with youre profile settings or just rebasing them like so is required.

source ~/.profile
+ \ No newline at end of file diff --git a/docs/nodes/nodes/hardware.html b/docs/nodes/nodes/hardware.html index 4f0058e..70207f4 100644 --- a/docs/nodes/nodes/hardware.html +++ b/docs/nodes/nodes/hardware.html @@ -5,13 +5,13 @@ Hardware | Jackal Chain Docs - +
-

Hardware

We recommend a minimum hardware requirement of:

  • 4 Cores (modern CPU's)
  • 128GB RAM
  • 3TB of storage (SSD or NVME)

We also recommend running an Ubuntu LTS OS as that is what the binaries have been tested against.

- +

Hardware

We recommend a minimum hardware requirement of:

  • 4 Cores (modern CPU's)
  • 128GB RAM
  • 3TB of storage (SSD or NVME)

We also recommend running an Ubuntu LTS OS as that is what the binaries have been tested against.

+ \ No newline at end of file diff --git a/docs/nodes/nodes/installation.html b/docs/nodes/nodes/installation.html index a7c5a3c..9dc3cb1 100644 --- a/docs/nodes/nodes/installation.html +++ b/docs/nodes/nodes/installation.html @@ -5,15 +5,15 @@ Installing Canined | Jackal Chain Docs - +
-

Installing Canined

Pre-Requisites

See Set-up.

Firewall Configuration

Configure UFW to only accept traffic on ports we use.

ufw limit ssh/tcp comment 'Rate limit for openssh server'
ufw default deny incoming
ufw default allow outgoing
ufw allow 26656/tcp comment 'JACKAL - Cosmos SDK/Tendermint P2P'
ufw allow 26657/tcp comment 'JACKAL - Cosmos SDK/Tendermint P2P'
ufw enable
tip

Perform the next follow steps as your jackal user with 'sudo' permissions

Creating a Service

You may want the daemon to run without you needing to supervise it. To turn the executable into a service follow these +

Installing Canined

Pre-Requisites

See Set-up.

Firewall Configuration

Configure UFW to only accept traffic on ports we use.

ufw limit ssh/tcp comment 'Rate limit for openssh server'
ufw default deny incoming
ufw default allow outgoing
ufw allow 26656/tcp comment 'JACKAL - Cosmos SDK/Tendermint P2P'
ufw allow 26657/tcp comment 'JACKAL - Cosmos SDK/Tendermint P2P'
ufw enable
tip

Perform the next follow steps as your jackal user with 'sudo' permissions

Creating a Service

You may want the daemon to run without you needing to supervise it. To turn the executable into a service follow these steps.

First create the service file /etc/systemd/system/canined.service

sudo nano /etc/systemd/system/canined.service

Copy and paste the follow into the service file: (you may need to edit it if you've set a custom home directory location)

[Unit]
Description=Jackal Validator
After=network.target

[Service]
Group=jackal
User=jackal
WorkingDirectory=/home/jackal
ExecStart=/home/jackal/go/bin/canined start
Restart=on-failure
RestartSec=3
LimitNOFILE=8192

[Install]
WantedBy=multi-user.target

Update systemd and enable the service file.

sudo systemctl daemon-reload
sudo systemctl enable canined.service

Building from Source

Replace <VERSION> with the current running version.

git clone https://github.com/JackalLabs/canine-chain.git
cd canine-chain
git fetch -a
git checkout <VERSION>

make install

From there you will be able to use canined, ex:

canined version
- + \ No newline at end of file diff --git a/docs/nodes/nodes/mainnet.html b/docs/nodes/nodes/mainnet.html index fa360ea..f6161c4 100644 --- a/docs/nodes/nodes/mainnet.html +++ b/docs/nodes/nodes/mainnet.html @@ -5,19 +5,19 @@ Joining Mainnet | Jackal Chain Docs - +
-

Joining Mainnet

tip

Perform the following as the jackal user.

After installing canined. You can join the mainnet by following these steps:

canined init "NODE_NAME" --chain-id=jackal-1

Then we want to replace our generated genesis file with the one used to start the network.

wget -O ~/.canine/config/genesis.json https://cdn.discordapp.com/attachments/1002389406650466405/1034968352591986859/updated_genesis2.json

SEEDS=$(wget https://raw.githubusercontent.com/JackalLabs/canine-mainnet-genesis/master/genesis/seeds.txt -q -O -)
PEERS=`curl -sL https://raw.githubusercontent.com/JackalLabs/canine-mainnet-genesis/master/genesis/peers.txt | sort -R | head -n $PEERCOUNT | awk '{print $1}' | paste -s -d, -`
GAS="0.002ujkl"

sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.canine/config/config.toml

Backing up key files

The created node_key.json and priv_validator_key.json cannot be recovered. These files must be backed up.

mkdir ~/key_backup
cp ~/.canine/config/node_key.json ~/key_backup
cp ~/.canine/config/priv_validator_key.json ~/key_backup

You should also keep an offline backup. Using a program like WinSCP, you can easily copy these files to your personal +

Joining Mainnet

tip

Perform the following as the jackal user.

After installing canined. You can join the mainnet by following these steps:

canined init "NODE_NAME" --chain-id=jackal-1

Then we want to replace our generated genesis file with the one used to start the network.

wget -O ~/.canine/config/genesis.json https://cdn.discordapp.com/attachments/1002389406650466405/1034968352591986859/updated_genesis2.json

SEEDS=$(wget https://raw.githubusercontent.com/JackalLabs/canine-mainnet-genesis/master/genesis/seeds.txt -q -O -)
PEERS=`curl -sL https://raw.githubusercontent.com/JackalLabs/canine-mainnet-genesis/master/genesis/peers.txt | sort -R | head -n $PEERCOUNT | awk '{print $1}' | paste -s -d, -`
GAS="0.002ujkl"

sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.canine/config/config.toml

Backing up key files

The created node_key.json and priv_validator_key.json cannot be recovered. These files must be backed up.

mkdir ~/key_backup
cp ~/.canine/config/node_key.json ~/key_backup
cp ~/.canine/config/priv_validator_key.json ~/key_backup

You should also keep an offline backup. Using a program like WinSCP, you can easily copy these files to your personal desktop for safe storage/backup.

Syncing to Current Height

Snapshot method

Get a snapshot here.

For the sake of this guide, the snapshot we download is named jackal.tar.lz4

If you plan on becoming a validator, before using the unsafe-reset-all flag, always besure to back up your priv_validator_state.json file.

canined unsafe-reset-all --keep-addr-book
lz4 -c -d jackal.tar.lz4 | tar -x -C $HOME/.canine

Then start the chain again.

State Sync Method

There are a couple of ways to go about doing state sync. First is the easier route. Visit Ping.pub for Jackals State Sync configuration settings.

Next, copy these settings from Ping.pub to your config.toml in the [statesync] section.

It should look similar to this:

#######################################################
### State Sync Configuration Options ###
#######################################################
[statesync]
# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine
# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in
# the network to take and serve state machine snapshots. State sync is not attempted if the node
# has any local state (LastBlockHeight > 0). The node will have a truncated block history,
# starting from the height of the snapshot.
enable = true

# RPC servers (comma-separated) for light client verification of the synced state machine and
# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding
# header hash obtained from a trusted source, and a period during which validators can be trusted.
#
# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2
# weeks) during which they can be financially punished (slashed) for misbehavior.
rpc_servers = "https://rpc.jackalprotocol.com:443,https://rpc.jackalprotocol.com:443"
trust_height = 333000
trust_hash = "1685850c2d115a86af9059bd3f36a4fbbb0e8ba7f37863d517b6d2f54116daca"
trust_period = "168h" # 2/3 of unbonding time

# Time to spend discovering snapshots before initiating a restore.
discovery_time = "15s"

# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp).
# Will create a new, randomly named directory within, and remove it when done.
temp_dir = ""

# The timeout duration before re-requesting a chunk, possibly from a different
# peer (default: 1 minute).
chunk_request_timeout = "10s"

# The number of concurrent chunk fetchers to run (default: 1).
chunk_fetchers = "42"

State syncing can take up to a few minutes to complete. Watch the logs to ensure it's happening. When a snapshot is found, you will see output in your log that is similar to this:

1PM INF Discovered new snapshot format=1 hash="S.�h�F���\"\x1d6+\x1e���ޅ��`v@�ц�����" height=1810000 module=statesync

It will download, verify, and apply chuncks of blockchain data. When it finishes you will see it catching up to blocks

State Sync Method 2

The follow commandline code will edit your config.toml with the proper information for state syncing to the most recent snapshot 3000 blocks and beyond.

STATE_SYNC_RPC=https://rpc.jackalprotocol.com:443
LATEST_HEIGHT=$(curl -s $STATE_SYNC_RPC/block | jq -r .result.block.header.height)
SYNC_BLOCK_HEIGHT=$(($LATEST_HEIGHT - 3000))
SYNC_BLOCK_HASH=$(curl -s "$STATE_SYNC_RPC/block?height=$SYNC_BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i.bak -e "s|^enable *=.*|enable = true|" $HOME/.teritorid/config/config.toml
sed -i.bak -e "s|^rpc_servers *=.*|rpc_servers = \"$STATE_SYNC_RPC,$STATE_SYNC_RPC\"|" \
$HOME/.teritorid/config/config.toml
sed -i.bak -e "s|^trust_height *=.*|trust_height = $SYNC_BLOCK_HEIGHT|" \
$HOME/.teritorid/config/config.toml
sed -i.bak -e "s|^trust_hash *=.*|trust_hash = \"$SYNC_BLOCK_HASH\"|" \
$HOME/.teritorid/config/config.toml

When you state sync, you can start with the latest version of canined.

Versions for Sync

block heightcanined version
453811.1.2
01.1.0

Starting the daemon

Start the daemon and sync to the current height.

sudo systemctl start jackal
sudo journalctl -u jackal -f

Watch the logs and ensure you are either state syncing correctly, or are syncing up to the current height.

- + \ No newline at end of file diff --git a/docs/nodes/nodes/testnet.html b/docs/nodes/nodes/testnet.html index f289a2f..04afbf4 100644 --- a/docs/nodes/nodes/testnet.html +++ b/docs/nodes/nodes/testnet.html @@ -5,15 +5,15 @@ Joining Testnet | Jackal Chain Docs - +
-

Joining Testnet

After installing canined. You can join the testnet by following these steps:

canined init <alias> --chain-id=<chain-id>
note

chain-id for testnet is currently lupulella-2.

Then we want to replace our generated genesis file with the one used to start the network. We also need to set our peers +

Joining Testnet

After installing canined. You can join the testnet by following these steps:

canined init <alias> --chain-id=<chain-id>
note

chain-id for testnet is currently lupulella-2.

Then we want to replace our generated genesis file with the one used to start the network. We also need to set our peers and seeds.

For an updated list of peers & seeds, please check this page.

wget -O ~/.canine/config/genesis.json https://raw.githubusercontent.com/JackalLabs/jackal-chain-assets/main/testnet/genesis.json

export SEEDS="84f520678ef59ea02f942fa6323ec562ca5a3249@45.79.161.178:26656,cecc087977336da1e9ccd2c50097cd9e7d5e1874@141.95.33.39:26656"
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.canine/config/config.toml

As a validator, you'll need to set a minimum gas price like so:

GAS="0.002ujkl"
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"$GAS\"/" $HOME/.canine/config/app.toml
- + \ No newline at end of file diff --git a/docs/nodes/providers/building.html b/docs/nodes/providers/building.html index 0502584..987db94 100644 --- a/docs/nodes/providers/building.html +++ b/docs/nodes/providers/building.html @@ -5,12 +5,12 @@ Creating Provider | Jackal Chain Docs - +
-

Creating Provider

Disclaimer

This guide assumes you either have access to a full node over a network connection or are using the same machine as the +

Creating Provider

Disclaimer

This guide assumes you either have access to a full node over a network connection or are using the same machine as the full node.

Networking

To allow your provider to be used by the Jackal Protocol Dashboard, please ensure you have a reverse proxy system setup and have a registered domain name pointing to your provider. We recommend using Nginx.

If you have UPNP enabled on your router, your provider will be open to the internet by default at port 3333. You can @@ -19,7 +19,7 @@ you only merge drives with striping and instead we recommend mirroring. However different for each configuration. In our case, this machine is only running with 24TB across 2 drives. We are less concerned about a drive failing as that would wipe half our storage anyways.

List all drives with :

sudo fdisk -l

You should end up seeing something like this

...

Disk /dev/sda: 12.75 TiB, 14000519643136 bytes, 27344764928 sectors
Disk model: ST14000NM001G-2K
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 4DE192A1-7AFF-F64D-93D5-CA48B806DAA0

Disk /dev/sdb: 12.75 TiB, 14000519643136 bytes, 27344764928 sectors
Disk model: ST14000NM001G-2K
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D2827F71-7F0A-EE4A-BB12-1B2172641DBE

...

Note down the Disk paths that you wish to use for your storage provider, in this case it is /dev/sdb and /dev/sda.

We install ZFS and create a new pool as follows:

sudo apt install zfsutils-linux

sudo zpool create {pool-name} /dev/sda /dev/sdb ...

sudo zpool status

This folder will now have the drives mounted at /{pool-name}. For more in-depth guides to using zfs, check out this page.

- + \ No newline at end of file diff --git a/docs/nodes/providers/hardware/diy-serious copy.html b/docs/nodes/providers/hardware/diy-serious copy.html index 296db54..d91f879 100644 --- a/docs/nodes/providers/hardware/diy-serious copy.html +++ b/docs/nodes/providers/hardware/diy-serious copy.html @@ -5,14 +5,14 @@ DIY Build | Jackal Chain Docs - +
-

DIY Build

For DIY individuals looking to power web3 infrastructure and increase your ROI- here is the recommended system for +

DIY Build

For DIY individuals looking to power web3 infrastructure and increase your ROI- here is the recommended system for serious individual storage providers.

ComponentRecommendationUnits
CPUAMD Ryzen 7 5700G 3.8 GHz 8-Core Processor1
MotherboardMSI B450 TOMAHAWK MAX II ATX AM4 Motherboard1
Memory128 GB (2 x 64 GB) Memory1
StorageKingston A400 960 GB 2.5" Solid State Drive1
StorageSeagate EXOS Enterprise 14 TB 3.5" 7200RPM Internal Hard Drive5
CaseCooler Master N400 ATX Mid Tower Case1
Power SupplyCorsair HX750 Platinum 750 W 80+ Platinum Certified Fully Modular ATX Power Supply1
Case FanNoctua S12B redux-700 33.49 CFM 120 mm Fan2
Total Cost Estimate$2014.08 USD
- + \ No newline at end of file diff --git a/docs/nodes/providers/hardware/enterprise.html b/docs/nodes/providers/hardware/enterprise.html index 7d47926..e852493 100644 --- a/docs/nodes/providers/hardware/enterprise.html +++ b/docs/nodes/providers/hardware/enterprise.html @@ -5,14 +5,14 @@ Enterprise Build | Jackal Chain Docs - +
-

Enterprise Build

For teams looking to build a large storage system of ~2.1 Petabytes of storage, the estimated base price of the box with +

Enterprise Build

For teams looking to build a large storage system of ~2.1 Petabytes of storage, the estimated base price of the box with drives is ~$70,000 USD. This does not account for variable expenses including the regional costs of:

  • Power
  • Internet
  • HVAC
  • Professionals

Those looking to build an enterprise storage provider, reach out to the team for recommendations and support.

- + \ No newline at end of file diff --git a/docs/nodes/providers/setting_up.html b/docs/nodes/providers/setting_up.html index b6f24ef..2e7acc6 100644 --- a/docs/nodes/providers/setting_up.html +++ b/docs/nodes/providers/setting_up.html @@ -5,12 +5,12 @@ Setting Up JProvd | Jackal Chain Docs - +
-

Setting Up JProvd

Pre-Requisites

See Set-up.

Installing

tip

Check latest version here.

note

'Setting Up' instructions must be followed fully to add necessary golang path info to the current users ~/.profile. If +

Setting Up JProvd

Pre-Requisites

See Set-up.

Installing

tip

Check latest version here.

note

'Setting Up' instructions must be followed fully to add necessary golang path info to the current users ~/.profile. If these steps are skipped, 'make install' will not build jprovd--the provider daemon. Please ensure to perform the below steps as the 'jackal' user you previously made.

Install make and confirm installation.

sudo apt update

sudo apt install make

make --version

Build jprovd and source the .profile to ensure your shell can find jprovd. Confirm installation.

git clone https://github.com/JackalLabs/canine-provider.git

cd canine-provider

git pull

git checkout {version}

make install

source ~/.profile

jprovd version

If you used ZFS to make a zpool. Give ownership of the zpool to the jackal user.


sudo chown -R jackal:jackal /{pool-name}

Initializing

tip

Your keybase identity can be left as "" if you don't want to link your provider to keybase.

  1. Export the path to your storage pool
export PHOME={path-to-pool-from-before}
  1. Generate your provider's private key
jprovd client gen-key --home=$PHOME
  1. Configure the chain-id
jprovd client config chain-id {chain-id} --home=$PHOME
  1. Configure the rpc node your provider will use to connect to the chain
jprovd client config node {your node} --home=$PHOME

Some users may find it easier to complete steps 3 and 4 manually. Instructions for Ubuntu are below:

In your terminal, while inside of the PHOME directory, type 'nautilus'. This will open the nautilus file explorer. At the top right corner, make sure 'Show Hidden Files' is checked. @@ -23,7 +23,7 @@ Jackal Storage.

Before completing step 5 below, your account will need tok Testnet tokens can be obtained at https://testnet-faucet.jackalprotocol.com/ Mainnet tokens can be purchased on https://frontier.osmosis.zone/

  1. Initialize the provider
jprovd init {FQDN} {STORAGE_IN_BYTES} {KEYBASE_IDENTITY} --home=$PHOME

example:

jprovd init "https://storagep1.chainstrategies.cloud" "9000" "" --home=$PHOME

Please note that 'https://' is required to be included in the FQDN or init will throw an error. Link for TB to Bytes converter: https://www.convertunits.com/from/TB/to/byte

  1. Start the provider
jprovd start --home=$PHOME
- + \ No newline at end of file diff --git a/docs/nodes/validators/joining.html b/docs/nodes/validators/joining.html index cf57111..97c86d4 100644 --- a/docs/nodes/validators/joining.html +++ b/docs/nodes/validators/joining.html @@ -5,19 +5,19 @@ Creating Validator | Jackal Chain Docs - +
-

Creating Validator

tip

This guide assumes you are using the same machine as the full node.

Perform the following steps as your jackal user.

Creating A Wallet

We need to create a wallet and set the keyring password.

canined keys add WALLET_NAME --keyring-backend os

This wallet is used to claim rewards, commission and to vote as your validator.

You will see a similar output once created.

- name: WALLET_NAME
type: local
address: jkl1hjhglrzggqtdhsh3ag8jp0cckmva5pe976jxel
pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Rnrlv1TNrt1cz3+pSq2UDNiJQZINNlgtkNousVlkugZ7"}'
mnemonic: ""


**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.

some words forming mnemonic seed will be placed here you have to write them down and keep them safe

Besure to back up the seed phrase of your validator wallet. It's also recommened to keep an offline copy along with your +

Creating Validator

tip

This guide assumes you are using the same machine as the full node.

Perform the following steps as your jackal user.

Creating A Wallet

We need to create a wallet and set the keyring password.

canined keys add WALLET_NAME --keyring-backend os

This wallet is used to claim rewards, commission and to vote as your validator.

You will see a similar output once created.

- name: WALLET_NAME
type: local
address: jkl1hjhglrzggqtdhsh3ag8jp0cckmva5pe976jxel
pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Rnrlv1TNrt1cz3+pSq2UDNiJQZINNlgtkNousVlkugZ7"}'
mnemonic: ""


**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.

some words forming mnemonic seed will be placed here you have to write them down and keep them safe

Besure to back up the seed phrase of your validator wallet. It's also recommened to keep an offline copy along with your key files. Remember, your key files cannot be restored and must be backed up. See the installation page for instructions.

You should also backup your keyring files.

Change WALLET_NAME to the name of your wallet.

mkdir ~/keyring_backup
cp ~/.canine/WALLET_NAME.info ~/keyring_backup
cp ~/.canine/keyhash ~/keyring_backup

Setting Up

Configure Gas Prices

As a validator, you'll need to set a minimum gas price like so:

GAS="0.02ujkl"
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"$GAS\"/" $HOME/.canine/config/app.toml

Create Your Validator

Before continuing, please note that commission-max-change and commission-max-rate cannot be changed once you set them. Your commission-rate may be changed once per day.

There are a few things you will need to alter in this command. amount needs to be changed to what you are starting your self bond as. from needs to be the name of your wallet you created earlier. The moniker, details, identity, website, and security-contact should all be filled with the appropiate information.

canined tx staking create-validator \
--amount 1000000ujkl \
--commission-max-change-rate 0.10 \
--commission-max-rate 0.2 \
--commission-rate 0.1 \
--from WALLET_NAME \
--min-self-delegation 1 \
--moniker "YOUR_MONIKER" \
--details="YOUR DETAILS" \
--identity "PGP IDENTITY" \
--website="https://example.com" \
--security-contact="your-email@email.com" \
--pubkey $(canined tendermint show-validator) \
--chain-id jackal-1 \
--gas-prices 0.02ujkl
- + \ No newline at end of file diff --git a/docs/official-links/jackal-foundation.html b/docs/official-links/jackal-foundation.html index 825baa4..1c268b4 100644 --- a/docs/official-links/jackal-foundation.html +++ b/docs/official-links/jackal-foundation.html @@ -5,14 +5,14 @@ Jackal Foundation Links | Jackal Chain Docs - +
-

Jackal Foundation Links

Here are the official website links for Jackal Foundation. Please use and bookmark these links to reduce the likelihood +

Jackal Foundation Links

Here are the official website links for Jackal Foundation. Please use and bookmark these links to reduce the likelihood of cyber phishing threats.

Jackal Foundation

Jackal Foundation Twitter

Website: Coming Soon

- + \ No newline at end of file diff --git a/docs/official-links/jackal-labs.html b/docs/official-links/jackal-labs.html index 86b14dc..ea5ed4c 100644 --- a/docs/official-links/jackal-labs.html +++ b/docs/official-links/jackal-labs.html @@ -5,14 +5,14 @@ Jackal Labs Links | Jackal Chain Docs - +
-

Jackal Labs Links

Here are the official website links for Jackal Labs. Please use and bookmark these links to reduce the likelihood of +

Jackal Labs Links

Here are the official website links for Jackal Labs. Please use and bookmark these links to reduce the likelihood of cyber phishing threats.

Jackal Labs

Jackal Labs Twitter

Website

- + \ No newline at end of file diff --git a/docs/official-links/jackal-protocol.html b/docs/official-links/jackal-protocol.html index 2d81bd4..5d362c2 100644 --- a/docs/official-links/jackal-protocol.html +++ b/docs/official-links/jackal-protocol.html @@ -5,14 +5,14 @@ Jackal Protocol Links | Jackal Chain Docs - +
-

Jackal Protocol Links

Here are the official website links of the Jackal Protocol. Please use and bookmark these links to reduce the likelihood +

- + \ No newline at end of file diff --git a/docs/overview/jackal-tldr.html b/docs/overview/jackal-tldr.html index 923690e..1f6d123 100644 --- a/docs/overview/jackal-tldr.html +++ b/docs/overview/jackal-tldr.html @@ -5,12 +5,12 @@ Discover the Jackal Protocol | Jackal Chain Docs - +
-

Discover the Jackal Protocol

The Jackal Protocol provides a decentralized infrastructure for secure and scalable data storage, enabling individuals, +

Discover the Jackal Protocol

The Jackal Protocol provides a decentralized infrastructure for secure and scalable data storage, enabling individuals, developers, and enterprises to protect their data privacy and improve their cybersecurity posture. It offers a platform for building decentralized applications, managing access control and ownership, transferring encrypted data, and maintaining self-custodial control over data, all without relying on centralized storage providers or intermediaries.

Jackal Protocol stands apart, utilizing both validators and storage providers, enabling developers to create @@ -27,7 +27,7 @@ infrastructure, and opportunities.

Maintained by the dedicated Jackal Foundation teams, the Jackal Wiki is constantly updated to ensure accuracy. Should you discover anything out-of-date, don't hesitate to reach out, as we strive to keep our documentation impeccable for the community.

- + \ No newline at end of file diff --git a/docs/overview/jkl.html b/docs/overview/jkl.html index e75165d..f8639c9 100644 --- a/docs/overview/jkl.html +++ b/docs/overview/jkl.html @@ -5,12 +5,12 @@ What Is The JKL Token? | Jackal Chain Docs - +
-

What Is The JKL Token?

The JKL Token is the driving force behind the revolutionary Jackal Protocol. This versatile native token seamlessly +

What Is The JKL Token?

The JKL Token is the driving force behind the revolutionary Jackal Protocol. This versatile native token seamlessly integrates with the ecosystem, unlocking endless possibilities for users, developers, and enterprises alike.

What Does The JKL Token Do?

Fueling dApps

JKL Token plays a pivotal role in applications built on the Jackal Protocol, such as Jackal Storage and the RNS Marketplace. By harnessing the power of JKL, these applications can unlock new potentials and further enhance their utility.

Network Security

At its core, the Jackal Protocol is a Proof-of-Stake (PoS) Cosmos L1 blockchain, relying on JKL delegation to validators @@ -20,7 +20,7 @@ heard by voting on text, software, spending, and other critical governance propo unlocking new possibilities for users and developers.

Liquidity

Put your JKL tokens to work by allocating them into a liquidity pool and earn JKL rewards in return. Contribute to the ecosystem while reaping the benefits of your investment.

Data Storage

The JKL token serves as the primary medium of exchange for accessing data storage within the Jackal Protocol, ensuring a smooth and efficient market for users and storage providers alike.

- + \ No newline at end of file diff --git a/docs/overview/why-jackal.html b/docs/overview/why-jackal.html index d38fb18..522168b 100644 --- a/docs/overview/why-jackal.html +++ b/docs/overview/why-jackal.html @@ -5,12 +5,12 @@ Why Choose Jackal Protocol | Jackal Chain Docs - +
-

Why Choose Jackal Protocol

The Jackal Protocol offers various advantages for individuals, small businesses, and large enterprises seeking secure, +

Why Choose Jackal Protocol

The Jackal Protocol offers various advantages for individuals, small businesses, and large enterprises seeking secure, decentralized data storage and management solutions.

Individuals

Individuals choose the Jackal Protocol for several reasons:

Enhanced data privacy and security

The decentralized nature of the Jackal Protocol ensures that your data is stored across multiple nodes, reducing the risk of data breaches and unauthorized access.

Self-custodial storage

The Jackal Protocol allows individuals to retain full control over their data, ensuring that no third party, not even the Jackal team, can access or view it without the user's consent.

On-chain permissions

The transparent and secure permissions system enables users to manage access to their data, granting, revoking, or @@ -22,7 +22,7 @@ information remains protected and accessible only to authorized personnel.

Customizable solutions

The Jackal Protocol enables developers to build and deploy a wide range of decentralized applications (dApps) that can interact with user data, opening up new possibilities for services and products that prioritize user privacy and control.

- + \ No newline at end of file diff --git a/docs/protocol/encryption.html b/docs/protocol/encryption.html index 03c6a4f..c7f3e73 100644 --- a/docs/protocol/encryption.html +++ b/docs/protocol/encryption.html @@ -5,12 +5,12 @@ Encryption in Jackal Protocol | Jackal Chain Docs - +
-

Encryption in Jackal Protocol

The Jackal Protocol utilizes encryption techniques to ensure the privacy and security of user data. The two primary +

Encryption in Jackal Protocol

The Jackal Protocol utilizes encryption techniques to ensure the privacy and security of user data. The two primary encryption models within the protocol are file encryption and file-entry encryption. File encryption secures the files themselves, while file-entry encryption focuses on securing the file entries on the blockchain.

File Encryption

File encryption is essential for protecting the data stored on storage providers within the Jackal Protocol. Before transferring files to storage providers, the user's client encrypts the files using a randomly generated symmetric key. @@ -23,7 +23,7 @@ retrieved, it can be used to decrypt the file stored on the storage provider, re external user's public key from the chain, and encrypts the symmetric key with the external user's public key. By appending the newly encrypted symmetric key to the file entry, the external user gains access to the file.

By leveraging encryption techniques for both files and file entries, the Jackal Protocol ensures the privacy, security, and integrity of user data throughout the storage and sharing processes.

- + \ No newline at end of file diff --git a/docs/protocol/modules/filetree.html b/docs/protocol/modules/filetree.html index 7e11e25..81e5e68 100644 --- a/docs/protocol/modules/filetree.html +++ b/docs/protocol/modules/filetree.html @@ -5,12 +5,12 @@ Filetree Module | Jackal Chain Docs - +
-

Filetree Module

Overview

The Jackal Filetree module is responsible for organizing and managing user files in a secure and user-friendly way. When +

Filetree Module

Overview

The Jackal Filetree module is responsible for organizing and managing user files in a secure and user-friendly way. When a user uploads a file using the Storage module, the file is only accessible from the File ID (FID), which can be challenging to remember for every file uploaded to Jackal. Additionally, every single upload would be required to be public, or the user would need to keep track of every symmetric key used to encrypt the files and manually map them to @@ -36,7 +36,7 @@ corresponding public key. The protocol can then store that map in the file entry layer. The addresses in this viewing list are only able to access files and decrypt the data in their client; they have no privileges over the modification of the file entry in any way. This approach ensures that the File Tree module maintains a strong security and privacy posture for user data.

- + \ No newline at end of file diff --git a/docs/protocol/modules/jklmint.html b/docs/protocol/modules/jklmint.html index 151432a..ba54564 100644 --- a/docs/protocol/modules/jklmint.html +++ b/docs/protocol/modules/jklmint.html @@ -5,14 +5,14 @@ JKLmint Module | Jackal Chain Docs - +
-

JKLmint Module

The jklmint module is responsible for the management of the native JKL token within the Jackal Protocol. This module +

JKLmint Module

The jklmint module is responsible for the management of the native JKL token within the Jackal Protocol. This module handles the issuance, distribution, and inflation of JKL tokens, ensuring a stable and secure token economy.

Overview

The jklmint module manages the following aspects of the JKL token:

  1. Token Issuance: Determines the initial token supply and distribution.
  2. Inflation: Manages the annual inflation rate, maintaining a consistent token supply growth.
  3. Rewards Distribution: Handles the allocation of newly minted tokens as rewards for validators and delegators.

Parameters

The jklmint module uses the following parameters to manage the JKL token economy:

  • inflation_rate: The annual percentage rate at which the token supply will grow.
  • inflation_min: The minimum annual inflation rate allowed.
  • inflation_max: The maximum annual inflation rate allowed.
  • goal_bonded: The desired percentage of the total token supply that should be staked by validators and delegators.
  • blocks_per_year: The estimated number of blocks produced in a year.
- + \ No newline at end of file diff --git a/docs/protocol/modules/module-overview.html b/docs/protocol/modules/module-overview.html index 4c18240..5343c7a 100644 --- a/docs/protocol/modules/module-overview.html +++ b/docs/protocol/modules/module-overview.html @@ -5,13 +5,13 @@ Module Overview | Jackal Chain Docs - + - +
+ \ No newline at end of file diff --git a/docs/protocol/modules/rns.html b/docs/protocol/modules/rns.html index e9f879f..85451b1 100644 --- a/docs/protocol/modules/rns.html +++ b/docs/protocol/modules/rns.html @@ -5,17 +5,17 @@ Name Service Module | Jackal Chain Docs - +
-

Name Service Module

The rns (Reverse Name Service) module is an essential component of the Jackal Protocol, providing a user-friendly +

Name Service Module

The rns (Reverse Name Service) module is an essential component of the Jackal Protocol, providing a user-friendly naming system for blockchain addresses. The RNS module simplifies the process of interacting with complex addresses by mapping them to human-readable names. This module allows users to transfer tokens and permissions to files/folders stored on the Jackal Protocol using human readable names.

Overview

The rns module manages the following aspects of the Reverse Name Service:

  1. Name Registration: Allows users to register unique names for their blockchain addresses.
  2. Name Management: Facilitates updating, renewing, and transferring RNS names.
  3. Name Resolution: Provides a mechanism for resolving RNS names to their corresponding addresses.
  4. Name Sales: Enables users to buy and sell RNS names through the RNS Marketplace.
  5. Name Transfers: Enables users to transfer RNS names.

For a more detailed guide on integrating the rns module into your application, please refer to the module documentation on GitHub.

- + \ No newline at end of file diff --git a/docs/protocol/modules/storage.html b/docs/protocol/modules/storage.html index 2410cbb..a15bea2 100644 --- a/docs/protocol/modules/storage.html +++ b/docs/protocol/modules/storage.html @@ -5,12 +5,12 @@ Storage Module | Jackal Chain Docs - +
-

Storage Module

The Jackal Protocol incorporates two crucial algorithms for decentralized storage: Jackal Proof-of-Persistence (JPOP) +

Storage Module

The Jackal Protocol incorporates two crucial algorithms for decentralized storage: Jackal Proof-of-Persistence (JPOP) and Internal Detection Of Loss (IDOL) protocols. This document provides an overview of these algorithms, their functionalities, and their interaction with users and Storage Providers.

Jackal Proof-of-Persistence (JPOP)

JPOP is a Proof-of-Storage algorithm that governs the relationship between the storage provider and the user. It operates through a series of contracts containing the Merkle Tree root hash of the file and information required to @@ -32,7 +32,7 @@ Provider's hard storage, and the challenge windows start being created for storage management. These protocols, along with the provided client query commands and transactions, enable users and Storage Providers to interact with the Jackal storage ecosystem seamlessly.

Please refer to the respective command documentation for detailed usage and parameters. The Jackal Protocol continues to evolve, and as new features are added, updates to this documentation will be provided accordingly.

- + \ No newline at end of file diff --git a/docs/protocol/modules/wasm.html b/docs/protocol/modules/wasm.html index 50f026d..e4c180b 100644 --- a/docs/protocol/modules/wasm.html +++ b/docs/protocol/modules/wasm.html @@ -5,17 +5,17 @@ WASM Module | Jackal Chain Docs - +
-

WASM Module

The wasm module in the Jackal Protocol incorporates the CosmWasm smart contracting platform, which is designed +

WASM Module

The wasm module in the Jackal Protocol incorporates the CosmWasm smart contracting platform, which is designed specifically for the Cosmos Ecosystem. This module provides a secure and efficient environment for executing WebAssembly (WASM) smart contracts on the Jackal Protocol.

Overview

The wasm module manages the following aspects of the CosmWasm platform:

  1. Smart Contract Deployment: Allows developers to deploy smart contracts written in Rust or other languages that compile to WASM.
  2. Smart Contract Execution: Facilitates the execution of smart contract functions on the blockchain.
  3. Smart Contract Interaction: Enables users and other smart contracts to interact with deployed smart contracts.

For a more detailed guide on integrating the wasm module into your application, please refer to the Jackal Protocol GitHub.

- + \ No newline at end of file diff --git a/docs/protocol/p-o-p.html b/docs/protocol/p-o-p.html index 87043f4..116e7ef 100644 --- a/docs/protocol/p-o-p.html +++ b/docs/protocol/p-o-p.html @@ -5,12 +5,12 @@ Jackal Proof-of-Persistence Documentation | Jackal Chain Docs - +
-

Jackal Proof-of-Persistence Documentation

Overview

Jackal Storage is powered by a Proof-of-Storage algorithm called Proof-of-Persistence (JPOP). JPOP is designed to ensure +

Jackal Proof-of-Persistence Documentation

Overview

Jackal Storage is powered by a Proof-of-Storage algorithm called Proof-of-Persistence (JPOP). JPOP is designed to ensure the secure and persistent storage of user data through a series of contracts formed between the storage provider and the user. These contracts contain the Merkle Tree root hash of the file and the information required to prove ownership of the file. In this documentation, we'll explain the core components and processes involved in the Jackal @@ -26,7 +26,7 @@ following diagram, we can see that only the blue nodes are required to build a s represent information that we can generate given the blue nodes. Finally, we can compare the root generated from the proof to the root saved on the chain and determine if the chunk does belong to the contract we are proving. This results in small message sizes due to not needing to send the entire file every proof.

Merkle Roots Graphed

- + \ No newline at end of file diff --git a/docs/protocol/tokens.html b/docs/protocol/tokens.html index 611a435..b0390ee 100644 --- a/docs/protocol/tokens.html +++ b/docs/protocol/tokens.html @@ -5,12 +5,12 @@ JKL Token | Jackal Chain Docs - +
-

JKL Token

Overview

The JKL token is an inflationary token that powers the Jackal Protocol. It has numerous use cases within the ecosystem, +

JKL Token

Overview

The JKL token is an inflationary token that powers the Jackal Protocol. It has numerous use cases within the ecosystem, ensuring its utility and importance. In this documentation, we will outline the main use cases of the JKL token and explain its role in the Jackal Protocol ecosystem.

Use Cases

dApps

Applications built leveraging the Jackal Protocol, such as Jackal Storage and the RNS Marketplace, may choose to include the JKL token to expand its utility.

Securing the Network

As the Jackal Protocol is a Proof-of-Stake (PoS) Cosmos L1 blockchain, JKL can be delegated to validators to secure the @@ -21,7 +21,7 @@ within the Jackal Protocol. By utilizing JKL tokens as a medium of exchange, use and censorship-resistant storage infrastructure.

Storage Providers

Storage providers are incentivized to offer storage space and maintain a high level of service by earning JKL tokens. By receiving JKL tokens as payment for their services, storage providers can cover the costs of infrastructure, hardware, and bandwidth while potentially profiting from their participation in the ecosystem.

- + \ No newline at end of file diff --git a/docs/protocol/validators.html b/docs/protocol/validators.html index 17ce077..af20e4d 100644 --- a/docs/protocol/validators.html +++ b/docs/protocol/validators.html @@ -5,17 +5,17 @@ Validators | Jackal Chain Docs - +
-

Validators

The Jackal Validators are secure web servers, dedicated machines that participate in the consensus protocol by +

Validators

The Jackal Validators are secure web servers, dedicated machines that participate in the consensus protocol by broadcasting cryptographic signatures, or votes, to agree upon the next block. Voting power is determined by the amount of staking tokens delegated by non-validators and bonded as collateral to earn a reward. These non-validators, or delegators, incur the risk of getting punished (slashed) if the delegate validator gets hacked or violates the protocol.

To set up a validator and become a contributing part of the network, read the installation instructions here

- + \ No newline at end of file diff --git a/docs/using-jackal/dashboard.html b/docs/using-jackal/dashboard.html index 00ec9ad..74b27fa 100644 --- a/docs/using-jackal/dashboard.html +++ b/docs/using-jackal/dashboard.html @@ -5,15 +5,15 @@ Jackal Dashboard Guide | Jackal Chain Docs - +
-

Jackal Dashboard Guide

The Jackal Dashboard is your one-stop destination for interacting with the Jackal Protocol and Cosmos ecosystem. This +

Jackal Dashboard Guide

The Jackal Dashboard is your one-stop destination for interacting with the Jackal Protocol and Cosmos ecosystem. This guide will walk you through the various features and capabilities available on the Jackal Dashboard.

1. File Management

The Jackal Dashboard allows users to upload, download, delete, and share files securely and privately.

Uploading Files

  1. Navigate to the "Storage" tab on navigation bar of the Jackal Dashboard.
  2. Click "Browse Files" and select the file(s) you want to upload. Users can also drag and drop files into the dashboard directly.
  3. Click "Encrypt & Upload" on the right side of the screen.
  4. Sign the transaction prompt for your Keplr wallet.

Downloading Files

  1. In the "Storage" tab, locate the file you want to download.
  2. Click the "..." button relative to the file you wish to download.
  3. Click "Download".
  4. The file will be downloaded to your local device.

Sharing Files (Coming Soon)

2. Buy Tokens

  1. Navigate to the "Buy Tokens" tab on the Jackal Dashboard.
  2. You will be re-directed to the Osmosis Decentralized Exchange in another tab.

3. Name Service

The Jackal Dashboard enables users to register and manage RNS names.

Registering RNS Names

  1. Navigate to the "Name Service" tab on the Jackal Dashboard.
  2. Click "Register"
  3. Enter your desired name and how many years you wish to keep it for.
  4. Confirm the transaction in your connected wallet.

Managing RNS Names

  1. In the "Name Service" tab, view your owned RNS addresses.
  2. Click on a "..." next to the name you wish to manage.

4. Name Service Marketplace

The RNS Marketplace allows users to buy and sell RNS names.

  1. Navigate to the "RNS Marketplace" tab on the Jackal Dashboard.
  2. Browse available RNS names or search for a specific name.
  3. Click "Buy" to purchase an RNS name or "Sell" to list one of your RNS names for sale.

5. Hosting Static Websites (Coming Soon)

6. Governance Participation

The Jackal Dashboard provides an interface to participate in on-chain governance.

  1. Navigate to the "Governance" tab on the Jackal Dashboard.
  2. View active proposals and click on a proposal to review its details.
  3. Cast your vote by clicking "Vote" and selecting your preferred option and signing the transaction.

7. Delegating Tokens to Validators

The Jackal Dashboard enables users to delegate tokens to validators, securing the network and earning rewards.

  1. Navigate to the "Validators" tab on the Jackal Dashboard.
  2. Browse the list of active validators and select one.
  3. Click "Delegate" and enter the amount of tokens you want to delegate.
  4. Confirm the transaction in your connected wallet.

Stay tuned for more exciting features and improvements coming to the Jackal Dashboard!

- + \ No newline at end of file diff --git a/docs/using-jackal/delegate.html b/docs/using-jackal/delegate.html index a10febb..1ba5c68 100644 --- a/docs/using-jackal/delegate.html +++ b/docs/using-jackal/delegate.html @@ -5,12 +5,12 @@ How to Delegate JKL Tokens to a Validator | Jackal Chain Docs - +
-

How to Delegate JKL Tokens to a Validator

This guide will help you delegate your JKL tokens to a validator on the Jackal Protocol, which helps secure the network +

How to Delegate JKL Tokens to a Validator

This guide will help you delegate your JKL tokens to a validator on the Jackal Protocol, which helps secure the network and earns you staking rewards.

Step 1: Set up a Keplr Wallet

  1. Install the Keplr Wallet browser extension.
  2. Create a new wallet or import an existing one.
  3. Make sure you have some JKL tokens in your wallet.

Step 2: Choose a Dashboard

  1. Jackal Dashboard
  2. Ping Pub

Step 3: Choose a Validator

  1. Review the list of active validators and their details, such as commission, uptime, and self-delegation.
  2. Choose a validator that aligns with your preferences and click on "Delegate".

Step 4: Delegate JKL Tokens

  1. Enter the amount of JKL tokens you want to delegate.
  2. Click "Delegate" and confirm the transaction in your Keplr Wallet.
  3. Once the transaction is complete, you will see your delegated JKL tokens and earned rewards in the "Staking" or " Delegations" tab on the dashboards.

Step 5: Monitor and Manage Your Delegation

  1. You can redelegate your JKL tokens to another validator or undelegate (unbond) them if you want to withdraw your tokens. Note that there is a 14-day unbonding period during which your tokens are locked and not earning rewards.

Now you have successfully delegated your JKL tokens to a validator on the Jackal Protocol, contributing to the network's @@ -20,7 +20,7 @@ Protocol’s future. These rewards come from newly generated JKL tokens and tran participate in sustainable staking practices.

To decrease risk, it’s recommended that you do research on validators and select one you trust as well as delegate to multiple validators.

Slashing by 0.01%

Occurs if the validator you delegate to is offline for too long.

Slashing by 5%

Occurs if the validator signs two different blocks at the same block height. This is often caused by bad validator operation practices or malicious intent by the validator.

- + \ No newline at end of file diff --git a/docs/using-jackal/fund.html b/docs/using-jackal/fund.html index c3f5499..afb2df1 100644 --- a/docs/using-jackal/fund.html +++ b/docs/using-jackal/fund.html @@ -5,14 +5,14 @@ Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol | Jackal Chain Docs - +
-

Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol

This guide will help you access JKL tokens on the Osmosis Decentralized Exchange (DEX) and withdraw them to the Jackal Protocol using the Inter-Blockchain Communication Protocol (IBC).

Step 1: Set up a Keplr Wallet

  1. Install the Keplr Wallet or Leap Walletbrowser extension.
  2. Create a new wallet or import an existing one.
  3. Make sure you have some OSMO tokens in your wallet for transaction fees.

Step 2: Access the Osmosis DEX

  1. Visit the Osmosis DEX website.
  2. Connect your Keplr Wallet by clicking "Connect Wallet" in the top right corner.

Step 3: Swap tokens for JKL on Osmosis

  1. Click "Swap" in the Osmosis navigation bar.
  2. Select the token you want to swap for JKL, such as OSMO or ATOM.
  3. Enter the amount you want to swap and confirm the transaction in your Keplr Wallet.
  4. Once the transaction is complete, you will see the JKL tokens in your wallet.

Step 4: Withdraw JKL tokens to Jackal Protocol via IBC

  1. Visit the Assets Page.
  2. Find the JKL asset and click "withdraw".
  3. Once you sign the transaction with your Keplr wallet, an IBC transfer has begun and your JKL tokens will be available +

    Accessing JKL Tokens on a Decentralized Exchange and Withdrawing to Jackal Protocol

    This guide will help you access JKL tokens on the Osmosis Decentralized Exchange (DEX) and withdraw them to the Jackal Protocol using the Inter-Blockchain Communication Protocol (IBC).

    Step 1: Set up a Keplr Wallet

    1. Install the Keplr Wallet or Leap Walletbrowser extension.
    2. Create a new wallet or import an existing one.
    3. Make sure you have some OSMO tokens in your wallet for transaction fees.

    Step 2: Access the Osmosis DEX

    1. Visit the Osmosis DEX website.
    2. Connect your Keplr Wallet by clicking "Connect Wallet" in the top right corner.

    Step 3: Swap tokens for JKL on Osmosis

    1. Click "Swap" in the Osmosis navigation bar.
    2. Select the token you want to swap for JKL, such as OSMO or ATOM.
    3. Enter the amount you want to swap and confirm the transaction in your Keplr Wallet.
    4. Once the transaction is complete, you will see the JKL tokens in your wallet.

    Step 4: Withdraw JKL tokens to Jackal Protocol via IBC

    1. Visit the Assets Page.
    2. Find the JKL asset and click "withdraw".
    3. Once you sign the transaction with your Keplr wallet, an IBC transfer has begun and your JKL tokens will be available on the Jackal Protocol shortly.

    Now you have successfully accessed JKL tokens on the Osmosis DEX and withdrawn them to the Jackal Protocol using IBC.

- + \ No newline at end of file diff --git a/docs/using-jackal/wallet/keplr.html b/docs/using-jackal/wallet/keplr.html index 2f59744..b2b1ed6 100644 --- a/docs/using-jackal/wallet/keplr.html +++ b/docs/using-jackal/wallet/keplr.html @@ -5,12 +5,12 @@ Keplr Wallet | Jackal Chain Docs - +
-

Keplr Wallet

The Keplr browser extension is a wallet for accessing some Jackal applications in +

Keplr Wallet

The Keplr browser extension is a wallet for accessing some Jackal applications in the Cosmos ecosystem. Keplr can be used to exchange/manage JKL and other Cosmos-based tokens, participate in governance from the Jackal Dashboard, and use Jackal Storage.

Set up Keplr

More information about setting up a Keplr wallet can be found in the official Keplr Documentation.

Open the Keplr extension on your browser. If you are setting up Keplr for the first time, you can either create a new @@ -27,7 +27,7 @@ Account, and select Import Ledger.

  • < A detailed tutorial can be found here.

  • If you have not used Keplr before, set a password for the Keplr extension, and click Confirm.

  • Connecting Keplr to the Jackal Protocol

    Once you are signed in to the Keplr extension, you can connect the wallet with the Jackal Protocol. Once on the Jackal Dashboard you will be prompted to connect your Keplr wallet.

    - + \ No newline at end of file diff --git a/index.html b/index.html index 2a4a59a..08c0af4 100644 --- a/index.html +++ b/index.html @@ -5,13 +5,13 @@ Jackal Chain Docs | Jackal Chain Docs - + - + \ No newline at end of file diff --git a/markdown-page.html b/markdown-page.html index ece1c69..34b75de 100644 --- a/markdown-page.html +++ b/markdown-page.html @@ -5,13 +5,13 @@ Markdown page example | Jackal Chain Docs - +

    Markdown page example

    You don't need React to write simple standalone pages.

    - + \ No newline at end of file