Open source metadata processing framework
Project description
offchain
offchain
is a library for parsing NFT metadata. It's used by Zora's indexer & API.
It can handle metadata of many standards (OpenSea, ZORA, Nouns), hosted in many places (ipfs, http, dataURIs),
and normalize them into a consistent format.
Our goal with this project is to democratize access to NFT metadata.
pip install offchain
from offchain import MetadataPipeline, Token
pipeline = MetadataPipeline()
token = Token(
collection_address="0x5180db8f5c931aae63c74266b211f580155ecac8",
token_id=9559
)
metadata = pipeline.run([token])[0]
metadata.name # -> 'antares the improbable'
metadata.description # -> 'You are a WITCH who bathes in the tears of...'
metadata.standard # -> OPENSEA_STANDARD
metadata.attributes # -> [Attribute(trait_type='Skin Tone', ...]
metadata.image # -> MediaDetails(size=2139693, sha256=None, uri='https://cryptocoven.s3.amazonaws.com/2048b255aa1d02045eef13cdd7100479.png', mime_type='image/png')
metadata.additional_fields # -> [MetadataField(...), ...]
See documentation for more examples and tutorials.
Contributing
We welcome contributions that add support for new metadata standards, new ways of retreiving metadata, and ways of normalizing them to a consistent form. We are commited to integrating contributions to our indexer and making the results available in our API.
You should be able to contribute a new standard for metadata, and have NFTs that adhere to that metadata standard
be returned correctly from queries to api.zora.co
. We hope this helps to foster innovation in how
NFTs are represented, where metadata is stored, and what is expressed in that metadata.
Features
- Multiple metadata standards: represent metadata any way you wish
- Multiple transport protocols: store metadata where you want
- Composible for custom applications: only parse the standards you care about
- Future proof: extensible to new formats, locations, etc. The more gigabrain the better.
Development
This project is developed using Python 3.9. Here's a recommended setup:
Poetry
This project uses poetry
for dependency management and packaging. Install poetry:
curl -sSL https://install.python-poetry.org | python3 -
Setup
poetry install
Pre-commit
Pre-commit runs checks to enforce coding standards on every commit
pip install pre-commit # into global python path
pre-commit install
Testing
poetry run python -m pytest tests/
Documentation
This project uses mkdocs
and mkdocs-material
for documentation.
poetry run mkdocs serve
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file offchain-0.2.6.tar.gz
.
File metadata
- Download URL: offchain-0.2.6.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.12.0 Linux/5.15.0-1050-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a109e12b23f0d620caa8f5492bc4dff7d006a5d153eee43a2063b4444f7372a |
|
MD5 | a4b37918e3afff2da28fbdab88c84ed4 |
|
BLAKE2b-256 | 87ef5f84906dfbd84db8d948c18e0771797070609ece07151bcced70bce11100 |
File details
Details for the file offchain-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: offchain-0.2.6-py3-none-any.whl
- Upload date:
- Size: 64.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.12.0 Linux/5.15.0-1050-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 771678c226c1b05f7935b5c8d6fa616eaf4c53457a7a35967bc321a860d8f229 |
|
MD5 | 452c388b8aa99ed3a60b004281fc718d |
|
BLAKE2b-256 | 72938c3c934c3313dea3435b74d9431bef6a6d6a2983411db611fa1bb03f2ca5 |