API Reference
wallets
10 endpoints
/api/v1/walletsList Wallets
List all wallets owned by the current user.
Set details=true to include balance and organization/membership context.
Query parameters
| details | boolean | Include balance and context information default: false |
| default_backend | string | default: "primary" |
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
PaginatedResponse_UserWalletResponse_ | PaginatedResponse_UserWalletWithContextResponse_
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/wallets" \
-H "Authorization: Bearer <token>"/api/v1/wallets/primaryCreate Primary Wallet
Ensure the current user has a primary wallet and a primary virtual card.
Idempotent. Returns 201 Created when the wallet is created this request, 200 OK when returning an already-existing primary wallet.
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| wallet_uuid* | string | Created wallet UUID |
| wallet_address* | string | Created wallet address |
| virtual_card_uuid | string | null | Created virtual card UUID (primary identity anchor) |
| Field | Type | Description |
|---|---|---|
| wallet_uuid* | string | Created wallet UUID |
| wallet_address* | string | Created wallet address |
| virtual_card_uuid | string | null | Created virtual card UUID (primary identity anchor) |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X POST "https://api.davi.social/api/v1/wallets/primary" \
-H "Authorization: Bearer <token>"/api/v1/wallets/{wallet_address}Get Wallet
Get a wallet by its address.
Path parameters
| wallet_address* | string |
Responses
| Field | Type | Description |
|---|---|---|
| address* | string | Wallet address |
| uuid* | string | Wallet UUID |
| user_uuid | string | null | Owner user UUID (None for org treasury wallets) |
| public_key_pem* | string | Public key in PEM format |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/wallets/{wallet_address}" \
-H "Authorization: Bearer <token>"/api/v1/wallets/{wallet_address}/detailsGet Wallet Details
Get wallet with balance and organization/membership context.
Returns the wallet with its current balance, organization context, and membership information if applicable.
Path parameters
| wallet_address* | string |
Responses
| Field | Type | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wallet_uuid* | string | Wallet UUID | ||||||||||||
| wallet_address* | string | Wallet address | ||||||||||||
| balance* | number | Current wallet balance | ||||||||||||
| is_primary* | boolean | Whether this is the user's primary wallet | ||||||||||||
| organization | WalletOrganizationInfo | null | Organization this wallet belongs to, if any | ||||||||||||
object · WalletOrganizationInfo
| ||||||||||||||
| membership | WalletMembershipInfo | null | Membership associated with this wallet, if any | ||||||||||||
object · WalletMembershipInfo
| ||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/wallets/{wallet_address}/details" \
-H "Authorization: Bearer <token>"/api/v1/wallets/{wallet_address}/balanceGet Wallet Balance
Get a wallet's current point balance.
Path parameters
| wallet_address* | string |
Responses
| Field | Type | Description |
|---|---|---|
| balance* | number | Current wallet balance |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/wallets/{wallet_address}/balance" \
-H "Authorization: Bearer <token>"/api/v1/wallets/{wallet_address}/transactionsGet Transaction History
List a wallet's transactions, most recent first.
Path parameters
| wallet_address* | string |
Query parameters
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| total_items* | integer | Total number of items available | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| total_pages* | integer | Total number of pages available | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| current_page* | integer | Current page number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| items* | Transaction[] | List of items on the current page | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
array items · Transaction
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/wallets/{wallet_address}/transactions" \
-H "Authorization: Bearer <token>"/api/v1/wallets/{wallet_address}/transactions/recentGet Recent Transactions
Get recent transactions with enriched sender information.
Returns transactions with human-readable sender names (when available) and transaction type labels. For transactions created before sender metadata was stored, falls back to wallet address.
Path parameters
| wallet_address* | string |
Query parameters
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
| Field | Type | Description | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| total_items* | integer | Total number of items available | |||||||||||||||||||||||||||
| total_pages* | integer | Total number of pages available | |||||||||||||||||||||||||||
| current_page* | integer | Current page number | |||||||||||||||||||||||||||
| items* | RecentTransactionItem[] | List of items on the current page | |||||||||||||||||||||||||||
array items · RecentTransactionItem
| |||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/wallets/{wallet_address}/transactions/recent" \
-H "Authorization: Bearer <token>"/api/v1/transactionsList Transactions
List all transactions across all wallets owned by the current user.
Returns a paginated list of transactions, ordered by most recent first.
Query parameters
| default_backend | string | default: "primary" |
| page | integer | default: 1 · ≥ 1 |
| page_size | integer | default: 20 · ≥ 1 · ≤ 100 |
| sort_by | string | null | |
| sort_order | string | default: "asc" |
Responses
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| total_items* | integer | Total number of items available | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| total_pages* | integer | Total number of pages available | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| current_page* | integer | Current page number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| items* | Transaction[] | List of items on the current page | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
array items · Transaction
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/transactions" \
-H "Authorization: Bearer <token>"/api/v1/transactions/{transaction_id}/decryptDecrypt Transaction Data
Decrypt a transaction's data payload.
The caller names which of their wallets to decrypt with; ownership of that wallet is what authorizes the read.
Path parameters
| transaction_id* | string |
Request body*application/json
| Field | Type | Description |
|---|---|---|
| wallet_address* | string | Address of a wallet the caller owns that took part in the transaction. Its key is what decrypts the payload. |
Responses
| Field | Type | Description |
|---|---|---|
| manifest_url* | string | The URL of the reward manifest |
| content_hash | string | null | The hash of the reward content. Used for integrity checking |
| expires_at | string (date-time) | null | The expiration date of the reward manifest |
| access_key | string | null | The access key for the reward manifest |
| access_key_type | enum | The type of access key for the reward manifest default: "none" |
| additional_data* | object | Additional transaction-specific custom data |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X POST "https://api.davi.social/api/v1/transactions/{transaction_id}/decrypt" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ /* request body */ }'/api/v1/transactions/{transaction_id}Get Transaction
Get one of the caller's transactions by id.
A transaction is readable by the wallets on either end of it. The id alone
does not authorize the read: it is unguessable, but unguessable is not a
permission, and on a third-party surface it would let any token holding
wallet:transactions:read fetch a transaction that came into its
possession by any means.
Path parameters
| transaction_id* | string |
Query parameters
| default_backend | string | default: "primary" |
Responses
| Field | Type | Description |
|---|---|---|
| id* | string | Transaction ID (CUID2) |
| from_address* | string | Sender wallet address |
| to_address* | string | Receiver wallet address |
| amount* | number | Transaction amount |
| transaction_type* | string | Type of transaction |
| status* | string | Status of the transaction |
| transaction_hash* | string | Hash of the transaction |
| previous_hash* | string | Hash of the previous transaction |
| signature* | string | Digital signature of the transaction |
| public_key* | string | Public key in PEM format |
| encrypted_data* | string | Encrypted transaction data |
| data_hash* | string | Hash of the transaction data |
| description* | string | Description of the transaction |
| reference_id* | string | Reference ID for the transaction |
| original_transaction_id* | string | Original transaction ID for reversals/refunds (CUID2) |
| failure_reason* | string | Reason for failure, if any |
| reversal_reason* | string | Reason for reversal, if any |
| failed_at* | string (date-time) | null | Timestamp when the transaction failed |
| created_at* | string (date-time) | Timestamp when the transaction was created |
| confirmed_at* | string (date-time) | null | Timestamp when the transaction was confirmed |
| tags | string[] | Tags attached to the transaction at creation time |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
| Field | Type | Description |
|---|---|---|
| errors* | object | Map of field names to error messages. Use '_root' for form-level errors. |
| message* | string | Human-readable error summary |
| code | string | null | Machine-readable error code |
Example request
curl -X GET "https://api.davi.social/api/v1/transactions/{transaction_id}" \
-H "Authorization: Bearer <token>"