---
title: "Create an authenticated user wallet signer credential"
method: POST
path: "/user/me/wallet/signers"
tags: ["Wallets"]
---

# Create an authenticated user wallet signer credential

`POST /user/me/wallet/signers`

## Request

- Base URL: `http://localhost:3200`
- URL: `http://localhost:3200/user/me/wallet/signers`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/steward-fi/apis/steward-api/docs/user/me/wallet/signers/post.ts> (a function with typed inputs; its response is checked against the schema)

Requires a personal authenticated user session with recent MFA. Creates a bounded HMAC signer credential for signing-only permissions on the selected embedded wallet. The one-time credentialSecret is returned only in this create response.

## Headers

- `X-Steward-Request-Timestamp` string
- `X-Steward-Request-Expires-At` string
- `X-Steward-Signature` string
- `X-Steward-Signing-Key-Id` string
- `Idempotency-Key` string

## Request body

- object
  - `walletIndex` integer
  - `wallet_index` integer
  - `signerType` 'delegated' | 'service'
  - `subjectType` 'user' | 'wallet' | 'external'
  - `subjectId` string
  - `keyType` 'hmac'
  - `label` string, nullable
  - `permissions` string[]
  - `metadata` object

## Response `201`

JSON response

- object
  - `ok` true, required
  - `data` object, required
    - `id` string, required
    - `tenantId` string, required
    - `agentId` string, required
    - `signerType` 'owner' | 'delegated' | 'service' | 'quorum_member', required
    - `subjectType` 'user' | 'wallet' | 'api_key' | 'external', required
    - `subjectId` string, required
    - `keyType` 'hmac' | 'p256', required
    - `publicKey` string, nullable, required
    - `address` string, nullable
    - `chainFamily` 'evm' | 'solana' | 'null', nullable
    - `label` string, nullable
    - `permissions` string[], required
    - `policyIds` string[]
    - `metadata` object, required
    - `hasCredential` boolean
    - `status` 'active' | 'paused' | 'revoked', required
    - `createdBy` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `credentialSecret` string

## Other responses

- `400`: JSON response
- `401`: JSON response
- `403`: JSON response
- `404`: JSON response
- `408`: JSON response
- `409`: JSON response

## Changes

- **2026-08-17** `261a7c8070b2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/steward-fi/apis/steward-api/changes/user/me/wallet/signers/post.md)

---

[API](https://skmtc.dev/steward-fi/apis/steward-api.md) - [All operations](https://skmtc.dev/steward-fi/apis/steward-api/llms.txt) - [OpenAPI document](https://skmtc.dev/steward-fi/apis/steward-api/revisions/b88b4b97a664?raw)
