> ## 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.

# Understanding the ArcPass Sponsorship Request Lifecycle

> Learn what each sponsorship request state means, how your request moves through the pipeline, and what to do when it reaches a terminal state.

When you submit a sponsorship request to ArcPass, your request travels through a defined set of states before it resolves. Understanding these states helps you know exactly where your request stands and what — if anything — you need to do next.

## Request states

A sponsorship request moves through up to six states. Three of those states are **terminal**, meaning the request will not change again after reaching them.

<Steps>
  <Step title="Pending">
    ArcPass has received your request and placed it in the processing queue. Your wallet address has been validated and a request record has been created. No on-chain action has occurred yet.
  </Step>

  <Step title="Approved">
    ArcPass has verified your wallet's eligibility. The system has confirmed you have not been sponsored before and that your wallet is not blocked. An on-chain relay is now authorized and will be submitted shortly.
  </Step>

  <Step title="Relayed">
    The sponsorship transaction has been broadcast to Arc Network. The system is waiting for the transaction to be confirmed on-chain.
  </Step>

  <Step title="Completed — terminal success">
    The transaction was confirmed on-chain and native tokens have been delivered to your wallet. Your sponsorship is recorded permanently in the SponsorshipRegistry contract. No further action is needed.
  </Step>
</Steps>

Two additional terminal states indicate a request that will not proceed:

<CardGroup cols={2}>
  <Card title="Rejected" icon="circle-xmark">
    Your wallet was found to be ineligible at the time of processing — either it has already been sponsored or it has been blocked. This is a permanent outcome; submitting another request for the same wallet will produce the same result.
  </Card>

  <Card title="Failed" icon="triangle-exclamation">
    The relay encountered an error while submitting or confirming the transaction on-chain. ArcPass will automatically retry up to 5 times. If all retries are exhausted, the request is marked failed and will not be retried further.
  </Card>
</CardGroup>

## Relay transaction sub-lifecycle

Once your request reaches the **approved** state, ArcPass creates a relay transaction to handle the on-chain submission. This relay transaction has its own status that tracks what is happening at the network level.

```mermaid theme={null}
flowchart LR
    A([queued]) --> B([submitted])
    B --> C([confirmed])
    B --> D([failed])
    A --> D
```

| Relay status | Meaning                                                                                                                |
| ------------ | ---------------------------------------------------------------------------------------------------------------------- |
| `queued`     | The relay transaction has been created and is waiting to be broadcast                                                  |
| `submitted`  | The transaction has been sent to Arc Network and is awaiting inclusion in a block                                      |
| `confirmed`  | The transaction was included in a block and the receipt was verified — your sponsorship request moves to **completed** |
| `failed`     | The transaction failed or timed out — the system will retry if the retry limit has not been reached                    |

## Full lifecycle at a glance

```mermaid theme={null}
flowchart TD
    A([pending]) --> B([approved])
    A --> E([rejected])
    B --> C([relayed])
    C --> D([completed])
    C --> F([failed])
```

Rejected requests branch directly from **pending** — they never reach the relay stage because the eligibility check fails before any on-chain action is attempted.

## What to do in each terminal state

<AccordionGroup>
  <Accordion title="Completed — you're funded" icon="circle-check">
    Your wallet has received native tokens from ArcPass. You can now submit transactions on Arc Network. Check your wallet balance to confirm the amount arrived. You can also verify your sponsorship on-chain by calling `isSponsored(yourAddress)` on the SponsorshipRegistry contract.
  </Accordion>

  <Accordion title="Rejected — wallet already sponsored or blocked" icon="ban">
    ArcPass sponsors each wallet exactly once. If your request was rejected, your wallet either received a sponsorship previously or has been flagged as ineligible. You do not need to take any action — submitting another request will not change the outcome. If you believe this is an error, contact ArcPass support.
  </Accordion>

  <Accordion title="Failed — contact support" icon="headset">
    If your request reaches the **failed** state after all retry attempts have been exhausted, the on-chain relay could not complete successfully. Contact ArcPass support with your sponsorship request ID so the team can investigate and, if appropriate, manually re-queue your request.
  </Accordion>
</AccordionGroup>

## Checking your request status

You can poll the status of any sponsorship request using its ID:

```bash theme={null}
GET /sponsorship/{id}
```

The response includes the current `status` field, which will be one of the values described above. Poll this endpoint periodically until the status reaches a terminal state (`completed`, `rejected`, or `failed`).
