🚀 Download the PROXY Wallet App — Available on iOS & Android Download Now →
HOME PRICING API DOCS DASHBOARD WALLET SIGN IN

API Documentation

The Proxy API enables you to create MPC-secured wallets and sign transactions using our distributed 24-agent network. All API requests require authentication via API key.

Base URL: https://api.proxy.fund

SDK Installation

We provide official SDKs for JavaScript, Python, and Go. Each SDK supports all 4 core MPC functions: Key Generation, Threshold Signing, Key Rotation, and CoinJoin/Privacy.

JAVASCRIPT / TYPESCRIPT
// Install the SDK
npm install @proxyshield/sdk

// Usage
import { ProxyShield } from '@proxyshield/sdk';

const client = new ProxyShield({
  apiKey: 'ps_live_xxx',
  signRequests: true  // Enterprise: HMAC request signing
});

// Create wallet (DKG)
const wallet = await client.wallets.create({ label: 'Treasury' });

// Sign transaction
const sig = await client.sign(wallet.id, { to: '0x...', value: '1000000000000000000' });

// Rotate keys (PSS)
const rotation = await client.rotate(wallet.id);

// Privacy: Register blinded input
await client.privacy.registerInput('0xblinded...');
PYTHON
# Install the SDK
pip install proxyshield

# Usage
from proxyshield import ProxyShield

client = ProxyShield(api_key='ps_live_xxx')

# Create wallet (DKG)
wallet = client.wallets.create(label='Treasury')

# Sign transaction
sig = client.sign(wallet.id, {'to': '0x...', 'value': '1000000000000000000'})

# Rotate keys (PSS)
rotation = client.rotate(wallet.id)

# Privacy: Register blinded input
client.register_privacy_input('0xblinded...')
GO
// Install the SDK
go get github.com/proxyshield/sdk-go

// Usage
import "github.com/proxyshield/sdk-go"

client := proxyshield.NewClient("ps_live_xxx")

// Create wallet (DKG)
wallet, _ := client.Wallets.Create("Treasury")

// Sign transaction
sig, _ := client.Sign(wallet.ID, proxyshield.Transaction{
    To: "0x...",
    Value: "1000000000000000000",
})

Authentication

All API requests require a valid API key passed in the Authorization header using the Bearer scheme.

CURL
curl -X GET https://agents.proxy.fund/v1/wallets \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

API Keys

Your API key is generated when you create an account. You can create additional keys from the API Keys page in your dashboard.

Keep your API key secure. Do not expose it in client-side code or public repositories.

Rate Limits

Rate limits vary by plan. When you exceed your rate limit, the API returns a 429 Too Many Requests response.

Create Wallet

POST /v1/wallets

Creates a new MPC wallet with distributed key generation across 24 agents.

PARAMETER TYPE DESCRIPTION
name string Human-readable name for the wallet
chain string Target blockchain (e.g., "ethereum", "solana")
REQUEST
curl -X POST https://agents.proxy.fund/v1/wallets \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Treasury Wallet",
    "chain": "ethereum"
  }'
RESPONSE
{
  "success": true,
  "wallet": {
    "id": "wal_8x7f2k9m",
    "name": "Treasury Wallet",
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2e3E4",
    "chain": "ethereum",
    "created_at": "2026-02-02T12:00:00Z"
  }
}

List Wallets

GET /v1/wallets

Returns all wallets associated with your account.

Get Wallet

GET /v1/wallets/:id

Returns details for a specific wallet.

Sign Transaction

POST /v1/wallets/:id/sign

Signs a transaction using distributed MPC across 24 agents. Requires 13-of-24 threshold for signature generation.

PARAMETER TYPE DESCRIPTION
transaction required object Transaction object to sign
transaction.to string Recipient address
transaction.value string Amount in wei (hex)
transaction.data string Call data (optional)
REQUEST
curl -X POST https://agents.proxy.fund/v1/wallets/wal_8x7f2k9m/sign \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction": {
      "to": "0x0000000000000000000000000000000000000000",
      "value": "0x0",
      "data": "0x",
      "chainId": 1
    }
  }'
RESPONSE
{
  "success": true,
  "signature": {
    "r": "0x...",
    "s": "0x...",
    "v": 27,
    "signedTx": "0x..."
  },
  "agentsUsed": 13,
  "signingTime": "48ms"
}

Sign Message (EIP-191)

POST /v1/wallets/:id/sign-message

Signs an arbitrary message using EIP-191 personal sign format.

PARAMETER TYPE DESCRIPTION
message required string The message to sign (will be prefixed with "\x19Ethereum Signed Message:\n")

Sign Typed Data (EIP-712)

POST /v1/wallets/:id/sign-typed-data

Signs structured typed data according to EIP-712 standard.

PARAMETER TYPE DESCRIPTION
typedData required object EIP-712 typed data object with domain, types, primaryType, and message

Key Rotation (Proactive Secret Sharing)

Key rotation generates new key shares for all agents while keeping the same wallet address. Old key shares become cryptographically useless, protecting against long-term compromise.
POST /v1/wallets/:id/rotate

Triggers a key rotation ceremony using Proactive Secret Sharing (PSS). All 24 agents generate new shares that sum to the same secret key.

REQUEST
curl -X POST https://api.proxy.fund/v1/wallets/wal_8x7f2k9m/rotate \
  -H "Authorization: Bearer YOUR_API_KEY"
RESPONSE
{
  "success": true,
  "epoch": 2,
  "rotatedAt": "2026-02-04T12:00:00Z",
  "previousEpoch": 1,
  "agentsRotated": 24
}

Privacy: Register Blinded Input

Tor Required: Privacy endpoints require the X-Privacy-Mode: true header and should be accessed via Tor for anonymity.
POST /v1/privacy/register-input

Registers a blinded credential for CoinJoin participation. The agent signs blindly without knowing the input value.

PARAMETER TYPE DESCRIPTION
blindedCredential required string The blinded credential hash (B = r · H(input))

Privacy: Verify Credential

POST /v1/privacy/verify-credential

Verifies an unblinded credential for CoinJoin withdrawal. Must be called from a different Tor circuit than registration.

PARAMETER TYPE DESCRIPTION
credential required string The unblinded credential (σ/r)
withdrawalAddress required string The address to receive funds

Usage Statistics

GET /v1/usage

Returns your current billing period usage including signatures consumed.

API Logs

GET /v1/logs

Returns paginated API request logs with filtering options.

PARAMETER TYPE DESCRIPTION
page number Page number (default: 1)
limit number Results per page (default: 50, max: 100)
endpoint string Filter by endpoint path

Cluster Status

GET /v1/status

Returns the health status of the MPC agent cluster.

RESPONSE
{
  "healthy": true,
  "agents": 24,
  "threshold": 13,
  "activeAgents": 24,
  "latency": {
    "p50": "23ms",
    "p99": "89ms"
  }
}