01
Последовательность атрибуции
- 01Разверните Base Mini App на стабильном HTTPS-источнике.
- 02Зарегистрируйте и проверьте приложение на Base.dev.
- 03Скопируйте настоящий Builder Code из настроек Base.dev.
- 04Создайте ERC-8021 dataSuffix из этого кода с ox/erc8021.
- 05Для прямого пути транзакции, которым вы управляете, удалите существующий суффикс и добавьте один нормализованный dataSuffix.
- 06Создайте небольшой депозит USDCtoFiat и проверьте атрибуцию до запуска кампании.
02
Куда это относится
| Поверхность | Путь атрибуции |
|---|---|
| Base App | Документация Base говорит, что зарегистрированные приложения могут получать автоматическую атрибуцию активности внутри Base App. |
| Веб-приложение | Веб-адаптер USDCtoFiat заменяет существующий суффикс и добавляет рабочие коды. |
| SDK USDCtoFiat | SDK добавляет собственный реферер galleonlabs. Не добавляйте второй суффикс на уровне клиента: текущий API SDK не поддерживает отдельные коды интеграторов. |
| Контракты | Изменение контрактов не нужно; данные ERC-8021 suffix добавляются к calldata и индексируются offchain. |
03
Заметки по реализации
- Используйте viem 2.45.0 или новее для пути из документации Base; это приложение уже использует более новую версию viem.
- Рабочий адаптер USDCtoFiat настроен с выданным Builder Code. Успешную атрибуцию всё равно необходимо проверять на уровне транзакции.
- Для прямых транзакций через Viem или Wagmi, которыми вы управляете, создайте один dataSuffix из всех нужных кодов.
- Не объединяйте независимые суффиксы ERC-8021 конкатенацией. Перед подписанием разберите и замените суффикс либо объедините коды в один суффикс.
- SDK @usdctofiat/offramp уже добавляет атрибуцию Galleon Labs. В нём нет отдельной возможности объединения с Builder Code.
04
Проверка
| Проверка | Условие успеха |
|---|---|
| Base.dev | Счетчики onchain-транзакций увеличиваются для Builder Code приложения. |
| Блок-эксплорер | Ввод транзакции заканчивается маркером ERC-8021 suffix и декодируется в ожидаемый код. |
| Результат USDCtoFiat | Созданный депозит возвращает depositId и txHash, затем появляется в deposits(address). |
| Peerlytics | Жизненный цикл депозита и intent можно проверить после того, как индексирование догонит. |