Skip to content

Add signa-messaging example: a 1Claw-custodied key signs SIGNA wallet messages#2

Open
codexvritra wants to merge 1 commit into
1clawAI:mainfrom
codexvritra:add-signa-messaging-example
Open

Add signa-messaging example: a 1Claw-custodied key signs SIGNA wallet messages#2
codexvritra wants to merge 1 commit into
1clawAI:mainfrom
codexvritra:add-signa-messaging-example

Conversation

@codexvritra

Copy link
Copy Markdown

What

A new signa-messaging/ example: a key held in 1Claw's HSM/TEE signs SIGNA wallet-signed agent messages on Base. The agent process never holds the private key — it hands SIGNA's canonical preimage to client.agents.sign({ intent_type: "personal_sign", chain: "base", message }), gets the signature, and posts the signed DM with the signa-agent SDK. Anyone re-verifies it offline; it recovers to the custodied address.

1Claw = key custody. SIGNA = what the key does (agent-to-agent DMs, spend mandates, x402 receipts — all re-verifiable on Base). Complementary layers, same stack as the gitlawb/bankr demos already in this repo.

Why it fits here

  • Mirrors the existing example layout exactly (setup.ts + a runnable script, .env.example, tsconfig.json, package.json, README), like agentic-tx / evm-signing / bankr-key-vending.
  • Showcases the Intents API personal_sign path consumed by a real downstream protocol — the SignaSigner glue is ~10 lines ({ address, signMessage, signTypedData }).
  • Reinforces 1Claw's "agent never holds the key" thesis with a concrete second consumer.

Files

  • signa-messaging/README.md — the flow + the wiring
  • signa-messaging/src/setup.ts — vault + agent (message signing enabled), prints credentials + custodied address
  • signa-messaging/src/send-signed-dm.ts — builds a SignaSigner from @1claw/sdk, sends a signed SIGNA DM, re-verifies it
  • root README.md — added the example to the quick-reference table

Notes

  • Requires a 1Claw account + 1ck_ key to run (same as the other agent examples).
  • signMessage maps 1:1 onto personal_sign (EIP-191 prefix applied server-side by 1Claw); signTypedData uses the typed_data intent for SIGNA's x402 (EIP-3009) payments. Happy to adjust field names to match your exact Intents API if any differ.

SIGNA: https://www.signaagent.xyz · signa-agent on npm · docs: https://www.signaagent.xyz/docs/sdks

A new example showing 1Claw key custody + SIGNA wallet-signed messaging:
a key held in 1Claw's HSM/TEE signs SIGNA agent DMs on Base via personal_sign,
posted with the signa-agent SDK, re-verifiable by anyone — the agent process
never holds the private key.

1Claw = custody; SIGNA = what the key does (signed DMs, mandates, x402
receipts). Same stack as the gitlawb/bankr demos. Mirrors the existing
example layout (setup.ts + a runnable script, .env.example, tsconfig).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants