Unified SDK for the GreenlandAI ecosystem (ENYAL, JoulePAI, RAREEAI, GreenlandAI)
Project description
greenlandai (Python)
Unified SDK for the GreenlandAI ecosystem — ENYAL, JoulePAI, RAREEAI, GreenlandAI.
Supersedes but does not replace enyal-sdk v2.1.x (permanent coexistence — the
standalone enterprise track stays published and maintained; see design §5).
Install
pip install greenlandai # core
pip install "greenlandai[bip39]" # + mnemonic recovery primitives
pip install "greenlandai[otel]" # + OpenTelemetry metrics (opt-in; OFF by default)
Auth
from greenlandai import Client
client = Client(api_key="eyl_...") # primary: eyl_ API key (env var / secret manager — never hardcode)
client = Client(oauth_token=jwt) # web sessions: ENYAL-issued OAuth JWT
# 401s surface to you (no auto-refresh); hook: Client(..., on_auth_expired=cb)
# Key rotation = generate a new key server-side and rebuild the Client (no dual-validation window).
Hello world (one per submodule)
client.enyal.archive("agent-1", "decision_record", "k1", {"decision": "x"})
client.joulepai.transfer("@bob", 1000, note="thanks") # auto idempotency key
client.rareeai.create_request(resource_type="gpu") # marketplace (flat 0.5%, route-fixed)
client.gldai.query("lithium deposits greenland")
Idempotency promise matrix (auto-retry behavior — design §6, post-G1 2026-06-10)
| Method (py / js) | Wire class | Tier | Auto-retry |
|---|---|---|---|
| enyal.archive | A body client_chunk_id | ENFORCED | ON |
| enyal.timestamp / create_agreement | A body client_chunk_id | ENFORCED | ON |
| enyal.compliance_attest | A body client_attestation_id | ENFORCED | ON |
| enyal.prove / prove_batch / prove_share_combination | B body idempotency_key | ENFORCED | ON |
| enyal.disclose / request_client_disclosure | B | ENFORCED | ON |
| enyal.send_message | B | ENFORCED | ON |
| enyal.knowledge_upgrade · memory_structured_query · memory_content_query · queue_proof | — | NOT SUPPORTED | OFF (retries may duplicate billed effects) |
| joulepai.transfer (pay) | D body idempotency_key (proc-enforced) | ENFORCED | ON |
| joulepai.fund | — | NOT SUPPORTED | OFF (duplicate Stripe sessions possible) |
| rareeai.create_provider/create_request/deliver/resolve | B | ENFORCED | ON |
| rareeai.approve/reject/dispute/extend_dispute | — | NOT SUPPORTED | OFF |
| gldai metered queries (companies/deposits/infrastructure/query/projects/mapdata) | C header X-Idempotency-Key | ENFORCED | ON |
| all GET reads | — | safe | ON |
Every billed call auto-generates a UUID4 key (stable across retries) unless you pass idempotency_key / idempotencyKey yourself.
Observability (OFF by default)
Client(logger=my_logger, on_retry=..., on_terminal_failure=..., metrics=otel_metrics()) —
DEBUG logs redact Authorization + X-API-Key structurally.
Migration from enyal-sdk 2.1.0: see MIGRATION.md. Changelog: CHANGELOG.md.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file greenlandai-0.1.0.tar.gz.
File metadata
- Download URL: greenlandai-0.1.0.tar.gz
- Upload date:
- Size: 41.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79afb25092dcb1b50ab21e86a6044d23648cd85b0e3eef029b584a8c35fc2402
|
|
| MD5 |
80bbf7b20b2fb30d7bdfc2c446840ad5
|
|
| BLAKE2b-256 |
832811a7cc534b721452af27c72b8fda8ec6aef28c54821a6783903921c51108
|
File details
Details for the file greenlandai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: greenlandai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 39.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
198ce6fb517ce49389e60f089693dd35e177722a0c47096dd87db9f9ff7e72bb
|
|
| MD5 |
5953b0d9e22d9644a9833c66939f614e
|
|
| BLAKE2b-256 |
76af7b45856ef3abf93092fc9503e257a15d79ed2104a128b8cf7c2250066912
|