---
title: "PIN-gated custodial sign and send"
method: POST
path: "/api/wallets/{address}/sign-transaction"
tags: ["Wallets", "Wallet and web3"]
---

# PIN-gated custodial sign and send

`POST /api/wallets/{address}/sign-transaction`

Signs and broadcasts server-side. Private key never leaves the server. Returns { txHash, chainId }.

## Path parameters

- `address` string, required

## Request body

- object
  - `pin` string, required
  - `to` string, required
  - `value` string, required
  - `data` string
  - `chainId` integer, required
  - `idempotencyKey` string

## Response `200`

{ success: true, data: { txHash, chainId } }

## Other responses

- `400` — VALIDATION_ERROR
- `401` — UNAUTHORIZED

---

[API](https://skmtc.net/d-sports-ecosystem/apis/d-sports-api.md) · [All operations](https://skmtc.net/d-sports-ecosystem/apis/d-sports-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/d-sports-ecosystem/d-sports-api/revisions/cbc84b00330e/schema)
