Create account
curl --request POST \
--url https://api.privy.io/v1/accounts \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '
{
"display_name": "My Account",
"wallets_configuration": [
{
"chain_type": "ethereum"
}
]
}
'HttpResponse<String> response = Unirest.post("https://api.privy.io/v1/accounts")
.header("privy-app-id", "<privy-app-id>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"display_name\": \"My Account\",\n \"wallets_configuration\": [\n {\n \"chain_type\": \"ethereum\"\n }\n ]\n}")
.asString();const options = {
method: 'POST',
headers: {
'privy-app-id': '<privy-app-id>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({display_name: 'My Account', wallets_configuration: [{chain_type: 'ethereum'}]})
};
fetch('https://api.privy.io/v1/accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.privy.io/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'display_name' => 'My Account',
'wallets_configuration' => [
[
'chain_type' => 'ethereum'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"privy-app-id: <privy-app-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.privy.io/v1/accounts"
payload := strings.NewReader("{\n \"display_name\": \"My Account\",\n \"wallets_configuration\": [\n {\n \"chain_type\": \"ethereum\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("privy-app-id", "<privy-app-id>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "<string>",
"display_name": "<string>",
"wallets": [
{
"id": "<string>",
"chain_type": "ethereum",
"address": "<string>",
"custody": {
"provider": "<string>",
"provider_user_id": "<string>"
}
}
]
}Accounts
Create account
Creates a new account with associated wallets.
POST
/
v1
/
accounts
Create account
curl --request POST \
--url https://api.privy.io/v1/accounts \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'privy-app-id: <privy-app-id>' \
--data '
{
"display_name": "My Account",
"wallets_configuration": [
{
"chain_type": "ethereum"
}
]
}
'HttpResponse<String> response = Unirest.post("https://api.privy.io/v1/accounts")
.header("privy-app-id", "<privy-app-id>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"display_name\": \"My Account\",\n \"wallets_configuration\": [\n {\n \"chain_type\": \"ethereum\"\n }\n ]\n}")
.asString();const options = {
method: 'POST',
headers: {
'privy-app-id': '<privy-app-id>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({display_name: 'My Account', wallets_configuration: [{chain_type: 'ethereum'}]})
};
fetch('https://api.privy.io/v1/accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.privy.io/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'display_name' => 'My Account',
'wallets_configuration' => [
[
'chain_type' => 'ethereum'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"privy-app-id: <privy-app-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.privy.io/v1/accounts"
payload := strings.NewReader("{\n \"display_name\": \"My Account\",\n \"wallets_configuration\": [\n {\n \"chain_type\": \"ethereum\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("privy-app-id", "<privy-app-id>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "<string>",
"display_name": "<string>",
"wallets": [
{
"id": "<string>",
"chain_type": "ethereum",
"address": "<string>",
"custody": {
"provider": "<string>",
"provider_user_id": "<string>"
}
}
]
}Authorizations
Basic Auth header with your app ID as the username and your app secret as the password.
Headers
ID of your Privy app.
Idempotency keys ensure API requests are executed only once within a 24-hour window.
Body
application/json
- CreateAccountFromWalletsConfigurationInput
- CreateAccountFromWalletIdsInput
Input for creating a digital asset account from new wallets with a wallets_configuration specification.
Response
200 - application/json
The created account.
Was this page helpful?

