# Fetch Onboard Status

Fetch attribute status and PII consent data for a wallet address, to determine if attributes need to be claimed or privacy needs to be consented.

## **Parameters**

<table><thead><tr><th width="221">Name</th><th width="246">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>apiAccessToken</code><mark style="color:red;"><code>*</code></mark></td><td>string</td><td>Access token<br>See <a href="create-access-token">createAccessToken</a></td></tr><tr><td><code>walletAddress</code><mark style="color:red;"><code>*</code></mark></td><td>hex string</td><td>Wallet Address</td></tr><tr><td><code>attributes</code></td><td>QuadrataAttribute[]</td><td>Array of attribute names<br><em>Can be provided in sdkConfig</em></td></tr><tr><td><code>chainId</code></td><td>QuadrataNetwork</td><td>Blockchain ID<br><em>Can be provided in sdkConfig</em></td></tr><tr><td><code>offeringId</code></td><td>string</td><td>Unique offering id<br><em>For accreditation re-attestation</em></td></tr><tr><td><code>privacyScopes</code></td><td>QuadrataPrivacyConsent[]</td><td>Privacy consent scopes<br><em>For checking granted consent</em><br><em>Can be provided in sdkConfig</em></td></tr><tr><td><code>options</code></td><td>object</td><td>Fetch Options</td></tr></tbody></table>

## SDK Configuration

<table><thead><tr><th width="182">Name</th><th width="236">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>environment</code><mark style="color:red;"><code>*</code></mark></td><td>QuadrataEnvironment</td><td>Access token<br>See <a href="create-access-token">createAccessToken</a></td></tr><tr><td><code>attributes</code></td><td>QuadrataAttribute[]</td><td>Attribute name array<br><em>Can be provided in params</em></td></tr><tr><td><code>network</code></td><td>QuadrataNetwork</td><td>Blockchain ID<br>Can be provided in params as <code>chainId</code></td></tr><tr><td><code>privacyScopes</code></td><td>QuadrataPrivacyConsent[]</td><td>Privacy consent scopes<br><em>For checking granted consent</em><br><em>Can be provided in params</em></td></tr></tbody></table>

{% hint style="info" %}
See [API Onboard Status](https://docs.quadrata.com/integration/how-to-integrate/onboard-users/individual-passport-onboarding/3.-api-onboard-status) for more information about the underlying API endpoint.
{% endhint %}

## Example

```typescript
import type { API } from '@quadrata/sdk/types';
import {
    fetchOnboardStatus,
    parseOnboardStatus,
    
    QuadrataAttribute,
    QuadrataEnvironment,
    QuadrataNetwork,
    QuadrataPrivacyConsent
} from '@quadrata/sdk/api';

type ResponseType = API.Service.FetchOnboardStatus.Response;
type ParsedResponseType = API.Service.FetchOnboardStatus.ParsedResponse;

const response: ResponseType = await fetchOnboardStatus(
    {
        apiAccessToken: 'jwt token from createAccessToken',
        
        // optional, if provided in config
        attributes: [
            QuadrataAttribute.AML,
            QuadrataAttribute.DID,
        ],  
        
        // optional, if provided in config as network
        chainId: QuadrataNetwork.MAINNET,
        
        // optional, unless you are checking for accrediation re-attestation
        offeringId: '123',
        
        // optional, if provided in config
        privacyScopes: [
            QuadrataPrivacyConsent.EMAIL,
            QuadrataPrivacyConsent.DATE_OF_BIRTH,
        ],
        
        walletAddress: '0x123',
        
        options: {
            // optional fetch options
            cache: 'no-cache'
        }
    },
    {
        // optional, if provided in above params
        attributes: [
            QuadrataAttribute.AML,
            QuadrataAttribute.DID
        ], 
        
        // required
        environment: QuadrataEnvironment.PRODUCTION,
        
        // optional, if provided in above params
        network: QuadrataNetwork.MAINNET,
        
        // optional, if provided in above params
        privacyScopes: [
            QuadrataPrivacyConsent.EMAIL,
            QuadrataPrivacyConsent.DATE_OF_BIRTH,
        ],
    }
);

/* parse the response */

const isBypassMint = false;  // or true
const status: ParsedResponseType = parseOnboardStatus(response, isBypassMint);

// status.attributesToClaim
// status.isConsentNeeded
// status.isInReview


```
