<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

*   [Welcome][1]
*   [LitNodeClient][2]
    *   [Parameters][3]
    *   [getSignedChainDataToken][4]
        *   [Parameters][5]
    *   [getSignedToken][6]
        *   [Parameters][7]
    *   [saveSigningCondition][8]
        *   [Parameters][9]
    *   [getEncryptionKey][10]
        *   [Parameters][11]
    *   [saveEncryptionKey][12]
        *   [Parameters][13]
    *   [connect][14]
*   [Static Content - Encryption and decryption utilities][15]
*   [encryptString][16]
    *   [Parameters][17]
*   [decryptString][18]
    *   [Parameters][19]
*   [encryptFile][20]
    *   [Parameters][21]
*   [decryptFile][22]
    *   [Parameters][23]
*   [zipAndEncryptString][24]
    *   [Parameters][25]
*   [zipAndEncryptFiles][26]
    *   [Parameters][27]
*   [encryptFileAndZipWithMetadata][28]
    *   [Parameters][29]
*   [decryptZipFileWithMetadata][30]
    *   [Parameters][31]
*   [encryptZip][32]
    *   [Parameters][33]
*   [decryptZip][34]
    *   [Parameters][35]
*   [decryptWithSymmetricKey][36]
    *   [Parameters][37]
*   [encryptWithSymmetricKey][38]
    *   [Parameters][39]
*   [Dynamic Content - Loading content from a server][40]
*   [verifyJwt][41]
    *   [Parameters][42]
*   [Authentication Signature Utilities][43]
*   [checkAndSignAuthMessage][44]
    *   [Parameters][45]
*   [signAndSaveAuthMessage][46]
    *   [Parameters][47]
*   [disconnectWeb3][48]
*   [Conversion Utilities][49]
*   [blobToBase64String][50]
    *   [Parameters][51]
*   [base64StringToBlob][52]
    *   [Parameters][53]
*   [uint8arrayToString][54]
    *   [Parameters][55]
*   [uint8arrayFromString][56]
    *   [Parameters][57]
*   [fileToDataUrl][58]
    *   [Parameters][59]
*   [Other Utilities][60]
*   [humanizeAccessControlConditions][61]
    *   [Parameters][62]
*   [hashUnifiedAccessControlConditions][63]
    *   [Parameters][64]
*   [HTML NFT Utilities][65]
*   [findLITs][66]
    *   [Parameters][67]
*   [sendLIT][68]
    *   [Parameters][69]
*   [createHtmlLIT][70]
    *   [Parameters][71]
*   [mintLIT][72]
    *   [Parameters][73]
*   [unlockLitWithKey][74]
    *   [Parameters][75]
*   [toggleLock][76]
*   [injectViewerIFrame][77]
    *   [Parameters][78]
*   [Types][79]
*   [AccessControlCondition][80]
    *   [Properties][81]
*   [EVMContractCondition][82]
    *   [Properties][83]
*   [SolRpcCondition][84]
    *   [Properties][85]
*   [CosmosCondition][86]
    *   [Properties][87]
*   [ResourceId][88]
    *   [Properties][89]
*   [AuthSig][90]
    *   [Properties][91]
*   [Chain Info][92]
*   [LITChain][93]
    *   [Properties][94]
*   [LITEVMChain][95]
    *   [Properties][96]
*   [LITSVMChain][97]
    *   [Properties][98]
*   [Misc][99]
*   [LITCosmosChain][100]
    *   [Properties][101]
*   [LIT_CHAINS][102]
*   [LIT_SVM_CHAINS][103]
*   [LIT_COSMOS_CHAINS][104]
*   [ALL_LIT_CHAINS][105]
*   [getVarType][106]
    *   [Parameters][107]
*   [checkType][108]
    *   [Parameters][109]
*   [downloadFile][110]
    *   [Parameters][111]
*   [importSymmetricKey][112]
    *   [Parameters][113]
*   [generateSymmetricKey][114]
*   [encryptWithPubKey][115]
    *   [Parameters][116]
*   [decryptWithPrivKey][117]
    *   [Parameters][118]
*   [decimalPlaces][119]
    *   [Parameters][120]
*   [lookupNameServiceAddress][121]
    *   [Parameters][122]
*   [metadataForFile][123]
    *   [Parameters][124]
*   [CallRequest][125]
    *   [Properties][126]

## Welcome

