Developers

Integration guide

Contracts, units and the common flows in one place.

Contracts at a glance

ContractUse it to
BarrierCoreDeposit, strike, observe, settle, redeem
BarrierLegsRead and transfer legs
SeriesRegistryList series and templates
OracleAdapterRead the close used for a timestamp
TradingCalendarCheck trading days

Units and decimals

ValueUnit
USDG6 decimals
Stock Token, BERRIER18 decimals
Chainlink price8 decimals
Coupon, levelsBasis points

Common flows

Read a series

tsts
const s = await core.read.getSeries([seriesId]);

Subscribe CARRY

tsts
await usdg.write.approve([core.address, amount]);
await core.write.depositCarry([seriesId, amount]);

Subscribe GUARD

tsts
const prefund = await core.read.requiredPrefund([seriesId, stockAmount]);
await stock.write.approve([core.address, stockAmount]);
await usdg.write.approve([core.address, prefund]);
await core.write.depositGuard([seriesId, stockAmount]);

After strike

Call refund(seriesId) for unmatched amounts, claimCoupons(seriesId) as coupons accrue and redeem(seriesId, units) after settlement.

Hold legs in a contract

Implement onERC1155Received and onERC1155BatchReceived.

ABI source

Verified source on the explorer at launch.

Stock Tokens are not offered to US persons. A barrier note can lose value: if the final close sits below the barrier, CARRY holders are paid in stock valued at S0, which can be worth less than what they put in. Nothing on this site is investment advice.

© 2026 Get Berrier · @getberrier