---
name: para-wallet
description: Create and manage MPC wallets via Para. Create wallets (EVM, Solana, Cosmos), check wallet status, and sign arbitrary data — all through Para's server-side REST API with MPC key security.
config:
env:
- name: PARA_API_KEY
description: Your Para API key from https://developer.getpara.com
required: true
- name: PARA_REST_BASE_URL
description: Para REST API base URL
required: false
default: https://api.beta.getpara.com
---
# Para Wallet Skill
Create and manage MPC (Multi-Party Computation) wallets via Para's REST API. The private key never exists in a single place, making it ideal for AI agents that need to transact onchain.
## Available Tools
### create_wallet
Create an MPC wallet for a user.
- **type**: Blockchain network — `EVM`, `SOLANA`, or `COSMOS`
- **userIdentifier**: User ID (email, phone, or custom ID)
- **userIdentifierType**: One of `EMAIL`, `PHONE`, `CUSTOM_ID`, `GUEST_ID`, `TELEGRAM`, `DISCORD`, `TWITTER`
- **scheme** (optional): Signature scheme — `DKLS` (EVM default), `CGGMP`, `ED25519` (Solana default)
- **cosmosPrefix** (optional): Bech32 prefix for Cosmos wallets
Wallet creation is **asynchronous**. The wallet starts in `creating` status. Use `wait_for_wallet_ready` to poll until `ready`.
### get_wallet
Retrieve wallet details by ID. Returns status, address (when ready), public key, and creation time.
### sign_raw
Sign arbitrary data with a wallet's MPC key share.
- **walletId**: The wallet to sign with (must be in `ready` status)
- **data**: A `0x`-prefixed hex string to sign
Returns the signature. The signing happens via a distributed MPC ceremony — the full private key is never reconstructed.
### list_wallets
Batch-fetch multiple wallets by their IDs. Fetches up to 10 wallets in parallel.
- **walletIds**: Array of wallet ID strings (max 10)
### wait_for_wallet_ready
Poll a wallet until its status becomes `ready`. Useful after `create_wallet` since wallet creation is async.
- **walletId**: The wallet to poll
- **maxWaitMs** (optional): Maximum wait time in ms (default: 30000)
## Setup
1. Get a Para API key at https://developer.getpara.com
2. Allowlist your server's IP address in the Para dashboard
3. Set the `PARA_API_KEY` environment variable
## Typical Workflow
```
1. create_wallet → returns wallet with status "creating"
2. wait_for_wallet_ready → polls until status is "ready", returns address
3. sign_raw → sign data with the wallet
```
## Key Concepts
- **MPC Security**: Para uses Multi-Party Computation. The private key is split into shares — Para holds one share, and signing requires a distributed ceremony. The full key never exists in one place.
- **Async Creation**: Wallet creation triggers MPC key generation which takes a few seconds. Always poll with `wait_for_wallet_ready` before attempting to sign.
- **Idempotency**: Creating a wallet with the same `type` + `scheme` + `userIdentifier` returns a 409 Conflict. Each user gets one wallet per type/scheme combination.
- **Rate Limits**: 10 requests/second sustained, 20 burst. The client retries automatically on 429s with exponential backoff.
## Error Reference
| Status | Meaning | What to Do |
|--------|---------|------------|
| 401 | Invalid API key or IP not allowlisted | Check PARA_API_KEY and IP allowlist in dashboard |
| 404 | Wallet not found | Verify the wallet ID |
| 409 | Duplicate wallet | A wallet with this type + scheme + user already exists |
| 429 | Rate limited | Automatic retry with backoff; reduce request frequency |
| 500 | Para server error | Retry after a short delay |