# Long production integration — research checked 10 September 2026

This is a Long-specific technical reference. It does not describe Pons deployment, fee routing or authorization. Longer supports verified existing tokens from both platforms; see [platform support](platform-support.md). New-token launches remain locked.

## Conclusion

Long's current production router is a signature-gated, upgradeable **LongLaunchFactory**, not the older public npm package's unsigned-template interface. A real immutable Longer integration can be built around this ABI, but a new launch through the official router requires an authorization issued by Long's backend. Changing any signed creation parameter invalidates that authorization. The backend's current acceptance of arbitrary contract beneficiaries/callers is still unverified; no public signing endpoint or integrator credentials were obtained.

Existing-token adoption is independently feasible: deploy an immutable policy vault, then have the existing beneficiary call `DopplerHookInitializer.updateBeneficiary(poolId,vault)`. Verify mapping shares, not just genesis beneficiary arrays. This has a visible intermediate period until transfer completes unless executed as an atomic wallet batch.

## Sources and reproducible evidence

- Current verified implementation, exact source/bytecode match: https://sourcify.dev/server/v2/contract/4663/0x7b7b87fd1fb05864cd572c7306038552286c73d9?fields=all
- Human-readable verified source: https://robinhoodchain.blockscout.com/address/0x7B7b87fd1Fb05864cD572C7306038552286c73d9?tab=contract
- Current proxy: https://robinhoodchain.blockscout.com/address/0x1Eef016F22A943abC7DD11422EDeE9D235942104?tab=read_write_proxy
- Representative current launch: https://robinhoodchain.blockscout.com/tx/0x8d8041d4cb013bad0e8457a35bd3d1b695cf6ba347f479af620d53098a9de3ac
- Official underlying deployments: https://github.com/whetstoneresearch/doppler/blob/main/deployments/4663.md
- Official deterministic clone source: https://github.com/Vectorized/solady/blob/main/src/utils/LibClone.sol

Research artifacts (outside Site checkout):
- the retained local research artifact: full transaction calldata, decoded creation and module payloads, recovered signers, predictions and pinned router state.
- the retained local research artifact: exact-match verification response including ABI and source.
- the retained local research artifact: verified current implementation source for reading. It is BUSL-1.1, copyright Long; do not vendor it as our implementation.
- the retained local research artifact: AI's actual Airlock/initializer record and recent Create logs.

All chain operations were read-only RPC calls. No transaction, signing, token creation, metadata upload, or funding was performed. Public app pages were inspected in Chrome without interacting with its already-connected wallet. Direct public app assets/API requests returned403; the browser also reported the direct public asset-states API as blocked by client.

## Pinned onchain observations

At RPC block **59,706,630**, block hash `0xa618e71ed98dfed0162a590f1ce1ac0af843b38cc60db906612f83ac85606ac6`:

| Property | Value |
|---|---|
| Chain | Robinhood Mainnet4663 |
| LongLaunchFactory proxy | `0x1eef016f22a943abc7dd11422edee9d235942104` |
| Current implementation (EIP-1967 slot) | `0x7b7b87fd1fb05864cd572c7306038552286c73d9` |
| Router owner | `0x3260e7A806f7D5D6a85C7246FB059099F3bF0f2f` |
| Paused | false |
| Airlock | `0xeb7C034704eF8Dcd2D32324c1545f62fB4aD0862` |
| Required initializer | `0x4e3468951D49f2EEa976eD0D6e75fFCb44a9a544` |
| Required integrator | `0x92d435C96E63c43E12d6D0AB28f6b0B04072F765` |
| Trusted token factory | `0x1B37D3a72082029c44B35B604Ea473617580b69a` |
| Token implementation | `0x3Be8B97Fd0e713B5aBE0649Fa830223B6B4BC599` |
| Legacy launcher | `0x22e99278308B393ea1260859B181AD7E78f5eeED` |
| Signer count |1 |
| Recovered active backend signer | `0xbD41123F824859ad1a0b963Cd9e22F9cc57084D0` |
| Maximum authorization TTL |3600seconds |
| Actual ticker reservation |172800seconds (48hours) |

Runtime hashes read at block59,705,037:
- proxy `0x5d5f9253aed59d8c865f0a84abbf5b7adc941409fc0fd6b5ae102d307a4746f4`
- implementation `0x3f624c36c45bce6229fbccccf6c2198a64ba15d581af4a480853f79867ff140d`

The app's create page says ticker protection lasts24hours, which conflicts with the actual48hour current router parameter. Do not copy the UI's value into authoritative receipts.

## Exact authorization and call interface

Selector `0x60956835`:

```
launch(
  (uint256 initialSupply,uint256 numTokensToSell,address numeraire,
   address tokenFactory,bytes tokenFactoryData,address governanceFactory,
   bytes governanceFactoryData,address poolInitializer,bytes poolInitializerData,
   address liquidityMigrator,bytes liquidityMigratorData,address integrator,bytes32 salt) data,
  (address launcher,bytes32 paramsHash,address expectedAsset,uint256 deadline) auth,
  bytes signature
)
```

EIP-712 domain:
- name `LongLaunchFactory`
- version `1`
- chainId4663
- verifyingContract=current proxy address

