langchain_community.document_loaders.blockchain
.BlockchainDocumentLoader¶
- class langchain_community.document_loaders.blockchain.BlockchainDocumentLoader(contract_address: str, blockchainType: BlockchainType = BlockchainType.ETH_MAINNET, api_key: str = 'docs-demo', startToken: str = '', get_all_tokens: bool = False, max_execution_time: Optional[int] = None)[source]¶
Load elements from a blockchain smart contract.
The supported blockchains are: Ethereum mainnet, Ethereum Goerli testnet, Polygon mainnet, and Polygon Mumbai testnet.
If no BlockchainType is specified, the default is Ethereum mainnet.
The Loader uses the Alchemy API to interact with the blockchain. ALCHEMY_API_KEY environment variable must be set to use this loader.
The API returns 100 NFTs per request and can be paginated using the startToken parameter.
If get_all_tokens is set to True, the loader will get all tokens on the contract. Note that for contracts with a large number of tokens, this may take a long time (e.g. 10k tokens is 100 requests). Default value is false for this reason.
The max_execution_time (sec) can be set to limit the execution time of the loader.
- Future versions of this loader can:
Support additional Alchemy APIs (e.g. getTransactions, etc.)
Support additional blockain APIs (e.g. Infura, Opensea, etc.)
- Parameters
contract_address (str) – The address of the smart contract.
blockchainType (BlockchainType) – The blockchain type.
api_key (str) – The Alchemy API key.
startToken (str) – The start token for pagination.
get_all_tokens (bool) – Whether to get all tokens on the contract.
max_execution_time (Optional[int]) – The maximum execution time (sec).
Methods
__init__
(contract_address[, blockchainType, ...])- param contract_address
The address of the smart contract.
A lazy loader for Documents.
A lazy loader for Documents.
load
()Load data into Document objects.
load_and_split
([text_splitter])Load Documents and split into chunks.
- __init__(contract_address: str, blockchainType: BlockchainType = BlockchainType.ETH_MAINNET, api_key: str = 'docs-demo', startToken: str = '', get_all_tokens: bool = False, max_execution_time: Optional[int] = None)[source]¶
- Parameters
contract_address (str) – The address of the smart contract.
blockchainType (BlockchainType) – The blockchain type.
api_key (str) – The Alchemy API key.
startToken (str) – The start token for pagination.
get_all_tokens (bool) – Whether to get all tokens on the contract.
max_execution_time (Optional[int]) – The maximum execution time (sec).
- async alazy_load() AsyncIterator[Document] ¶
A lazy loader for Documents.
- Return type
AsyncIterator[Document]
- load_and_split(text_splitter: Optional[TextSplitter] = None) List[Document] ¶
Load Documents and split into chunks. Chunks are returned as Documents.
Do not override this method. It should be considered to be deprecated!
- Parameters
text_splitter (Optional[TextSplitter]) – TextSplitter instance to use for splitting documents. Defaults to RecursiveCharacterTextSplitter.
- Returns
List of Documents.
- Return type
List[Document]