CreateAccount
Method Details​
Description: Creates a new wallet account. This is a write operation restricted to administrative roles.
Required Roles: Check proto file for roles
Parameters:
Label
(string): A user-defined label for the new account, e.g., "Primary Savings".Ledger
(enum): The ledger upon which the account should be created.Open
(bool): If true, the account will be opened immediately after creation, which may result in a transaction.
Returns: Account
Method Type: METHOD_TYPE_WRITE
Code Examples​
- Go
- Python
- Java
- Protobuf
package main
import (
"context"
"log"
accountv1 "github.com/meshtrade/api/go/wallet/account/v1"
)
func main() {
ctx := context.Background()
// Default configuration is used and credentials come from MESH_API_CREDENTIALS
// environment variable or default discovery methods. Zero config required
// unless you want custom configuration.
service, err := accountv1.NewAccountService()
if err != nil {
log.Fatalf("Failed to create service: %v", err)
}
defer service.Close()
// Create request with service-specific parameters
request := &accountv1.CreateAccountRequest{
// FIXME: Populate service-specific request fields
}
// Call the CreateAccount method
account, err := service.CreateAccount(ctx, request)
if err != nil {
log.Fatalf("CreateAccount failed: %v", err)
}
// FIXME: Add relevant response object usage
log.Printf("CreateAccount successful: %+v", account)
}
from meshtrade.wallet.account.v1 import (
AccountService,
CreateAccountRequest,
)
def main():
# Default configuration is used and credentials come from MESH_API_CREDENTIALS
# environment variable or default discovery methods. Zero config required
# unless you want custom configuration.
service = AccountService()
with service:
# Create request with service-specific parameters
request = CreateAccountRequest(
# FIXME: Populate service-specific request fields
)
# Call the CreateAccount method
account = service.create_account(request)
# FIXME: Add relevant response object usage
print("CreateAccount successful:", account)
if __name__ == "__main__":
main()
import co.meshtrade.api.wallet.account.v1.AccountService;
import co.meshtrade.api.wallet.account.v1.Service.CreateAccountRequest;
import co.meshtrade.api.wallet.account.v1.Account.Account;
import java.util.Optional;
public class CreateAccountExample {
public static void main(String[] args) {
// Default configuration is used and credentials come from MESH_API_CREDENTIALS
// environment variable or default discovery methods. Zero config required
// unless you want custom configuration.
try (AccountService service = new AccountService()) {
// Create request with service-specific parameters
CreateAccountRequest request = CreateAccountRequest.newBuilder()
// FIXME: Populate service-specific request fields
.build();
// Call the CreateAccount method
Account account = service.createAccount(request, Optional.empty());
// FIXME: Add relevant response object usage
System.out.println("CreateAccount successful: " + account);
} catch (Exception e) {
System.err.println("CreateAccount failed: " + e.getMessage());
e.printStackTrace();
}
}
}
syntax = "proto3";
package meshtrade.wallet.account.v1;
import "meshtrade/iam/role/v1/role.proto";
import "meshtrade/option/v1/method_type.proto";
import "meshtrade/type/v1/ledger.proto";
import "meshtrade/wallet/account/v1/account.proto";
option go_package = "github.com/meshtrade/api/go/wallet/account/v1;accountv1";
option java_package = "co.meshtrade.api.wallet.account.v1";
/*
AccountService provides access to and management of wallet accounts.
*/
service AccountService {
/*
Creates a new wallet account.
This is a write operation restricted to administrative roles.
*/
rpc CreateAccount(CreateAccountRequest) returns (meshtrade.wallet.account.v1.Account) {
option (meshtrade.option.v1.method_type) = METHOD_TYPE_WRITE;
option (meshtrade.iam.role.v1.roles) = {
roles: [ROLE_WALLET_ADMIN]
};
}
/*
Retrieves a single wallet account by its unique number.
*/
rpc GetAccount(GetAccountRequest) returns (meshtrade.wallet.account.v1.Account) {
option (meshtrade.option.v1.method_type) = METHOD_TYPE_READ;
option (meshtrade.iam.role.v1.roles) = {
roles: [
ROLE_WALLET_ADMIN,
ROLE_WALLET_VIEWER
]
};
}
/*
Retrieves a list of all accounts for the authenticated principal.
*/
rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) {
option (meshtrade.option.v1.method_type) = METHOD_TYPE_READ;
option (meshtrade.iam.role.v1.roles) = {
roles: [
ROLE_WALLET_ADMIN,
ROLE_WALLET_VIEWER
]
};
}
/*
Searches for accounts based on a partial label match.
*/
rpc SearchAccounts(SearchAccountsRequest) returns (SearchAccountsResponse) {
option (meshtrade.option.v1.method_type) = METHOD_TYPE_READ;
option (meshtrade.iam.role.v1.roles) = {
roles: [
ROLE_WALLET_ADMIN,
ROLE_WALLET_VIEWER
]
};
}
}
/* CreateAccountRequest contains the parameters for creating a new account. */
message CreateAccountRequest {
/*
A user-defined label for the new account, e.g., "Primary Savings".
*/
string label = 1;
/*
The ledger upon which the account should be created.
*/
meshtrade.type.v1.Ledger ledger = 2;
/*
If true, the account will be opened immediately after creation, which
may result in a transaction.
*/
bool open = 3;
}
/* GetAccountRequest specifies which account to retrieve. */
message GetAccountRequest {
/*
The unique account number to retrieve.
*/
string number = 1;
}
/* ListAccountsRequest requires no parameters to list accounts for the caller. */
message ListAccountsRequest {}
/* ListAccountsResponse contains a list of accounts. */
message ListAccountsResponse {
/*
A list of accounts owned by the authenticated principal.
*/
repeated meshtrade.wallet.account.v1.Account accounts = 1;
}
/* SearchAccountsRequest specifies the query for finding accounts. */
message SearchAccountsRequest {
/*
A substring to search for within account labels.
*/
string label = 1;
}
/* SearchAccountsResponse contains the accounts that matched the search query. */
message SearchAccountsResponse {
/*
A list of accounts that matched the label search query.
*/
repeated meshtrade.wallet.account.v1.Account accounts = 1;
}
Advanced Configuration​
For advanced client configuration options (custom endpoints, TLS settings, timeouts), see the SDK Configuration Guide.
Other Methods​
- Wallet Account v1 Method List - For Other methods