Type string: `LaunchAuthorization(address launcher,bytes32 paramsHash,address expectedAsset,uint256 deadline)`.

`paramsHash = keccak256(abi.encode(data))`. Authorization must target the actual call's `msg.sender`. Deadline is inclusive and no more than one hour ahead. Router rejects consumed authorization digests, unknown signers, mismatching factory/initializer/integrator, reserved or malformed tickers, a deployed token address differing from expectedAsset, or a symbol differing from the submitted normalized ticker. Failed launches revert consumption, so the same authorization may be retried before expiry.

Ticker normalization permits A–Z,1–15characters. Owner can override expiry, even permanently, and can upgrade/pause/rotate signers. These upstream controls must not be described as immutable Longer allocation controls.

## Deterministic token and vault construction

TokenFactory uses Solady's optimized minimal proxy, with CREATE2 creator=`tokenFactory`, salt=`data.salt`, and creation bytecode:

```
0x602c3d8160093d39f33d3d3d3d363d3d37363d73
+ implementation address without0x
+ 5af43d3d93803e602a57fd5bf3
```

This is53bytes, not the common55byte ERC-1167 creation prefix. `viem.getContractAddress({opcode:'CREATE2',from:tokenFactory,bytecode,salt})` matched all four recent transaction assets exactly. The salt is not additionally hashed with the router caller. The token address depends on factory+implementation+salt, independent of beneficiary data, breaking the token/pool/vault circularity.

PoolKey is sorted token/numeraire, fee8388608(dynamic flag), tickSpacing8, hooks=initializer for these samples. Compute poolId as keccak256 of ABI-encoded PoolKey. The LP fee in InitData is separate from PoolKey's dynamic flag. Vault prediction includes its own creation config and deployer-scoped salt. Verify any batch launcher caller semantics explicitly.

An atomic integration could use an EIP-5792 wallet batch, where an account that preserves the same sender across calls executes: vault deployment → ordinary signed Long launch → transfer account's beneficiary rights to the vault. This retains the ordinary creator beneficiary inside Long's signed payload. Require declared atomic support, verify results after receipt, and never silently degrade to sequential sends. This route is an untested design inference; it still needs a callable signing API and supported wallet.

## Current creation samples and fee scope

Four launches decoded at blocks59,701,707–59,703,920: KEKIUS, MSV, LMEOW, SIREN. All use one billion18decimal tokens,100% tokens for sale, no vesting, max balance0, controller0, NoOpGovernanceFactory `0x85f37f74Ef2478A770318bc810177a9835911aD7`, NoOpMigrator `0xba2F330EDb16cD8056f5988d8CE19BbC63475A0e`, June30 Rehype `0x6f02324d20CC679d0E585290CAa6b16baCbC0F77`.

Genesis LP beneficiaries are the current Airlock owner `0x21E2ce70511e4FE542a97708e89520471DAa7A66` at5%, user at95%, ascending address order. Current Airlock owner differs from old AI genesis protocol beneficiary; historical genesis arrays are not current-authority attestations.

AI-pair samples use LP fee5000(0.5%) and hook schedule800000→4000(80%→0.4%) over10seconds. MSV sample uses LP fee1000(0.1%) and hook800000→11200(80%→1.12%) over10seconds. Hook routing differs too. Therefore do not hard-code1.4% hook,0.1% LP or100% anti-snipe across every launch. Report the actual decoded values and source stream controlled by Longer.

The first pool curve has99.1% of tokens over a pricing range and the second has0.9% over a far range; exact ticks depend on the numeraire price at authorization and must not be guessed from a single example.

## Additional chain detail

Long's verified source explicitly warns that **in-EVM `block.number` on Robinhood is the Ethereum L1 height, while RPC uses L2 heights**. Use block.timestamp for contract time windows and cooldowns; do not compare a Solidity block.number checkpoint with RPC L2 block numbers. Contracts using timestamp only avoid that mismatch.

## Unresolved external integration facts

- Current Long public signature endpoint and its request/response schema. Observed GET endpoints from app assets: `/v1/robinhood/asset-states` and `/v1/stock-market/prices`; no signature request was triggered.
- Whether Long backend allows arbitrary fixed-vault beneficiary substitutions and a contract/smart-account launcher.
- Formal listing acceptance of a custom policy vault or post-launch beneficiary transfer.
- Actual wallet/provider support for atomic batch and end-to-end signed simulation.

No amount of local implementation can produce a legitimate Long backend authorization without Long's authorized signing service. Implement the exact import/validation and adoption paths, and fail closed on unsigned or mismatched launch payloads.

The SIREN sample was also verified visibly on Long's own current token page: https://app.long.xyz/tokens/0x6f2f8a3fa15f7db8e9a025e477cd926b1f9e1e18. It displayed SIREN anchored to AI, fee receiver0x5541ba…D7F1, supply1,000,000,000 and poolId `0x7a311692b6833a21b9f34dc1fed1f86b5c79c89212bb9e492644f71755901ac0` in its Defined chart link. This establishes that the recent router transactions include a current Long-listed launch, not only a similarly configured third-party deployment.