Welcome to the LIT JS SDK API documentation.  To understand how these functions fit together, please view the documentation for this SDK, located at [https://developer.litprotocol.com/docs/SDK/intro][127]

## LitNodeClient

A LIT node client.  Connects directly to the LIT nodes to store and retrieve encryption keys and signing requests.  Only holders of an NFT that corresponds with a LIT may store and retrieve the keys.

### Parameters

*   `config` **[Object][128]** 

    *   `config.alertWhenUnauthorized` **[boolean][129]** Whether or not to show a JS alert() when a user tries to unlock a LIT but is unauthorized.  An exception will also be thrown regardless of this option. (optional, default `true`)
    *   `config.minNodeCount` **[number][130]** The minimum number of nodes that must be connected for the LitNodeClient to be ready to use. (optional, default `6`)
    *   `config.debug` **[boolean][129]** Whether or not to show debug messages. (optional, default `true`)

### getSignedChainDataToken

Request a signed JWT of any solidity function call from the LIT network.  There are no prerequisites for this function.  You should use this function if you need to transmit information across chains, or from a blockchain to a centralized DB or server.  The signature of the returned JWT verifies that the response is genuine.

#### Parameters

*   `params` **[Object][128]** 

    *   `params.callRequests` **[Array][131]<[CallRequest][132]>** The call requests to make.  The responses will be signed and returned.
    *   `params.chain` **[string][133]** The chain name of the chain that this contract is deployed on.  See LIT_CHAINS for currently supported chains.

Returns **[Object][128]** A signed JWT that proves the response to the function call is genuine. You may present this to a smart contract, or a server for authorization, and it can be verified using the verifyJwt function.

### getSignedToken

Request a signed JWT from the LIT network.  Before calling this function, you must either create or know of a resource id and access control conditions for the item you wish to gain authorization for.  You can create an access control condition using the saveSigningCondition function.

#### Parameters

*   `params` **[Object][128]** 

    *   `params.accessControlConditions` **[Array][131]<[AccessControlCondition][134]>** The access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.evmContractConditions` **[Array][131]<[EVMContractCondition][135]>** EVM Smart Contract access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  This is different than accessControlConditions because accessControlConditions only supports a limited number of contract calls.  evmContractConditions supports any contract call.  You must pass either accessControlConditions or evmContractConditions solRpcConditions or unifiedAccessControlConditions.
    *   `params.solRpcConditions` **[Array][131]<[SolRpcCondition][136]>** Solana RPC call conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.
    *   `params.unifiedAccessControlConditions` **[Array][131]<([AccessControlCondition][134] | [EVMContractCondition][135] | [SolRpcCondition][136])>** An array of unified access control conditions.  You may use AccessControlCondition, EVMContractCondition, or SolRpcCondition objects in this array, but make sure you add a conditionType for each one.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.chain` **[string][133]** The chain name of the chain that you are querying.  See ALL_LIT_CHAINS for currently supported chains.
    *   `params.authSig` **[AuthSig][137]** The authentication signature that proves that the user owns the crypto wallet address that meets the access control conditions.
    *   `params.resourceId` **[ResourceId][138]** The resourceId representing something on the web via a URL

Returns **[Object][128]** A signed JWT that proves you meet the access control conditions for the given resource id.  You may present this to a server for authorization, and the server can verify it using the verifyJwt function.

### saveSigningCondition

Associated access control conditions with a resource on the web.  After calling this function, users may use the getSignedToken function to request a signed JWT from the LIT network.  This JWT proves that the user meets the access control conditions, and is authorized to access the resource you specified in the resourceId parameter of the saveSigningCondition function.

#### Parameters

*   `params` **[Object][128]** 

    *   `params.accessControlConditions` **[Array][131]<[AccessControlCondition][134]>** The access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.evmContractConditions` **[Array][131]<[EVMContractCondition][135]>** EVM Smart Contract access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  This is different than accessControlConditions because accessControlConditions only supports a limited number of contract calls.  evmContractConditions supports any contract call.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.solRpcConditions` **[Array][131]<[SolRpcCondition][136]>** Solana RPC call conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.
    *   `params.unifiedAccessControlConditions` **[Array][131]<([AccessControlCondition][134] | [EVMContractCondition][135] | [SolRpcCondition][136])>** An array of unified access control conditions.  You may use AccessControlCondition, EVMContractCondition, or SolRpcCondition objects in this array, but make sure you add a conditionType for each one.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.chain` **[string][133]** The chain name of the chain that you are querying.  See ALL_LIT_CHAINS for currently supported chains.
    *   `params.authSig` **[AuthSig][137]** The authentication signature that proves that the user owns the crypto wallet address that meets the access control conditions
    *   `params.resourceId` **[ResourceId][138]** The resourceId representing something on the web via a URL
    *   `params.permanent` **[boolean][129]** Whether or not the access control condition should be saved permanently.  If false, the access control conditions will be updateable by the creator.  If you don't pass this param, it's set to true by default. (optional, default `true`)
    *   `params.permanant`  

Returns **[boolean][129]** Success

### getEncryptionKey

Retrieve the symmetric encryption key from the LIT nodes.  Note that this will only work if the current user meets the access control conditions specified when the data was encrypted.  That access control condition is typically that the user is a holder of the NFT that corresponds to this encrypted data.  This NFT token address and ID was specified when this LIT was created.

#### Parameters

*   `params` **[Object][128]** 

    *   `params.accessControlConditions` **[Array][131]<[AccessControlCondition][134]>** The access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.evmContractConditions` **[Array][131]<[EVMContractCondition][135]>** EVM Smart Contract access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  This is different than accessControlConditions because accessControlConditions only supports a limited number of contract calls.  evmContractConditions supports any contract call.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.solRpcConditions` **[Array][131]<[SolRpcCondition][136]>** Solana RPC call conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.
    *   `params.unifiedAccessControlConditions` **[Array][131]<([AccessControlCondition][134] | [EVMContractCondition][135] | [SolRpcCondition][136])>** An array of unified access control conditions.  You may use AccessControlCondition, EVMContractCondition, or SolRpcCondition objects in this array, but make sure you add a conditionType for each one.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.toDecrypt` **[string][133]** The ciphertext that you wish to decrypt encoded as a hex string
    *   `params.chain` **[string][133]** The chain name of the chain that you are querying.  See ALL_LIT_CHAINS for currently supported chains.
    *   `params.authSig` **[AuthSig][137]** The authentication signature that proves that the user owns the crypto wallet address meets the access control conditions.

Returns **[Uint8Array][139]** The symmetric encryption key that can be used to decrypt the locked content inside the LIT.  You should pass this key to the decryptZip function.

### saveEncryptionKey

Securely save the association between access control conditions and something that you wish to decrypt

#### Parameters

*   `params` **[Object][128]** 

    *   `params.accessControlConditions` **[Array][131]<[AccessControlCondition][134]>** The access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.evmContractConditions` **[Array][131]<[EVMContractCondition][135]>** EVM Smart Contract access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  This is different than accessControlConditions because accessControlConditions only supports a limited number of contract calls.  evmContractConditions supports any contract call.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.solRpcConditions` **[Array][131]<[SolRpcCondition][136]>** Solana RPC call conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.
    *   `params.unifiedAccessControlConditions` **[Array][131]<([AccessControlCondition][134] | [EVMContractCondition][135] | [SolRpcCondition][136])>** An array of unified access control conditions.  You may use AccessControlCondition, EVMContractCondition, or SolRpcCondition objects in this array, but make sure you add a conditionType for each one.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.chain` **[string][133]** The chain name of the chain that you are querying.  See ALL_LIT_CHAINS for currently supported chains.
    *   `params.authSig` **[AuthSig][137]** The authentication signature that proves that the user owns the crypto wallet address meets the access control conditions
    *   `params.symmetricKey` **[string][133]** The symmetric encryption key that was used to encrypt the locked content inside the LIT as a Uint8Array.  You should use zipAndEncryptString or zipAndEncryptFiles to get this encryption key.  This key will be hashed and the hash will be sent to the LIT nodes.  You must pass either symmetricKey or encryptedSymmetricKey.
    *   `params.encryptedSymmetricKey` **[Uint8Array][139]** The encrypted symmetric key of the item you with to update.  You must pass either symmetricKey or encryptedSymmetricKey.
    *   `params.permanent` **[boolean][129]** Whether or not the access control condition should be saved permanently.  If false, the access control conditions will be updateable by the creator.  If you don't pass this param, it's set to true by default. (optional, default `true`)
    *   `params.permanant`  

Returns **[Uint8Array][139]** The symmetricKey parameter that has been encrypted with the network public key.  Save this - you will need it to decrypt the content in the future.

### connect

Connect to the LIT nodes.

Returns **[Promise][140]** A promise that resolves when the nodes are connected.

## Static Content - Encryption and decryption utilities



## encryptString

Encrypt a string.  This is used to encrypt any string that is to be locked via the Lit Protocol.

### Parameters

*   `str` **[string][133]** The string to encrypt

Returns **[Promise][140]<[Object][128]>** A promise containing the encryptedString as a Blob and the symmetricKey used to encrypt it, as a Uint8Array.

## decryptString

Decrypt a string that was encrypted with the encryptString function.

### Parameters

*   `encryptedStringBlob` **([Blob][141] | File)** The encrypted string as a Blob
*   `symmKey` **[Uint8Array][139]** The symmetric key used that will be used to decrypt this.

Returns **[Promise][140]<[string][133]>** A promise containing the decrypted string

## encryptFile

Encrypt a file without doing any zipping or packing.  This is useful for large files.  A 1gb file can be encrypted in only 2 seconds, for example.  A new random symmetric key will be created and returned along with the encrypted file.

### Parameters

*   `params` **[Object][128]** 

    *   `params.file` **([Blob][141] | File)** The file you wish to encrypt

Returns **[Promise][140]<[Object][128]>** A promise containing an object with keys encryptedFile and symmetricKey.  encryptedFile is a Blob, and symmetricKey is a Uint8Array that can be used to decrypt the file.

## decryptFile

Decrypt a file that was encrypted with the encryptFile function, without doing any unzipping or unpacking.  This is useful for large files.  A 1gb file can be decrypted in only 1 second, for example.

### Parameters

*   `params` **[Object][128]** 

    *   `params.file` **([Blob][141] | File)** The file you wish to decrypt
    *   `params.symmetricKey` **[Uint8Array][139]** The symmetric key used that will be used to decrypt this.

Returns **[Promise][140]<[ArrayBuffer][142]>** A promise containing the decrypted file.  The file is an ArrayBuffer.

## zipAndEncryptString

Zip and encrypt a string.  This is used to encrypt any string that is to be locked via the Lit Protocol.

### Parameters

*   `string` **[string][133]** The string to zip and encrypt

Returns **[Promise][140]<[Object][128]>** A promise containing the encryptedZip as a Blob and the symmetricKey used to encrypt it, as a Uint8Array.  The encrypted zip will contain a single file called "string.txt"

## zipAndEncryptFiles

Zip and encrypt multiple files.

### Parameters

*   `files` **[Array][131]\<File>** An array of the files you wish to zip and encrypt

Returns **[Promise][140]<[Object][128]>** A promise containing the encryptedZip as a Blob and the symmetricKey used to encrypt it, as a Uint8Array.  The encrypted zip will contain a folder "encryptedAssets" and all of the files will be inside it.

## encryptFileAndZipWithMetadata

Encrypt a single file, save the key to the Lit network, and then zip it up with the metadata.

### Parameters

*   `params` **[Object][128]** 

    *   `params.authSig` **[Object][128]** The authSig of the user.  Returned via the checkAndSignAuthMessage function
    *   `params.accessControlConditions` **[Array][131]<[AccessControlCondition][134]>** The access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.evmContractConditions` **[Array][131]<[EVMContractCondition][135]>** EVM Smart Contract access control conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.  This is different than accessControlConditions because accessControlConditions only supports a limited number of contract calls.  evmContractConditions supports any contract call.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.solRpcConditions` **[Array][131]<[SolRpcCondition][136]>** Solana RPC call conditions that the user must meet to obtain this signed token.  This could be posession of an NFT, for example.
    *   `params.unifiedAccessControlConditions` **[Array][131]<([AccessControlCondition][134] | [EVMContractCondition][135] | [SolRpcCondition][136])>** An array of unified access control conditions.  You may use AccessControlCondition, EVMContractCondition, or SolRpcCondition objects in this array, but make sure you add a conditionType for each one.  You must pass either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions.
    *   `params.chain` **[string][133]** The chain name of the chain that this contract is deployed on.  See LIT_CHAINS for currently supported chains.
    *   `params.file` **File** The file you wish to encrypt
    *   `params.litNodeClient` **[LitNodeClient][143]** An instance of LitNodeClient that is already connected
    *   `params.readme` **[string][133]** An optional readme text that will be inserted into readme.txt in the final zip file.  This is useful in case someone comes across this zip file and wants to know how to decrypt it.  This file could contain instructions and a URL to use to decrypt the file.

Returns **[Promise][140]<[Object][128]>** A promise containing an object with 3 keys: zipBlob, encryptedSymmetricKey, and symmetricKey.  zipBlob is a zip file that contains an encrypted file and the metadata needed to decrypt it via the Lit network.  encryptedSymmetricKey is the symmetric key needed to decrypt the content, encrypted with the Lit network public key.  You may wish to store encryptedSymmetricKey in your own database to support quicker re-encryption operations when adding additional access control conditions in the future, but this is entirely optional, and this key is already stored inside the zipBlob.  symmetricKey is the raw symmetric key used to encrypt the files.  DO NOT STORE IT.  It is provided in case you wish to create additional "OR" access control conditions for the same file.

## decryptZipFileWithMetadata

Given a zip file with metadata inside it, unzip, load the metadata, and return the decrypted file and the metadata.  This zip file would have been created with the encryptFileAndZipWithMetadata function.

### Parameters

*   `params` **[Object][128]** 

    *   `params.authSig` **[Object][128]** The authSig of the user.  Returned via the checkAndSignAuthMessage function
    *   `params.file` **([Blob][141] | File)** The zip file blob with metadata inside it and the encrypted asset
    *   `params.litNodeClient` **[LitNodeClient][143]** An instance of LitNodeClient that is already connected
    *   `params.additionalAccessControlConditions`  

Returns **[Promise][140]<[Object][128]>** A promise containing an object that contains decryptedFile and metadata properties.  The decryptedFile is an ArrayBuffer that is ready to use, and metadata is an object that contains all the properties of the file like it's name and size and type.

## encryptZip

Encrypt a zip file created with JSZip using a new random symmetric key via WebCrypto.

### Parameters

*   `zip` **JSZip** The JSZip instance to encrypt

Returns **[Promise][140]<[Object][128]>** A promise containing the encryptedZip as a Blob and the symmetricKey used to encrypt it, as a Uint8Array string.

## decryptZip

Decrypt and unzip a zip that was created using encryptZip, zipAndEncryptString, or zipAndEncryptFiles.

### Parameters

*   `encryptedZipBlob` **([Blob][141] | File)** The encrypted zip as a Blob
*   `symmKey` **[Uint8Array][139]** The symmetric key used that will be used to decrypt this zip.

Returns **[Promise][140]<[Object][128]>** A promise containing a JSZip object indexed by the filenames of the zipped files.  For example, if you have a file called "meow.jpg" in the root of your zip, you could get it from the JSZip object by doing this: const imageBlob = await decryptedZip\['meow.jpg'].async('blob')

## decryptWithSymmetricKey

Decrypt an encrypted blob with a symmetric key.  Uses AES-CBC via SubtleCrypto

### Parameters

*   `encryptedBlob` **[Blob][141]** The encrypted blob that should be decrypted
*   `symmKey` **[Object][128]** The symmetric key

Returns **[Blob][141]** The decrypted blob

## encryptWithSymmetricKey

Encrypt a blob with a symmetric key

### Parameters

*   `symmKey` **[Object][128]** The symmetric key
*   `data` **[Blob][141]** The blob to encrypt

Returns **[Blob][141]** The encrypted blob

## Dynamic Content - Loading content from a server



## verifyJwt

Verify a JWT from the LIT network.  Use this for auth on your server.  For some background, users can define resources (URLs) for authorization via on-chain conditions using the saveSigningCondition function.  Other users can then request a signed JWT proving that their ETH account meets those on-chain conditions using the getSignedToken function.  Then, servers can verify that JWT using this function.  A successful verification proves that the user meets the on-chain conditions defined in the saveSigningCondition step.  For example, the on-chain condition could be posession of a specific NFT.

### Parameters

*   `params` **[Object][128]** 

    *   `params.jwt` **[string][133]** A JWT signed by the LIT network using the BLS12-381 algorithm

Returns **[Object][128]** An object with 4 keys: "verified": A boolean that represents whether or not the token verifies successfully.  A true result indicates that the token was successfully verified.  "header": the JWT header.  "payload": the JWT payload which includes the resource being authorized, etc.  "signature": A uint8array that represents the raw  signature of the JWT.

## Authentication Signature Utilities



## checkAndSignAuthMessage

Check for an existing cryptographic authentication signature and create one of it does not exist.  This is used to prove ownership of a given crypto wallet address to the Lit nodes.  The result is stored in LocalStorage so the user doesn't have to sign every time they perform an operation.

### Parameters

*   `params` **[Object][128]** 

    *   `params.chain` **[string][133]** The chain you want to use.  Find the supported list of chains here: [https://developer.litprotocol.com/docs/supportedChains][144]
    *   `params.resources` **[Array][131]<[string][133]>** Optional and only used with EVM chains.  A list of resources to be passed to Sign In with Ethereum.  These resources will be part of the Sign in with Ethereum signed message presented to the user.
    *   `params.switchChain` **[Array][131]<[boolean][129]>** Optional and only used with EVM chains right now.  Set to true by default.  Whether or not to ask Metamask or the user's wallet to switch chains before signing.  This may be desired if you're going to have the user send a txn on that chain.  On the other hand, if all you care about is the user's wallet signature, then you probably don't want to make them switch chains for no reason.  Pass false here to disable this chain switching behavior. (optional, default `true`)

Returns **[AuthSig][137]** The AuthSig created or retrieved

## signAndSaveAuthMessage

Sign the auth message with the user's wallet, and store it in localStorage.  Called by checkAndSignAuthMessage if the user does not have a signature stored.

### Parameters

*   `params` **[Object][128]** 

    *   `params.web3` **Web3Provider** An ethers.js Web3Provider instance
    *   `params.account` **[string][133]** The account to sign the message with
    *   `params.chainId`  
    *   `params.resources`  

Returns **[AuthSig][137]** The AuthSig created or retrieved

## disconnectWeb3

Delete any saved AuthSigs from local storage.  Takes no params and returns nothing.  This will also clear out the WalletConnect cache in local storage.  We often run this function as a result of the user pressing a "Logout" button.

## Conversion Utilities



## blobToBase64String

Convert a Blob to a base64urlpad string.  Note: This function returns a promise.

### Parameters

*   `blob` **([Blob][141] | File)** The Blob or File to turn into a base64 string

Returns **[Promise][140]<[String][133]>** A promise that resolves to the base64 string

## base64StringToBlob

Convert a base64urlpad string to a Blob.  Note: This function DOES NOT return a promise

### Parameters

*   `base64String` **[String][133]** The base64 string that to turn into a Blob

Returns **[Blob][141]** A blob that contains the decoded base64 data

## uint8arrayToString

Convert a Uint8Array to a string.  Supports various encodings.  This is a re-export of [https://www.npmjs.com/package/uint8arrays][145] and you can find the list of supported encodings here [https://github.com/multiformats/multibase/blob/master/multibase.csv][146]

### Parameters

*   `uint8array` **[Uint8Array][139]** The Uint8Array to convert to a string
*   `encoding` **[String][133]** The encoding to use when converting the Uint8Array to a string.

Returns **[String][133]** The string representation of the Uint8Array

## uint8arrayFromString

Convert a string to a Uint8Array.  Supports various encodings.  This is a re-export of [https://www.npmjs.com/package/uint8arrays][145] and you can find the list of supported encodings here [https://github.com/multiformats/multibase/blob/master/multibase.csv][146]

### Parameters

*   `str` **[String][133]** The string to convert to a Uint8Array
*   `encoding` **[String][133]** The encoding to use when converting the string to a Uint8Array.

Returns **[String][133]** The Uint8Array representation of the data from the string

## fileToDataUrl

Convert a file to a data URL, which could then be embedded in a LIT.  A data URL is a string representation of a file.

### Parameters

*   `file` **File** The file to turn into a data url

Returns **[string][133]** The data URL.  This is a string representation that can be used anywhere the original file would be used.

## Other Utilities



## humanizeAccessControlConditions

The human readable name for an access control condition

### Parameters

*   `params` **[Object][128]** 

    *   `params.accessControlConditions` **[Array][131]** The array of access control conditions that you want to humanize
    *   `params.evmContractConditions` **[Array][131]** The array of evm contract conditions that you want to humanize
    *   `params.solRpcConditions` **[Array][131]** The array of Solana RPC conditions that you want to humanize
    *   `params.unifiedAccessControlConditions` **[Array][131]** The array of unified access control conditions that you want to humanize
    *   `params.tokenList`  
    *   `params.myWalletAddress`  

Returns **[Promise][140]<[string][133]>** A promise containing a human readable description of the access control conditions

## hashUnifiedAccessControlConditions

Hash the unified access control conditions using SHA-256 in a deterministic way.

### Parameters

*   `unifiedAccessControlConditions` **[Object][128]** The unified access control conditions to hash.

Returns **[Promise][140]<[ArrayBuffer][142]>** A promise that resolves to an ArrayBuffer that contains the hash

## HTML NFT Utilities



## findLITs

Finds the tokens that the current user owns from the predeployed LIT contracts

### Parameters

*   `params` **[Object][128]** 

    *   `params.chain` **[string][133]** The chain that was minted on. "ethereum" and "polygon" are currently supported.
    *   `params.accountAddress` **[number][130]** The account address to check

Returns **[array][131]** The token ids owned by the accountAddress

## sendLIT

Send a token to another account

### Parameters

*   `params` **[Object][128]** 

    *   `params.tokenMetadata` **[string][133]** The token metadata of the token to be transferred.  Should include tokenId, tokenAddress, and chain
    *   `params.to` **[number][130]** The account address to send the token to

Returns **[Object][128]** Success or error

## createHtmlLIT

Create a ready-to-go LIT using provided HTML/CSS body and an encrypted zip data url.  You need to design your LIT with HTML and CSS, and provide an unlock button with the id "unlockButton" inside your HTML.  This function will handle the rest.

### Parameters

*   `params` **[Object][128]** 

    *   `params.title` **[string][133]** The title that will be used for the title tag in the outputted HTML
    *   `params.htmlBody` **[number][130]** The HTML body for the locked state of the LIT.  All users will be able to see this HTML.  This HTML must have a button with an id of "unlockButton" which will be automatically set up to decrypt and load the encryptedZipDataUrl
    *   `params.css` **[string][133]** Any CSS you would like to include in the outputted HTML
    *   `params.encryptedZipDataUrl` **[number][130]** a data URL of the encrypted zip that contains the locked content that only token holders will be able to view.
    *   `params.chain` **[string][133]** The chain that the corresponding NFT was minted on.  "ethereum" and "polygon" are currently supported.
    *   `params.npmPackages` **[Array][131]** An array of strings of NPM package names that should be embedded into this LIT.  These packages will be pulled down via unpkg, converted to data URLs, and embedded in the LIT HTML.  You can include any packages from npmjs.com. (optional, default `[]`)
    *   `params.tokenAddress` **[string][133]** The token address of the corresponding NFT for this LIT.  ERC721 and ERC 1155 tokens are currently supported.
    *   `params.tokenId` **[number][130]** The ID of the token of the corresponding NFT for this LIT.  Only holders of this token ID will be able to unlock and decrypt this LIT.
    *   `params.accessControlConditions`  
    *   `params.encryptedSymmetricKey`  

Returns **[Promise][140]<[string][133]>** A promise containing the HTML string that is now a LIT.  You can send this HTML around and only token holders will be able to unlock and decrypt the content inside it.  Included in the HTML is this LIT JS SDK itself, the encrypted locked content, an automatic connection to the LIT nodes network, and a handler for a button with id "unlockButton" which will perform the unlock operation when clicked.

## mintLIT

This function mints a LIT using our pre-deployed token contracts.  You may use our contracts, or you may supply your own.  Our contracts are ERC1155 tokens on Polygon and Ethereum.  Using these contracts is the easiest way to get started.

### Parameters

*   `params` **[Object][128]** 

    *   `params.chain` **[string][133]** The chain to mint on.  "ethereum" and "polygon" are currently supported.
    *   `params.quantity` **[number][130]** The number of tokens to mint.  Note that these will be fungible, so they will not have serial numbers.

Returns **[Object][128]** The txHash, tokenId, tokenAddress, mintingAddress, and authSig.

## unlockLitWithKey

Manually unlock a LIT with a symmetric key.  You can obtain this key by calling "checkAndSignAuthMessage" to get an authSig, then calling "LitNodeClient.getEncryptionKey" to get the key.  If you want to see an example, check out the implementation of "toggleLock" which does all those operations and then calls this function at the end (unlockLitWithKey)

### Parameters

*   `params` **[Object][128]** 

    *   `params.symmetricKey` **[Uint8Array][139]** The decryption key obtained by calling "LitNodeClient.getEncryptionKey"

Returns **[promise][140]** A promise that will resolve when the LIT is unlocked

## toggleLock

Lock and unlock the encrypted content inside a LIT.  This content is only viewable by holders of the NFT that corresponds to this LIT.  Locked content will be decrypted and placed into the HTML element with id "mediaGridHolder".  The HTML element with the id "lockedHeader" will have it's text automatically changed to LOCKED or UNLOCKED to denote the state of the LIT.  Note that if you're creating a LIT using the createHtmlLIT function, you do not need to use this function, because this function is automatically bound to any button in your HTML with the id "unlockButton".

Returns **[Promise][140]** the promise will resolve when the LIT has been unlocked or an error message has been shown informing the user that they are not authorized to unlock the LIT

## injectViewerIFrame

Inject an iFrame into the current page that will display a LIT.  This function safely sandboxes the content in the iFrame so that the LIT cannot see cookies or localStorage of the parent website.

### Parameters

*   `params` **[Object][128]** 

    *   `params.destinationId` **[Object][128]** The DOM ID of the element to inject the iFrame into
    *   `params.title` **[string][133]** The title of the content being displayed
    *   `params.fileUrl` **[string][133]** The URL of the content that will be shown in the iFrame
    *   `params.className` **[string][133]** An optional DOM class name to add to the iFrame for styling

## Types



## AccessControlCondition

Type: [Object][128]

### Properties

*   `contractAddress` **[string][133]** The address of the contract that will be queried
*   `chain` **[string][133]** The chain name of the chain that this contract is deployed on.  See LIT_CHAINS for currently supported chains.
*   `standardContractType` **[string][133]** If the contract is an ERC20, ERC721, or ERC1155, please put that here
*   `method` **[string][133]** The smart contract function to call
*   `parameters` **[Array][131]** The parameters to use when calling the smart contract.  You can use the special ":userAddress" parameter which will be replaced with the requesting user's wallet address, verified via message signature
*   `returnValueTest` **[Object][128]** An object containing two keys: "comparator" and "value".  The return value of the smart contract function will be compared against these.  For example, to check if someone holds an NFT, you could use "comparator: >" and "value: 0" which would check that a user has a token balance greater than zero.

## EVMContractCondition

Type: [Object][128]

### Properties

*   `contractAddress` **[string][133]** The address of the contract that will be queried
*   `chain` **[string][133]** The chain name of the chain that this contract is deployed on.  See LIT_CHAINS for currently supported chains.
*   `functionName` **[string][133]** The smart contract function to call
*   `functionParams` **[Array][131]** The parameters to use when calling the smart contract.  You can use the special ":userAddress" parameter which will be replaced with the requesting user's wallet address, verified via message signature
*   `functionAbi` **[Object][128]** The ABI of the smart contract function to call.  This is used to encode the function parameters and decode the return value of the function.  Do not pass the entire contract ABI here.  Instead, find the function you want to call in the contract ABI and pass that function's ABI here.
*   `returnValueTest` **[Object][128]** An object containing three keys: "key", "comparator" and "value".  The return value of the smart contract function will be compared against these.  For example, to check if someone holds an NFT, you could use "key": "", "comparator: >" and "value: 0" which would check that a user has a token balance greater than zero.  The "key" is used when the return value is a struct which contains multiple values and should be the name of the returned value from the function abi.  You must always pass "key" when using "returnValueTest", even if you pass an empty string for it, because the function only returns a single value.

## SolRpcCondition

Type: [Object][128]

### Properties

*   `method` **[string][133]** The Solana RPC method to be called.  You can find a list here: [https://docs.solana.com/developing/clients/jsonrpc-api][147]
*   `params` **[Array][131]** The parameters to use when making the RPC call.  You can use the special ":userAddress" parameter which will be replaced with the requesting user's wallet address, verified via message signature
*   `chain` **[string][133]** The chain name of the chain that this contract is deployed on.  See ALL_LIT_CHAINS for currently supported chains.  On Solana, we support "solana" for mainnet, "solanaDevnet" for devnet and "solanaTestnet" for testnet.
*   `returnValueTest` **[Object][128]** An object containing three keys: "key", "comparator" and "value".  The return value of the rpc call will be compared against these.  The "key" selector supports JSONPath syntax, so you can filter and iterate over the results.  For example, to check if someone holds an NFT with address 29G6GSKNGP8K6ATy65QrNZk4rNgsZX1sttvb5iLXWDcE, you could use "method": "GetTokenAccountsByOwner", "params": \[":userAddress",{"programId":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"encoding":"jsonParsed"}], "key": "$\[?(@.account.data.parsed.info.mint == "29G6GSKNGP8K6ATy65QrNZk4rNgsZX1sttvb5iLXWDcE")].account.data.parsed.info.tokenAmount.amount", "comparator: >" and "value: 0" which would check that a user has a token balance greater than zero.  The "key" is used when the return value is an array or object which contains multiple values and should be the name of the returned value or a JSONPath item.  You must always pass "key" when using "returnValueTest", even if you pass an empty string for it, because the rpc call only returns a single value.

## CosmosCondition

Type: [Object][128]

### Properties

*   `path` **[string][133]** The RPC URL path that will be called.  This will typically contain any parameters you need for the call.  Note that you can use the special ":userAddress" parameter which will be replaced with the requesting user's wallet address, verified via message signature.  For example, this path would be used to get the requesting user's balance: "/cosmos/bank/v1beta1/balances/:userAddress"
*   `chain` **[string][133]** The chain name of the chain that this contract is deployed on.  See ALL_LIT_CHAINS for currently supported chains.  On Cosmos we currently support "cosmos" and "kyve"
*   `returnValueTest` **[Object][128]** An object containing three keys: "key", "comparator" and "value".  The return value of the rpc call will be compared against these.  The "key" selector supports JSONPath syntax, so you can filter and iterate over the results.  For example, to check the balance of someone's account, you can use the key "$.balances\[0].amount" which will pull out balances\[0].amount from the JSON response and compare it against the "value" field according to the "comparator".  The "key" is used when the return value is an array or object which contains multiple values and should be the name of the returned value or a JSONPath item.  You must always pass "key" when using "returnValueTest", even if you pass an empty string for it, because the rpc call only returns a single value.

## ResourceId

Type: [Object][128]

### Properties

*   `baseUrl` **[string][133]** The base url of the resource that will be authorized
*   `path` **[string][133]** The path of the url of the resource that will be authorized
*   `orgId` **[string][133]** The org id that the user would be authorized to belong to.  The orgId key must be present but it may contain an empty string if you don't need to store anything in it.
*   `role` **[string][133]** The role that the user would be authorized to have.  The role key must be present but it may contain an empty string if you don't need to store anything in it.
*   `extraData` **[string][133]** Any extra data you may want to store.  You may store stringified JSON in here, for example.  The extraData key must be present but it may contain an empty string if you don't need to store anything in it.

## AuthSig

Type: [Object][128]

### Properties

*   `sig` **[string][133]** The actual hex-encoded signature
*   `derivedVia` **[string][133]** The method used to derive the signature. Typically "web3.eth.personal.sign"
*   `signedMessage` **[string][133]** The message that was signed
*   `address` **[string][133]** The crypto wallet address that signed the message

## Chain Info



## LITChain

Type: [Object][128]

### Properties

*   `vmType` **[string][133]** Either EVM for an Ethereum compatible chain or SVM for a Solana compatible chain
*   `name` **[string][133]** The human readable name of the chain

## LITEVMChain

Type: [Object][128]

### Properties

*   `contractAddress` **[string][133]** The address of the token contract for the optional predeployed ERC1155 contract.  Only present on EVM chains.
*   `chainId` **[string][133]** The chain ID of the chain that this token contract is deployed on.  Used for EVM chains.
*   `name` **[string][133]** The human readable name of the chain

## LITSVMChain

Type: [Object][128]

### Properties

*   `name` **[string][133]** The human readable name of the chain

## Misc



## LITCosmosChain

Type: [Object][128]

### Properties

*   `name` **[string][133]** The human readable name of the chain

## LIT_CHAINS

EVM Chains supported by the LIT protocol.  Each chain includes an optional pre-deployed token contract that you may use for minting LITs.  These are ERC1155 contracts that let you mint any quantity of a given token.  Use the chain name as a key in this object.

Type: [LITEVMChain][148]

## LIT_SVM_CHAINS

Solana Chains supported by the LIT protocol.  Use the chain name as a key in this object.

Type: [LITSVMChain][149]

## LIT_COSMOS_CHAINS

Cosmos Chains supported by the LIT protocol.  Use the chain name as a key in this object.

Type: [LITCosmosChain][150]

## ALL_LIT_CHAINS

All Chains supported by the LIT protocol.  Use the chain name as a key in this object.

Type: [LITChain][151]

## getVarType

Get the type of a variable, could be an object instance type.
eg Uint8Array instance should return 'Uint8Array`as string
or simply a`string`or`int\` type

### Parameters

*   `value` **any** 

Returns **[String][133]** type

## checkType

Check if the given value is the given type
If not, throw `invalidParamType` error

### Parameters

*   `$0` **[Object][128]** 

    *   `$0.value`  
    *   `$0.allowedTypes`  
    *   `$0.paramName`  
    *   `$0.functionName`  
    *   `$0.throwOnError`   (optional, default `true`)
*   `value` **any** 
*   `allowedTypes` **[Array][131]<[String][133]>** 
*   `paramName` **[string][133]** 
*   `functionName` **[string][133]** 
*   `throwOnError` **[boolean][129]** 

Returns **[Boolean][129]** true/false

## downloadFile

Download a file in memory to the user's computer

### Parameters

*   `params` **[Object][128]** 

    *   `params.filename` **[string][133]** The name of the file
    *   `params.data` **[Uint8Array][139]** The actual file itself as a Uint8Array
    *   `params.mimetype` **[string][133]** The mime type of the file

Returns **[string][133]** The data URL.  This is a string representation that can be used anywhere the original file would be used.

## importSymmetricKey

Import a symmetric key from a Uint8Array to a webcrypto key.  You should only use this if you're handling your own key generation and management with Lit.  Typically, Lit handles this internally for you.

### Parameters

*   `symmKey` **[Uint8Array][139]** The symmetric key to import

Returns **[Promise][140]\<CryptoKey>** A promise that resolves to the imported key

## generateSymmetricKey

Generate a new random symmetric key using WebCrypto subtle API.  You should only use this if you're handling your own key generation and management with Lit.  Typically, Lit handles this internally for you.

Returns **[Promise][140]\<CryptoKey>** A promise that resolves to the generated key

## encryptWithPubKey

Encrypt a blob with the public key of a receiver

### Parameters

*   `receiverPublicKey` **[string][133]** The base64 encoded 32 byte public key.  The corresponding private key will be able to decrypt this blob
*   `data` **[Blob][141]** The blob to encrypt
*   `version` **[string][133]** The encryption algorithm to use.  This should be set to "x25519-xsalsa20-poly1305" as no other algorithms are implemented right now.

Returns **[Blob][141]** The encrypted blob

## decryptWithPrivKey

Decrypt a blob with a private key

### Parameters

*   `encryptedData` **[Blob][141]** The blob to decrypt
*   `receiverPrivateKey` **[string][133]** The base64 encoded 32 byte private key.  The corresponding public key was used to encrypt this blob
*   `version` **[string][133]** The encryption algorithm to use.  This should be set to "x25519-xsalsa20-poly1305" as no other algorithms are implemented right now.

Returns **[Blob][141]** The decrypted blob

## decimalPlaces

Get the number of decimal places in a token

### Parameters

*   `params` **[Object][128]** 

    *   `params.contractAddress` **[string][133]** The token contract address
    *   `params.chain` **[string][133]** The chain on which the token is deployed

Returns **[number][130]** The number of decimal places in the token

## lookupNameServiceAddress

Lookup an eth address from a given ENS name

### Parameters

*   `params` **[Object][128]** 

    *   `params.chain` **[string][133]** The chain on which to resolve the name
    *   `params.name` **[string][133]** The name to resolve

Returns **[string][133]** The resolved eth address

## metadataForFile

Get all the metadata needed to decrypt something in the future.  If you're encrypting files with Lit and storing them in IPFS or Arweave, then this function will provide you with a properly formatted metadata object that you should save alongside the files.

### Parameters

*   `params` **[Object][128]** 

    *   `params.accessControlConditions` **[Array][131]** The array of access control conditions defined for the object
    *   `params.chain` **[string][133]** The blockchain on which the access control conditions should be checked
    *   `params.encryptedSymmetricKey` **[Uint8Array][139]** The encrypted symmetric key that was returned by the LitNodeClient.saveEncryptionKey function
    *   `params.objectUrl` **[string][133]** The url to the object, like an IPFS or Arweave url.
    *   `params.name`  
    *   `params.type`  
    *   `params.size`  
    *   `params.evmContractConditions`  
    *   `params.solRpcConditions`  
    *   `params.unifiedAccessControlConditions`  

Returns **[Object][128]** An object with 3 keys: "verified": A boolean that represents whether or not the token verifies successfully.  A true result indicates that the token was successfully verified.  "header": the JWT header.  "payload": the JWT payload which includes the resource being authorized, etc.

## CallRequest

Type: [Object][128]

### Properties

*   `to` **[string][133]** The address of the contract that will be queried
*   `from` **[string][133]** Optional.  The address calling the function.
*   `data` **[string][133]** Hex encoded data to send to the contract.

[1]: #welcome

[2]: #litnodeclient

[3]: #parameters

[4]: #getsignedchaindatatoken

[5]: #parameters-1

[6]: #getsignedtoken

[7]: #parameters-2

[8]: #savesigningcondition

[9]: #parameters-3

[10]: #getencryptionkey

[11]: #parameters-4

[12]: #saveencryptionkey

[13]: #parameters-5

[14]: #connect

[15]: #static-content---encryption-and-decryption-utilities

[16]: #encryptstring

[17]: #parameters-6

[18]: #decryptstring

[19]: #parameters-7

[20]: #encryptfile

[21]: #parameters-8

[22]: #decryptfile

[23]: #parameters-9

[24]: #zipandencryptstring

[25]: #parameters-10

[26]: #zipandencryptfiles

[27]: #parameters-11

[28]: #encryptfileandzipwithmetadata

[29]: #parameters-12

[30]: #decryptzipfilewithmetadata

[31]: #parameters-13

[32]: #encryptzip

[33]: #parameters-14

[34]: #decryptzip

[35]: #parameters-15

[36]: #decryptwithsymmetrickey

[37]: #parameters-16

[38]: #encryptwithsymmetrickey

[39]: #parameters-17

[40]: #dynamic-content---loading-content-from-a-server

[41]: #verifyjwt

[42]: #parameters-18

[43]: #authentication-signature-utilities

[44]: #checkandsignauthmessage

[45]: #parameters-19

[46]: #signandsaveauthmessage

[47]: #parameters-20

[48]: #disconnectweb3

[49]: #conversion-utilities

[50]: #blobtobase64string

[51]: #parameters-21

[52]: #base64stringtoblob

[53]: #parameters-22

[54]: #uint8arraytostring

[55]: #parameters-23

[56]: #uint8arrayfromstring

[57]: #parameters-24

[58]: #filetodataurl

[59]: #parameters-25

[60]: #other-utilities

[61]: #humanizeaccesscontrolconditions

[62]: #parameters-26

[63]: #hashunifiedaccesscontrolconditions

[64]: #parameters-27

[65]: #html-nft-utilities

[66]: #findlits

[67]: #parameters-28

[68]: #sendlit

[69]: #parameters-29

[70]: #createhtmllit

[71]: #parameters-30

[72]: #mintlit

[73]: #parameters-31

[74]: #unlocklitwithkey

[75]: #parameters-32

[76]: #togglelock

[77]: #injectvieweriframe

[78]: #parameters-33

[79]: #types

[80]: #accesscontrolcondition

[81]: #properties

[82]: #evmcontractcondition

[83]: #properties-1

[84]: #solrpccondition

[85]: #properties-2

[86]: #cosmoscondition

[87]: #properties-3

[88]: #resourceid

[89]: #properties-4

[90]: #authsig

[91]: #properties-5

[92]: #chain-info

[93]: #litchain

[94]: #properties-6

[95]: #litevmchain

[96]: #properties-7

[97]: #litsvmchain

[98]: #properties-8

[99]: #misc

[100]: #litcosmoschain

[101]: #properties-9

[102]: #lit_chains

[103]: #lit_svm_chains

[104]: #lit_cosmos_chains

[105]: #all_lit_chains

[106]: #getvartype

[107]: #parameters-34

[108]: #checktype

[109]: #parameters-35

[110]: #downloadfile

[111]: #parameters-36

[112]: #importsymmetrickey

[113]: #parameters-37

[114]: #generatesymmetrickey

[115]: #encryptwithpubkey

[116]: #parameters-38

[117]: #decryptwithprivkey

[118]: #parameters-39

[119]: #decimalplaces

[120]: #parameters-40

[121]: #lookupnameserviceaddress

[122]: #parameters-41

[123]: #metadataforfile

[124]: #parameters-42

[125]: #callrequest

[126]: #properties-10

[127]: https://developer.litprotocol.com/docs/SDK/intro

[128]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[129]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[130]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[131]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[132]: #callrequest

[133]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[134]: #accesscontrolcondition

[135]: #evmcontractcondition

[136]: #solrpccondition

[137]: #authsig

[138]: #resourceid

[139]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array

[140]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise

[141]: https://developer.mozilla.org/docs/Web/API/Blob

[142]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer

[143]: #litnodeclient

[144]: https://developer.litprotocol.com/docs/supportedChains

[145]: https://www.npmjs.com/package/uint8arrays

[146]: https://github.com/multiformats/multibase/blob/master/multibase.csv

[147]: https://docs.solana.com/developing/clients/jsonrpc-api

[148]: #litevmchain

[149]: #litsvmchain

[150]: #litcosmoschain

[151]: #litchain
