Skip to main content

RPC Commands

Here is a description of all RPC commands available.

Official SDKs support all of these. To get more detailed info, refer to your SDK documentation.

info

Subscriptions won't be available on Deeplink channel because of technical limitations.

get_endpoint​

Gets the endpoint URL used on AEWallet.

Request​

// no payload in request

Success Response​

{
endpointUrl: string // Endpoint URL
}

refresh_current_account​

Request the wallet to refresh current account info

Request​

// no payload in request

Success Response​

// no response

get_accounts​

Gets the accounts available on AEWallet.

Request​

// No payload

Success Response​

{
accounts: [
{
shortName: string, // Account name
serviceName: string, // Service name
genesisAddress: string, // Genesis address
}
]
}

send_transaction​

Signs and sends a transaction.

Request​

{
type: string, // Type of transaction
version: number, // Version of the transaction (used for backward compatiblity)
data: Object, // Transaction data zone (identity, keychain, smart contract, etc.)
generateEncryptedSeedSC: boolean // (Optional) : if true, add a encrypted (by storage nonce public key) seed in the transaction's ownerships to allow nodes to manage smart contract
}

Success Response​

{
transactionAddress: string, // Sent transaction address.
nbConfirmations: number, // number of received confirmations.
maxConfirmations: number, // Max number of confirmations.
}

add_service​

Requires user confirmation

Add a service in the keychain

Request​

{
name: string, // Name of the service
}

Success Response​

{
transactionAddress: string, // Transaction address.
nbConfirmations: number, // number of received confirmations.
maxConfirmations: number, // Max number of confirmations.
}

remove_service​

Requires user confirmation

Remove a service from the keychain

Request​

{
name: string, // Name of the service
}

Success Response​

{
transactionAddress: string, // Transaction address.
nbConfirmations: number, // Number of received confirmations.
maxConfirmations: number, // Max number of confirmations.
}

get_services_from_keychain​

Gets keychain's services from the keychain connected to AEWallet.

Request​

// No payload

Success Response​

{
services: [
{
derivationPath: string, // Derivation path
curve: string, // Curve
hashAlgo: string // Hash Algo
}
]
}

keychain_derive_keypair​

Derive a keypair for the given service at the index given and get the public key

Request​

{
serviceName: string, // Service name to identify the derivation path to use
index: number, // Chain index to derive (optional - default to 0)
pathSuffix: string // Additional information to add to a service derivation path (optional - default to empty)
}

Success Response​

{
publicKey: string // Public key of the service at the index given
}

keychain_derive_address​

Derive an address for the given service at the index given

Request​

{
serviceName: string, // Service name to identify the derivation path to use
index: number, // Chain index to derive (optional - default to 0)
pathSuffix: string // Additional information to add to a service derivation path (optional - default to empty)
}

Success Response​

{
address: string // Address derived
}

get_current_account​

Gets the current account selected on AEWallet.

Request​

// No payload

Success Response​

{
shortName: string, // Account name
serviceName: string, // Service name
genesisAddress: string, // Genesis address
}

sign_transactions​

Requires user confirmation

Signs many transactions.

Request​

{
serviceName: string, // Service name to use to sign the tx
pathSuffix: string, // Additional information to add to a service derivation path (optional)
description: { // Readable description to explain the purpose of signing transactions (locale + description)
en: string,
fr: string,
},
transactions: [
{
type: string, // Type of transaction
version: number, // Version of the transaction (used for backward compatiblity)
data: Object // Transaction data zone (identity, keychain, smart contract, etc.)
}
]
}

Success Response​

{
signedTxs: [
{
address: string, // Address: hash of the new generated public key for the given transaction
previousPublicKey: string, // Previous generated public key matching the previous signature
previousSignature: string, // Signature from the previous public key
originSignature: string // Signature from the device which originated the transaction (used in the Proof of work)
}
]
}

sign_payloads​

Requires user confirmation

Signs many payloads.

Request​

{
serviceName: string, // Service name to use to sign the payload
pathSuffix: string, // Additional information to add to a service derivation path (optional)
description: { // Readable description to explain the purpose of signing payloads (locale + description)
en: string,
fr: string,
},
payloads: [
{
payload: string, // Payload to sign
isHexa: boolean // Precise if the payload if in hexadecimal format
}
]
}

Success Response​

{
signedPayloads: [
{
signedPayload: string, // Signed payload
}
]
}

encrypt_payloads​

Encrypt many payloads with account public key.

Request​

{
serviceName: String, // Service name to use to encrypt the payload
pathSuffix: String, // Additional information to add to a service derivation path (optional)
payloads: [
{
payload: String, // Payload to encrypt
isHexa: boolean // Precise if the payload if in hexadecimal format
}
]
}

Success Response​

{
encryptedPayloads: [
{
encryptedPayload: String, // Encrypted payload
}
]
}

decrypt_payloads​

Requires user confirmation

Decrypt many payloads with account private key.

Request​

{
serviceName: String, // Service name to use to decrypt the payload
pathSuffix: String, // Additional information to add to a service derivation path (optional)
description: String { // Readable description to explain the purpose of decrypting payloads (locale + description)
en: String,
fr: String,
},
payloads: [
{
payload: String, // Payload to decrypt
isHexa: boolean // Precise if the payload if in hexadecimal format
}
]
}

Success Response​

{
decryptedPayloads: [
{
decryptedPayload: String, // Decrypted payload
}
]
}

subscribe_account​

Subscription command

Listens to any updates on an account.

Subscription​

{
name: string, // Service name to use to sign the payload
}

Notifications​

{
name: string,
genesisAddress: string,
lastAddress: string?,
balance: {
nativeTokenName: string,
nativeTokenValue: double,
}?,
}

subscribe_current_account​

Subscription command

Listens to any updates on wallet selected account.

Subscription​

// no payload in request

Notifications​

{
name: string,
genesisAddress: string,
}