Prerequisites
To use Para, you need an API key. This key authenticates your requests to Para services and is essential for integration.Environments
All endpoints are versioned under
/v1.
Authentication
Include your API key in every request:Your project controls wallet access. Wallets created via the REST API are permanently scoped to the project that
created them. Rotating your secret key is safe — the new key still accesses the same wallets. However, if you delete
your project or create a new one, you lose signing access to those wallets — even though the wallets and funds remain
on-chain.If you need to migrate wallets between projects, contact Para support.
IP Allowlisting
Restrict API access to specific IPs via the Developer Portal (Security → Allowlist). Once configured, requests from other IPs return401 Unauthorized.
Error Handling
All errors return JSON with acode field for programmatic handling and a human-readable message. Some include extra context (e.g. walletId on 409):
Handling 409 Conflict (Duplicate Wallet)
When creating a wallet that already exists, the API returns409 Conflict with the existing walletId in the
response body:
1
Look up by identifier
Query wallets by the original identifier:
2
List all wallets
As a final fallback, list all wallets and filter client-side:
Rate Limits
REST API limits are shared across every/v1 request made with the same API key. Wallet creation, reads, and signing all count toward one total per-minute allowance, not a separate allowance for each endpoint. Calls made through @getpara/rest-sdk use these REST endpoints and count toward the same limit.
When the REST API limit is exceeded, the API returns
429 Too Many Requests with a Retry-After header indicating how long to wait.
Wallet creation through SDK user flows is subject to per-IP abuse-prevention limits. After a user-owned wallet is created, signing it through a Para SDK is not rate-limited by subscription plan.
Signing
The REST API supports several signing methods. All signing endpoints require an EVM or Solana wallet (created viaPOST /v1/wallets).
Sign Typed Data (EIP-712)
Signs EIP-712 structured data. EVM wallets only. Para computes the EIP-712 hash server-side — just pass the structured data directly.{ "signature": "a1b2c3..." } — a hex-encoded signature without 0x prefix.
Sign Authorization (EIP-7702)
Signs an EIP-7702 authorization for account delegation. EVM wallets only. This enables account abstraction providers (ZeroDev, Alchemy, Pimlico, etc.) to delegate an EOA to a smart contract for gas sponsorship or batched calls — without migrating to a new wallet address.Unlike other signing endpoints that return
v (27/28), this endpoint returns yParity (0/1) per the EIP-7702 spec. The address field also accepts contractAddress as an alias, matching viem’s API.Other Signing Methods
sign-transaction accepts both legacy Transaction and v0 VersionedTransaction (Address Lookup Tables) Solana formats; the endpoint auto-detects which one was sent. This means output from VersionedTransaction.serialize() (what Jupiter’s swap API returns) can be passed in directly.sign-transaction is sign-only by default. Set top-level broadcast: true for EVM or Solana to broadcast the signed bytes and receive txHash, transactionId, and an x-transaction-id response header. Stellar remains sign-only and rejects broadcast: true.