# The integration address

Once your integration address is registered, tell the SDK about it. That is the whole client-side change.

## Pass the address at SDK init

```ts twoslash
import { createYodlSdk } from '@yodlpay/react-native'

const sdk = createYodlSdk({
  // Your registered integration address.
  integrationAddress: '0x5f2f6f387f49f7cfe0f6f302ff7f6ba6748b6ff1',
  supportedChainIds: [1, 8453, 42161],
})
```

Configure it once at startup and pass the instance to `YodlProvider`. Nothing else in your payment code changes.

The example above is React Native. For the rest of the client setup — install, provider, components — see the [React Native quickstart](/sdk/react-native/quickstart); this page only covers the integration address.

The SDK attaches the address to each payment's on-chain metadata, which is how we attribute the payment to you. Attribution requires an SDK version that writes it — confirm the minimum version with us when you onboard.

## One integration per payment

A payment belongs to at most one integration. A payment with no integration address is attributed to nobody and notifies nobody.

## A declared address is not an authenticated one

:::danger
A payment's metadata is written by whoever builds the payment, so **anyone can claim any integration address, including yours.**

A notification, or a row in the Payments API, means some payment *claimed* your integration address. It does not mean the payment came from your app. Reconcile against your own records before you credit anything to a user.
:::

This is a property of on-chain metadata, not a gap we can close: the address is an attribution label, not a credential. Your webhook signing secret authenticates that *we* sent a notification; it says nothing about who originated the underlying payment.

## Historic payments

Integration addresses were added at a point in time and older payments were not backfilled. Your history starts when your integration goes live.
