Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port (default: 3100) | 3100 |
| TRANSPORT | No | stdio (default) or http | stdio |
| DUAL_API_KEY | No | API key for authentication | |
| DUAL_API_URL | No | API base URL (default: https://api.blockv-labs.io/v3) | https://api.blockv-labs.io/v3 |
| DUAL_ACCESS_TOKEN | No | JWT access token | |
| DUAL_REFRESH_TOKEN | No | JWT refresh token |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dual_login | Authenticate with email/phone and password. Returns JWT tokens for subsequent API calls. Sets auth automatically for this session. |
| dual_login_guest | Create a guest session with limited permissions. No credentials required. |
| dual_register | Create a new wallet account. A verification code will be sent to the email/phone provided. |
| dual_register_verify | Complete registration by submitting the verification code sent to your email/phone. |
| dual_refresh_token | Exchange a refresh token for a new access token. |
| dual_get_me | Get the authenticated wallet's profile — ID, nickname, email, avatar, language, activation status. |
| dual_update_me | Update the authenticated wallet's nickname, language, or avatar. |
| dual_get_wallet | Retrieve a wallet's public profile by its ID. |
| dual_reset_password | Send a password reset code to the wallet's email/phone. |
| dual_reset_password_verify | Submit reset code and set a new password. |
| dual_list_organizations | List all organizations the authenticated wallet belongs to. Supports pagination and role filtering. |
| dual_create_organization | Create a new organization (multi-tenant workspace). Returns the org with its ID and FQDN. |
| dual_get_organization | Get organization details including members, roles, and account info. |
| dual_update_organization | Update an organization's name, description, or image. |
| dual_get_org_balance | Get the current balance and currency for an organization. |
| dual_list_org_members | List all members of an organization with their roles. |
| dual_add_org_member | Add a wallet as a member to an organization with a specific role. |
| dual_remove_org_member | Remove a member from an organization. |
| dual_list_org_roles | List all roles defined for an organization. |
| dual_create_org_role | Create a new role with specific permissions for an organization. |
| dual_list_templates | List token templates. Templates define the structure, properties, and actions of tokenized objects. Filter by prefix or FQDN. |
| dual_create_template | Create a new token template that defines the structure of tokenized objects. Specify the property schema, allowed actions, and access rules. Example: Create a "Reward Token" template with properties like points, expiry_date, and redeemable status. |
| dual_get_template | Get full details of a template including its property schema, actions, and factory config. |
| dual_update_template | Update a template's name, property schema, or access rules. |
| dual_delete_template | Permanently delete a template. This cannot be undone. |
| dual_list_template_variations | List all variations of a template. Variations are alternative configurations of the same template. |
| dual_create_template_variation | Create a variation of an existing template with overridden properties. |
| dual_list_objects | List tokenized objects (asset instances). Objects are created from templates and owned by wallets. Filter by template, owner, FQDN, or geographic hash. Supports pagination. |
| dual_get_object | Get full details of a tokenized object — its properties, ownership, faces, actions, and metadata. |
| dual_update_object | Update the properties of a tokenized object. Only mutable properties can be changed. |
| dual_get_object_children | Get child objects in a hierarchical object tree. |
| dual_get_object_parents | Get parent objects in a hierarchical object tree. |
| dual_get_object_activity | Get the full activity/audit log for an object — all state changes, transfers, and action executions. |
| dual_search_objects | Search tokenized objects with filter criteria. Supports complex queries across all object properties. Example filters: { "template_id": "abc123", "properties.status": "active" } |
| dual_count_objects | Count objects matching filter criteria without returning the full objects. |
| dual_execute_action | Execute an action on a tokenized object via the Event Bus. Actions are the primary way to change object state. Examples: mint tokens, transfer ownership, redeem rewards, update status. The action_type must match a registered action type, and the object must belong to a template that allows it. |
| dual_batch_actions | Execute multiple actions atomically in a single batch. All actions succeed or all fail. Useful for complex operations like: mint + transfer + configure in one transaction. |
| dual_list_actions | List executed actions. Filter by action ID or template. |
| dual_get_action | Get full details of a specific executed action. |
| dual_list_action_types | List all registered action types. Action types define what operations can be performed on objects. |
| dual_create_action_type | Register a new action type with an optional JSON schema for payload validation. |
| dual_update_action_type | Update an action type's name, description, or payload schema. |
| dual_list_faces | List face definitions. Faces are visual representations (images, 3D models, web views) attached to templates. |
| dual_create_face | Create a visual face for a template. Types: image, image_progress, image_policy, image_layered, 3d, web. |
| dual_get_face | Get details of a specific face. |
| dual_update_face | Update a face's display URL or type. |
| dual_delete_face | Delete a face definition. |
| dual_get_template_faces | Get all faces associated with a specific template. |
| dual_upload_file | Upload a file to DUAL storage. Returns a public URL. Useful for template assets, face images, and attachments. |
| dual_get_file | Get a file's URL or content by its storage ID. |
| dual_delete_file | Delete a file from DUAL storage. |
| dual_get_template_assets | List all storage assets associated with a template. |
| dual_list_webhooks | List all registered webhooks. Filter by type, template, action, or active status. |
| dual_create_webhook | Register a webhook to receive real-time notifications when events occur on the platform. |
| dual_get_webhook | Get details of a specific webhook. |
| dual_update_webhook | Update a webhook's URL or active status. |
| dual_delete_webhook | Delete a webhook subscription. |
| dual_test_webhook | Send a test payload to a webhook endpoint to verify it's working. |
| dual_list_messages | List notification messages sent through the platform. |
| dual_send_notification | Send a notification message to one or more wallets using a message template. |
| dual_list_message_templates | List all notification message templates. |
| dual_create_message_template | Create a notification template with subject, body (with placeholders), and delivery channels. |
| dual_delete_message_template | Delete a message template. |
| dual_list_batches | List sequencer batches. Batches group multiple transactions for efficient on-chain anchoring via ZK-rollup. |
| dual_get_batch | Get details of a sequencer batch including all contained transactions. |
| dual_list_checkpoints | List ZK-rollup checkpoints. Each checkpoint contains a state root and proof that anchors batches to L1. |
| dual_get_checkpoint | Get a specific ZK-rollup checkpoint with its proof data and state roots. |
| dual_list_api_keys | List all API keys for the authenticated wallet. |
| dual_create_api_key | Create a new API key for server-to-server integration. The key value is only shown once — save it immediately. |
| dual_delete_api_key | Permanently revoke and delete an API key. |
| dual_get_payment_config | Get the platform's payment configuration — deposit addresses, supported tokens, and fee structure. |
| dual_list_deposits | List deposit transactions. Filter by transaction hash, token, or token address. |
| dual_request_access | Request access to a gated platform feature. |
| dual_list_support_messages | List support messages. |
| dual_send_support_message | Send a support message to the DUAL team. |
| dual_public_list_templates | List publicly accessible templates. No authentication required. |
| dual_public_get_template | Get a public template's details. No authentication required. |
| dual_public_get_object | Get a public object's details. No authentication required. |
| dual_public_search_objects | Search publicly accessible objects. No authentication required. |
| dual_public_get_stats | Get public platform statistics — total objects, templates, and wallets. No authentication required. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |