> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arcpass.vibepas.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /sponsorship/:id — Get Sponsorship Status

> GET /sponsorship/:id — Retrieve a sponsorship request by UUID. Includes current status, wallet address, and relay transaction reference if available.

Use these endpoints to check the current state of a sponsorship request. You can look up a request either by its UUID (assigned at creation) or by the on-chain transaction hash if the request has been relayed.

## Get by UUID

**`GET /sponsorship/:id`**

<ParamField path="id" type="string" required>
  UUID of the sponsorship request, returned when you called `POST /sponsorship/request`.
</ParamField>

<ResponseField name="id" type="string" required>
  UUID of the sponsorship request.
</ResponseField>

<ResponseField name="walletAddress" type="string" required>
  Ethereum address submitted for sponsorship.
</ResponseField>

<ResponseField name="status" type="string" required>
  Current lifecycle status of the sponsorship request. See the status table below.
</ResponseField>

<ResponseField name="requestedAt" type="string" required>
  ISO 8601 timestamp of when the request was created.
</ResponseField>

<ResponseField name="ipAddress" type="string">
  IP address of the client that submitted the request.
</ResponseField>

<ResponseField name="userAgent" type="string">
  User-agent string from the original request, or `null` if not captured.
</ResponseField>

## Get by transaction hash

**`GET /sponsorship/tx/:hash`**

Use this endpoint to find a sponsorship request using an on-chain transaction hash. This is useful if you have a `transactionHash` from a relay record and want to trace it back to the originating sponsorship request.

<ParamField path="hash" type="string" required>
  The on-chain transaction hash. Accepts any non-empty string up to 1,024 characters.
</ParamField>

## Sponsorship status values

| Status      | Meaning                                                          |
| ----------- | ---------------------------------------------------------------- |
| `pending`   | The request has been received and is awaiting review.            |
| `approved`  | The request passed eligibility checks and is queued for relay.   |
| `relayed`   | A relay transaction has been submitted on-chain.                 |
| `completed` | The relay transaction was confirmed on-chain.                    |
| `rejected`  | The request failed eligibility checks and will not be sponsored. |
| `failed`    | The relay transaction failed after being submitted.              |

Status transitions are strictly enforced: `pending` → `approved` or `rejected`, `approved` → `relayed`, `relayed` → `completed` or `failed`. Terminal states (`rejected`, `completed`, `failed`) cannot transition further.

## Errors

| Status | Cause                                                               |
| ------ | ------------------------------------------------------------------- |
| `400`  | The `:id` is not a valid UUID format.                               |
| `404`  | No sponsorship request found with the given ID or transaction hash. |

<CodeGroup>
  ```bash By UUID theme={null}
  curl --request GET \
    --url https://api.arcpass.io/sponsorship/a1b2c3d4-e5f6-7890-abcd-ef1234567890
  ```

  ```bash By transaction hash theme={null}
  curl --request GET \
    --url https://api.arcpass.io/sponsorship/tx/0xdeadbeefcafe1234567890abcdef1234567890abcdef1234567890abcdef1234
  ```
</CodeGroup>

```json 200 theme={null}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "walletAddress": "0xabc1234567890def1234567890abcdef12345678",
  "status": "relayed",
  "requestedAt": "2025-05-11T10:30:00.000Z",
  "ipAddress": "203.0.113.42",
  "userAgent": "Mozilla/5.0 (compatible; ArcApp/1.0)"
}
```
