Sequence
-
+
diff --git a/assets/js/25f8f2e5.539de90a.js b/assets/js/25f8f2e5.539de90a.js
new file mode 100644
index 000000000..6afb2274c
--- /dev/null
+++ b/assets/js/25f8f2e5.539de90a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[8325],{4255:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(1527),a=t(7279),s=t(370),o=t(1804);const i={sidebar_label:"Wallet transaction history"},l="Wallet transaction history",c={id:"indexer/transaction-history",title:"Wallet transaction history",description:"Fetch the transaction history for any wallet address",source:"@site/docs/04-indexer/04-transaction-history.mdx",sourceDirName:"04-indexer",slug:"/indexer/transaction-history",permalink:"/indexer/transaction-history",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/04-transaction-history.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_label:"Wallet transaction history"},sidebar:"sidebar",previous:{title:"Tokens API",permalink:"/indexer/fetch-tokens"},next:{title:"All unique tokens in a contract",permalink:"/indexer/unique-tokens"}},d={},u=[{value:"Fetch the transaction history for any wallet address",id:"fetch-the-transaction-history-for-any-wallet-address",level:2}];function h(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"wallet-transaction-history",children:"Wallet transaction history"}),"\n",(0,r.jsx)(n.h2,{id:"fetch-the-transaction-history-for-any-wallet-address",children:"Fetch the transaction history for any wallet address"}),"\n",(0,r.jsx)(n.p,{children:"Fetches the transaction / token history for any wallet address of any ERC20, ERC721 and ERC1155 token.\nThe response includes decoded transaction details for easy consumption / rendering."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.em,{children:["Sequence Indexer ",(0,r.jsx)(n.code,{children:"GetTransactionHistory"})," Method:"]})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTransactionHistory"}),"\n",(0,r.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,r.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"filter"})," (object)","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"accountAddress"})," (string) -- the wallet account address"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"contractAddress"})," (string) -- optionally specify a contract address to filter"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"accountAddresses"})," (string array) -- optionally specify a list of wallet account addresses"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"contractAddresses"})," (string array) -- optionally specify a list of contract address"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"transactionHashes"})," (string array) -- optionally specify a list of transaction hashes"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"metaTransactionIDs"})," (string array) -- optionally specify a list of meta transaction IDs"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"fromBlock"})," (number) -- optionally specify the starting block to select a range"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"toBlock"})," (number) -- optionally specify the ending block to select a range"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"verifiedOnly"})," (boolean - optional) -- return only contracts which are 'verified' to help reduce spam"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if verifiedOnly is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.strong,{children:["Example: ",(0,r.jsx)(n.code,{children:"GetTransactionHistory"})," of a wallet account address on Polygon"]})}),"\n",(0,r.jsxs)(s.Z,{children:[(0,r.jsx)(o.Z,{value:"curl",label:"curl",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTransactionHistory -d \'{ "filter": { "accountAddress": "0x8e3E38fe7367dd3b52D1e281E4e8400447C8d8B9" }, "includeMetadata": true }\'\n'})})}),(0,r.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// try any account address you'd like :)\nconst filter = {\n\taccountAddress: \"0xabc...\"\n}\n\n// query Sequence Indexer for all token transaction history on Polygon\nconst transactionHistory = await indexer.getTransactionHistory({\n\tfilter: filter,\n\tincludeMetadata: true\n})\n\t\nconsole.log('transaction history in account:', transactionHistory)\n"})})}),(0,r.jsx)(o.Z,{value:"golang",label:"Go",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTransactionHistory(accountAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tfilter := &indexer.TransactionHistoryFilter{\n\t\tAccountAddress: &accountAddress,\n\t}\n\tincludeMetadata := true\n\n\t_, history, err := seqIndexer.GetTransactionHistory(context.Background(), filter, nil, &includeMetadata)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("transaction history:", history)\n}\n'})})}),(0,r.jsx)(o.Z,{value:"other",label:"Other",children:(0,r.jsxs)(n.p,{children:["Please ",(0,r.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]})]})}function p(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1804:(e,n,t)=>{t.d(n,{Z:()=>o});t(959);var r=t(5924);const a={tabItem:"tabItem_l_5p"};var s=t(1527);function o(e){let{children:n,hidden:t,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,o),hidden:t,children:n})}},370:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(959),a=t(5924),s=t(74),o=t(8903),i=t(331),l=t(4053),c=t(3608),d=t(7979);function u(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function x(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=h(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[c,u]=f({queryString:t,groupId:a}),[x,y]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,d.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),b=(()=>{const e=c??x;return p({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{b&&l(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),y(e)}),[u,y,s]),tabValues:s}}var y=t(9506);const b={tabList:"tabList_Pq82",tabItem:"tabItem_kpXA"};var m=t(1527);function j(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:i}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{const n=e.currentTarget,t=l.indexOf(n),a=i[t].value;a!==r&&(c(n),o(a))},u=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,m.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>l.push(e),onKeyDown:u,onClick:d,...s,className:(0,a.Z)("tabs__item",b.tabItem,s?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function g(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function v(e){const n=x(e);return(0,m.jsxs)("div",{className:(0,a.Z)("tabs-container",b.tabList),children:[(0,m.jsx)(j,{...e,...n}),(0,m.jsx)(g,{...e,...n})]})}function w(e){const n=(0,y.Z)();return(0,m.jsx)(v,{...e,children:u(e.children)},String(n))}},7279:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>o});var r=t(959);const a={},s=r.createContext(a);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/25f8f2e5.b52e8d48.js b/assets/js/25f8f2e5.b52e8d48.js
deleted file mode 100644
index 9f2bbcb14..000000000
--- a/assets/js/25f8f2e5.b52e8d48.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[8325],{4255:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=t(1527),a=t(7279),s=t(370),o=t(1804);const i={sidebar_label:"Wallet transaction history"},l="Wallet transaction history",c={id:"indexer/transaction-history",title:"Wallet transaction history",description:"Fetch the transaction history for any wallet address",source:"@site/docs/04-indexer/04-transaction-history.mdx",sourceDirName:"04-indexer",slug:"/indexer/transaction-history",permalink:"/indexer/transaction-history",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/04-transaction-history.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_label:"Wallet transaction history"},sidebar:"sidebar",previous:{title:"Tokens API",permalink:"/indexer/fetch-tokens"},next:{title:"All unique tokens in a contract",permalink:"/indexer/unique-tokens"}},d={},u=[{value:"Fetch the transaction history for any wallet address",id:"fetch-the-transaction-history-for-any-wallet-address",level:2}];function h(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"wallet-transaction-history",children:"Wallet transaction history"}),"\n",(0,r.jsx)(n.h2,{id:"fetch-the-transaction-history-for-any-wallet-address",children:"Fetch the transaction history for any wallet address"}),"\n",(0,r.jsx)(n.p,{children:"Fetches the transaction / token history for any wallet address of any ERC20, ERC721 and ERC1155 token.\nThe response includes decoded transaction details for easy consumption / rendering."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.em,{children:["Sequence Indexer ",(0,r.jsx)(n.code,{children:"GetTransactionHistory"})," Method:"]})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTransactionHistory"}),"\n",(0,r.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,r.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"filter"})," (object)","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"accountAddress"})," (string) -- the wallet account address"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"contractAddress"})," (string) -- optionally specify a contract address to filter"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"accountAddresses"})," (string array) -- optionally specify a list of wallet account addresses"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"contractAddresses"})," (string array) -- optionally specify a list of contract address"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"transactionHashes"})," (string array) -- optionally specify a list of transaction hashes"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"metaTransactionIDs"})," (string array) -- optionally specify a list of meta transaction IDs"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"fromBlock"})," (number) -- optionally specify the starting block to select a range"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"toBlock"})," (number) -- optionally specify the ending block to select a range"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"omitUnverified"})," (boolean - optional) -- omit contracts which are unverified to helps reduce spam"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if omitUnverified is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.strong,{children:["Example: ",(0,r.jsx)(n.code,{children:"GetTransactionHistory"})," of a wallet account address on Polygon"]})}),"\n",(0,r.jsxs)(s.Z,{children:[(0,r.jsx)(o.Z,{value:"curl",label:"curl",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTransactionHistory -d \'{ "filter": { "accountAddress": "0x8e3E38fe7367dd3b52D1e281E4e8400447C8d8B9" }, "includeMetadata": true }\'\n'})})}),(0,r.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// try any account address you'd like :)\nconst filter = {\n\taccountAddress: \"0xabc...\"\n}\n\n// query Sequence Indexer for all token transaction history on Polygon\nconst transactionHistory = await indexer.getTransactionHistory({\n\tfilter: filter,\n\tincludeMetadata: true\n})\n\t\nconsole.log('transaction history in account:', transactionHistory)\n"})})}),(0,r.jsx)(o.Z,{value:"golang",label:"Go",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTransactionHistory(accountAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tfilter := &indexer.TransactionHistoryFilter{\n\t\tAccountAddress: &accountAddress,\n\t}\n\tincludeMetadata := true\n\n\t_, history, err := seqIndexer.GetTransactionHistory(context.Background(), filter, nil, &includeMetadata)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("transaction history:", history)\n}\n'})})}),(0,r.jsx)(o.Z,{value:"other",label:"Other",children:(0,r.jsxs)(n.p,{children:["Please ",(0,r.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]})]})}function p(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1804:(e,n,t)=>{t.d(n,{Z:()=>o});t(959);var r=t(5924);const a={tabItem:"tabItem_l_5p"};var s=t(1527);function o(e){let{children:n,hidden:t,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,o),hidden:t,children:n})}},370:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(959),a=t(5924),s=t(74),o=t(8903),i=t(331),l=t(4053),c=t(3608),d=t(7979);function u(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function x(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=h(e),[o,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[c,u]=f({queryString:t,groupId:a}),[x,y]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,d.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),b=(()=>{const e=c??x;return p({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{b&&l(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),y(e)}),[u,y,s]),tabValues:s}}var y=t(9506);const b={tabList:"tabList_Pq82",tabItem:"tabItem_kpXA"};var m=t(1527);function j(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:i}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{const n=e.currentTarget,t=l.indexOf(n),a=i[t].value;a!==r&&(c(n),o(a))},u=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,m.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>l.push(e),onKeyDown:u,onClick:d,...s,className:(0,a.Z)("tabs__item",b.tabItem,s?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function g(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function v(e){const n=x(e);return(0,m.jsxs)("div",{className:(0,a.Z)("tabs-container",b.tabList),children:[(0,m.jsx)(j,{...e,...n}),(0,m.jsx)(g,{...e,...n})]})}function w(e){const n=(0,y.Z)();return(0,m.jsx)(v,{...e,children:u(e.children)},String(n))}},7279:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>o});var r=t(959);const a={},s=r.createContext(a);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3a369cf1.cf32cd20.js b/assets/js/3a369cf1.cf32cd20.js
deleted file mode 100644
index 10893b1de..000000000
--- a/assets/js/3a369cf1.cf32cd20.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[8272],{2997:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>c,metadata:()=>i,toc:()=>u});var a=t(1527),s=t(7279),r=t(370),o=t(1804);const c={sidebar_label:"Tokens API"},l="Tokens API",i={id:"indexer/fetch-tokens",title:"Tokens API",description:"Fetches list of ERC20, ERC721 and ERC1155 tokens and metadata in any wallet.",source:"@site/docs/04-indexer/03-fetch-tokens.mdx",sourceDirName:"04-indexer",slug:"/indexer/fetch-tokens",permalink:"/indexer/fetch-tokens",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/03-fetch-tokens.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_label:"Tokens API"},sidebar:"sidebar",previous:{title:"Installation",permalink:"/indexer/installation"},next:{title:"Wallet transaction history",permalink:"/indexer/transaction-history"}},d={},u=[{value:"Fetches list of ERC20, ERC721 and ERC1155 tokens and metadata in any wallet.",id:"fetches-list-of-erc20-erc721-and-erc1155-tokens-and-metadata-in-any-wallet",level:3},{value:"Fetch token IDs, balances and metadata of ERC721 and ERC1155 collections.",id:"fetch-token-ids-balances-and-metadata-of-erc721-and-erc1155-collections",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"tokens-api",children:"Tokens API"}),"\n",(0,a.jsx)(n.h3,{id:"fetches-list-of-erc20-erc721-and-erc1155-tokens-and-metadata-in-any-wallet",children:"Fetches list of ERC20, ERC721 and ERC1155 tokens and metadata in any wallet."}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.em,{children:["Sequence Indexer ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," Method:"]})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTokenBalances"}),"\n",(0,a.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,a.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"accountAddress"})," (string) -- the wallet account address"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"omitUnverified"})," (boolean - optional) -- omit contracts which are unverified to helps reduce spam"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if omitUnverified is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.strong,{children:["Example: ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," of a wallet account address on Polygon"]})}),"\n",(0,a.jsxs)(r.Z,{children:[(0,a.jsx)(o.Z,{value:"curl",label:"curl",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTokenBalances -d \'{ "accountAddress": "0x8e3E38fe7367dd3b52D1e281E4e8400447C8d8B9", "includeMetadata": true }\'\n'})})}),(0,a.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// try any account address you'd like :)\nconst accountAddress = '0xabc...'\n\n// query Sequence Indexer for all token balances of the account on Polygon\nconst tokenBalances = await indexer.getTokenBalances({\n\taccountAddress: accountAddress,\n\tincludeMetadata: true\n})\nconsole.log('tokens in your account:', tokenBalances)\n"})})}),(0,a.jsx)(o.Z,{value:"golang",label:"Go",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTokenBalances(accountAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tincludeMetadata := true\n\n\ttokenBalances, _, err := seqIndexer.GetTokenBalances(context.Background(), &accountAddress, nil, &includeMetadata, nil)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("tokenBalances:", tokenBalances)\n}\n'})})}),(0,a.jsx)(o.Z,{value:"other",label:"Other",children:(0,a.jsxs)(n.p,{children:["Please ",(0,a.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.admonition,{title:"PRO TIP: fetching ERC721/1155 token IDs",type:"info",children:(0,a.jsxs)(n.p,{children:["You'll notice that, by default, ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," will return at most one token instance from each contract.\nIn order to fetch ERC721/1155 token balances, you must pass the ",(0,a.jsx)(n.code,{children:"contractAddress"})," to the ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," method.\nThis will return all of the tokens owned by ",(0,a.jsx)(n.code,{children:"accountAddress"})," from the specified ",(0,a.jsx)(n.code,{children:"contractAddress"}),".\nSee section below for more information."]})}),"\n",(0,a.jsx)(n.h3,{id:"fetch-token-ids-balances-and-metadata-of-erc721-and-erc1155-collections",children:"Fetch token IDs, balances and metadata of ERC721 and ERC1155 collections."}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.em,{children:["Sequence Indexer ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," Method:"]})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTokenBalances"}),"\n",(0,a.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,a.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"accountAddress"})," (string) -- the wallet account address"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"contractAddress"})," (string) -- the contract address of the ERC721 / ERC1155 collection"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"omitUnverified"})," (boolean - optional) -- omit contracts which are unverified to helps reduce spam"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if omitUnverified is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.strong,{children:["Example: ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," of a contract + account address on Polygon"]})}),"\n",(0,a.jsxs)(r.Z,{children:[(0,a.jsx)(o.Z,{value:"curl",label:"curl",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTokenBalances -d \'{ "contractAddress": "0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "accountAddress": "0x8e3E38fe7367dd3b52D1e281E4e8400447C8d8B9", "includeMetadata": true }\'\n'})})}),(0,a.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// try any contract and account address you'd like :)\nconst contractAddress = '0x631998e91476DA5B870D741192fc5Cbc55F5a52E'\nconst accountAddress = '0xabc...'\n\n// query Sequence Indexer for all nft balances of the account on Polygon\nconst nftBalances = await indexer.getTokenBalances({\n\tcontractAddress: contractAddress,\n\taccountAddress: accountAddress,\n\tincludeMetadata: true\n})\n\nconsole.log('collection of items:', nftBalances)\n"})})}),(0,a.jsx)(o.Z,{value:"golang",label:"Go",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTokenBalances(contractAddress, accountAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tincludeMetadata := true\n\n\tnftBalances, _, err := seqIndexer.GetTokenBalances(context.Background(), &accountAddress, &contractAddress, &includeMetadata, nil)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("nftBalances:", nftBalances)\n}\n'})})}),(0,a.jsx)(o.Z,{value:"other",label:"Other",children:(0,a.jsxs)(n.p,{children:["Please ",(0,a.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]})]})}function p(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},1804:(e,n,t)=>{t.d(n,{Z:()=>o});t(959);var a=t(5924);const s={tabItem:"tabItem_l_5p"};var r=t(1527);function o(e){let{children:n,hidden:t,className:o}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(s.tabItem,o),hidden:t,children:n})}},370:(e,n,t)=>{t.d(n,{Z:()=>y});var a=t(959),s=t(5924),r=t(74),o=t(8903),c=t(331),l=t(4053),i=t(3608),d=t(7979);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:s}}=e;return{value:n,label:t,attributes:a,default:s}}))}(t);return function(e){const n=(0,i.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function x(e){let{queryString:n=!1,groupId:t}=e;const s=(0,o.k6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(r),(0,a.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(s.location.search);n.set(r,e),s.replace({...s.location,search:n.toString()})}),[r,s])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,r=h(e),[o,l]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:r}))),[i,u]=x({queryString:t,groupId:s}),[f,m]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,r]=(0,d.Nk)(t);return[s,(0,a.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:s}),b=(()=>{const e=i??f;return p({value:e,tabValues:r})?e:null})();(0,c.Z)((()=>{b&&l(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!p({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),m(e)}),[u,m,r]),tabValues:r}}var m=t(9506);const b={tabList:"tabList_Pq82",tabItem:"tabItem_kpXA"};var j=t(1527);function g(e){let{className:n,block:t,selectedValue:a,selectValue:o,tabValues:c}=e;const l=[],{blockElementScrollPositionUntilNextRender:i}=(0,r.o5)(),d=e=>{const n=e.currentTarget,t=l.indexOf(n),s=c[t].value;s!==a&&(i(n),o(s))},u=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n),children:c.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>l.push(e),onKeyDown:u,onClick:d,...r,className:(0,s.Z)("tabs__item",b.tabItem,r?.className,{"tabs__item--active":a===n}),children:t??n},n)}))})}function k(e){let{lazy:n,children:t,selectedValue:s}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===s));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function v(e){const n=f(e);return(0,j.jsxs)("div",{className:(0,s.Z)("tabs-container",b.tabList),children:[(0,j.jsx)(g,{...e,...n}),(0,j.jsx)(k,{...e,...n})]})}function y(e){const n=(0,m.Z)();return(0,j.jsx)(v,{...e,children:u(e.children)},String(n))}},7279:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var a=t(959);const s={},r=a.createContext(s);function o(e){const n=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),a.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3a369cf1.dfb4ae2a.js b/assets/js/3a369cf1.dfb4ae2a.js
new file mode 100644
index 000000000..b1518bcc1
--- /dev/null
+++ b/assets/js/3a369cf1.dfb4ae2a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[8272],{2997:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=t(1527),r=t(7279),s=t(370),o=t(1804);const l={sidebar_label:"Tokens API"},c="Tokens API",i={id:"indexer/fetch-tokens",title:"Tokens API",description:"Fetches list of ERC20, ERC721 and ERC1155 tokens and metadata in any wallet.",source:"@site/docs/04-indexer/03-fetch-tokens.mdx",sourceDirName:"04-indexer",slug:"/indexer/fetch-tokens",permalink:"/indexer/fetch-tokens",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/03-fetch-tokens.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_label:"Tokens API"},sidebar:"sidebar",previous:{title:"Installation",permalink:"/indexer/installation"},next:{title:"Wallet transaction history",permalink:"/indexer/transaction-history"}},d={},u=[{value:"Fetches list of ERC20, ERC721 and ERC1155 tokens and metadata in any wallet.",id:"fetches-list-of-erc20-erc721-and-erc1155-tokens-and-metadata-in-any-wallet",level:3},{value:"Fetch token IDs, balances and metadata of ERC721 and ERC1155 collections.",id:"fetch-token-ids-balances-and-metadata-of-erc721-and-erc1155-collections",level:3}];function h(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"tokens-api",children:"Tokens API"}),"\n",(0,a.jsx)(n.h3,{id:"fetches-list-of-erc20-erc721-and-erc1155-tokens-and-metadata-in-any-wallet",children:"Fetches list of ERC20, ERC721 and ERC1155 tokens and metadata in any wallet."}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.em,{children:["Sequence Indexer ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," Method:"]})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTokenBalances"}),"\n",(0,a.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,a.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"accountAddress"})," (string) -- the wallet account address"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"verifiedOnly"})," (boolean - optional) -- return only contracts which are 'verified' to help reduce spam"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if verifiedOnly is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.strong,{children:["Example: ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," of a wallet account address on Polygon"]})}),"\n",(0,a.jsxs)(s.Z,{children:[(0,a.jsx)(o.Z,{value:"curl",label:"curl",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTokenBalances -d \'{ "accountAddress": "0x8e3E38fe7367dd3b52D1e281E4e8400447C8d8B9", "includeMetadata": true }\'\n'})})}),(0,a.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// try any account address you'd like :)\nconst accountAddress = '0xabc...'\n\n// query Sequence Indexer for all token balances of the account on Polygon\nconst tokenBalances = await indexer.getTokenBalances({\n\taccountAddress: accountAddress,\n\tincludeMetadata: true\n})\nconsole.log('tokens in your account:', tokenBalances)\n"})})}),(0,a.jsx)(o.Z,{value:"golang",label:"Go",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTokenBalances(accountAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tincludeMetadata := true\n\n\ttokenBalances, _, err := seqIndexer.GetTokenBalances(context.Background(), &accountAddress, nil, &includeMetadata, nil)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("tokenBalances:", tokenBalances)\n}\n'})})}),(0,a.jsx)(o.Z,{value:"other",label:"Other",children:(0,a.jsxs)(n.p,{children:["Please ",(0,a.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.admonition,{title:"PRO TIP: fetching ERC721/1155 token IDs",type:"info",children:(0,a.jsxs)(n.p,{children:["You'll notice that, by default, ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," will return at most one token instance from each contract.\nIn order to fetch ERC721/1155 token balances, you must pass the ",(0,a.jsx)(n.code,{children:"contractAddress"})," to the ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," method.\nThis will return all of the tokens owned by ",(0,a.jsx)(n.code,{children:"accountAddress"})," from the specified ",(0,a.jsx)(n.code,{children:"contractAddress"}),".\nSee section below for more information."]})}),"\n",(0,a.jsx)(n.h3,{id:"fetch-token-ids-balances-and-metadata-of-erc721-and-erc1155-collections",children:"Fetch token IDs, balances and metadata of ERC721 and ERC1155 collections."}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.em,{children:["Sequence Indexer ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," Method:"]})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTokenBalances"}),"\n",(0,a.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,a.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"accountAddress"})," (string) -- the wallet account address"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"contractAddress"})," (string) -- the contract address of the ERC721 / ERC1155 collection"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"verifiedOnly"})," (boolean - optional) -- return only contracts which are 'verified' to help reduce spam"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if verifiedOnly is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.p,{children:(0,a.jsxs)(n.strong,{children:["Example: ",(0,a.jsx)(n.code,{children:"GetTokenBalances"})," of a contract + account address on Polygon"]})}),"\n",(0,a.jsxs)(s.Z,{children:[(0,a.jsx)(o.Z,{value:"curl",label:"curl",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTokenBalances -d \'{ "contractAddress": "0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "accountAddress": "0x8e3E38fe7367dd3b52D1e281E4e8400447C8d8B9", "includeMetadata": true }\'\n'})})}),(0,a.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// try any contract and account address you'd like :)\nconst contractAddress = '0x631998e91476DA5B870D741192fc5Cbc55F5a52E'\nconst accountAddress = '0xabc...'\n\n// query Sequence Indexer for all nft balances of the account on Polygon\nconst nftBalances = await indexer.getTokenBalances({\n\tcontractAddress: contractAddress,\n\taccountAddress: accountAddress,\n\tincludeMetadata: true\n})\n\nconsole.log('collection of items:', nftBalances)\n"})})}),(0,a.jsx)(o.Z,{value:"golang",label:"Go",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTokenBalances(contractAddress, accountAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tincludeMetadata := true\n\n\tnftBalances, _, err := seqIndexer.GetTokenBalances(context.Background(), &accountAddress, &contractAddress, &includeMetadata, nil)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("nftBalances:", nftBalances)\n}\n'})})}),(0,a.jsx)(o.Z,{value:"other",label:"Other",children:(0,a.jsxs)(n.p,{children:["Please ",(0,a.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]})]})}function p(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},1804:(e,n,t)=>{t.d(n,{Z:()=>o});t(959);var a=t(5924);const r={tabItem:"tabItem_l_5p"};var s=t(1527);function o(e){let{children:n,hidden:t,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.Z)(r.tabItem,o),hidden:t,children:n})}},370:(e,n,t)=>{t.d(n,{Z:()=>v});var a=t(959),r=t(5924),s=t(74),o=t(8903),l=t(331),c=t(4053),i=t(3608),d=t(7979);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}(t);return function(e){const n=(0,i.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function x(e){let{queryString:n=!1,groupId:t}=e;const r=(0,o.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,c._X)(s),(0,a.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})}),[s,r])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[o,c]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:s}))),[i,u]=x({queryString:t,groupId:r}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,s]=(0,d.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:r}),m=(()=>{const e=i??f;return p({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{m&&c(m)}),[m]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);c(e),u(e),b(e)}),[u,b,s]),tabValues:s}}var b=t(9506);const m={tabList:"tabList_Pq82",tabItem:"tabItem_kpXA"};var j=t(1527);function g(e){let{className:n,block:t,selectedValue:a,selectValue:o,tabValues:l}=e;const c=[],{blockElementScrollPositionUntilNextRender:i}=(0,s.o5)(),d=e=>{const n=e.currentTarget,t=c.indexOf(n),r=l[t].value;r!==a&&(i(n),o(r))},u=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>c.push(e),onKeyDown:u,onClick:d,...s,className:(0,r.Z)("tabs__item",m.tabItem,s?.className,{"tabs__item--active":a===n}),children:t??n},n)}))})}function k(e){let{lazy:n,children:t,selectedValue:r}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function y(e){const n=f(e);return(0,j.jsxs)("div",{className:(0,r.Z)("tabs-container",m.tabList),children:[(0,j.jsx)(g,{...e,...n}),(0,j.jsx)(k,{...e,...n})]})}function v(e){const n=(0,b.Z)();return(0,j.jsx)(y,{...e,children:u(e.children)},String(n))}},7279:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>o});var a=t(959);const r={},s=a.createContext(r);function o(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3f83f827.d2f15289.js b/assets/js/3f83f827.aa6de7d9.js
similarity index 60%
rename from assets/js/3f83f827.d2f15289.js
rename to assets/js/3f83f827.aa6de7d9.js
index 46b321aa8..3d090208e 100644
--- a/assets/js/3f83f827.d2f15289.js
+++ b/assets/js/3f83f827.aa6de7d9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[3096],{2768:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var a=n(1527),s=n(7279);const i={sidebar_label:"Metadata Tips & Spam"},o="Metadata Tips & Notes on Spam",r={id:"indexer/metadata-tips",title:"Metadata Tips & Notes on Spam",description:"The Sequence Indexer and Sequence Metadata services will pick up everything and anything",source:"@site/docs/04-indexer/08-metadata-tips.mdx",sourceDirName:"04-indexer",slug:"/indexer/metadata-tips",permalink:"/indexer/metadata-tips",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/08-metadata-tips.mdx",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_label:"Metadata Tips & Spam"},sidebar:"sidebar",previous:{title:"Native network balance",permalink:"/indexer/native-network-balance"},next:{title:"Metadata",permalink:"/metadata"}},c={},d=[];function l(e){const t={a:"a",code:"code",em:"em",h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"metadata-tips--notes-on-spam",children:"Metadata Tips & Notes on Spam"}),"\n",(0,a.jsxs)(t.p,{children:["The Sequence Indexer and Sequence Metadata services will pick up everything and anything\nthat is published on a blockchain. Our services are designed to provide data in real-time\nas blocks are mined, and adhere to all popular ERC20, ERC721 and ERC1155 metadata\nstandards so things ",(0,a.jsx)(t.em,{children:"just work"}),"."]}),"\n",(0,a.jsx)(t.p,{children:"This is very helpful for your applications to be able to have access to the complete set of data\non-chain, but it also means it will include spam tokens when querying with default settings."}),"\n",(0,a.jsxs)(t.p,{children:["To combat spam, we introduced ",(0,a.jsx)(t.code,{children:"metadataOptions"})," arguments which can be passed to Indexer RPC\ncalls to control the results returned."]}),"\n",(0,a.jsxs)(t.p,{children:['The Sequence Metadata service keeps track of contracts which are "verified" by checking popular\nsources like Coingecko, OpenSea, Sequence Builder (',(0,a.jsx)(t.a,{href:"https://sequence.build",children:"https://sequence.build"}),") and the Sequence Token\nDirectory (",(0,a.jsx)(t.a,{href:"https://github.com/0xsequence/token-directory",children:"https://github.com/0xsequence/token-directory"}),"). By calling the Indexer RPC methods with\n",(0,a.jsx)(t.code,{children:'"metadataOptions": { "omitUnverified": true }'}),", any contract address which has not been verified, will\nbe omitted from the results. We recommend using this option all the time, but, the downside is\nif your project's contracts are unverified, then they will also be omitted from the results. To help\nwith this, your options are to get verified with one of the sources above, or in your RPC calls to pass\n",(0,a.jsx)(t.code,{children:'"metadataOptions": { "omitUnverified": true, "includeContracts": ["0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "0x8bb759bb68995343ff1e9d57ac85ff5c5fb79334"] }'}),"\nas an example."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},7279:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>o});var a=n(959);const s={},i=a.createContext(s);function o(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[3096],{2768:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var a=n(1527),s=n(7279);const i={sidebar_label:"Metadata Tips & Spam"},r="Metadata Tips & Notes on Spam",o={id:"indexer/metadata-tips",title:"Metadata Tips & Notes on Spam",description:"The Sequence Indexer and Sequence Metadata services will pick up everything and anything",source:"@site/docs/04-indexer/08-metadata-tips.mdx",sourceDirName:"04-indexer",slug:"/indexer/metadata-tips",permalink:"/indexer/metadata-tips",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/08-metadata-tips.mdx",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_label:"Metadata Tips & Spam"},sidebar:"sidebar",previous:{title:"Native network balance",permalink:"/indexer/native-network-balance"},next:{title:"Metadata",permalink:"/metadata"}},c={},d=[];function l(e){const t={a:"a",code:"code",em:"em",h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"metadata-tips--notes-on-spam",children:"Metadata Tips & Notes on Spam"}),"\n",(0,a.jsxs)(t.p,{children:["The Sequence Indexer and Sequence Metadata services will pick up everything and anything\nthat is published on a blockchain. Our services are designed to provide data in real-time\nas blocks are mined, and adhere to all popular ERC20, ERC721 and ERC1155 metadata\nstandards so things ",(0,a.jsx)(t.em,{children:"just work"}),"."]}),"\n",(0,a.jsx)(t.p,{children:"This is very helpful for your applications to be able to have access to the complete set of data\non-chain, but it also means it will include spam tokens when querying with default settings."}),"\n",(0,a.jsxs)(t.p,{children:["To combat spam, we introduced ",(0,a.jsx)(t.code,{children:"metadataOptions"})," arguments which can be passed to Indexer RPC\ncalls to control the results returned."]}),"\n",(0,a.jsxs)(t.p,{children:['The Sequence Metadata service keeps track of contracts which are "verified" by checking popular\nsources like Coingecko, OpenSea, Sequence Builder (',(0,a.jsx)(t.a,{href:"https://sequence.build",children:"https://sequence.build"}),") and the Sequence Token\nDirectory (",(0,a.jsx)(t.a,{href:"https://github.com/0xsequence/token-directory",children:"https://github.com/0xsequence/token-directory"}),"). By calling the Indexer RPC methods with\n",(0,a.jsx)(t.code,{children:'"metadataOptions": { "verifiedOnly": true }'}),", any contract address which has not been verified, will\nbe omitted from the results. We recommend using this option all the time, but, the downside is\nif your project's contracts are unverified, then they will also be omitted from the results. To help\nwith this, your options are to get verified with one of the sources above, or in your RPC calls to pass\n",(0,a.jsx)(t.code,{children:'"metadataOptions": { "verifiedOnly": true, "includeContracts": ["0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "0x8bb759bb68995343ff1e9d57ac85ff5c5fb79334"] }'}),"\nas an example."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},7279:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var a=n(959);const s={},i=a.createContext(s);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/bc9aec94.a79849a0.js b/assets/js/bc9aec94.a79849a0.js
new file mode 100644
index 000000000..58d0fc3b4
--- /dev/null
+++ b/assets/js/bc9aec94.a79849a0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[8720],{8696:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var r=t(1527),a=t(7279),s=t(370),o=t(1804);const l={sidebar_label:"All unique tokens in a contract"},i="Tokens in a contract",c={id:"indexer/unique-tokens",title:"Tokens in a contract",description:"Fetch all unique tokens in a particular ERC20/721/1155 contract, including total supplies",source:"@site/docs/04-indexer/05-unique-tokens.mdx",sourceDirName:"04-indexer",slug:"/indexer/unique-tokens",permalink:"/indexer/unique-tokens",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/05-unique-tokens.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_label:"All unique tokens in a contract"},sidebar:"sidebar",previous:{title:"Wallet transaction history",permalink:"/indexer/transaction-history"},next:{title:"Token contract transaction history",permalink:"/indexer/transation-history-token-contract"}},u={},d=[{value:"Fetch all unique tokens in a particular ERC20/721/1155 contract, including total supplies",id:"fetch-all-unique-tokens-in-a-particular-erc207211155-contract-including-total-supplies",level:3}];function p(e){const n={a:"a",code:"code",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"tokens-in-a-contract",children:"Tokens in a contract"}),"\n",(0,r.jsx)(n.h3,{id:"fetch-all-unique-tokens-in-a-particular-erc207211155-contract-including-total-supplies",children:"Fetch all unique tokens in a particular ERC20/721/1155 contract, including total supplies"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Fetches token supplies and metadata for any ERC20, ERC721, ERC1155 contract."})}),"\n",(0,r.jsx)(n.p,{children:"This query is helpful to render all tokens in a token contract, or to query the total token supplies.\nIn this example, we use the Skyweaver token contract address 0x631998e91476DA5B870D741192fc5Cbc55F5a52E\non the Polygon network. You may query any contract address on any of the supported networks (but make\nsure to query the indexer of the corresponding network)."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.em,{children:["Sequence Indexer ",(0,r.jsx)(n.code,{children:"GetTokenSupplies"})," Method:"]})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTokenSupplies"}),"\n",(0,r.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,r.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"contractAddress"})," (string) -- a ERC20 / ERC721 / ERC1155 contract address"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"verifiedOnly"})," (boolean - optional) -- return only contracts which are 'verified' to help reduce spam"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if verifiedOnly is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.strong,{children:["Example: ",(0,r.jsx)(n.code,{children:"GetTokenSupplies"})," of Skyweaver contract on Polygon"]})}),"\n",(0,r.jsxs)(s.Z,{children:[(0,r.jsx)(o.Z,{value:"curl",label:"curl",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTokenSupplies -d \'{ "contractAddress": "0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "includeMetadata": true }\'\n'})})}),(0,r.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// here we query the Skyweaver contract address, but you can use any\nconst contractAddress = '0x631998e91476DA5B870D741192fc5Cbc55F5a52E'\n\n// query Sequence Indexer for all token details / supplies\nconst tokenDetails = await indexer.getTokenSupplies({\n\tcontractAddress: contractAddress,\n\tincludeMetadata: true\n})\nconsole.log('token details of contract:', tokenDetails)\n"})})}),(0,r.jsx)(o.Z,{value:"golang",label:"Go",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTokenSupplies(contractAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tfilter := &indexer.TransactionHistoryFilter{\n\t\tContractAddress: &contractAddress,\n\t}\n\tincludeMetadata := true\n\n\t_, tokenDetails, err := seqIndexer.GetTokenSupplies(context.Background(), filter, nil, &includeMetadata)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("token details:", tokenDetails)\n}\n'})})}),(0,r.jsx)(o.Z,{value:"other",label:"Other",children:(0,r.jsxs)(n.p,{children:["Please ",(0,r.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},1804:(e,n,t)=>{t.d(n,{Z:()=>o});t(959);var r=t(5924);const a={tabItem:"tabItem_l_5p"};var s=t(1527);function o(e){let{children:n,hidden:t,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,o),hidden:t,children:n})}},370:(e,n,t)=>{t.d(n,{Z:()=>y});var r=t(959),a=t(5924),s=t(74),o=t(8903),l=t(331),i=t(4053),c=t(3608),u=t(7979);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function x(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[c,d]=x({queryString:t,groupId:a}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),m=(()=>{const e=c??f;return h({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{m&&i(m)}),[m]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),d(e),b(e)}),[d,b,s]),tabValues:s}}var b=t(9506);const m={tabList:"tabList_Pq82",tabItem:"tabItem_kpXA"};var g=t(1527);function k(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),u=e=>{const n=e.currentTarget,t=i.indexOf(n),a=l[t].value;a!==r&&(c(n),o(a))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=i.indexOf(e.currentTarget)+1;n=i[t]??i[0];break}case"ArrowLeft":{const t=i.indexOf(e.currentTarget)-1;n=i[t]??i[i.length-1];break}}n?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>i.push(e),onKeyDown:d,onClick:u,...s,className:(0,a.Z)("tabs__item",m.tabItem,s?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function j(e){const n=f(e);return(0,g.jsxs)("div",{className:(0,a.Z)("tabs-container",m.tabList),children:[(0,g.jsx)(k,{...e,...n}),(0,g.jsx)(v,{...e,...n})]})}function y(e){const n=(0,b.Z)();return(0,g.jsx)(j,{...e,children:d(e.children)},String(n))}},7279:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>o});var r=t(959);const a={},s=r.createContext(a);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/bc9aec94.fba7d350.js b/assets/js/bc9aec94.fba7d350.js
deleted file mode 100644
index e835ccaec..000000000
--- a/assets/js/bc9aec94.fba7d350.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_0xsequence_docs=self.webpackChunk_0xsequence_docs||[]).push([[8720],{8696:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var r=t(1527),a=t(7279),s=t(370),o=t(1804);const l={sidebar_label:"All unique tokens in a contract"},i="Tokens in a contract",c={id:"indexer/unique-tokens",title:"Tokens in a contract",description:"Fetch all unique tokens in a particular ERC20/721/1155 contract, including total supplies",source:"@site/docs/04-indexer/05-unique-tokens.mdx",sourceDirName:"04-indexer",slug:"/indexer/unique-tokens",permalink:"/indexer/unique-tokens",draft:!1,unlisted:!1,editUrl:"https://github.com/0xsequence/docs/edit/master/docs/04-indexer/05-unique-tokens.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_label:"All unique tokens in a contract"},sidebar:"sidebar",previous:{title:"Wallet transaction history",permalink:"/indexer/transaction-history"},next:{title:"Token contract transaction history",permalink:"/indexer/transation-history-token-contract"}},u={},d=[{value:"Fetch all unique tokens in a particular ERC20/721/1155 contract, including total supplies",id:"fetch-all-unique-tokens-in-a-particular-erc207211155-contract-including-total-supplies",level:3}];function p(e){const n={a:"a",code:"code",em:"em",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"tokens-in-a-contract",children:"Tokens in a contract"}),"\n",(0,r.jsx)(n.h3,{id:"fetch-all-unique-tokens-in-a-particular-erc207211155-contract-including-total-supplies",children:"Fetch all unique tokens in a particular ERC20/721/1155 contract, including total supplies"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Fetches token supplies and metadata for any ERC20, ERC721, ERC1155 contract."})}),"\n",(0,r.jsx)(n.p,{children:"This query is helpful to render all tokens in a token contract, or to query the total token supplies.\nIn this example, we use the Skyweaver token contract address 0x631998e91476DA5B870D741192fc5Cbc55F5a52E\non the Polygon network. You may query any contract address on any of the supported networks (but make\nsure to query the indexer of the corresponding network)."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.em,{children:["Sequence Indexer ",(0,r.jsx)(n.code,{children:"GetTokenSupplies"})," Method:"]})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Request: POST /rpc/Indexer/GetTokenSupplies"}),"\n",(0,r.jsx)(n.li,{children:"Content-Type: application/json"}),"\n",(0,r.jsxs)(n.li,{children:["Body (in JSON):","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"contractAddress"})," (string) -- a ERC20 / ERC721 / ERC1155 contract address"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeMetadata"})," (boolean - optional - default: false) -- toggle token metadata to be included in the response"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"metadataOptions"})," (object - optional) -- additional options for metadata","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"omitUnverified"})," (boolean - optional) -- omit contracts which are unverified to helps reduce spam"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"includeContracts"})," ([]string - optional) -- list of specific contract addresses to always be included, even if omitUnverified is enabled."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsxs)(n.strong,{children:["Example: ",(0,r.jsx)(n.code,{children:"GetTokenSupplies"})," of Skyweaver contract on Polygon"]})}),"\n",(0,r.jsxs)(s.Z,{children:[(0,r.jsx)(o.Z,{value:"curl",label:"curl",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",metastring:"class=wrap",children:'curl -X POST -H "Content-Type: application/json" https://polygon-indexer.sequence.app/rpc/Indexer/GetTokenSupplies -d \'{ "contractAddress": "0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "includeMetadata": true }\'\n'})})}),(0,r.jsx)(o.Z,{value:"js",label:"Javascript / Typescript",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"// Works in both a Webapp (browser) or Node.js:\nimport { SequenceIndexer } from '@0xsequence/indexer'\n\nconst indexer = new SequenceIndexer('https://polygon-indexer.sequence.app')\n\n// here we query the Skyweaver contract address, but you can use any\nconst contractAddress = '0x631998e91476DA5B870D741192fc5Cbc55F5a52E'\n\n// query Sequence Indexer for all token details / supplies\nconst tokenDetails = await indexer.getTokenSupplies({\n\tcontractAddress: contractAddress,\n\tincludeMetadata: true\n})\nconsole.log('token details of contract:', tokenDetails)\n"})})}),(0,r.jsx)(o.Z,{value:"golang",label:"Go",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-go",children:'import (\n\t"context"\n\t"fmt"\n\t"log"\n\t"net/http"\n\n\t"github.com/0xsequence/go-sequence/indexer"\n)\n\nfunc GetTokenSupplies(contractAddress string) {\n\tseqIndexer := indexer.NewIndexerClient("https://polygon-indexer.sequence.app", http.DefaultClient)\n\n\tfilter := &indexer.TransactionHistoryFilter{\n\t\tContractAddress: &contractAddress,\n\t}\n\tincludeMetadata := true\n\n\t_, tokenDetails, err := seqIndexer.GetTokenSupplies(context.Background(), filter, nil, &includeMetadata)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println("token details:", tokenDetails)\n}\n'})})}),(0,r.jsx)(o.Z,{value:"other",label:"Other",children:(0,r.jsxs)(n.p,{children:["Please ",(0,r.jsx)(n.a,{href:"/support",children:"contact our team"})," for assistance with integrations to another target."]})})]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},1804:(e,n,t)=>{t.d(n,{Z:()=>o});t(959);var r=t(5924);const a={tabItem:"tabItem_l_5p"};var s=t(1527);function o(e){let{children:n,hidden:t,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,o),hidden:t,children:n})}},370:(e,n,t)=>{t.d(n,{Z:()=>y});var r=t(959),a=t(5924),s=t(74),o=t(8903),l=t(331),i=t(4053),c=t(3608),u=t(7979);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function x(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[c,d]=x({queryString:t,groupId:a}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,u.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),m=(()=>{const e=c??f;return h({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{m&&i(m)}),[m]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),d(e),b(e)}),[d,b,s]),tabValues:s}}var b=t(9506);const m={tabList:"tabList_Pq82",tabItem:"tabItem_kpXA"};var g=t(1527);function k(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),u=e=>{const n=e.currentTarget,t=i.indexOf(n),a=l[t].value;a!==r&&(c(n),o(a))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=i.indexOf(e.currentTarget)+1;n=i[t]??i[0];break}case"ArrowLeft":{const t=i.indexOf(e.currentTarget)-1;n=i[t]??i[i.length-1];break}}n?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>i.push(e),onKeyDown:d,onClick:u,...s,className:(0,a.Z)("tabs__item",m.tabItem,s?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function j(e){const n=f(e);return(0,g.jsxs)("div",{className:(0,a.Z)("tabs-container",m.tabList),children:[(0,g.jsx)(k,{...e,...n}),(0,g.jsx)(v,{...e,...n})]})}function y(e){const n=(0,b.Z)();return(0,g.jsx)(j,{...e,children:d(e.children)},String(n))}},7279:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>o});var r=t(959);const a={},s=r.createContext(a);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.c88782b2.js b/assets/js/runtime~main.f7325576.js
similarity index 97%
rename from assets/js/runtime~main.c88782b2.js
rename to assets/js/runtime~main.f7325576.js
index 9b38629c5..3deb85c06 100644
--- a/assets/js/runtime~main.c88782b2.js
+++ b/assets/js/runtime~main.f7325576.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return d[e].call(c.exports,c,c.exports,r),c.exports}r.m=d,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",66:"791136a1",401:"412add97",438:"a2c9bd3d",512:"e90ca0df",711:"83b360ac",768:"5aa46366",895:"71ea24fd",1e3:"ac1abad9",1087:"dd30494d",1096:"eb12f589",1344:"012c6ecc",1460:"23a1414c",1462:"6ae90502",1548:"16451bdd",1561:"37cb5f81",1587:"843e9b55",1629:"a6ebf371",1854:"19429e8e",1910:"ddbbac58",2101:"47578b5f",2310:"31e8b2fc",2465:"235132b3",2617:"1c0f5032",2645:"215b8c20",2665:"a2fc7bac",2776:"f4068a22",2820:"89b59c59",2897:"5a94a26b",2935:"6282f18a",2978:"45c1221e",3009:"934b8fc0",3084:"23dee585",3096:"3f83f827",3111:"e94a0f70",3243:"77d5c907",3253:"47541eaf",3355:"76f123b5",3445:"1f7a7c0f",3602:"6c9ced59",3667:"3e73cc30",3695:"98d29602",3732:"5af075d2",3894:"3222cc2e",4246:"75f5d7ac",4312:"5a62e4f5",4340:"ca9e1004",4368:"a94703ab",4451:"be12a332",4453:"45db378c",4568:"624c0797",4650:"22b79583",4726:"554b4468",4764:"98da183f",5156:"4129286c",5162:"5a7d1807",5237:"e5d588ba",5394:"b5181e00",5731:"b1437ce7",5762:"eb8fe9c7",5826:"9bb54c83",5844:"cfa7cf69",5865:"22b25155",5889:"f98396c8",6306:"96f30867",6388:"8ec91c27",6535:"8cf5cfe8",6668:"5896231c",6786:"799e18f3",6839:"96624e9c",6905:"8d375ecb",6921:"b770db4a",6938:"e5c68d5f",7095:"9a4580b2",7235:"3effd4d4",7255:"7881d0e0",7264:"a9b86f3d",7731:"2b5d9d2b",7759:"69b8691c",7829:"f4a85aba",7899:"ef064e08",7918:"17896441",7920:"1a4e3797",8022:"4ea1ea74",8267:"59c1a1e7",8272:"3a369cf1",8325:"25f8f2e5",8518:"a7bd4aaa",8565:"097c57a4",8720:"bc9aec94",8805:"39dbcb7c",8806:"1e024a41",8910:"6bc4582f",9055:"95099373",9265:"41178b21",9334:"247783bb",9358:"8e4a4dd8",9402:"b86767bc",9436:"cd181bc5",9522:"400568a4",9575:"8c25c80e",9661:"5e95c892",9817:"14eb3368",9832:"abe49987",9833:"67f65dcc",9968:"ea4c1687"}[e]||e)+"."+{53:"47a1c390",66:"6a04abd8",369:"739b0b4f",401:"12449cb5",438:"86894640",512:"54de9790",711:"b3b8f248",768:"86a6a315",895:"595e0b81",1e3:"ae2b165a",1087:"a78cfbe9",1096:"c3464b70",1344:"e6ba7c03",1460:"ffce4254",1462:"40d9b80b",1548:"b08014b8",1561:"413aa9e2",1587:"4d32b5bd",1629:"9fcd6aba",1854:"b627ad09",1910:"176db951",2050:"ceb27c4d",2101:"b87dd049",2310:"f7f8d145",2465:"b259f03f",2617:"7430984a",2645:"8154f207",2665:"f06d1120",2776:"d937135f",2820:"6a5e654f",2897:"7e40d3d4",2935:"b640ea5f",2978:"1b45d37f",3009:"735f2819",3084:"71562e4c",3096:"d2f15289",3111:"b56db2ae",3243:"47f48206",3253:"d8962ee5",3355:"7cb49d99",3445:"66a24f85",3602:"e111f49e",3667:"302a1fdf",3695:"71d74089",3732:"6014cbc4",3894:"b6892f9f",4246:"02fcdb11",4312:"41fbe1c8",4340:"91120e0e",4368:"dc0aadc6",4451:"98dffdb1",4453:"123920d1",4568:"2ba910a5",4650:"2bfeb6f8",4726:"7ab2cfcf",4764:"1bede34c",5156:"3c97f66e",5162:"35899d4b",5237:"ea4ad9e4",5394:"89afcfcb",5731:"023f3059",5762:"358cc698",5826:"710da10c",5844:"076b0c7d",5865:"f560f81a",5889:"556e9cb5",6306:"2cfffe49",6388:"c8359c02",6535:"8a76d195",6668:"68dfc761",6786:"db54f13c",6839:"38fc56c7",6905:"583124a9",6921:"6ca53edf",6938:"432475e8",7095:"caded3e1",7235:"702194fe",7255:"1d8ab557",7264:"a084baa5",7731:"dbde8a35",7759:"6d69fb28",7829:"4816f9f1",7899:"76fc94a7",7918:"f7858f9d",7920:"5cfcfec7",8022:"31b5cd37",8267:"9c3ac12f",8272:"cf32cd20",8325:"b52e8d48",8518:"8917cfaf",8565:"faa4246f",8720:"fba7d350",8805:"66080acc",8806:"e11c71a6",8855:"8cac86e1",8910:"03323fb3",9055:"2fdb7549",9265:"2623dd46",9334:"5b61eb42",9358:"58b57f2f",9402:"37d7106e",9436:"2389fc0e",9522:"7482d847",9575:"73b45799",9592:"3159a27f",9661:"b532ad18",9817:"66ad186a",9832:"aaa979a9",9833:"7cc0af11",9968:"ed49d737"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="@0xsequence/docs:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",95099373:"9055","935f2afb":"53","791136a1":"66","412add97":"401",a2c9bd3d:"438",e90ca0df:"512","83b360ac":"711","5aa46366":"768","71ea24fd":"895",ac1abad9:"1000",dd30494d:"1087",eb12f589:"1096","012c6ecc":"1344","23a1414c":"1460","6ae90502":"1462","16451bdd":"1548","37cb5f81":"1561","843e9b55":"1587",a6ebf371:"1629","19429e8e":"1854",ddbbac58:"1910","47578b5f":"2101","31e8b2fc":"2310","235132b3":"2465","1c0f5032":"2617","215b8c20":"2645",a2fc7bac:"2665",f4068a22:"2776","89b59c59":"2820","5a94a26b":"2897","6282f18a":"2935","45c1221e":"2978","934b8fc0":"3009","23dee585":"3084","3f83f827":"3096",e94a0f70:"3111","77d5c907":"3243","47541eaf":"3253","76f123b5":"3355","1f7a7c0f":"3445","6c9ced59":"3602","3e73cc30":"3667","98d29602":"3695","5af075d2":"3732","3222cc2e":"3894","75f5d7ac":"4246","5a62e4f5":"4312",ca9e1004:"4340",a94703ab:"4368",be12a332:"4451","45db378c":"4453","624c0797":"4568","22b79583":"4650","554b4468":"4726","98da183f":"4764","4129286c":"5156","5a7d1807":"5162",e5d588ba:"5237",b5181e00:"5394",b1437ce7:"5731",eb8fe9c7:"5762","9bb54c83":"5826",cfa7cf69:"5844","22b25155":"5865",f98396c8:"5889","96f30867":"6306","8ec91c27":"6388","8cf5cfe8":"6535","5896231c":"6668","799e18f3":"6786","96624e9c":"6839","8d375ecb":"6905",b770db4a:"6921",e5c68d5f:"6938","9a4580b2":"7095","3effd4d4":"7235","7881d0e0":"7255",a9b86f3d:"7264","2b5d9d2b":"7731","69b8691c":"7759",f4a85aba:"7829",ef064e08:"7899","1a4e3797":"7920","4ea1ea74":"8022","59c1a1e7":"8267","3a369cf1":"8272","25f8f2e5":"8325",a7bd4aaa:"8518","097c57a4":"8565",bc9aec94:"8720","39dbcb7c":"8805","1e024a41":"8806","6bc4582f":"8910","41178b21":"9265","247783bb":"9334","8e4a4dd8":"9358",b86767bc:"9402",cd181bc5:"9436","400568a4":"9522","8c25c80e":"9575","5e95c892":"9661","14eb3368":"9817",abe49987:"9832","67f65dcc":"9833",ea4c1687:"9968"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return d[e].call(c.exports,c,c.exports,r),c.exports}r.m=d,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",66:"791136a1",401:"412add97",438:"a2c9bd3d",512:"e90ca0df",711:"83b360ac",768:"5aa46366",895:"71ea24fd",1e3:"ac1abad9",1087:"dd30494d",1096:"eb12f589",1344:"012c6ecc",1460:"23a1414c",1462:"6ae90502",1548:"16451bdd",1561:"37cb5f81",1587:"843e9b55",1629:"a6ebf371",1854:"19429e8e",1910:"ddbbac58",2101:"47578b5f",2310:"31e8b2fc",2465:"235132b3",2617:"1c0f5032",2645:"215b8c20",2665:"a2fc7bac",2776:"f4068a22",2820:"89b59c59",2897:"5a94a26b",2935:"6282f18a",2978:"45c1221e",3009:"934b8fc0",3084:"23dee585",3096:"3f83f827",3111:"e94a0f70",3243:"77d5c907",3253:"47541eaf",3355:"76f123b5",3445:"1f7a7c0f",3602:"6c9ced59",3667:"3e73cc30",3695:"98d29602",3732:"5af075d2",3894:"3222cc2e",4246:"75f5d7ac",4312:"5a62e4f5",4340:"ca9e1004",4368:"a94703ab",4451:"be12a332",4453:"45db378c",4568:"624c0797",4650:"22b79583",4726:"554b4468",4764:"98da183f",5156:"4129286c",5162:"5a7d1807",5237:"e5d588ba",5394:"b5181e00",5731:"b1437ce7",5762:"eb8fe9c7",5826:"9bb54c83",5844:"cfa7cf69",5865:"22b25155",5889:"f98396c8",6306:"96f30867",6388:"8ec91c27",6535:"8cf5cfe8",6668:"5896231c",6786:"799e18f3",6839:"96624e9c",6905:"8d375ecb",6921:"b770db4a",6938:"e5c68d5f",7095:"9a4580b2",7235:"3effd4d4",7255:"7881d0e0",7264:"a9b86f3d",7731:"2b5d9d2b",7759:"69b8691c",7829:"f4a85aba",7899:"ef064e08",7918:"17896441",7920:"1a4e3797",8022:"4ea1ea74",8267:"59c1a1e7",8272:"3a369cf1",8325:"25f8f2e5",8518:"a7bd4aaa",8565:"097c57a4",8720:"bc9aec94",8805:"39dbcb7c",8806:"1e024a41",8910:"6bc4582f",9055:"95099373",9265:"41178b21",9334:"247783bb",9358:"8e4a4dd8",9402:"b86767bc",9436:"cd181bc5",9522:"400568a4",9575:"8c25c80e",9661:"5e95c892",9817:"14eb3368",9832:"abe49987",9833:"67f65dcc",9968:"ea4c1687"}[e]||e)+"."+{53:"47a1c390",66:"6a04abd8",369:"739b0b4f",401:"12449cb5",438:"86894640",512:"54de9790",711:"b3b8f248",768:"86a6a315",895:"595e0b81",1e3:"ae2b165a",1087:"a78cfbe9",1096:"c3464b70",1344:"e6ba7c03",1460:"ffce4254",1462:"40d9b80b",1548:"b08014b8",1561:"413aa9e2",1587:"4d32b5bd",1629:"9fcd6aba",1854:"b627ad09",1910:"176db951",2050:"ceb27c4d",2101:"b87dd049",2310:"f7f8d145",2465:"b259f03f",2617:"7430984a",2645:"8154f207",2665:"f06d1120",2776:"d937135f",2820:"6a5e654f",2897:"7e40d3d4",2935:"b640ea5f",2978:"1b45d37f",3009:"735f2819",3084:"71562e4c",3096:"aa6de7d9",3111:"b56db2ae",3243:"47f48206",3253:"d8962ee5",3355:"7cb49d99",3445:"66a24f85",3602:"e111f49e",3667:"302a1fdf",3695:"71d74089",3732:"6014cbc4",3894:"b6892f9f",4246:"02fcdb11",4312:"41fbe1c8",4340:"91120e0e",4368:"dc0aadc6",4451:"98dffdb1",4453:"123920d1",4568:"2ba910a5",4650:"2bfeb6f8",4726:"7ab2cfcf",4764:"1bede34c",5156:"3c97f66e",5162:"35899d4b",5237:"ea4ad9e4",5394:"89afcfcb",5731:"023f3059",5762:"358cc698",5826:"710da10c",5844:"076b0c7d",5865:"f560f81a",5889:"556e9cb5",6306:"2cfffe49",6388:"c8359c02",6535:"8a76d195",6668:"68dfc761",6786:"db54f13c",6839:"38fc56c7",6905:"583124a9",6921:"6ca53edf",6938:"432475e8",7095:"caded3e1",7235:"702194fe",7255:"1d8ab557",7264:"a084baa5",7731:"dbde8a35",7759:"6d69fb28",7829:"4816f9f1",7899:"76fc94a7",7918:"f7858f9d",7920:"5cfcfec7",8022:"31b5cd37",8267:"9c3ac12f",8272:"dfb4ae2a",8325:"539de90a",8518:"8917cfaf",8565:"faa4246f",8720:"a79849a0",8805:"66080acc",8806:"e11c71a6",8855:"8cac86e1",8910:"03323fb3",9055:"2fdb7549",9265:"2623dd46",9334:"5b61eb42",9358:"58b57f2f",9402:"37d7106e",9436:"2389fc0e",9522:"7482d847",9575:"73b45799",9592:"3159a27f",9661:"b532ad18",9817:"66ad186a",9832:"aaa979a9",9833:"7cc0af11",9968:"ed49d737"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="@0xsequence/docs:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",95099373:"9055","935f2afb":"53","791136a1":"66","412add97":"401",a2c9bd3d:"438",e90ca0df:"512","83b360ac":"711","5aa46366":"768","71ea24fd":"895",ac1abad9:"1000",dd30494d:"1087",eb12f589:"1096","012c6ecc":"1344","23a1414c":"1460","6ae90502":"1462","16451bdd":"1548","37cb5f81":"1561","843e9b55":"1587",a6ebf371:"1629","19429e8e":"1854",ddbbac58:"1910","47578b5f":"2101","31e8b2fc":"2310","235132b3":"2465","1c0f5032":"2617","215b8c20":"2645",a2fc7bac:"2665",f4068a22:"2776","89b59c59":"2820","5a94a26b":"2897","6282f18a":"2935","45c1221e":"2978","934b8fc0":"3009","23dee585":"3084","3f83f827":"3096",e94a0f70:"3111","77d5c907":"3243","47541eaf":"3253","76f123b5":"3355","1f7a7c0f":"3445","6c9ced59":"3602","3e73cc30":"3667","98d29602":"3695","5af075d2":"3732","3222cc2e":"3894","75f5d7ac":"4246","5a62e4f5":"4312",ca9e1004:"4340",a94703ab:"4368",be12a332:"4451","45db378c":"4453","624c0797":"4568","22b79583":"4650","554b4468":"4726","98da183f":"4764","4129286c":"5156","5a7d1807":"5162",e5d588ba:"5237",b5181e00:"5394",b1437ce7:"5731",eb8fe9c7:"5762","9bb54c83":"5826",cfa7cf69:"5844","22b25155":"5865",f98396c8:"5889","96f30867":"6306","8ec91c27":"6388","8cf5cfe8":"6535","5896231c":"6668","799e18f3":"6786","96624e9c":"6839","8d375ecb":"6905",b770db4a:"6921",e5c68d5f:"6938","9a4580b2":"7095","3effd4d4":"7235","7881d0e0":"7255",a9b86f3d:"7264","2b5d9d2b":"7731","69b8691c":"7759",f4a85aba:"7829",ef064e08:"7899","1a4e3797":"7920","4ea1ea74":"8022","59c1a1e7":"8267","3a369cf1":"8272","25f8f2e5":"8325",a7bd4aaa:"8518","097c57a4":"8565",bc9aec94:"8720","39dbcb7c":"8805","1e024a41":"8806","6bc4582f":"8910","41178b21":"9265","247783bb":"9334","8e4a4dd8":"9358",b86767bc:"9402",cd181bc5:"9436","400568a4":"9522","8c25c80e":"9575","5e95c892":"9661","14eb3368":"9817",abe49987:"9832","67f65dcc":"9833",ea4c1687:"9968"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);nFiat On-Ramps | Sequence
-
+
diff --git a/games-sdk/index.html b/games-sdk/index.html
index 4ab57d651..f0d708a0d 100644
--- a/games-sdk/index.html
+++ b/games-sdk/index.html
@@ -4,7 +4,7 @@
Sequence Games SDK | Sequence
-
+
diff --git a/getting-started/erc20-token/index.html b/getting-started/erc20-token/index.html
index caaaf5eb2..968d0fa8a 100644
--- a/getting-started/erc20-token/index.html
+++ b/getting-started/erc20-token/index.html
@@ -4,7 +4,7 @@
Sending an ERC20 token | Sequence
-
+
diff --git a/getting-started/index.html b/getting-started/index.html
index 6df33147b..41d9e06db 100644
--- a/getting-started/index.html
+++ b/getting-started/index.html
@@ -4,7 +4,7 @@
Getting Started | Sequence
-
+
diff --git a/getting-started/sign-message/index.html b/getting-started/sign-message/index.html
index 80189720a..3c2258565 100644
--- a/getting-started/sign-message/index.html
+++ b/getting-started/sign-message/index.html
@@ -4,7 +4,7 @@
Signing Messages | Sequence
-
+
diff --git a/index.html b/index.html
index c44311896..cced0415e 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
Sequence web3 stack & wallet | Sequence
-
+
diff --git a/indexer/fetch-tokens/index.html b/indexer/fetch-tokens/index.html
index 2da9da0fc..788735f12 100644
--- a/indexer/fetch-tokens/index.html
+++ b/indexer/fetch-tokens/index.html
@@ -4,7 +4,7 @@
Tokens API | Sequence
-
+
@@ -20,8 +20,8 @@
The Sequence Metadata service keeps track of contracts which are "verified" by checking popular
sources like Coingecko, OpenSea, Sequence Builder (https://sequence.build) and the Sequence Token
Directory (https://github.com/0xsequence/token-directory). By calling the Indexer RPC methods with
-"metadataOptions": { "omitUnverified": true }, any contract address which has not been verified, will
+"metadataOptions": { "verifiedOnly": true }, any contract address which has not been verified, will
be omitted from the results. We recommend using this option all the time, but, the downside is
if your project's contracts are unverified, then they will also be omitted from the results. To help
with this, your options are to get verified with one of the sources above, or in your RPC calls to pass
-"metadataOptions": { "omitUnverified": true, "includeContracts": ["0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "0x8bb759bb68995343ff1e9d57ac85ff5c5fb79334"] }
+"metadataOptions": { "verifiedOnly": true, "includeContracts": ["0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "0x8bb759bb68995343ff1e9d57ac85ff5c5fb79334"] }
as an example.