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: int | None = None)[source]#
Load elements from a blockchain smart contract.
See supported blockchains here: https://python.langchain.com/v0.2/api_reference/community/document_loaders/langchain_community.document_loaders.blockchain.BlockchainType.html
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 blockchain 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 (int | None) β The maximum execution time (sec).
Methods
__init__
(contract_address[,Β blockchainType,Β ...])- param contract_address:
The address of the smart contract.
A lazy loader for Documents.
aload
()Load data into Document objects.
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: int | None = 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 (int | None) β The maximum execution time (sec).
- async alazy_load() AsyncIterator[Document] #
A lazy loader for Documents.
- Return type:
AsyncIterator[Document]
- load_and_split(text_splitter: TextSplitter | None = 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]
Examples using BlockchainDocumentLoader