Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Feb 17, 2024. It is now read-only.

Cyfrin/alchemy_sdk_py

Repository files navigation

alchemy_sdk_py (Beta)

An SDK to use the Alchemy API


Alchemy logo


Getting Started

Requirements

  • Python 3.7 or higher
    • You'll know you've done it right if you can run python3 --version in your terminal and see something like Python 3.10.6

Installation

pip3 install alchemy_sdk_py

Quickstart

Get an API Key

After installing, you'll need to sign up for an API key and set it as an ALCHEMY_API_KEY environment variable. You can place them in a .env file if you like just please don't push the .env file to GitHub.

.env

ALCHEMY_API_KEY="asdfasfsfasf

If you're unfamiliar with environment variables, you can use the API to set the key directly using the SDK - please don't do this in production code.

from alchemy_sdk_py import Alchemy
alchemy = Alchemy(api_key="asdfasfsfasf", network="eth_mainnet")

If you have your environment variable set, and you want to use eth mainnet, you can just do this:

from alchemy_sdk_py import Alchemy
alchemy = Alchemy()

You can also set the network ID using the chainId, or hex, and even update it later.

# For Goerli ETH
alchemy = Alchemy(network=5)
# For Polygon ("0x89" is hex for 137)
alchemy.set_network("0x89")

Useage

from alchemy_sdk_py import Alchemy
alchemy = Alchemy()
current_block_number = alchemy.get_current_block_number()
print(current_block_number)
# prints the current block number

With web3.py

from alchemy_sdk_py import Alchemy
from web3 import Web3
alchemy = Alchemy()
w3 = Web3(Web3.HTTPProvider(alchemy.base_url))

Get all ERC20, value, and NFT transfers for an address

The following code will get you every transfer in and out of a single wallet address.

from alchemy_sdk_py import Alchemy
alchemy = Alchemy()
address = "YOUR_ADDRESS_HERE"
transfers, page_key = alchemy.get_asset_transfers(from_address=address)
print(transfers)
# prints every transfer in or out that's ever happened on the address

Get contract metadata for any NFT

ENS = "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
contract_metadata = alchemy.get_contract_metadata(ENS)
print(contract_metadata["contractMetadata"]["openSea"]["collectionName"])
# prints "ENS: Ethereum Name Service"

What's here and what's not

What this currently has

Just about everything in the Alchemy SDK section of the docs.

Currently not implemented

  • batchRequests
  • web sockets
  • Notify API & filters ie eth_newFilter
  • Async support
  • ENS Support for addresses
  • Double check the NFT, Transact, and Token docs for function
  • Trace API
  • Debug API

About

An SDK to use the Alchemy API

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /