# Passage Docs - [Offer onchain assets with one integration](https://docs.passage.coinlist.co/index.md): Passage is an SDK that lets fintech platforms offer tokenized real-world assets, token sales, and other offerings to their users through a single integration. - [What is Passage?](https://docs.passage.coinlist.co/what-is-passage.md): The three parties in an offer, what your users experience, and who holds the money. - [Eligibility and compliance](https://docs.passage.coinlist.co/eligibility-compliance.md): Passage runs KYC, eligibility, and ongoing screening so you can offer regulated assets without standing up a compliance function. - [Wallets and chains](https://docs.passage.coinlist.co/wallets-chains.md): Users keep custody of their own keys. Support embedded wallets, external wallets, or both. - [Asset catalog](https://docs.passage.coinlist.co/assets/catalog.md): What is in the Passage catalog today, and a plain-language primer on each asset class. - [Equities](https://docs.passage.coinlist.co/assets/equities.md): Every tokenized stock and equity fund in the Passage catalog, with ticker and issuer. - [Fixed income](https://docs.passage.coinlist.co/assets/fixed-income.md): Every tokenized treasury, bond, and credit product in the Passage catalog, with ticker and issuer. - [Commodities](https://docs.passage.coinlist.co/assets/commodities.md): Every tokenized metals, energy, and commodity product in the Passage catalog, with ticker and issuer. - [Asset partners](https://docs.passage.coinlist.co/assets/partners.md): What a token represents and what your users can do with it, partner by partner. - [Superstate](https://docs.passage.coinlist.co/assets/partners/superstate.md): Tokenized US equities through Opening Bell. Each token represents direct ownership of the underlying share. - [Ondo](https://docs.passage.coinlist.co/assets/partners/ondo.md): A broad catalog of 400+ tokenized assets across equities, fixed income, and commodities. Ondo assets are only available to non-US investors. - [CoinList](https://docs.passage.coinlist.co/assets/partners/coinlist.md): Token sales run by CoinList, embedded inside your app, with direct token allocation on each sale's terms. - [Embed tokenized stocks and funds](https://docs.passage.coinlist.co/use-cases/tokenized-assets.md): Let your users buy, hold, and sell tokenized stocks and funds natively inside your app. - [Embed token sales](https://docs.passage.coinlist.co/use-cases/token-sales.md): Offer your users access to CoinList token sales, embedded in your app. - [Permissioned DeFi pools](https://docs.passage.coinlist.co/use-cases/permissioned-defi-pools.md): Register your users' wallets onto the allowlists for permissioned assets that unlock DeFi pools for tokenized assets, to support trading in Uniswap and other onchain AMMs. - [Run your raise](https://docs.passage.coinlist.co/use-cases/run-your-raise.md): Raise on CoinList, host the sale on your own platform, or do both, with Passage handling compliance and settlement either way. - [Lending pools and vaults](https://docs.passage.coinlist.co/use-cases/lending-pools-vaults.md): Let your users borrow stablecoins against their RWA holdings or deposit into a vault to access enhanced yield. - [Support](https://docs.passage.coinlist.co/support.md): Get help with Passage. - [SDK quickstart](https://docs.passage.coinlist.co/sdk/quickstart.md): Get OAuth credentials, install the Passage React SDK, and understand client, server, and API layers. - [SDK structure](https://docs.passage.coinlist.co/sdk/structure.md): The handful of patterns every part of the SDK follows: the ladder, namespaces, containers, hook state, and flows that return instead of throwing. - [Set up OAuth authentication](https://docs.passage.coinlist.co/sdk/oauth-authentication.md): Authenticate users with Passage and authorize your application using OAuth 2.0 with PKCE and a backend session. - [Fetch offers](https://docs.passage.coinlist.co/sdk/fetch-offers.md): List Passage offers with OffersGridContainer, pre-fetch them on your server for SSR, and read token display metadata. - [Display offer details](https://docs.passage.coinlist.co/sdk/sale-details.md): Load full offer details with the React SDK or the API. - [Requirements checklist](https://docs.passage.coinlist.co/sdk/requirements.md): Render RequirementsChecklistContainer and the SDK handles identity verification, tax documents, and wallet connection for you. - [Wallets: the EvmWallet seam](https://docs.passage.coinlist.co/sdk/wallets.md): Implement EvmWallet once and every Passage on-chain flow works with your wallet stack. Prove ownership, allowlist addresses, and hand wallets to CheckoutContainer. - [Building the Checkout flow](https://docs.passage.coinlist.co/sdk/checkout.md): Render CheckoutContainer with an offer, a chain, your wallets and one config object. It picks the right provider's flow for you. - [Superstate Swap](https://docs.passage.coinlist.co/sdk/swap-flow.md): Superstate swap offers: allowlisting a wallet, live on-chain quotes, and coinlist.superstate.execute. - [Ondo Swap Buy](https://docs.passage.coinlist.co/sdk/ondo-swap-buy.md): Buy tokenized stocks from Ondo. What the offer cannot tell the SDK, why an order takes two calls, and the lower-level namespace underneath. - [CoinList Token Sale](https://docs.passage.coinlist.co/sdk/invest-flow.md): CoinList token sales: the checkout render slot, recording a participation with coinlist.tokenSale.execute, and tracking status afterwards. - [Errors and edge cases](https://docs.passage.coinlist.co/sdk/errors.md): Every error shape the SDK flows return, what causes it, and how to handle it. - [Package overview](https://docs.passage.coinlist.co/sdks.md): Install @coinlist-co/react - React UI, hooks, client, and server utilities for Passage. - [Introspect token](https://docs.passage.coinlist.co/api-reference/oauth/introspect-token.md): Returns metadata about an access token, including whether it is active. - [Revoke token](https://docs.passage.coinlist.co/api-reference/oauth/revoke-token.md): Revokes an access or refresh token. - [Issue OAuth access token](https://docs.passage.coinlist.co/api-reference/oauth/issue-oauth-access-token.md): Issues access tokens for `authorization_code`, `client_credentials`, and `refresh_token` grants using an `application/x-www-form-urlencoded` request body. For the `authorization_code` grant, the partner exchanges the code obtained from `GET /oauth/authorize` along with a PKCE `code_verifier`. - [Create a document signing submission for the authenticated partner and user](https://docs.passage.coinlist.co/api-reference/documentsubmissions/create-a-document-signing-submission-for-the-authenticated-partner-and-user.md): Creates a signing submission for the given document type (e.g. a W-8BEN tax certification) for the current entity. The signing link is emailed to the user. Re-posting acts as a resend/re-sign where the document state allows it. The submitted PII pre-fills the form and is forwarded to Passport, never… - [Generate a Sumsub KYC access token](https://docs.passage.coinlist.co/api-reference/kyc/generate-a-sumsub-kyc-access-token.md): Generates a short-lived Sumsub WebSDK access token for the current user so an identity verification flow can be started. Requires a user-scoped access token (authorization code grant); partner-only tokens (client credentials grant) are rejected. - [List offers for the authenticated partner](https://docs.passage.coinlist.co/api-reference/offers/list-offers-for-the-authenticated-partner.md) - [Get an offer for the authenticated partner](https://docs.passage.coinlist.co/api-reference/offers/get-an-offer-for-the-authenticated-partner.md) - [List the user's connected wallets for an offer option](https://docs.passage.coinlist.co/api-reference/offers/list-the-users-connected-wallets-for-an-offer-option.md) - [Connect a proven external wallet to an offer option](https://docs.passage.coinlist.co/api-reference/offers/connect-a-proven-external-wallet-to-an-offer-option.md): For options without a whitelisted-wallet requirement, submitting when a wallet is already connected updates the existing binding in place, keeping its id. Options with a whitelisted-wallet requirement accumulate wallets up to the requirement's max_wallets and then reject with `max_wallets_reached`. - [Remove a connected external wallet from an offer option](https://docs.passage.coinlist.co/api-reference/offers/remove-a-connected-external-wallet-from-an-offer-option.md): Returns the removed binding. Rejected with `offer_ended` once the offer has ended; bindings on an offer that has not yet started remain deletable. - [Allow a wallet address for an offer](https://docs.passage.coinlist.co/api-reference/offers/allow-a-wallet-address-for-an-offer.md) - [List requirements for all options of an offer](https://docs.passage.coinlist.co/api-reference/requirements/list-requirements-for-all-options-of-an-offer.md) - [List requirement statuses for all options of an offer](https://docs.passage.coinlist.co/api-reference/requirements/list-requirement-statuses-for-all-options-of-an-offer.md) - [Quote an Ondo asset](https://docs.passage.coinlist.co/api-reference/ondo/quote-an-ondo-asset.md): Prices a buy or sell of an Ondo asset and returns the quantity, the per-token USD price and the decimals the quantity is denominated in. Free to poll while the user edits an order; it consumes no attestation. Takes no chain parameter, since Ondo runs no testnet and every environment prices against E… - [Get whether an Ondo asset is currently tradable](https://docs.passage.coinlist.co/api-reference/ondo/get-whether-an-ondo-asset-is-currently-tradable.md): Reports whether an Ondo asset can be traded right now on the given side, and the gross caps if so. Ondo reports its trading limits per side, so a buy and a sell of the same asset can differ. Free to poll and consumes no attestation. - [Encode an Ondo swap for broadcast](https://docs.passage.coinlist.co/api-reference/ondo/encode-an-ondo-swap-for-broadcast.md): Encodes the buy the user just confirmed and returns calldata their wallet can sign and broadcast, plus the amounts it commits to. This is the commit step: it consumes an attestation and the calldata expires, so call it once per confirmation and never poll it. Approve the swap contract for the full a… - [List participations for the authenticated partner and user](https://docs.passage.coinlist.co/api-reference/participations/list-participations-for-the-authenticated-partner-and-user.md) - [Create a participation for the authenticated partner and user](https://docs.passage.coinlist.co/api-reference/participations/create-a-participation-for-the-authenticated-partner-and-user.md) - [Get a participation for the authenticated partner and user](https://docs.passage.coinlist.co/api-reference/participations/get-a-participation-for-the-authenticated-partner-and-user.md) - [Get PII for the authenticated partner and user](https://docs.passage.coinlist.co/api-reference/pii/get-pii-for-the-authenticated-partner-and-user.md): Returns the user's PII (full legal name, country of citizenship, tax ID, permanent address) to pre-fill tax forms such as the W-8BEN. Fields that are unavailable are null. - [Get the swap contract's output token metadata](https://docs.passage.coinlist.co/api-reference/swap/get-the-swap-contracts-output-token-metadata.md): Resolves outputToken() on the Superstate swap contract and returns the ERC-20 name, symbol and decimals of that token. - [Preview a swap](https://docs.passage.coinlist.co/api-reference/swap/preview-a-swap.md): Reads preview(inputToken, amount) on the Superstate swap contract and returns the quote: the input amount to pay, the fee charged on it and the output amount to receive. - [Get the swap contract's status](https://docs.passage.coinlist.co/api-reference/swap/get-the-swap-contracts-status.md): Reads stopped() and SWAP_LEVEL() on the Superstate swap contract so clients can determine whether swaps are currently allowed. - [Get the on-chain ERC-20 allowance for a token, owner and spender](https://docs.passage.coinlist.co/api-reference/token/get-the-on-chain-erc-20-allowance-for-a-token-owner-and-spender.md): Reads allowance(owner, spender) on the ERC-20 token contract. Can be used to determine whether an approval transaction is needed before a swap or token sale. - [Get the on-chain ERC-20 balance of an address](https://docs.passage.coinlist.co/api-reference/token/get-the-on-chain-erc-20-balance-of-an-address.md): Reads balanceOf(owner) on the ERC-20 token contract. Used to display the balance of the connected wallet the user will pay with. - [Request a wallet ownership challenge](https://docs.passage.coinlist.co/api-reference/wallet-ownership/request-a-wallet-ownership-challenge.md) - [Check whether a wallet is authorized on a swap contract](https://docs.passage.coinlist.co/api-reference/wallet/check-whether-a-wallet-is-authorized-on-a-swap-contract.md): Reads authorized(address) on the Superstate swap contract to determine whether the given wallet is allowed to swap. - [React SDK changelog](https://docs.passage.coinlist.co/changelogs/react.md): Release history for @coinlist-co/react ## OpenAPI Specs - [openapi](/api-reference/openapi.json)