Skip to main content

trustline-agent-sdk (Python)

Python SDK for AI agents to take and repay revenue-underwritten, uncollateralized USDC credit on TrustLine (Stellar / Soroban).

An agent proves real revenue → TrustLine underwrites it → the agent gets a credit line it can draw against and repay, all from its own Stellar key. This is the Python port of the TypeScript @trustline-agents/agent-sdk; the two speak the same backend API and on-chain contracts.

pip install trustline-agent-sdk

Quickstart

from stellar_sdk import Keypair
from trustline import TrustLineAgent

# An agent holds its own Stellar key.
tl = TrustLineAgent(
    Keypair.random().secret,
    api_base_url="https://trustline.onrender.com",
)

tl.register()                      # one-time, on-chain
result = tl.underwrite(skip_proof=True)   # backend scores + publishes on-chain
print(result["score"])

terms = tl.credit_line()           # on-chain read (simulate-only)
print(terms)                       # CreditTerms(tier=..., limit_usdc=..., apr_bps=...)

if terms.limit_usdc > 0:
    tl.borrow(1)                   # draw 1 USDC against the line
    # ...do paid work...
    tl.repay(1)                    # interest first (lender yield), then principal

A full runnable walkthrough (fresh keypair → Friendbot → faucet → register → underwrite → borrow → repay) lives in examples/quickstart.py.

API

Construct with the agent's secret; contract ids are auto-resolved from the backend /config unless you pass them explicitly.

TrustLineAgent(
    secret,
    *,
    rpc_url=None,               # Soroban RPC (default: testnet)
    network_passphrase=None,    # default: testnet
    api_base_url=None,          # TrustLine backend (default: http://localhost:8787)
    contracts=None,             # {"registry","creditLine","vault"} — else from /config
)

Underwriting (delegated to the backend)

method what it does
revenue(from_ledger=None) live x402 revenue index for this agent
underwrite(skip_proof=False, from_ledger=None) full pass: revenue → proof → score → publish
onboard(skip_proof=False, from_ledger=None) register() then underwrite()

On-chain reads (simulate-only)

method returns
credit_line() CreditTerms(tier, limit_usdc, apr_bps)
vault_state() VaultState(liquidity_usdc, principal_usdc, amount_owed_usdc, total_assets_usdc, yield_pool_usdc, limit_usdc, apr_bps)
available_credit_usdc() remaining drawable credit (USDC)
usdc_balance_usdc() this agent's spendable USDC

On-chain writes (signed by the agent's key)

method what it does
register() register in the score registry (one-time)
borrow(usdc) draw against the credit line
repay(usdc) repay (interest → lender yield, then principal)
deposit(agent_address, usdc) LP: supply liquidity into another agent's isolated vault

Each returns a TxResult(tx_hash, return_value, explorer_url).

Draw-on-402

resp = tl.pay_with_credit(url, price_usdc, max_draw=None, method="GET")

Pay for an x402-priced resource, auto-drawing any shortfall from the credit line first. The agent never "decides to borrow" — it just transacts, and the line silently covers what its cash can't. Returns a requests.Response. Pass json_body=..., data=..., and headers=... for POST bodies. This implements the x402 exact-Stellar scheme (SEP-41 transfer, facilitator-sponsored) directly, so no extra dependency is required.

Errors

All SDK errors subclass TrustLineError:

  • ValidationError — bad input (amount, address).
  • ApiError — backend returned non-2xx (.status, .method, .path, .body).
  • TxError — an on-chain tx failed to simulate/submit/confirm (.contract_method, .detail).
  • MaxDrawExceededError — pay_with_credit would draw past max_draw (.need, .max_draw).

Pure helpers

to_stroops, from_stroops (USDC ↔ 7-decimal stroops), is_valid_stellar_address, and credit_shortfall_usdc (the draw-on-402 math) are exported and unit-tested.

Development

pip install -e ".[dev]"
pytest

License

MIT

Metadata

Release files for trustline-agent-sdk 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 trustline-agent-sdk 0.2.0
File Size Uploaded Provenance Actions
trustline_agent_sdk-0.2.0.tar.gz 14.9 kB Without provenance Details for trustline_agent_sdk-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for trustline-agent-sdk 0.2.0
File Interpreter ABI Platform Actions
trustline_agent_sdk-0.2.0-py3-none-any.whl Python 3 none any Details for trustline_agent_sdk-0.2.0-py3-none-any.whl

Total release size: 29.2 kB

Release files / trustline_agent_sdk-0.2.0.tar.gz

Download URL trustline_agent_sdk-0.2.0.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
042616bd936bd7df60db6d317db3b9678e7cab827db2dd23cf12be07f5a3b00d
BLAKE2b-256 checksum
How to use checksums
fae4bf3ad5f4e373aeff31213928b7c6b2c84362486d52e538ce01684258606a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

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

Download URL trustline_agent_sdk-0.2.0-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f06309908448295ac0c2a1a316234b703d38564ede26022d1e3eecb84cb5915d
BLAKE2b-256 checksum
How to use checksums
691a9ec0d6973a4874bd2da11ae60da7c52d40faaa1f9db6e5424defb0ca05f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for trustline-agent-sdk 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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