Bankr Agent - Sign & Submit API
This skill should be used when the user asks to "sign a message", "sign typed data", "sign a transaction", "submit a transaction", "submit raw transaction", "personal_sign", "EIP-712", "eth_signTypedData", "eth_signTransaction", or any direct signing or transaction submission operation. Covers the synchronous /agent/sign and /agent/submit endpoints.
Works with
---
name: Bankr Agent - Sign & Submit API
description: This skill should be used when the user asks to "sign a message", "sign typed data", "sign a transaction", "submit a transaction", "submit raw transaction", "personal_sign", "EIP-712", "eth_signTypedData", "eth_signTransaction", or any direct signing or transaction submission operation. Covers the synchronous /agent/sign and /agent/submit endpoints.
license: MIT
---
# Sign & Submit API
Synchronous endpoints for signing messages and submitting transactions directly — no polling required.
## Overview
| Endpoint | Purpose | Returns |
|----------|---------|---------|
| `POST /agent/sign` | Sign messages, typed data, or transactions | Signature |
| `POST /agent/submit` | Submit raw transactions to chain | Transaction hash |
Unlike `/agent/prompt` (async with job polling), these endpoints return immediately.
## POST /agent/sign
Sign data without broadcasting to the network.
### Signature Types
| Type | Use Case |
|------|----------|
| `personal_sign` | Sign plain text messages (auth, verification) |
| `eth_signTypedData_v4` | Sign EIP-712 typed data (permits, orders) |
| `eth_signTransaction` | Sign transactions for later broadcast |
### Prompt Examples
**Sign a message:**
- "Sign this message: Hello World"
- "Sign in to MyApp with nonce abc123"
**Sign typed data (EIP-712 permit):**
- "Sign this EIP-712 permit for USDC approval"
**Sign a transaction without broadcasting:**
- "Sign this transaction but don't send it"
### Success Response
```json
{
"success": true,
"signature": "0x...",
"signer": "0xYourWalletAddress",
"signatureType": "personal_sign"
}
```
### Common Errors
| Status | Error | Cause |
|--------|-------|-------|
| 400 | Missing required field | Missing message, typedData, or transaction |
| 401 | Authentication required | Missing or invalid API key |
| 403 | Read-only API key | Key lacks write permissions |
## POST /agent/submit
Submit raw transactions directly to the blockchain.
### Transaction Fields
| Field | Required | Description |
|-------|----------|-------------|
| `to` | Yes | Destination address |
| `chainId` | Yes | Chain ID (8453=Base, 1=Ethereum, 137=Polygon) |
| `value` | No | Value in wei (as string) |
| `data` | No | Calldata (hex string) |
| `gas` | No | Gas limit |
| `waitForConfirmation` | No | Wait for on-chain confirmation (default: true) |
### Prompt Examples
**Submit a raw transaction:**
- "Submit this transaction on Base: {to: 0x..., data: 0x..., value: 0}"
**Simple ETH transfer:**
- "Submit a transfer of 1 ETH to 0x..."
### Success Response
With confirmation:
```json
{
"success": true,
"transactionHash": "0x...",
"status": "success",
"blockNumber": "12345678",
"gasUsed": "21000",
"signer": "0xYourWalletAddress",
"chainId": 8453
}
```
### Transaction Status Values
| Status | Description |
|--------|-------------|
| `success` | Confirmed and succeeded |
| `reverted` | Confirmed but reverted |
| `pending` | Submitted, not yet confirmed |
## Use Cases
- **Authentication**: Sign messages to verify wallet ownership
- **Gasless approvals**: Sign EIP-2612 permits without gas
- **Pre-built transactions**: Submit calldata from external tools
- **Multi-step workflows**: Execute approve + swap in sequence
## Comparison with /agent/prompt
| Feature | /agent/prompt | /agent/sign | /agent/submit |
|---------|---------------|-------------|---------------|
| Input | Natural language | Structured data | Transaction object |
| Response | Async (job ID) | Sync (signature) | Sync (tx hash) |
| Executes on-chain | Via AI agent | No | Yes |
| Best for | General queries | Auth, permits | Raw transactions |
## Security Notes
- `/agent/submit` executes immediately with **no confirmation prompt**
- Validate all transaction parameters before submission
- Use `waitForConfirmation: true` for important transactions
- Read-only API keys cannot use these endpoints (403)More General & Other skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

