Oris SDK: Compliant payment rails and KYA infrastructure for autonomous AI agents.
Project description
Oris Python SDK
Compliant payment infrastructure for autonomous AI agents. Oris provides wallets, identity verification (KYA), spending controls, and compliance monitoring designed specifically for AI agents.
Installation
pip install oris-sdk
For local source installation:
git clone https://github.com/fluxaventures/useoris.git
cd useoris
pip install -e .
Quick Start
Send your first autonomous, compliant payment in under 10 lines of code.
from oris import OrisClient
# 1. Initialize client
client = OrisClient(api_key="YOUR_API_KEY", private_key="YOUR_PRIVATE_KEY")
# 2. Register and verify agent
agent = client.agents.register(name="Researcher-01", description="Data procurement agent")
client.agents.verify(agent.id)
# 3. Create an ERC-4337 Smart Account
wallet = client.wallets.create(agent_id=agent.id, chain="polygon")
# 4. Set a spending policy
client.policies.create(
agent_id=agent.id,
daily_limit_usd=100.0,
allowed_contracts=["0xDatasetProviderAddress"]
)
# 5. Execute autonomous payment
tx = client.payments.send(
agent_id=agent.id,
to_address="0xDatasetProviderAddress",
amount=1.0,
chain="polygon",
token="POL"
)
print(f"Transaction settled. Hash: {tx.transaction_hash}")
Authentication
Oris enforces Ed25519 request signing with strict replay protection (30s window). The SDK handles all cryptographic signing and rate-limit retries automatically.
Provide your credentials directly or via environment variables (ORIS_API_KEY, ORIS_PRIVATE_KEY).
Agent Lifecycle
The Oris infrastructure requires agents to follow a strict compliance lifecycle before accessing on-chain liquidity:
- Registration: Agent identity is recorded.
- KYA (Know Your Agent) Verification: Agent undergoes AML and risk screening.
- Wallet Creation: Counterfactual deployment of an ERC-4337 smart account.
- Policy Attachment: Hardcoded on-chain and off-chain spending limits.
- Execution: Gas-abstracted, sponsored transaction routing.
Core Methods Reference
Agents
client.agents.register(name: str, description: str) -> Agent
client.agents.verify(agent_id: str) -> bool
client.agents.get_profile(agent_id: str) -> AgentProfile
Wallets
client.wallets.create(agent_id: str, chain: str) -> Wallet
client.wallets.get_balance(wallet_id: str) -> Balance
client.wallets.get_wallets(agent_id: str) -> list[Wallet]
Policies
client.policies.create(agent_id: str, **kwargs) -> Policy
client.policies.simulate_payment(agent_id: str, amount: float) -> SimulationResult
Payments
client.payments.send(agent_id: str, to_address: str, amount: float, chain: str, token: str) -> PaymentResult
client.payments.get_payment(payment_id: str) -> PaymentStatus
Async Support
Every synchronous method has an asynchronous counterpart for high-concurrency environments.
import asyncio
from oris import AsyncOrisClient
async def main():
client = AsyncOrisClient(api_key="...", private_key="...")
tx = await client.payments.asend(...)
print(tx.transaction_hash)
asyncio.run(main())
Error Handling
The SDK provides a structured exception hierarchy.
from oris.exceptions import OrisAuthError, OrisRateLimitError, OrisComplianceError
try:
client.payments.send(...)
except OrisComplianceError as e:
print(f"Transaction blocked by Veris compliance engine: {e}")
except OrisRateLimitError as e:
print(f"Rate limit exceeded. Retry after {e.retry_after}s")
Supported Chains
Oris currently manages RPC routing and bundler infrastructure for the following networks:
| Chain | Identifier | Support Type |
|---|---|---|
| Polygon | polygon |
Native / ERC-4337 |
| Base | base |
Native / ERC-4337 |
| Ethereum | ethereum |
Native / ERC-4337 |
| Arbitrum | arbitrum |
Native / ERC-4337 |
| Optimism | optimism |
Native / ERC-4337 |
| Avalanche | avalanche |
Native / ERC-4337 |
| BSC | bsc |
Native / ERC-4337 |
| Celo | celo |
Native / ERC-4337 |
Project details
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 oris_sdk-0.1.6.tar.gz.
File metadata
- Download URL: oris_sdk-0.1.6.tar.gz
- Upload date:
- Size: 33.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
093d8e9a46a783662be43f1903b5bc79cc16ba021dca02c48e86926c960a1d7f
|
|
| MD5 |
15e0367d359c89d29489092247dd7bf5
|
|
| BLAKE2b-256 |
03f37b895ccceef1a2b81bb0039fd9fb0100e0140acd4cb73436e13a4b00dda4
|
File details
Details for the file oris_sdk-0.1.6-py3-none-any.whl.
File metadata
- Download URL: oris_sdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 32.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7aaa24791538ab7791a6e9f2cd8ec53260aafee69385fdfec9e08edaf5c9ce16
|
|
| MD5 |
e5de2ae4cf34b4dd979318acaec86145
|
|
| BLAKE2b-256 |
e8d9f78aa33c28d19cdbee6b4bb871527572142512c9949be80147df1936f2ed
|