Core Concepts

Understand the key domain concepts you'll work with when building on Cubewire Wallet-as-a-Service.


Organization

An Organization is the top-level entity representing your company or business. All resources—vaults, users, policies, and configurations—are scoped to an organization.

PropertyDescription
IDUnique identifier for the organization
NameDisplay name of the organization
SlugURL-friendly unique identifier
EnvironmentPRODUCTION or DEVELOPMENT

Environment Types

EnvironmentDescription
PRODUCTIONLive environment with real assets
DEVELOPMENTTesting environment with test assets

Vault

A Vault is a secure wallet with its own blockchain address. Each vault has cryptographic keys stored in HSM infrastructure—you interact with vaults through our API, and we handle all the key management.

PropertyDescription
IDUnique identifier for the vault
NameDisplay name you assign
AddressBlockchain address for receiving and sending assets
Statusactive or inactive

What You Can Do With Vaults

  • Send transactions — Transfer native currency or tokens
  • Receive assets — Each vault has a unique address across supported networks
  • Track balances — View assets held in the vault
  • Apply policies — Attach spending limits and approval rules

Transaction

A Transaction represents a blockchain operation initiated through Cubewire. When you submit a transaction, we evaluate policies, perform compliance checks, sign with HSM-protected keys, and broadcast to the blockchain.

Transaction Types

TypeDescription
TRANSFERSend native currency or ERC-20 tokens
CONTRACT_CALLExecute a smart contract function
CONTRACT_DEPLOYDeploy a new smart contract
TYPED_MESSAGESign EIP-712 structured data

Transaction Statuses

StatusDescription
PENDING_APPROVALWaiting for required approvals
APPROVEDApprovals received, processing
SUBMITTEDSigned and broadcast to blockchain
CONFIRMEDIncluded in a confirmed block
FAILEDTransaction execution failed
REJECTEDApproval request was rejected
CANCELLEDCancelled before execution

Policy

A Policy is a rule that evaluates transactions and determines what action to take. Policies let you define spending limits, address allowlists, time-based restrictions, and multi-party approvals.

PropertyDescription
NameDescriptive name for the policy
PriorityEvaluation order (lower = evaluated first)
StatusACTIVE, INACTIVE, or DRAFT
ConditionsRules that must match for the policy to apply
ActionWhat happens when conditions match

Policy Actions

ActionDescription
ALLOWTransaction proceeds without additional checks
BLOCKTransaction is rejected
REQUIRE_APPROVALTransaction requires human approval before proceeding
NOTIFYSend notification but allow transaction

Example Policies

Use CaseConditionsAction
Spending limitAmount > $10,000Require approval
Address allowlistRecipient not in trusted listBlock
High-value reviewAmount > $50,000Require 2 approvals

Named List

A Named List is a reusable collection of values that policies can reference. Use lists for address allowlists, blocklists, and approver groups.

PropertyDescription
NameUnique name within your organization
TypeADDRESS, COUNTRY_CODE, or custom
ItemsArray of values in the list

Common Use Cases

List TypeExample Use
Address allowlistTrusted withdrawal addresses
Address blocklistKnown risky addresses
Approved assetsTokens allowed for trading
Approver groupUsers who can approve high-value transactions

Approval

When a policy requires approval, a Transaction Approval Request is created. Designated approvers can vote to approve or reject the transaction.

PropertyDescription
StatusPENDING, APPROVED, REJECTED, or EXPIRED
Required ApproversNumber of approvals needed
DeadlineWhen the request expires
VotesIndividual approver decisions

Approval Flow


Webhook

A Webhook delivers real-time notifications to your systems when events occur. No polling required—we push updates to your endpoint as they happen.

PropertyDescription
URLYour endpoint to receive webhook payloads
EventsEvent types you're subscribed to
SecretHMAC key for verifying payload signatures

Webhook Events

EventDescription
transaction.submittedTransaction broadcast to blockchain
transaction.confirmedTransaction confirmed on-chain
transaction.failedTransaction execution failed
transaction.approval_requiredTransaction needs approval
vault.createdNew vault created
inbound.detectedIncoming transfer detected

User & Role

User

A User is an individual who can access your organization in Cubewire—either through the dashboard or as an approver for transactions.

PropertyDescription
EmailUnique email address
StatusAccount status
RolesAssigned roles determining permissions

Role

A Role is a collection of permissions assigned to users. Cubewire provides system roles, and you can create custom roles.

System Roles

RoleDescription
OwnerFull administrative access
AdminAdministrative access without billing
MemberStandard user access
ViewerRead-only access

Permissions

Permissions follow the format resource:action. Common examples:

PermissionDescription
vaults:createCreate new vaults
vaults:sendSend transactions from vaults
transactions:approveApprove pending transactions
policies:updateModify policies

Network

A Network is a supported blockchain where you can send transactions and hold assets.

Supported Networks

NetworkChain IDType
Ethereum1Mainnet
Polygon137Mainnet
Arbitrum One42161Mainnet
Base8453Mainnet
Ethereum Sepolia11155111Testnet
Polygon Amoy80002Testnet
Cubewire Testnet62831Testnet

API Authentication

Cubewire uses OAuth 2.0 client credentials for API authentication.

ComponentDescription
Client IDPublic identifier for your API credential
Client SecretSecret key (store securely, never expose in client-side code)
Access TokenShort-lived JWT for API requests (1 hour TTL)

Compliance

Cubewire includes built-in compliance checks that run automatically on transactions.

CheckDescriptionWhen Applied
AML/KYTTransaction monitoring for money laundering riskEvery outbound transaction
SanctionsScreening against OFAC, UN, EU sanctions listsEvery transaction
Travel RuleOriginator/beneficiary data exchange per FATF guidelinesTransfers above threshold

Next