Skip to content

Action Types Reference

Warp Protocol v3 supports 7 action types, each designed for specific use cases. This guide provides detailed specifications for each action.

Overview

TypePurposeCreates Transaction
transferSend tokens/assets✅ Yes
contractExecute smart contract✅ Yes
queryRead contract state❌ No
collectHTTP data collection❌ No
linkNavigate to URL❌ No
mcpExecute MCP tools❌ No
promptAI text generation❌ No

Transfer

The transfer action type sends native tokens, ERC20/SPL tokens, or NFTs to an address.

Structure

json
{
  "type": "transfer",
  "label": "Send Funds",
  "address": "0xRecipientAddress...",
  "value": "1000000000000000000"
}

Properties

PropertyTypeRequiredDescription
typestringMust be "transfer"
labelWarpTextButton text
addressstringRecipient address (can use input)
valuestringNative token amount in smallest unit (wei/lamports)
transfersstring[]Token transfers (format: token|nonce|amount)
datastringAdditional transaction data
inputsWarpActionInput[]User inputs

Chain-Specific Notes

  • EVM Chains (Ethereum, Base, etc.):
    • value is in wei (18 decimals).
    • ERC20 tokens usually require a contract action (calling transfer), unless the chain supports native token transfers in the protocol layer.
  • MultiversX:
    • value is in wei (18 decimals for EGLD).
    • Use transfers array for ESDT/NFTs: ["TOKEN-ID|nonce|amount"]. Nonce is 0 for fungible tokens.
  • Solana:
    • value is in lamports (9 decimals).
  • Sui:
    • value is in MIST (9 decimals).

Contract

The contract action type executes smart contract functions on the blockchain.

Structure

json
{
  "type": "contract",
  "label": "Execute",
  "address": "0xContractAddress...",
  "func": "functionName",
  "gasLimit": 100000
}

Properties

PropertyTypeRequiredDescription
typestringMust be "contract"
labelWarpTextButton text
gasLimitnumberGas limit for transaction
addressstringContract address
funcstringFunction name to call
argsstring[]Fixed typed arguments (e.g. ["uint256:100"])
valuestringNative token amount to send with call
transfersstring[]Token transfers with call (MultiversX)
abistringFunction ABI signature (EVM) or URL
inputsWarpActionInput[]User inputs mapped to arguments

Argument Types

Arguments in args and input type must use the typed format type:value.

Basic Types:

TypeExampleDescription
stringstring:helloText string
uint256uint256:1000Unsigned integer (8-256 bits)
boolbool:trueBoolean
addressaddress:0x...Blockchain address
byteshex:1234abHex encoded bytes
tokentoken:USDC-123Token Identifier

Advanced Types:

TypeSyntaxExampleDescription
Optionoption:type:valoption:u64:123Nullable value. Use option:type for null.
Listlist:type:val,vallist:u8:1,2,3Array of values.
Variadicvariadic:type:valvariadic:u64:1,2Variable arguments (last arg).
Composite`composite(t1t2):v1v2`

Query

The query action type reads data from smart contracts without creating a transaction.

Structure

json
{
  "type": "query",
  "label": "Check Balance",
  "address": "0xContractAddress...",
  "func": "balanceOf"
}

Properties

PropertyTypeRequiredDescription
typestringMust be "query"
labelWarpTextButton text
addressstringContract address
funcstringView function name
argsstring[]Fixed typed arguments
abistringFunction ABI signature
autobooleanAuto-execute on load

Output Mapping

Query results are captured in the root output object.

json
{
  "output": {
    "BALANCE": "out.1"
  }
}

Collect

The collect action type sends HTTP requests to external endpoints.

Structure

json
{
  "type": "collect",
  "label": "Submit Form",
  "destination": {
    "url": "https://api.example.com/submit",
    "method": "POST"
  }
}

Properties

PropertyTypeRequiredDescription
typestringMust be "collect"
labelWarpTextButton text
destinationobjectHTTP config (url, method, headers)
inputsWarpActionInput[]User inputs (sent as body or query params)

Destination Config

json
{
  "destination": {
    "url": "https://api.example.com/endpoint",
    "method": "POST",
    "headers": {
      "Authorization": "Bearer {{API_KEY}}",
      "Content-Type": "application/json"
    }
  }
}

The link action type navigates to an external URL or another Warp.

Structure

json
{
  "type": "link",
  "label": "Learn More",
  "url": "https://example.com"
}

Properties

PropertyTypeRequiredDescription
typestringMust be "link"
labelWarpTextButton text
urlstringTarget URL

URL Patterns

  • Global Variables: ,
  • Warp Links: https://usewarp.to/alias

MCP

The mcp action type executes tools on Model Context Protocol servers.

Structure

json
{
  "type": "mcp",
  "label": "Run Tool",
  "destination": {
    "url": "http://localhost:3000/sse",
    "tool": "my_tool"
  }
}

See MCP Actions for full details.


Prompt

The prompt action type generates text using AI/LLM models.

Structure

json
{
  "type": "prompt",
  "label": "Generate",
  "prompt": "Write a story about {{topic}}."
}

See Prompt Actions for full details.


Common Action Properties

All actions support these properties:

PropertyTypeDescription
descriptionWarpTextAdditional context displayed to user
primarybooleanHighlights the action as the main call-to-action
autobooleanExecutes automatically when the Warp loads
nextstringWarp ID or URL to navigate to after success
whenstringConditional expression (e.g. > 0)