createApiOnlyUsers). It uses the TypeScript server SDK. For Go, see sdk-go examples.
Installation
Sign or send your first transaction
1
Initialize the server client
Add credentials to
.env:2
Create a wallet
CURVE_ED25519 + ADDRESS_FORMAT_SOLANA + path m/44'/501'/0'/0'. For Tron, see Tron.3
Add a deny-by-default allowlist policy (recommended)
Without an allow policy, signing is denied. Create a narrow policy for your automation user (replace tags / addresses as needed):See Policy templates for treasury 2-of-N and agent deny patterns.
4
Sign a raw payload or custodially send
Sign only (you broadcast yourself):Custodial send (0xkey builds, policy-checks, signs, broadcasts — EVM example):
sponsor: true (gas sponsorship) requires an Enterprise plan. Free / PAYG / Pro receive an entitlement error. See Gas Station and billing entitlements.When an activity needs consensus
If a policy setsconsensus (e.g. approvers.count() >= 2), the activity stays in ACTIVITY_STATUS_CONSENSUS_NEEDED until enough approvers call approveActivity (or reject). Operators can approve in the Dashboard → Activities or via the API. Approvals expire after 24 hours.
Next steps
- Integration guide — tags, webhooks, import/export
- Remote attestation — verify TEE proofs in production
- demo-company-wallet — local/staging sandbox (org → policy → consensus → send)