Skip to main content

EIL Card Python SDK (eil-card)

Resolve verified organization and person identity from the EIL Card registry — with LangChain, CrewAI, and LlamaIndex integrations.

Install

pip install eil-card

Optional framework extras:

pip install eil-card[langchain]
pip install eil-card[llamaindex]
pip install eil-card[crewai]
pip install eil-card[all]

Quick start

from eil_card import DigitalCard, discover_capabilities, discover_act_capabilities

result = DigitalCard.resolve(domain="sinyalle.com")
card = result["card"]
print(card["name"]["official"], card.get("verified"))

caps = discover_capabilities(card)
if caps["available"]:
    print("Gateway:", caps["agent_gateway"])

act = discover_act_capabilities(card)
print("Write/act scopes:", act["scopes_parsed"]["write"], act["scopes_parsed"]["act"])

LangChain

from eil_card.integrations.langchain import create_eil_resolve_tool

tool = create_eil_resolve_tool()
# tools = [tool]

Tool name matches the TypeScript SDK: resolve_entity_identity.

CrewAI

from crewai import Agent
from eil_card.integrations.crewai import create_eil_resolve_crewai_tool

resolve_tool = create_eil_resolve_crewai_tool()
agent = Agent(role="Researcher", goal="Verify entities", tools=[resolve_tool])

LlamaIndex

from eil_card.integrations.llamaindex import EILReader

docs = EILReader().load_data(domain="sinyalle.com")

JWS trust (Registry+)

from eil_card import DigitalCard

result = DigitalCard.resolve(domain="sinyalle.com", verify_jws=True)
print(result.get("trust", {}).get("jws"))

# Crypto verify: pip install eil-card[crypto]
result = DigitalCard.resolve(
    domain="sinyalle.com",
    verify_jws={"public_key_pem": open("registry-public.pem").read(), "require_valid": True},
)

Access policy ("robots.txt for agents")

from eil_card import DigitalCard, discover_access_policy, is_training_denied

result = DigitalCard.resolve(domain="sinyalle.com")
policy = discover_access_policy(result["card"])
# {"read": "gateway", "act": "gateway", "training": "deny", "state": "active", ...}

if is_training_denied(result["card"]):
    skip_for_training()

if policy["read"] == "deny":
    raise SystemExit("Entity opts out of agent access")

See EIL Access Policy Spec.

Agent act headers (pilot gateway)

from eil_card import build_idempotency_key, build_agent_act_headers, agent_act_headers_to_fetch

key = build_idempotency_key(
    agent_client_id="my-agent",
    action_id="create_post",
    entity_id="sinyalle.com",
    nonce="run-1",
)
headers = agent_act_headers_to_fetch(
    build_agent_act_headers(
        access_token="...",
        idempotency_key=key,
        action_id="create_post",
        card_id="sinyalle.com",
    )
)

Development

cd packages/python
pip install -e ".[dev]"
pytest

Publish (maintainers)

pip install build twine
python -m build
twine upload dist/*

Set PYPI_API_TOKEN in the environment or ~/.pypirc.

Docs

Metadata

Release files for eil-card 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eil-card 0.2.0
File Size Uploaded
eil_card-0.2.0.tar.gz 12.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eil-card 0.2.0
File Interpreter ABI Platform
eil_card-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.6 kB

Release files / eil_card-0.2.0.tar.gz

Download URL eil_card-0.2.0.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ad1139bc339a0dccd17d1b9f644d7058ad20ae3c74fa613eb14f1247addb966c
BLAKE2b-256 checksum
How to use checksums
6ab3483acb80373d09abff2fb91b9199765cf4ec3d59be21a7c9f6b4c1176213
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / eil_card-0.2.0-py3-none-any.whl

Download URL eil_card-0.2.0-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e969cfd535fc59cda0152e7528e480efce10daec75e306b4c3c427242ff8038c
BLAKE2b-256 checksum
How to use checksums
dbc3d48b5af133667b766becf0b15938f8f6d3444f36d4b5d24a8d9bf0a9ef8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page