Signing & Transactions
One signer for
every wallet action.
EVM messages, typed data, transactions, userOps and Solana payloads route through the same authenticated, policy-checked path.
sign.ts
import { useSignTypedData }
from '@kevo-ws/sdk/react'
const { signTypedData, isLoading }
= useSignTypedData()
const sig = await signTypedData(
JSON.parse(typedDataJson),
)
Typed data, made first-class.
Pass EIP-712 domains and messages directly. Kevo applies auth and policy checks, then returns a standard signature for your app or contracts.
- EIP-712 typed data
- Policy-checked before signing
- Works with viem, ethers, wagmi
sign.ts
import { sendTransaction }
from '@kevo-ws/sdk'
const txHash = await sendTransaction({
to: '0xRecipient...',
value: '0x2386f26fc10000',
chainId: 8453,
})Send transactions without the popup.
Sign and broadcast in one call, or split signing from submission for relayed flows. Smart-account aware, with optional gas sponsorship.
- EOA and userOp transactions
- Sponsored gas, when configured
- Signed transactions and userOps
sign.ts
import { useSignTypedData }
from '@kevo-ws/sdk/react'
const { signTypedData, isLoading }
= useSignTypedData()
const sig = await signTypedData(
JSON.parse(typedDataJson),
)A single SDK across stacks.
Use the React hooks for client flows, or call the admin API from your backend. Same user, same wallets, same policies — both sides of the wire.
- React hooks and vanilla JS client
- Server SDK with admin signing
- Identical policy enforcement
One signer
Less wallet UX. More product.
Stop juggling popups, gas dialogs and chain switches. Kevo gives you signing primitives that just work.