Skip to main content

scafonix-agent

Build Your Own Self-Hosted M-of-N MPC Wallet Infrastructure with Zero Upfront Cost & Pay-per-Signature x402 Micropayments ($0.005 USDC)

scafonix-agent is the official Python SDK that empowers developers to build and deploy their own 100% self-hosted, non-custodial M-of-N MPC wallet security infrastructure for autonomous AI Agents (LangChain, CrewAI, AutoGen, ELIZA, etc.).

🌟 Key Value Proposition

  • Build Your Own MPC Infrastructure: You can host and run your own independent, non-custodial multi-agent consensus MPC wallet system without relying on third-party key custodians or centralized servers.
  • Zero Fixed Subscription Costs: Key share generation, wallet address derivation, and worker partial signing are 100% free with zero recurring subscription fees.
  • Transparent Pay-per-Signature Pricing ($0.005 USDC): You only pay a flat $0.005 USDC per final combined signature via native x402 micropayment protocol on Base L2 when broadcasting real on-chain transactions.

💻 Installation

pip install scafonix-agent

🎲 What are seed1 and seed2? (Dual Entropy Mechanism)

Scafonix Agentic MPC uses a Dual-Source Entropy Mixing Algorithm to guarantee cryptographic security even if one entropy source is compromised:

  • seed1 (User / Master AI Entropy): A 32-byte (64-char hex) random string generated by your application, Master AI, or user secret (secrets.token_hex(32)).
  • seed2 (Client / System Hardware Entropy): A 32-byte (64-char hex) random string generated by the client environment, OS hardware RNG, or secondary worker.

🛡️ Why Two Seeds?
If one random number generator (RNG) is compromised or flawed, the second independent seed guarantees 100% cryptographic randomness and zero key leak risk.


🔑 Return Data Structure Example

Dictionary structure returned when calling agent.generate_key_shares(seed1, seed2):

{
    "share1": "1-97c44a91cb12b926de7b01479e282a5b11f0eb6e5a5255443e7d172f552fecac",
    "share2": "2-3333333333333333333333333333333333333333333333333333333333333333",
    "share3": "3-8bce03f349a389019e3e580d1d855404c18f2b3df2cd77275a6c7cb80c70541e",
    "_meta": {"m": 2, "n": 3}
}

🚀 Quick Start: Complete 5-Step Agent Integration Guide

Copy and paste this ready-to-run 5-step Python integration workflow:

from scafonix_agent import ScafonixAgent

def main():
    # -------------------------------------------------------------
    # STEP 1. Initialize Master AI & 3 Worker AIs (2-of-3 Threshold)
    # -------------------------------------------------------------
    master = ScafonixAgent(agent_id="Master-Orchestrator")
    worker1 = ScafonixAgent(agent_id="Worker-1-TradingAI")
    worker2 = ScafonixAgent(agent_id="Worker-2-ChartAI")
    worker3 = ScafonixAgent(agent_id="Worker-3-AuditAI")

    # -------------------------------------------------------------
    # STEP 2. Generate 2-of-3 Key Shares & Derive EVM Address
    # -------------------------------------------------------------
    shares = master.generate_key_shares(
        "8bce03f349a389019e3e580d1d855404c18f2b3df2cd77275a6c7cb80c70541e",
        "97c44a91cb12b926de7b01479e282a5b11f0eb6e5a5255443e7d172f552fecac"
    )

    # [Isolated Worker Storage]
    worker1_share = shares["share1"]  # Worker 1 holds Share 1
    worker2_share = shares["share2"]  # Worker 2 holds Share 2
    worker3_share = shares["share3"]  # Worker 3 holds Share 3 (Master holds ZERO shares!)

    # Derive Consensus Wallet Address (Share 1 + Share 2 pairing)
    wallet_address = master.derive_address(worker1_share, worker2_share)
    print("📍 Agent Consensus Wallet Address:", wallet_address)

    # -------------------------------------------------------------
    # STEP 3. Target Transaction Hash (32-byte Hex Hash)
    # -------------------------------------------------------------
    tx_hash = "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"

    # -------------------------------------------------------------
    # STEP 4. Buy x402 Signed Ticket ($0.005 USDC on Base)
    # -------------------------------------------------------------
    ticket = {
        "ticketId": "tick_sample_999",
        "msgHash": tx_hash,
        "status": "VALID"
    }

    # -------------------------------------------------------------
    # STEP 5. 2-of-3 Voting: Workers Sign Partial & Master Combines
    # -------------------------------------------------------------
    # Worker 1 (Trading AI): APPROVE ✅ (Generates Partial Signature 1)
    part1 = worker1.sign_partial(
        single_share=worker1_share,
        pair_share_id=worker2_share,
        msg_hash=tx_hash
    )

    # Worker 2 (Chart AI): APPROVE ✅ (Generates Partial Signature 2)
    part2 = worker2.sign_partial(
        single_share=worker2_share,
        pair_share_id=worker1_share,
        msg_hash=tx_hash
    )

    # Worker 3 (Audit AI): REJECT ❌ (Suspicious risk detected - Does NOT sign)

    # Master AI combines 2 valid worker partial signatures + x402 Ticket -> Final (R, S, V)
    final_sig = master.combine_signatures(
        partial_signatures=[part1, part2],
        ticket=ticket
    )

    print("🎉 Final Valid Signature (R, S, V):", final_sig)

if __name__ == "__main__":
    main()

📖 API Reference Summary

Method Parameters Description / Return Value
generate_key_shares(seed1, seed2) Two 32-byte hex entropy seeds {"share1", "share2", "share3", "_meta"} dictionary
derive_address(share_a, share_b) Two key share strings On-chain EOA Wallet Address (0x...)
sign_partial(single_share, msg_hash, pair_share_id) Own share, partner share ID, txHash 1-time Worker Partial Signature (partialS, r, v)
combine_signatures(partial_signatures, ticket) List of partial signatures, x402 Ticket On-chain Final Signature (r, s, v, ticketId)

📄 License

MIT © Scafonix Team

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scafonix_agent-1.0.6.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scafonix_agent-1.0.6-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file scafonix_agent-1.0.6.tar.gz.

File metadata

  • Download URL: scafonix_agent-1.0.6.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for scafonix_agent-1.0.6.tar.gz
Algorithm Hash digest
SHA256 59fd41dfe854c877575683b91ae8465389df0a7448add88aae47e70dcbf2be2d
MD5 0993439fd4ce5b0052dab9569c2f1ef2
BLAKE2b-256 6dabcb118c7829265c4b7bfc883fde9bbad6e110911b1cbf141932c40e7484fa

See more details on using hashes here.

File details

Details for the file scafonix_agent-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: scafonix_agent-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.7

File hashes

Hashes for scafonix_agent-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 aafc8a45c2ba11c29e3accef67989e415387609b2d47343c9be5e22f37349e68
MD5 d1cb8fd4cefc9035245dd6ff60c6cd89
BLAKE2b-256 8cef1ee65fd0110aeff67ee190e2b25e70fed9832fec09387790ce94fc707545

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page