Skip to main content

Documentation Index

Fetch the complete documentation index at: https://0xcaptain.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The agentbank-py client exposes vault, analyst, intent, and attestation operations as direct methods. All methods are on the AgentBankClient instance — there are no sub-clients. Import the client and supporting types from agentbank:
from agentbank import AgentBankClient, Addresses, TEEKind, IntentStatus

Vault

# Deposit (amount in wei)
tx = client.deposit(amount_wei=1000 * 10**18)

# Withdraw
tx = client.withdraw(amount_wei=500 * 10**18)

# Read TVL (returns int, wei)
tvl = client.get_tvl()

# Read shares balance
shares = client.get_shares("0x...")

# Estimated APY (returns float, e.g. 8.42)
apy = client.get_apy()

Analyst

# Register
tx = client.register_analyst(metadata=b"")

# Deregister
tx = client.deregister_analyst()

# Post signal (reasoning string is auto-hashed with keccak256)
tx = client.post_signal(
    asset="0x...",
    direction=1,        # -1 short, 0 neutral, 1 long
    magnitude=750,      # bps
    reasoning="Bullish RSI divergence on 4H",
    ttl=7200,
)

# Query reputation
rep = client.get_reputation("0x...")
# rep.score, rep.total_signals, rep.profitable_signals, rep.avg_pnl_bps

Intent

# Post intent
tx = client.post_intent(
    asset="0x...",
    amount_wei=10_000 * 10**18,
    min_apy_bps=500,
    max_drawdown_bps=200,
    duration=30 * 86400,
)

# Submit solver bid
tx = client.submit_bid(
    intent_id=42,
    tier_vault="0xC44C061D257Af305dEAea2eD093E878a615d856d",
    promised_apy=650,
    bond_amount=1000 * 10**18,
)

# Settle auction (callable by anyone after deadline)
tx = client.settle_auction(intent_id=42)

# List open intents
intents = client.get_open_intents(limit=50)
for i in intents:
    print(i.id, i.amount, IntentStatus(i.status).name)

Attestation

# Verify a TEE run
tx = client.verify_run(
    kind=TEEKind.Phala,
    prompt_hash=b"..." ,   # 32 bytes
    output_hash=b"...",
    code_hash=b"...",
    signature=b"...",
)

# Check verification status
run_id = AgentBankClient.compute_run_id(prompt_hash, output_hash, code_hash)
verified = client.is_verified(run_id)

# Fetch full run record
run = client.get_attested_run(run_id)
# run.kind, run.verified, run.timestamp, run.attester_pub_key