Create Account
Overview
This API endpoint allows you to create an account that represents a smart contract wallet. The created account will be in an inactive state (not deployed) and will need to be activated after funding the gas tank.
- HTTP Method: POST
- Endpoint:
{{BASE_URL}}/api/v1/smart-account
Request Body Parameters
owner
(required): An object containing the owner informationid
(required): The owner's Ethereum address that will control the accountprovider
(required): The type of owner (currently only "wallet" is supported)
Example Request Body
{
"owner": {
"id": "0x10CB6162B0BF12Bf9b9fB899C617e71550dbAEB7",
"provider": "wallet"
}
}
Request
Request Headers
X-APP-ID
: (required): APP ID/Project ID obtained from dashboard.X-SIGNATURE
: (required): Calculated signature, please refer to Authorization section.X-TIMESTAMP
: (required): Request timestamp in RFC3339 format.
Example Request Syntax
curl -X POST -H "Content-Type: application/json" \
-H "x-app-id: $YOUR_APP_ID" \
-H "x-signature: $CALCULATED_SIGNATURE" \
-H "x-timestamp: $TIMESTAMP" \
-d '{
"owner": {
"id": "0x10CB6162B0BF12Bf9b9fB899C617e71550dbAEB7",
"provider": "wallet"
}
}' {{BASE_URL}}/api/v1/smart-account
Response
The response will include a JSON object with the following properties:
status
(number): The HTTP status code of the response (e.g., 200 for success)message
(string): A message indicating the result of the operationdata
(object): An object containing the created account informationid
(string): Unique identifier for the accountcreatedAt
(string): Account creation timestampupdatedAt
(string|null): Last update timestampownerId
(string): The owner's addressprovider
(string): The account provider typeclientId
(string): Your client IDappId
(string): Your application IDgasTanks
(array): List of gas tanks associated with the accountid
(string): Gas tank identifiercreatedAt
(string): Creation timestampupdatedAt
(string|null): Last update timestampownerId
(string): Owner identifierbalance
(string): Current balancetype
(string): Gas tank type (e.g., "token")tokenName
(string): Token name for token-type gas tanksdecimals
(number): Token decimals for token-type gas tanks
accounts
(array): List of created accounts for different networksid
(string): Account identifiercreatedAt
(string): Creation timestampupdatedAt
(string|null): Last update timestampownerId
(string): Owner identifierstatus
(string): Account status (e.g., "not_deployed")aaAddress
(string): Smart contract wallet addresschainId
(number): Network chain IDnetwork
(string): Network nameclientId
(string): Client IDappId
(string): Application IDversion
(string): Account version
Example Response
{
"status": 200,
"message": "account created successfully",
"data": {
"id": "6832c4eb131f3d7c2b60cecc",
"createdAt": "2025-05-25T07:21:15.981407516Z",
"updatedAt": null,
"ownerId": "0x29E8E2926ADf79763632C3C15AB0d6bC379C0E5A",
"provider": "wallet",
"clientId": "c71b0489-cffe-440d-ab17-e00d7fc41217",
"appId": "39380fb0-b853-4efa-8917-9964a8d48808",
"gasTanks": [
{
"id": "6832c4eb131f3d7c2b60cecd",
"createdAt": "2025-05-25T07:21:15.994312784Z",
"updatedAt": null,
"ownerId": "6832c4eb131f3d7c2b60cecc",
"balance": "0",
"type": "token",
"tokenName": "USDT",
"decimals": 18
}
],
"accounts": [
{
"id": "6832c4ec131f3d7c2b60cece",
"createdAt": "2025-05-25T07:21:16.01229306Z",
"updatedAt": null,
"ownerId": "6832c4eb131f3d7c2b60cecc",
"status": "not_deployed",
"aaAddress": "0x4fa1B47b1e93f7E927bc3aEa006f70E6c3C1F247",
"chainId": 1,
"network": "ethereum",
"clientId": "c71b0489-cffe-440d-ab17-e00d7fc41217",
"appId": "39380fb0-b853-4efa-8917-9964a8d48808",
"version": "0.1"
}
... other network account
]
}
}
Important Notes
- The created account will be in
not_deployed
status initially - Accounts are automatically created for all supported networks
- Each account needs to be activated separately after funding the gas tank
- The
aaAddress
is the future smart contract wallet address that will be deployed during activation - This endpoint is idempotent - if an account already exists for the given owner address, the existing account details will be returned instead of creating a new one. This makes it safe to retry the request without creating duplicate accounts.