QuickSign (KIP-0015)
QuickSign is a Kadena Improvement Proposal (KIP-0015) that enables batch transaction signing in eckoWALLET. Instead of signing transactions one at a time, users can review and sign multiple transactions together, dramatically improving UX for complex DeFi operations.
Overview
QuickSign extends the Kadena signing API with a new endpoint that allows wallets to present multiple transactions to users for batch approval.
Official Specification: KIP-0015 on GitHub
Benefits
⚡ Faster UX - Sign multiple transactions at once
🔄 Atomic Operations - All or nothing approach for complex workflows
💰 DeFi Optimized - Perfect for multi-step swaps, liquidity operations
🎯 Better Context - Users see the full operation, not isolated steps
Use Cases
QuickSign is ideal for:
Multi-hop swaps - Token A → Token B → Token C
Liquidity operations - Add liquidity + stake LP tokens
Cross-chain transfers - Multiple signatures required
Batch operations - Process multiple similar transactions
Complex DeFi - Any operation requiring multiple signatures
How QuickSign Works
Traditional Signing Flow
Without QuickSign:
dApp requests signature for transaction 1
User approves
dApp requests signature for transaction 2
User approves
dApp requests signature for transaction 3
User approves
... (repeat for each transaction)
Problems:
User must approve each transaction individually
Poor UX for multi-step operations
No context about the overall operation
Risk of partial completion if user cancels mid-flow
QuickSign Flow
With QuickSign:
dApp requests signatures for ALL transactions at once
User sees complete operation
User approves all signatures in one action
All transactions are signed together
Advantages:
Single approval for entire operation
User sees full context
Faster and more efficient
Clear all-or-nothing semantics
API Reference
Method: kda_requestQuickSign
kda_requestQuickSignRequest batch signing of multiple Kadena transactions.
Request Format
Parameters
networkId (string, required)
The Kadena network to use
Valid values:
'mainnet01','testnet04','development'
commandSigDatas (Array, required)
Array of CommandSigData objects
Each represents one transaction to sign
Minimum: 1 transaction
Maximum: Determined by wallet (eckoWALLET supports up to 100)
CommandSigData Structure
Each CommandSigData object contains:
cmd (string, required)
JSON-stringified Pact command object
Must follow Chainweb command format
sigs (Array, required)
Array of signer objects
Each signer represents a public key that should sign
Use
nullfor signatures you're requesting
Signer Structure
pubKey (string, required)
Lowercase base-16 encoded public key
64 characters hex string
Example:
"5a2afbc631fc209296f5b1b9bfd3956048e3bc40ca3cb62afac329c944be08f5"
sig (string | null, optional)
If
nullor omitted: Request signature for this public keyIf string: Pre-existing signature (wallet won't sign)
Lowercase base-16 encoded signature
Response Format
Success Response
Response Fields:
status:'success'if user approvedquickSignData: Array of signed commands (one per input)commandSigData: Original command with signatures addedoutcome.hash: Transaction hash (request key)outcome.result:'success'if signed successfully
Error Response
Common Errors:
"QuickSign fail: wallet public key not found"- Wallet doesn't control requested key"User rejected the request"- User canceled in wallet UI"Invalid command format"- Malformed command"Network mismatch"- Wrong network selected in wallet
Complete Example
Basic QuickSign Implementation
Multi-Step DeFi Operation
Example: Swap Token A → B, then stake Token B
Advanced Patterns
Multi-Signature Transactions
QuickSign supports transactions requiring multiple signatures:
Note: Wallet will only sign for keys it controls. For multi-sig with different parties, coordinate signing separately.
Partial Signing
Some signatures pre-filled, others requested:
Error Handling
Comprehensive error handling:
Best Practices
Command Construction
✅ DO:
Use unique nonces for each command
Set reasonable gas limits
Include all required capabilities
Validate commands before QuickSign
Use current timestamps
❌ DON'T:
Reuse nonces across commands
Set extremely high gas limits
Forget required capabilities
Skip command validation
User Experience
✅ DO:
Group related transactions together
Provide context about the operation
Show estimated total cost
Explain what will happen
Handle rejections gracefully
❌ DON'T:
Batch unrelated transactions
Hide what transactions do
Surprise users with unexpected txs
Force re-approval on rejection
Security
✅ DO:
Validate all user inputs
Verify recipients before signing
Check amounts are as expected
Use appropriate gas settings
Log all QuickSign operations
❌ DON'T:
Trust user input blindly
Sign transactions without review
Use hardcoded private keys
Skip error handling
Transaction Ordering
QuickSign does NOT guarantee transaction execution order. Each transaction is sent to the blockchain independently.
Sequential Execution
If you need guaranteed order:
Parallel Execution
For independent transactions:
Comparison with Single Sign
User Approvals
One per transaction
One for all
UX
Multiple popups
Single popup
Context
Individual txs
Full operation
Speed
Slower
Faster
Complexity
Simple
Moderate
Best For
Simple operations
Complex workflows
Debugging
Common Issues
"Command not valid JSON"
Ensure
cmdisJSON.stringify()-edCheck for circular references
Validate JSON syntax
"Signer not found"
Wallet doesn't control the public key
Check key is correct (64 hex chars)
Ensure wallet is unlocked
"Transaction failed after signing"
Check Pact code for errors
Verify sufficient balance
Ensure capabilities are correct
Testing
Test QuickSign thoroughly:
Browser Compatibility
QuickSign is available in:
✅ eckoWALLET Browser Extension (v2.0+)
✅ eckoWALLET Mobile via WalletConnect
Check for support:
Related Documentation
API Reference - Complete eckoWALLET API
Transaction Signing - Single transaction signing
dApp Integration Guide - Full integration tutorial
Code Examples - More examples
Resources
Need Help?
Discord: https://discord.com/invite/runonflux
Twitter: @eckoWALLET
GitHub: Report issues and feature requests
QuickSign makes complex DeFi operations simple. Use it to provide the best UX for your users! 🚀
Last updated