POST /v1/organizations/{orgId}/wallets
Create a new Turnkey wallet for an organization
POST
/v1/organizations/{orgId}/wallets
Create a new Turnkey wallet for an organization
Path Parameters
orgId
string
required
path
Organization ID
Request Body required
Wallet name
application/jsonOne of:
Option 1
Option 2
accounts
object[]
Array of:
addressFormat
string
REQUIRED
Enum:
ADDRESS_FORMAT_ETHEREUM, ADDRESS_FORMAT_SOLANAcurve
string
REQUIRED
Enum:
CURVE_SECP256K1, CURVE_ED25519path
string
REQUIRED
pathFormat
string
REQUIRED
Enum:
PATH_FORMAT_BIP32name
string
REQUIRED
Responses
200
OK
application/jsonaccountType
string
address
string
createdAt
integer
id
string
isDefault
boolean
isImported
boolean
name
string
organizationId
string
providerType
string
providerWalletId
string
turnkeyRootUserId
string
TurnkeyRootUserId is an internal Turnkey infrastructure ID.
Only populated for the import-wallet flow; do not rely on it in other consumers.
turnkeySubOrgId
string
updatedAt
integer
400
Bad Request
401
Unauthorized
500
Internal Server Error
curl -X POST 'https://api.example.com/v1/organizations/string/wallets' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{}'
const response = await fetch('https://api.example.com/v1/organizations/string/wallets', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({})});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/organizations/string/wallets', headers=headers, json={})print(response.json())
package mainimport ( "fmt" "io" "net/http" "strings")func main() { body := strings.NewReader(`{}`) req, _ := http.NewRequest("POST", "https://api.example.com/v1/organizations/string/wallets", body) req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() result, _ := io.ReadAll(resp.Body) fmt.Println(string(result))}
200
Response
{ "accountType": "<string>", "address": "<string>", "createdAt": 123, "id": "<string>", "isDefault": true, "isImported": true, "name": "<string>", "organizationId": "<string>", "providerType": "<string>", "providerWalletId": "<string>", "turnkeyRootUserId": "<string>", "turnkeySubOrgId": "<string>", "updatedAt": 123}
API Playground
Try this endpoint
POST
/v1/organizations/{orgId}/wallets
