---
title: "`POST /user/season-claim/voucher` — issues a short-lived, server-signed voucher attesting the caller's testnet root address. Root-only: a signed bearer proof of the wallet's identity is only meaningful for the wallet that owns it."
method: POST
path: "/api/v1/user/season-claim/voucher"
tags: ["User"]
---

# \`POST /user/season-claim/voucher\` — issues a short-lived, server-signed voucher attesting the caller's testnet root address. Root-only: a signed bearer proof of the wallet's identity is only meaningful for the wallet that owns it.

`POST /api/v1/user/season-claim/voucher`

## Request

- Base URL: `https://api.ekiden.fi`
- URL: `https://api.ekiden.fi/api/v1/user/season-claim/voucher`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/ekidenfi/apis/ekiden-gateway/docs/api/v1/user/season-claim/voucher/post.ts> (a function with typed inputs; its response is checked against the schema)

## Response `200`

Season-claim voucher

- SeasonClaimVoucherResponse: `POST /season-claim/voucher` — a signed, time-boxed voucher the mainnet side redeems to merge a testnet root's XP into the caller's mainnet account.
  - `expires_at_ms` integer, required
  - `voucher` string, required

## Changes

- **2026-09-10** `fad9eecaba2e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ekidenfi/apis/ekiden-gateway/changes/api/v1/user/season-claim/voucher/post.md)

---

[API](https://skmtc.dev/ekidenfi/apis/ekiden-gateway.md) - [All operations](https://skmtc.dev/ekidenfi/apis/ekiden-gateway/llms.txt) - [OpenAPI document](https://skmtc.dev/ekidenfi/apis/ekiden-gateway/revisions/fad9eecaba2e?raw)
