Provision a managed master wallet
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Primary wallet', supportedTokens: ['USDC'], network: 'mainnet'})
};
fetch('https://api.prudra.dev/wallet-infra/master-wallets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.prudra.dev/wallet-infra/master-wallets"
payload = {
"name": "Primary wallet",
"supportedTokens": ["USDC"],
"network": "mainnet"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.prudra.dev/wallet-infra/master-wallets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Primary wallet",
"supportedTokens": [
"USDC"
],
"network": "mainnet"
}
'{
"id": "mwt_abc123",
"address": "0x742d35Cc...",
"chain": "base",
"chainId": 8453,
"network": "mainnet",
"provisionStatus": "active",
"supportedTokens": [
"USDC"
],
"keyVersion": "v1_1746000000000",
"createdAt": "2023-11-07T05:31:56Z"
}{
"type": "https://api.prudra.dev/problems/payment-limit-reached",
"title": "Plan Limit Reached",
"status": 429,
"detail": "Your plan includes 100 payments per month. You have used 100.",
"limit": 100,
"current": 100,
"upgradeUrl": "https://dashboard.prudra.com/settings/billing"
}Wallets
Provision a managed master wallet
Provisions a new managed master wallet for the organisation. Prudra generates and custodies the private key using Google Cloud KMS (HSM-backed). Each organisation uses a master seed from which wallet addresses are derived on each supported chain.
POST
/
wallet-infra
/
master-wallets
Provision a managed master wallet
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Primary wallet', supportedTokens: ['USDC'], network: 'mainnet'})
};
fetch('https://api.prudra.dev/wallet-infra/master-wallets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.prudra.dev/wallet-infra/master-wallets"
payload = {
"name": "Primary wallet",
"supportedTokens": ["USDC"],
"network": "mainnet"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.prudra.dev/wallet-infra/master-wallets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Primary wallet",
"supportedTokens": [
"USDC"
],
"network": "mainnet"
}
'{
"id": "mwt_abc123",
"address": "0x742d35Cc...",
"chain": "base",
"chainId": 8453,
"network": "mainnet",
"provisionStatus": "active",
"supportedTokens": [
"USDC"
],
"keyVersion": "v1_1746000000000",
"createdAt": "2023-11-07T05:31:56Z"
}{
"type": "https://api.prudra.dev/problems/payment-limit-reached",
"title": "Plan Limit Reached",
"status": 429,
"detail": "Your plan includes 100 payments per month. You have used 100.",
"limit": 100,
"current": 100,
"upgradeUrl": "https://dashboard.prudra.com/settings/billing"
}Authorizations
Your Prudra API key. Get one at dashboard.prudra.com/settings/api-keys
Body
application/json
Example:
"Primary wallet"
Available options:
base, ethereum, optimism, arbitrum, polygon, tempo, base-sepolia, eth-sepolia, tempo-moderato Example:
["USDC"]
Available options:
mainnet, testnet Response
Wallet provisioned
Example:
"mwt_abc123"
Example:
"0x742d35Cc..."
Example:
"base"
Example:
8453
Example:
"mainnet"
Example:
"active"
Example:
["USDC"]
Example:
"v1_1746000000000"

