Portal Community
Both operations here require a credential — even getPublicKey, despite making no on-chain call, needs the wallet secret key resolved from the vault to derive the corresponding public address. See Signing & Credentials.

signMessage (signing operation)

Signs an arbitrary UTF-8 message with the credentialed wallet's Ed25519 key — no network call, pure local cryptography.

FieldTypeRequiredDescription
messagetext✓ YesThe UTF-8 text to sign.
clusterselectNoAccepted for config-shape consistency, though this operation makes no network call.
credentialIDvault reference✓ YesCRYPTO_WALLET credential providing the signing key.

Example response:

{
  "address": "Own4...jkl",
  "message": "Sign in to Example App at 2026-07-29T12:00:00Z",
  "signature": "5xN7...base58sig"
}
Missing message: Omitting message returns VAL_MISSING_MESSAGE'message' is required.

getPublicKey (read-only use of the credential)

Derives and returns the base58 public address for the configured credential — useful for confirming which wallet a node instance is wired to before running a signing operation for real.

FieldTypeRequiredDescription
clusterselectNoAccepted for config-shape consistency; no network call is made.
credentialIDvault reference✓ YesCRYPTO_WALLET credential to resolve the address of.

Example response:

{
  "address": "Own4...jkl"
}
Tip: Run getPublicKey once after wiring up a new credentialID to confirm the resolved address matches what you expect — cheaper and safer than discovering a misconfigured credential via a failed sendNative on mainnet-beta.