Skip to main content

Solana programs

Status: Built, runs on simulator

Instruction arguments, accounts and data types below come directly from the Anchor IDLs. Addresses are IDL declarations, not confirmed deployments. Test stand-ins whose file name starts with mock_ are excluded.

merces_hook​

Source: stage1:solana/idls/merces_hook.json.

IDL fieldValue
address2PuKMkGkGLCwsDMLCmm2bcbzjxtabvt9LVJni154ezRt
metadata.version0.1.0
metadata.spec0.1.0

merces_hook: execute​

Discriminator: 0x692565c54bfb661a.

Called by Token-2022 on every transfer of the mint.

Arguments​

NameType
amountu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
source_tokenfalsefalsefalse———
mintfalsefalsefalse———
destination_tokenfalsefalsefalse———
ownerfalsefalsefalse———
extra_account_meta_listfalsefalsefalse—"extra-account-metas", account:mint—
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
escrow_armfalsefalsefalse———

merces_hook: initialize_extra_account_meta_list​

Discriminator: 0x2b220d31a758ebeb.

Creates the `ExtraAccountMetaList` for a unit mint. The mint authority (the protocol's
`auction_authority` PDA) must sign, so only `merces_protocol::open_raise` can call this
for a Merces mint, and the registry must already map the series to the mint.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
extra_account_meta_listtruefalsefalse—"extra-account-metas", account:mint—
mintfalsefalsefalse———
mint_authorityfalsetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
token_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_hook: account layouts​

Account type

merces_hook: ParametersData​

Borsh-serialisable mirror of [`Parameters`].
NameType
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
fx_min_coverage_bpsu16
fx_max_staleness_secondsu64
fx_max_conf_bpsu16
fx_deviation_band_bpsu16
max_pause_secondsu64
max_cumulative_pause_secondsu64

merces_hook: ProtocolConfig​

Global protocol configuration, one per deployment (`[CONFIG]`).
NameType
adminPubkey
pending_adminPubkey
allowlist_managerPubkey
fee_collectorPubkey
domain[u8; 32]
chain_idu64
new_raises_pausedbool
windows_enabledbool
tier4_enabledbool
early_draw_approverPubkey
defaultsParametersData
protocol_programPubkey
protocol_authorityPubkey
series_countu64
attestor_countu32
verifier_countu32
curve_quote_mintPubkey
bumpu8

merces_hook: Series​

One raise by one issuer (`[SERIES, series_id_le]`). The charter block is frozen once
`raise_state != Draft` (SPEC §3.3).
NameType
series_idu64
issuerPubkey
modeu8
stablecoinPubkey
stablecoin_decimalsu8
stablecoin_programPubkey
unit_mintPubkey
units_offeredu64
reserve_priceu64
min_raiseu64
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
fx_min_coverage_bpsu16
max_pause_secondsu64
max_cumulative_pause_secondsu64
release_scheduleVec<TrancheData>
contract_hash[u8; 32]
tier_flagsu8
fx_pair_id[u8; 32]
issuer_accepts_public_pricebool
metadata_uriString
router_thetau64
router_r_wadu64
terms_commitment[u8; 32]
amendment_nonceu64
raise_stateu8
opened_atu64
settlement_tsu64
units_soldu64
clearing_priceu64
mint_finalizedbool
terminal_statusu8
auction_escrow_ataPubkey
window_escrow_ataPubkey
dbc_configPubkey
dbc_poolPubkey
base_mintPubkey
dbc_creatorPubkey
bumpu8

merces_hook: TrancheData​

Borsh-serialisable mirror of [`Tranche`].
NameType
at_offset_secondsu64
bpsu16

merces_protocol​

Source: stage1:solana/idls/merces_protocol.json.

IDL fieldValue
addressEuaPg2nTXsf3CmmeJMfdiQb4C2hU7AfLfFyDLpD69six
metadata.version0.1.0
metadata.spec0.1.0

merces_protocol: activate_curve​

Discriminator: 0x5fcfa997de01d130.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
issuer_allowlistfalsefalsefalse—"allow", account:issuer0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
ledgerfalsefalsefalse—"ledger", account:series—
dbc_configfalsefalsefalse———
dbc_poolfalsefalsefalse———
base_mintfalsefalsefalse———
curve_authorityfalsefalsefalse—"curve_authority", account:series—
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: approve_pause​

Discriminator: 0x953003519c4ac3ac.

Arguments​

NameType
pause_endu64
attestor_addr[u8; 20]
attestor_sig[u8; 65]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
attestor_keyfalsefalsefalse———

merces_protocol: begin_settlement​

Discriminator: 0x7cdf50f9133b1a5c.

Arguments​

NameType
clearing_priceu64
q_above_claimu64
q_at_claimu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
auctiontruefalsefalse—"auction", account:series—

merces_protocol: begin_takeback​

Discriminator: 0xd8ff8bbc74105b56.

Arguments​

NameType
priceu64
reveal_indexu32

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
windowtruefalsefalse—"window", account:series, account:window.period—

merces_protocol: begin_window_settlement​

Discriminator: 0xf3caae01d645bcb0.

Arguments​

NameType
clearing_priceu64
no_matchbool

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, account:window.period—

merces_protocol: burn_retired​

Discriminator: 0xe4ad51b1a2ac6568.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:holder_wallet—
holder_walletfalsefalsefalse———
holder_unit_atatruefalsefalse———
vault_authfalsefalsefalse—"vault_auth", account:series—
unit_minttruefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——

merces_protocol: cancel_raise​

Discriminator: 0x5d7bcc4f6bc478d9.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
auctiontruefalsefalse—"auction", account:series—
unit_minttruefalsefalse———
auction_authfalsefalsefalse—"auction_auth", account:series—
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: claim​

Discriminator: 0x3ec6d6c1d59f6cd2.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:holder_wallet—
holder_walletfalsefalsefalse———
holder_unit_atatruefalsefalse———
holder_stable_atatruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
unit_minttruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: claim_final​

Discriminator: 0xa86cd00dc67e6aeb.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:holder_wallet—
holder_walletfalsefalsefalse———
holder_unit_atatruefalsefalse———
holder_stable_atatruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
unit_minttruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: claim_redemption​

Discriminator: 0x6d6e09bcc3d97053.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:holder_wallet—
holder_walletfalsefalsefalse———
holder_unit_atatruefalsefalse———
holder_stable_atatruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
unit_minttruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: claim_release​

Discriminator: 0x20316847ae193a76.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
seriesfalsefalsefalse———
treasurytruefalsefalse—"treasury", account:series—
ledgertruefalsefalse—"ledger", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
treasury_authfalsefalsefalse—"treasury_auth", account:series—
issuer_stabletruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———

merces_protocol: claim_tail​

Discriminator: 0xe59e741c5e92e76e.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:holder_wallet—
holder_walletfalsefalsefalse———
holder_unit_atatruefalsefalse———
holder_stable_atatruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
unit_minttruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: close_router_period​

Discriminator: 0x45fc480c80a9efb5.

Arguments​

NameType
periodu32

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
routertruefalsefalse—"router", account:series—

merces_protocol: collect_curve_proceeds​

Discriminator: 0xd84a845b3d7117fa.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
treasurytruefalsefalse—"treasury", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
fee_collector_tokentruefalsefalse———
curve_authorityfalsefalsefalse—"curve_authority", account:series—
dbc_pool_authorityfalsefalsefalseFhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM——
dbc_configfalsefalsefalse———
dbc_pooltruefalsefalse———
dbc_quote_vaulttruefalsefalse———
dbc_base_vaulttruefalsefalse———
base_mintfalsefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
dbc_event_authorityfalsefalsefalse8Ks12pbrD6PXxfty1hVQiE9sc289zgU1zHkvXhrSdriF——
dbc_programfalsefalsefalsedbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN——

merces_protocol: commit_ask​

Discriminator: 0x1e3f5400e9f75b33.

Arguments​

NameType
commitment[u8; 32]
unitsu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
ownertruetruefalse———
seriesfalsefalsefalse———
ledgerfalsefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, account:window.period—
ordertruefalsefalse—"order", account:series, account:window.period, account:owner—
holdertruefalsefalse—"holder", account:series, account:owner—
escrow_armtruefalsefalse—"escrow_arm", account:unit_mint—
owner_unit_atatruefalsefalse———
window_escrow_atatruefalsefalse———
unit_mintfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: commit_bid​

Discriminator: 0x95edc6713542464c.

Arguments​

NameType
commitment[u8; 32]
escrowu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
biddertruetruefalse———
seriesfalsefalsefalse———
bidder_allowlistfalsefalsefalse———
auctiontruefalsefalse—"auction", account:series—
bidtruefalsefalse—"bid", account:series, account:bidder—
bidder_stabletruefalsefalse———
escrow_tokentruefalsefalse—"escrow_token", account:series—
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: complete_curve​

Discriminator: 0x3f2c5422c2b2c143.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
treasurytruefalsefalse—"treasury", account:series—
dbc_configfalsefalsefalse———
dbc_poolfalsefalsefalse———
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: crank_status​

Discriminator: 0x45431c952c557d55.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—

merces_protocol: deliver_bid​

Discriminator: 0x70119de88b00513d.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
bidtruefalsefalse—"bid", account:series, account:bidder—
bidderfalsefalsefalse———
holdertruefalsetrue—"holder", account:series, account:bidder—
bidder_stable_atatruefalsefalse———
bidder_unit_atatruefalsefalse———
escrow_authfalsefalsefalse—"escrow_auth", account:series—
escrow_tokentruefalsefalse—"escrow_token", account:series—
auction_escrow_authfalsefalsefalse—"auction_escrow", account:series—
auction_escrow_atatruefalsefalse———
unit_mintfalsefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
associated_token_programfalsefalsefalseATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: deliver_order​

Discriminator: 0xc4a17fc74385a368.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
windowtruefalsefalse—"window", account:series, account:window.period—
ordertruefalsefalse—"order", account:series, account:window.period, account:owner—
ownerfalsefalsefalse———
holdertruefalsefalse—"holder", account:series, account:owner—
owner_unit_atatruefalsefalse———
owner_stable_atatruefalsefalse———
window_escrow_atatruefalsefalse———
window_stabletruefalsefalse—"window_stable", account:series—
window_escrow_authfalsefalsefalse—"window_escrow", account:series—
unit_mintfalsefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
associated_token_programfalsefalsefalseATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: end_pause​

Discriminator: 0xa8fdd9d22744667a.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—

merces_protocol: extinguish​

Discriminator: 0x43389ff5fb61b2c9.

Arguments​

NameType
attestor_a[u8; 20]
sig_a[u8; 65]
attestor_b[u8; 20]
sig_b[u8; 65]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payerfalsetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
treasurytruefalsefalse—"treasury", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
treasury_authfalsefalsefalse—"treasury_auth", account:series—
vault_tokentruefalsefalse—"vault_token", account:series—
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
attestor_key_afalsefalsefalse———
attestor_key_bfalsefalsefalse———
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: finalize_settlement​

Discriminator: 0xdc489877b2c419aa.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
auctiontruefalsefalse—"auction", account:series—
treasurytruefalsefalse—"treasury", account:series—
ledgertruefalsefalse—"ledger", account:series—
unit_minttruefalsefalse———
auction_authfalsefalsefalse—"auction_auth", account:series—
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: finalize_takeback​

Discriminator: 0x1856f67dcf58e957.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
windowtruefalsefalse—"window", account:series, account:window.period—

merces_protocol: finalize_window​

Discriminator: 0xb74cf8a1c40e4a2e.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, account:window.period—

merces_protocol: init_fx_pair​

Discriminator: 0xfe096df3a8a877f1.

Arguments​

NameType
pair_id[u8; 32]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
pair_configfalsefalsefalse—"fx", arg:pair_id0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
pairtruefalsefalse—"fxpair", arg:pair_id—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: init_router​

Discriminator: 0xea84b522b0658e5e.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
routertruefalsefalse—"router", account:series—
router_authfalsefalsefalse—"router_auth", account:series—
router_tokentruefalsefalse—"router_token", account:series—
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: open_raise​

Discriminator: 0x83ee4f73f2878ef2.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
issuer_allowlistfalsefalsefalse—"allow", account:issuer0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
unit_minttruefalsefalse—"unit_mint", account:series—
auction_authfalsefalsefalse—"auction_auth", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
auctiontruefalsefalse—"auction", account:series—
auction_escrow_authfalsefalsefalse—"auction_escrow", account:series—
auction_escrow_atatruefalsefalse———
window_escrow_authfalsefalsefalse—"window_escrow", account:series—
window_escrow_atatruefalsefalse———
extra_account_meta_listtruefalsefalse—"extra-account-metas", account:unit_mint0x14b99e8389a5519e1ed87c10b7464fff62a5845cd92daabd0db8a5c798be359f
registry_authorityfalsefalsefalse—"registry_authority"—
hook_programfalsefalsefalse2PuKMkGkGLCwsDMLCmm2bcbzjxtabvt9LVJni154ezRt——
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
associated_token_programfalsefalsefalseATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: open_window​

Discriminator: 0x332835b5aa2b80a8.

Arguments​

NameType
periodu32

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, arg:period—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: pay​

Discriminator: 0x7712d841c0757adc.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
reporttruefalsetrue—"report", account:series, account:report.period—
payer_stabletruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
issuerfalsefalsefalse———
issuer_stable_atatruefalsefalse———
fee_collector_atatruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: pay_trueup​

Discriminator: 0xdff921404c8f7b9b.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
reporttruefalsetrue—"report", account:series, account:report.period—
payer_stabletruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
issuerfalsefalsefalse———
issuer_stable_atatruefalsefalse———
fee_collector_atatruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: prepare_curve​

Discriminator: 0xe56176f10426d06e.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuertruetruefalse———
seriesfalsefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
vault_authfalsefalsefalse—"vault_auth", account:series—
treasury_authfalsefalsefalse—"treasury_auth", account:series—
treasurytruefalsefalse—"treasury", account:series—
ledgertruefalsefalse—"ledger", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
vault_tokentruefalsefalse—"vault_token", account:series—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: prepare_raise​

Discriminator: 0xf458b0101ff805d8.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuertruetruefalse———
seriesfalsefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
unit_mintfalsefalsefalse—"unit_mint", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
escrow_authfalsefalsefalse—"escrow_auth", account:series—
treasury_authfalsefalsefalse—"treasury_auth", account:series—
window_escrow_authfalsefalsefalse—"window_escrow", account:series—
auctiontruefalsefalse—"auction", account:series—
treasurytruefalsefalse—"treasury", account:series—
ledgertruefalsefalse—"ledger", account:series—
escrow_armtruefalsefalse—"escrow_arm", account:unit_mint—
escrow_tokentruefalsefalse—"escrow_token", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
vault_tokentruefalsefalse—"vault_token", account:series—
window_stabletruefalsefalse—"window_stable", account:series—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: process_bid​

Discriminator: 0xdaf40d3834226ece.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
auctiontruefalsefalse—"auction", account:series—
bidtruefalsefalse—"bid", account:series, account:bidder—
treasurytruefalsefalse—"treasury", account:series—
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:bidder—
bidderfalsefalsefalse———
escrow_authfalsefalsefalse—"escrow_auth", account:series—
auction_authfalsefalsefalse—"auction_auth", account:series—
escrow_tokentruefalsefalse—"escrow_token", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
fee_collector_atatruefalsefalse———
auction_escrow_atatruefalsefalse———
unit_minttruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: process_order​

Discriminator: 0x7e36fcb5fea36ba5.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, account:window.period—
ordertruefalsefalse—"order", account:series, account:window.period, account:owner—
ownerfalsefalsefalse———
holdertruefalsefalse—"holder", account:series, account:owner—
owner_allowlistfalsefalsefalse—"allow", account:owner0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
owner_unit_atafalsefalsefalse———
window_stabletruefalsefalse—"window_stable", account:series—
window_escrow_authfalsefalsefalse—"window_escrow", account:series—
fee_collector_atatruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: redeem​

Discriminator: 0xb80c569546c461e1.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
issuer_stabletruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: register_holder​

Discriminator: 0x716f75f6af3b62a1.

Arguments​

NameType
walletPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
seriesfalsefalsefalse———
ledgerfalsefalsefalse—"ledger", account:series—
allowlist_entryfalsefalsefalse—"allow", arg:wallet0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
holdertruefalsefalse—"holder", account:series, arg:wallet—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: request_early_draw​

Discriminator: 0x3f1eb3aaf899372d.

Arguments​

NameType
amountu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
approverfalsetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
treasurytruefalsefalse—"treasury", account:series—
ledgerfalsefalsefalse—"ledger", account:series—
treasury_tokentruefalsefalse—"treasury_token", account:series—
treasury_authfalsefalsefalse—"treasury_auth", account:series—
issuer_stabletruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———

merces_protocol: request_pause​

Discriminator: 0x0493d2565b3f9c4e.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—

merces_protocol: retire_if_capped​

Discriminator: 0x0807294ad323f930.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——

merces_protocol: reveal_bid​

Discriminator: 0x30491cffca7eecc4.

Arguments​

NameType
priceu64
quantityu64
salt[u8; 32]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
bidderfalsetruefalse———
seriesfalsefalsefalse———
auctiontruefalsefalse—"auction", account:series—
bidtruefalsefalse—"bid", account:series, account:bidder—

merces_protocol: reveal_order​

Discriminator: 0x19f42adb119cd34a.

Arguments​

NameType
priceu64
quantityu64
salt[u8; 32]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
ownerfalsetruefalse———
seriesfalsefalsefalse———
ledgerfalsefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, account:window.period—
ordertruefalsefalse—"order", account:series, account:window.period, account:owner—
owner_unit_atafalsefalsefalse———
holderfalsefalsefalse—"holder", account:series, account:owner—
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——

merces_protocol: route​

Discriminator: 0xe517cb977ae3ad2a.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
payertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriestruefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
routertruefalsefalse—"router", account:series—
router_authfalsefalsefalse—"router_auth", account:series—
router_tokentruefalsefalse—"router_token", account:series—
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
issuerfalsefalsefalse———
issuer_stable_atatruefalsefalse———
fee_collector_atatruefalsefalse———
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
registry_authorityfalsefalsefalse—"registry_authority"—
registry_programfalsefalsefalseGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: set_release_pause​

Discriminator: 0xd7b47a26f5f19cc3.

Arguments​

NameType
pausedbool

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
seriesfalsefalsefalse———
treasurytruefalsefalse—"treasury", account:series—

merces_protocol: snapshot_fx​

Discriminator: 0x995d3dd0c6fa0a4d.

Arguments​

NameType
periodu32

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
keepertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
pair_configfalsefalsefalse—"fx", account:pair.pair_id0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
pairtruefalsefalse—"fxpair", account:pair.pair_id—
checkpointtruefalsefalse—"fxcp", account:pair.pair_id, arg:period—
price_updatefalsefalsefalse———
crosscheck_updatefalsefalsetrue———
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: stake_units​

Discriminator: 0x0811fa8da4588857.

Arguments​

NameType
unitsu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
ownertruetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:owner—
owner_allowlistfalsefalsefalse—"allow", account:owner0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
owner_base_atatruefalsefalse———
stake_authfalsefalsefalse—"curve_stake", account:series—
stake_vaulttruefalsefalse———
base_mintfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——
associated_token_programfalsefalsefalseATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL——
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: submit_report​

Discriminator: 0x1bb24009142efa0e.

Arguments​

NameType
argsSubmitReportArgs

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuertruetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
reporttruefalsefalse—"report", account:series, arg:args.period—
attestation_keyfalsefalsefalse———
fx_attestor_keyfalsefalsefalse———
fx_pairfalsefalsefalse—"fxpair", account:series.fx_pair_id—
fx_startfalsefalsefalse—"fxcp", account:series.fx_pair_id, arg:args.period—
fx_endfalsefalsefalse—"fxcp", account:series.fx_pair_id, arg:args.period.saturating_add(1)—
routerfalsefalsetrue—"router", account:series—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: submit_trueup​

Discriminator: 0x9ca03572b8ce96fb.

Arguments​

NameType
yearu16
adjustmenti64
attestation_tsu64
attestor_addr[u8; 20]
attestor_sig[u8; 65]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
configfalsefalsefalse—"config"0xe98cc4df4a4420f1dcd0f8a2ccdd54f80ff2bb0cf05d3c4a0bf6049a984f89ef
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
attestor_keyfalsefalsefalse———

merces_protocol: sync_curve_units​

Discriminator: 0xf02f76b63c7e0d05.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
base_mintfalsefalsefalse———
dbc_poolfalsefalsefalse———
dbc_base_vaultfalsefalsefalse———
damm_configfalsefalsefalse———
damm_poolfalsefalsefalse———
damm_base_vaultfalsefalsefalse———
locker_escrow_tokenfalsefalsefalse———
leftover_tokenfalsefalsefalse———

merces_protocol: tally_bids​

Discriminator: 0x7a7a3f843600d167.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
auctiontruefalsefalse—"auction", account:series—

merces_protocol: tally_orders​

Discriminator: 0x3d5f572935f232c7.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
windowtruefalsefalse—"window", account:series, account:window.period—

merces_protocol: tally_takeback​

Discriminator: 0x141eec52ae2609cc.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
seriesfalsefalsefalse———
windowtruefalsefalse—"window", account:series, account:window.period—

merces_protocol: tender_units​

Discriminator: 0xb835b26adf06967e.

Arguments​

NameType
from_stakeu64
from_walletu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
ownerfalsetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:owner—
owner_base_atatruefalsefalse———
owner_stable_atatruefalsefalse———
stake_authfalsefalsefalse—"curve_stake", account:series—
stake_vaulttruefalsefalse———
base_minttruefalsefalse———
vault_tokentruefalsefalse—"vault_token", account:series—
vault_authfalsefalsefalse—"vault_auth", account:series—
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——

merces_protocol: unstake_units​

Discriminator: 0xa221640ca872005d.

Arguments​

NameType
unitsu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
ownerfalsetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—
holdertruefalsefalse—"holder", account:series, account:owner—
owner_base_atatruefalsefalse———
stake_authfalsefalsefalse—"curve_stake", account:series—
stake_vaulttruefalsefalse———
base_mintfalsefalsefalse———
token_2022_programfalsefalsefalseTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb——

merces_protocol: window_commit_bid​

Discriminator: 0xd797c537edcf0d8c.

Arguments​

NameType
commitment[u8; 32]
escrowu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
ownertruetruefalse———
seriesfalsefalsefalse———
owner_allowlistfalsefalsefalse———
windowtruefalsefalse—"window", account:series, account:window.period—
ordertruefalsefalse—"order", account:series, account:window.period, account:owner—
owner_stabletruefalsefalse———
window_stabletruefalsefalse—"window_stable", account:series—
stablecoin_mintfalsefalsefalse———
stablecoin_programfalsefalsefalse———
system_programfalsefalsefalse11111111111111111111111111111111——

merces_protocol: withdraw_pause_request​

Discriminator: 0xc5e7724782288577.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuerfalsetruefalse———
seriesfalsefalsefalse———
ledgertruefalsefalse—"ledger", account:series—

merces_protocol: account layouts​

Account type
Auction
Bid
EscrowArm
FxCheckpoint
FxPair
Holder
Ledger
Order
Report
Router
Treasury
Window

merces_protocol: AllowlistEntry​

Allowlist entry (`[ALLOW, wallet]`). A missing account means "never allowlisted".
NameType
walletPubkey
allowedbool
updated_ati64
bumpu8

merces_protocol: Auction​

Sealed-bid auction state (`[AUCTION, series]`).
NameType
seriesPubkey
stateu8
opened_atu64
commit_endu64
reveal_endu64
escrow_totalu64
bid_countu32
revealed_countu32
valid_countu32
tally_roundu32
round_rejectedbool
rejection_reasonu8
clearing_priceu64
q_above_claimu64
q_at_claimu64
r_claimu64
q_aboveu64
q_atu64
alloc_sumu64
min_valid_priceu64
tallied_countu32
units_soldu64
proceedsu64
settlement_tsu64
bids_processedu32
units_mintedu64
mint_finalizedbool
mint_authority_revokedbool
bumpu8

merces_protocol: Bid​

One bid per wallet per series (`[BID, series, bidder]`).
NameType
seriesPubkey
bidderPubkey
commitment[u8; 32]
escrowu64
reveal_indexu32
revealedbool
validbool
priceu64
quantityu64
tallied_roundu32
processedbool
allocationu64
pending_unitsu64
pending_refundu64
deliveredbool
bumpu8

merces_protocol: BidCommitted​

NameType
seriesPubkey
bidderPubkey
escrowu64

merces_protocol: BidDelivered​

NameType
seriesPubkey
bidderPubkey
unitsu64
refundu64

merces_protocol: BidRevealed​

NameType
seriesPubkey
bidderPubkey
priceu64
quantityu64
validbool

merces_protocol: CurveProceedsCollected​

`collect_curve_proceeds`: the DBC migration fee and surplus withdrawn into the treasury
(`proceeds` = the treasury's new total), the partner trading fee into the fee collector.
NameType
seriesPubkey
migration_feeu64
surplusu64
trading_feeu64
proceedsu64

merces_protocol: CurveUnitsSynced​

`sync_curve_units` (and the snapshot inside a curve-mode `redeem`): `units_outstanding =
supply − protocol_held`, all in base lamports.
NameType
seriesPubkey
supplyu64
protocol_heldu64
units_outstandingu64
staked_totalu64

merces_protocol: EarlyDrawExecuted​

NameType
seriesPubkey
amountu64
approverPubkey

merces_protocol: EscrowArm​

Armed `commit_ask` deposit for the unit mint (`[ESCROW_ARM, unit_mint]`, SPEC §4.1). Read by
the hook at bytes 8..40 (owner) and 40..48 (units).
NameType
armed_ownerPubkey
armed_unitsu64
bumpu8

merces_protocol: FinalClaimed​

NameType
seriesPubkey
holderPubkey
unitsu64
amountu64

merces_protocol: FormalNoticeDue​

`trueup == false`: the report countdown of `period` reached the formal-notice threshold.
`trueup == true`: the true-up of calendar year `period` did (SPEC §6.4, `FormalNoticeDue(series, trueup)`).
NameType
seriesPubkey
periodu32
trueupbool

merces_protocol: FxCheckpoint​

Accumulator checkpoint at the first snapshot of a period (`[FX_CHECKPOINT, pair_id, period]`).
NameType
pair_id[u8; 32]
periodu32
sum_wadu128
countu32
flaggedbool
bumpu8

merces_protocol: FxDeviationFlagged​

NameType
pair[u8; 32]
periodu32
rate_wadu64
crosscheck_wadu64

merces_protocol: FxPair​

Rate accumulator (`[FX_PAIR, pair_id]`).
NameType
pair_id[u8; 32]
sum_wadu128
countu32
last_dayu32
bumpu8

merces_protocol: FxPairConfig​

FX pair configuration (`[FX, pair_id]`), `pair_id = keccak256(feed_id ‖ inverted_u8)`.
NameType
pair_id[u8; 32]
feed_id[u8; 32]
invertedbool
crosscheckPubkey
crosscheck_effective_periodu32
prev_crosscheckPubkey
enabledbool
bumpu8

merces_protocol: FxSnapshot​

NameType
pair[u8; 32]
dayu32
rate_wadu64
sum_wadu128
countu32

merces_protocol: Holder​

Holder record (`[HOLDER, series, wallet]`).
NameType
seriesPubkey
walletPubkey
registeredbool
last_net_acc_wadu128
pendingu64
redeemed_unitsu64
last_tail_acc_wadu128
last_final_acc_wadu128
undelivered_unitsu64
ask_escrow_unitsu64
window_pending_unitsu64
staked_unitsu64
bumpu8

merces_protocol: HolderRegistered​

NameType
seriesPubkey
holderPubkey

merces_protocol: IncomeRouted​

NameType
seriesPubkey
amountu64
pass_throughu64
routedu64
ytd_receivedu64

merces_protocol: Ledger​

Per-series repayment ledger (`[LEDGER, series]`). Zero-copy so account validation never puts it
on the stack. Optional values are `(value, has_*)` pairs; booleans are `u8`; field order avoids
padding (bytemuck `Pod`).
NameType
paid_per_unit_wadu128
net_acc_wadu128
tail_acc_wadu128
tail_paid_per_unit_wadu128
final_acc_wadu128
window_acc_at_clearu128
year_gross_wad[u128; 4]
settlement_tsu64
open_due_amountu64
router_creditu64
trueup_nonceu64
trueup_dueu64
trueup_attested_atu64
pause_nonceu64
pause_requested_atu64
paused_totalu64
carry_wadu64
fee_collectedu64
gross_receivedu64
refunded_to_issueru64
units_outstandingu64
redemption_tsu64
redemption_priceu64
units_at_redemptionu64
tail_cap_per_unitu64
tail_carry_wadu64
extinguished_atu64
final_carry_wadu64
final_unitsu64
extinguish_nonceu64
unit_scaleu64
units_synced_atu64
staked_totalu64
tendered_totalu64
year_pay_sum[u64; 4]
pause_start[u64; 16]
pause_end[u64; 16]
seriesPubkey
last_income_commitment[u8; 32]
first_periodu32
last_accepted_period_vu32
last_paid_period_vu32
open_due_period_vu32
formal_notice_emitted_for_vu32
last_income_period_vu32
active_window_vu32
year_gross_tag[u32; 4]
year_pay_tag[u32; 4]
trueup_year_vu32
last_trueup_year_vu32
statusu8
has_last_accepted_periodu8
has_last_paid_periodu8
has_open_due_periodu8
has_formal_noticeu8
has_last_income_periodu8
has_active_windowu8
open_due_tieru8
pause_requestedu8
pause_countu8
trueup_notice_emittedu8
has_trueup_yearu8
has_last_trueup_yearu8
tail_exhaustedu8
mint_finalizedu8
year_gross_set[u8; 4]
year_pay_set[u8; 4]
bumpu8
curveu8
window_clearedu8
_padding[u8; 10]

merces_protocol: MintAuthorityRevoked​

NameType
seriesPubkey

merces_protocol: NonRevealCharged​

NameType
seriesPubkey
bidderPubkey
chargeu64

merces_protocol: Order​

Window order, ONE per wallet per window (`[ORDER, series, period, owner]`).
NameType
seriesPubkey
periodu32
ownerPubkey
sideu8
commitment[u8; 32]
escrowu64
reveal_indexu32
revealedbool
validbool
priceu64
quantityu64
tallied_roundu32
processedbool
fillu64
takeback_roundu32
pending_unitsu64
pending_stableu64
deliveredbool
bumpu8

merces_protocol: OrderCommitted​

NameType
seriesPubkey
periodu32
ownerPubkey
sideu8
escrowu64

merces_protocol: OrderDelivered​

`deliver_order` paid what a processed window order owes its owner (Solana addition mirroring
`BidDelivered`): `units` (bid fill or ask return) and `amount` of stablecoin (bid refund or ask
proceeds).
NameType
seriesPubkey
periodu32
ownerPubkey
sideu8
unitsu64
amountu64

merces_protocol: OrderFilled​

NameType
seriesPubkey
periodu32
ownerPubkey
sideu8
fillu64
priceu64
feeu64
refundu64

merces_protocol: OrderRevealed​

NameType
seriesPubkey
periodu32
ownerPubkey
sideu8
priceu64
quantityu64
validbool

merces_protocol: ParametersData​

Borsh-serialisable mirror of [`Parameters`].
NameType
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
fx_min_coverage_bpsu16
fx_max_staleness_secondsu64
fx_max_conf_bpsu16
fx_deviation_band_bpsu16
max_pause_secondsu64
max_cumulative_pause_secondsu64

merces_protocol: PauseApproved​

NameType
seriesPubkey
startu64
endu64
attestor[u8; 20]

merces_protocol: PauseEnded​

NameType
seriesPubkey
paused_totalu64

merces_protocol: PauseRequestWithdrawn​

NameType
seriesPubkey
nonceu64

merces_protocol: PauseRequested​

NameType
seriesPubkey
nonceu64

merces_protocol: PaymentSettled​

NameType
seriesPubkey
periodu32
grossu64
accrualu64
feeu64
acceptedu64
refundedu64

merces_protocol: PayoutClaimed​

NameType
seriesPubkey
holderPubkey
amountu64
burned_unitsu64

merces_protocol: PayoutDistributed​

`source`: 0 = Payment, 1 = Router, 2 = Tail, 3 = Final.
NameType
seriesPubkey
sourceu8
grossu64
acceptedu64
feeu64
net_addedu64
delta_acc_wadu128
paid_per_unit_wadu128
retiredbool

merces_protocol: PriceFeedMessage​

NameType
feed_id[u8; 32]
pricei64
confu64
exponenti32
publish_timei64
prev_publish_timei64
ema_pricei64
ema_confu64

merces_protocol: PriceUpdateV2​

A price update account. This account is used by the Pyth Receiver program to store a verified price update from a Pyth price feed.
It contains:
- `write_authority`: The write authority for this account. This authority can close this account to reclaim rent or update the account to contain a different price update.
- `verification_level`: The [`VerificationLevel`] of this price update. This represents how many Wormhole guardian signatures have been verified for this price update.
- `price_message`: The actual price update.
- `posted_slot`: The slot at which this price update was posted.
NameType
write_authorityPubkey
verification_levelVerificationLevel
price_messagePriceFeedMessage
posted_slotu64

merces_protocol: ProtocolConfig​

Global protocol configuration, one per deployment (`[CONFIG]`).
NameType
adminPubkey
pending_adminPubkey
allowlist_managerPubkey
fee_collectorPubkey
domain[u8; 32]
chain_idu64
new_raises_pausedbool
windows_enabledbool
tier4_enabledbool
early_draw_approverPubkey
defaultsParametersData
protocol_programPubkey
protocol_authorityPubkey
series_countu64
attestor_countu32
verifier_countu32
curve_quote_mintPubkey
bumpu8

merces_protocol: RaiseCancelled​

NameType
seriesPubkey

merces_protocol: RaiseFailed​

NameType
seriesPubkey
clearing_priceu64
proceedsu64
min_raiseu64

merces_protocol: RaiseMintFinalized​

NameType
seriesPubkey
units_soldu64
proceedsu64

merces_protocol: RaiseOpened​

NameType
seriesPubkey
unit_mintPubkey
opened_atu64
commit_endu64
reveal_endu64

merces_protocol: RaiseSettled​

NameType
seriesPubkey
clearing_priceu64
units_soldu64
proceedsu64
settlement_tsu64

merces_protocol: RedemptionClaimed​

NameType
seriesPubkey
holderPubkey
unitsu64
amountu64

merces_protocol: ReleaseClaimed​

NameType
seriesPubkey
amountu64
released_totalu64

merces_protocol: ReleasePauseSet​

NameType
seriesPubkey
pausedbool

merces_protocol: Report​

Accepted report (`[REPORT, series, period]`).
NameType
seriesPubkey
periodu32
accepted_atu64
payment_usdu64
fx_avg_wadu64
fx_fallbackbool
tieru8
liquidity_eventbool
income_commitment[u8; 32]
prior_income_commitment[u8; 32]
dueu64
accrual_paidu64
paid_atu64
bumpu8

merces_protocol: ReportAccepted​

NameType
seriesPubkey
periodu32
payment_usdu64
fx_avg_wadu64
fx_fallbackbool
tieru8
liquidity_eventbool
income_commitment[u8; 32]
dueu64

merces_protocol: Router​

Tier 1 split router (`[ROUTER, series]`); income lands in the `router_token` PDA.
NameType
seriesPubkey
thetau64
r_wadu64
ytd_yearu32
ytd_receivedu64
last_receipt_periodu32
last_checkpoint_periodu32
init_periodu32
cp_period[u32; 8]
cp_ytd_at_end[u64; 8]
cp_set[bool; 8]
bumpu8

merces_protocol: RouterPeriodClosed​

NameType
seriesPubkey
periodu32
ytd_at_endu64

merces_protocol: Series​

One raise by one issuer (`[SERIES, series_id_le]`). The charter block is frozen once
`raise_state != Draft` (SPEC §3.3).
NameType
series_idu64
issuerPubkey
modeu8
stablecoinPubkey
stablecoin_decimalsu8
stablecoin_programPubkey
unit_mintPubkey
units_offeredu64
reserve_priceu64
min_raiseu64
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
fx_min_coverage_bpsu16
max_pause_secondsu64
max_cumulative_pause_secondsu64
release_scheduleVec<TrancheData>
contract_hash[u8; 32]
tier_flagsu8
fx_pair_id[u8; 32]
issuer_accepts_public_pricebool
metadata_uriString
router_thetau64
router_r_wadu64
terms_commitment[u8; 32]
amendment_nonceu64
raise_stateu8
opened_atu64
settlement_tsu64
units_soldu64
clearing_priceu64
mint_finalizedbool
terminal_statusu8
auction_escrow_ataPubkey
window_escrow_ataPubkey
dbc_configPubkey
dbc_poolPubkey
base_mintPubkey
dbc_creatorPubkey
bumpu8

merces_protocol: SeriesExtinguished​

NameType
seriesPubkey
unreleasedu64
attestor_a[u8; 20]
attestor_b[u8; 20]

merces_protocol: SeriesRedeemed​

NameType
seriesPubkey
priceu64
hurdleu64
d_avgu64
cap_remainingu64
unitsu64
depositu64

merces_protocol: SeriesRetired​

NameType
seriesPubkey
paid_per_unit_wadu128
refundu64

merces_protocol: SettlementProposed​

NameType
seriesPubkey
clearing_priceu64
roundu32

merces_protocol: SettlementRejected​

`reason`: 1 = ClaimMismatch, 2 = InvalidClearingPrice.
NameType
seriesPubkey
roundu32
clearing_priceu64
reasonu8

merces_protocol: StatusChanged​

NameType
seriesPubkey
oldu8
newu8

merces_protocol: SubmitReportArgs​

NameType
periodu32
payment_usdu64
fx_avg_wadu64
fx_fallback_sigOption<[u8; 65]>
fx_attestor_addr[u8; 20]
prior_income_commitment[u8; 32]
income_commitment[u8; 32]
tieru8
liquidity_eventbool
proofbytes
attestation_sigOption<[u8; 65]>
attestation_addr[u8; 20]

merces_protocol: TailClaimed​

NameType
seriesPubkey
holderPubkey
amountu64

merces_protocol: TailDistributed​

NameType
seriesPubkey
periodu32
grossu64
acceptedu64
feeu64
refundedu64

merces_protocol: TrancheData​

Borsh-serialisable mirror of [`Tranche`].
NameType
at_offset_secondsu64
bpsu16

merces_protocol: Treasury​

Treasury bookkeeping (`[TREASURY, series]`); the stablecoin sits in the `treasury_token` PDA.
NameType
seriesPubkey
proceedsu64
proceeds_receivedu64
released_totalu64
issuer_paused_releasesbool
early_draw_totalu64
extinguished_atu64
mint_finalizedbool
bumpu8

merces_protocol: TrueUpPaid​

NameType
seriesPubkey
amountu64
accrualu64

merces_protocol: TrueUpRecorded​

NameType
seriesPubkey
yearu16
adjustmenti64
deadlineu64

merces_protocol: UnitsAllocated​

NameType
seriesPubkey
bidderPubkey
unitsu64
costu64
feeu64
refundu64

merces_protocol: UnitsBurned​

`reason`: 0 = Retired, 1 = Redeemed, 2 = Extinguished.
NameType
seriesPubkey
holderPubkey
unitsu64
reasonu8

merces_protocol: UnitsStaked​

Units moved into the series stake vault (`staked` = the holder's stake afterwards).
NameType
seriesPubkey
holderPubkey
unitsu64
stakedu64

merces_protocol: UnitsUnstaked​

Units returned from the stake vault (`staked` = the holder's stake afterwards).
NameType
seriesPubkey
holderPubkey
unitsu64
stakedu64

merces_protocol: VerificationLevel​

Pyth price updates are bridged to all blockchains via Wormhole.
Using the price updates on another chain requires verifying the signatures of the Wormhole guardians.
The usual process is to check the signatures for two thirds of the total number of guardians, but this can be cumbersome on Solana because of the transaction size limits,
so we also allow for partial verification.

This enum represents how much a price update has been verified:
- If `Full`, we have verified the signatures for two thirds of the current guardians.
- If `Partial`, only `num_signatures` guardian signatures have been checked.

# Warning
Using partially verified price updates is dangerous, as it lowers the threshold of guardians that need to collude to produce a malicious price update.
VariantFields
Partialnum_signatures: u8
Full—

merces_protocol: Window​

Transfer window (`[WINDOW, series, period]`).
NameType
seriesPubkey
periodu32
stateu8
opens_atu64
commit_endu64
reveal_endu64
order_countu32
bid_countu32
ask_countu32
revealed_countu32
revealed_bidsu32
revealed_asksu32
valid_countu32
escrow_unitsu64
escrow_stableu64
tally_roundu32
round_rejectedbool
rejection_reasonu8
clearing_priceu64
no_match_proposedbool
d_aboveu64
d_atu64
s_belowu64
s_atu64
max_bidu64
min_asku64
valid_bidsu32
valid_asksu32
tallied_countu32
branchu8
matched_unitsu64
marginal_remainingu64
ask_at_totalu64
ask_at_filledu64
cancelled_unitsu64
next_bid_indexu32
next_ask_indexu32
bids_processedu32
asks_processedu32
processed_countu32
delivered_countu32
tb_roundu32
tb_rejectedbool
tb_settledbool
tb_priceu64
tb_indexu32
tb_above_sumu64
tb_foundbool
tb_k_quantityu64
tb_talliedu32
tb_partialu64
bumpu8

merces_protocol: WindowCleared​

`branch`: 0 = SupplyLimited, 1 = DemandLimited.
NameType
seriesPubkey
periodu32
clearing_priceu64
matched_unitsu64
branchu8

merces_protocol: WindowNoMatch​

NameType
seriesPubkey
periodu32

merces_protocol: WindowOpened​

NameType
seriesPubkey
periodu32
commit_endu64
reveal_endu64

merces_protocol: WindowSettlementProposed​

Window settlement proposal (Solana addition mirroring the auction's `SettlementProposed`;
SPEC §12: every state transition emits an event). `no_match = true` proposes `NO_MATCH`
(`clearing_price` is then `u64::MAX`).
NameType
seriesPubkey
periodu32
clearing_priceu64
no_matchbool
roundu32

merces_protocol: WindowSettlementRejected​

`reason`: 1 = NoMatchInvalid, 2 = PriceNotRevealed, 3 = NoCrossing. `clearing_price` is
`u64::MAX` for a rejected `NO_MATCH` proposal.
NameType
seriesPubkey
periodu32
clearing_priceu64
reasonu8

merces_protocol: WindowTakebackProposed​

Take-back threshold proposal (Solana addition, SPEC §7 cancelled-buyer take-back from the asks
below `p*`): the order with key `(price, reveal_index)` is proposed as the last one cut.
NameType
seriesPubkey
periodu32
priceu64
reveal_indexu32
roundu32

merces_protocol: WindowTakebackRejected​

A take-back proposal that failed the tally check (never a revert).
NameType
seriesPubkey
periodu32
roundu32

merces_protocol: WindowTakebackSettled​

The take-back threshold is settled: `below_units` units come off the asks below `p*`.
NameType
seriesPubkey
periodu32
cancelled_unitsu64
below_unitsu64
priceu64
reveal_indexu32
partialu64

merces_registry​

Source: stage1:solana/idls/merces_registry.json.

IDL fieldValue
addressGigVSncHHvrt8kZVHcdZWULqUE52aAZn7GzGaBNVznSi
metadata.version0.1.0
metadata.spec0.1.0

merces_registry: accept_admin​

Discriminator: 0x702a2d5a74b50daa.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
pending_adminfalsetruefalse———

merces_registry: amend_terms​

Discriminator: 0x1107fc02b679d7b6.

Issuer-favourable amendment (SPEC §3.2, brief C4): the issuer signs the transaction and an
active attestor signs the `MERCES_AMEND_V1` message with the current nonce. The cap
multiple may only decrease. Allowed only while `terminal_status == 0`.

Arguments​

NameType
new_terms_commitment[u8; 32]
new_cap_multiple_wadu64
new_tier1_termsOption<Tier1Terms>
attestor_addr[u8; 20]
attestor_sig[u8; 65]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
issuer_walletfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—
attestorfalsefalsefalse—"attestor", arg:attestor_addr—

merces_registry: create_series​

Discriminator: 0xb5093478c5dd2a8e.

Arguments​

NameType
argsCreateSeriesArgs

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
issuer_wallettruetruefalse———
issuertruefalsefalse—"issuer", account:issuer_wallet—
allowlist_entryfalsefalsefalse—"allow", account:issuer_wallet—
stablecoin_mintfalsefalsefalse———
fx_pairfalsefalsetrue———
seriestruefalsefalse—"series", account:config.series_count—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: deactivate_issuer​

Discriminator: 0x340aa3bbf7169625.

Blocks *new* series only; existing series are untouched (SPEC §3.2).

Arguments​

NameType
walletPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
adminfalsetruefalse———
issuertruefalsefalse—"issuer", arg:wallet—

merces_registry: init_protocol​

Discriminator: 0x03bc8dede1e2e8d2.

Creates `ProtocolConfig` once (SPEC §3.2).

Arguments​

NameType
argsInitProtocolArgs

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
payertruetruefalse———
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: mark_curve_activated​

Discriminator: 0xc7e38e75a6d58f4d.

Curve-mode activation (SPEC §9, CURVE_MODE §2–§3): records the DBC config, pool, base mint
and pool creator validated by `merces_protocol::activate_curve`, and fixes `P0`
(`clearing_price`, per whole unit) and the design `units_sold` (base lamports) for cap
accounting. Draft → Open; the protocol marks the raise Settled (and the mint final) when it
observes the curve's completion.

Arguments​

NameType
dbc_configPubkey
dbc_poolPubkey
base_mintPubkey
dbc_creatorPubkey
activated_atu64
units_soldu64
clearing_priceu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
protocol_authorityfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—
issuer_allowlistfalsefalsefalse—"allow", account:series.issuer—

merces_registry: mark_mint_finalized​

Discriminator: 0x636f8450f02385b6.

Mint finalised: every bid of a Settled or Failed raise processed and the mint authority
revoked (a failed raise finalises an empty mint, so nothing can ever be minted for it).

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
protocol_authorityfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—

merces_registry: mark_raise_opened​

Discriminator: 0xf0bda85862e5fca4.

Draft → Open. Also enforces the D1 gate: contract hash set, issuer allowlisted, raises not
paused. Records the unit mint and the protocol's unit escrow ATAs for the hook.

Arguments​

NameType
unit_mintPubkey
opened_atu64
auction_escrow_ataPubkey
window_escrow_ataPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
protocol_authorityfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—
issuer_allowlistfalsefalsefalse—"allow", account:series.issuer—

merces_registry: mark_raise_result​

Discriminator: 0xd5382326089255b3.

Records the raise outcome, exact and written once (SPEC §3.2).

Arguments​

NameType
stateu8
settlement_tsu64
units_soldu64
clearing_priceu64

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
protocol_authorityfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—

merces_registry: mark_terminal​

Discriminator: 0x7c78f7ad0e578467.

Terminal status mirror: Retired / Redeemed / Extinguished. Extinguished may follow Retired
or Redeemed (SPEC §6.9: allowed in every status but Extinguished).

Arguments​

NameType
statusu8

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
protocol_authorityfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—

merces_registry: register_attestor​

Discriminator: 0x44c956f433710f5e.

Registers (or re-activates) an attestor key.

Arguments​

NameType
addr[u8; 20]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
admintruetruefalse———
attestortruefalsefalse—"attestor", arg:addr—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: register_issuer​

Discriminator: 0x9175343bbd1b7f12.

Arguments​

NameType
walletPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
admintruetruefalse———
issuertruefalsefalse—"issuer", arg:wallet—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: register_verifier_key​

Discriminator: 0x80fc951c405784b2.

Arguments​

NameType
addr[u8; 20]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
admintruetruefalse———
verifiertruefalsefalse—"verifier", arg:addr—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: resume_issuance​

Discriminator: 0xe10ad2de30200b92.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuer_walletfalsetruefalse———
issuertruefalsefalse—"issuer", account:issuer_wallet—

merces_registry: revoke_attestor​

Discriminator: 0xb90cbf8c9070669a.

Forward-only revocation (SPEC §1.4): records `revoked_at`; refused for the last active key.

Arguments​

NameType
addr[u8; 20]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———
attestortruefalsefalse—"attestor", arg:addr—

merces_registry: revoke_verifier_key​

Discriminator: 0x26a20cf034fa22a1.

Arguments​

NameType
addr[u8; 20]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———
verifiertruefalsefalse—"verifier", arg:addr—

merces_registry: set_allowed​

Discriminator: 0xac8685800cfe8670.

Arguments​

NameType
walletPubkey
allowedbool

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
allowlist_managertruetruefalse———
entrytruefalsefalse—"allow", arg:wallet—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: set_allowlist_manager​

Discriminator: 0xe05e05bf03de5479.

Arguments​

NameType
new_managerPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———

merces_registry: set_contract_hash​

Discriminator: 0x019f0890488fb57b.

Draft only, non-zero (SPEC §3.2).

Arguments​

NameType
hash[u8; 32]

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuer_walletfalsetruefalse———
seriestruefalsefalse—"series", account:series.series_id—

merces_registry: set_defaults​

Discriminator: 0x3ab599318c10cdfb.

Edits the defaults for *future* series only (bounds-checked).

Arguments​

NameType
defaultsParametersData

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———

merces_registry: set_early_draw_approver​

Discriminator: 0x133fef64e0df082a.

`Pubkey::default()` unsets the approver (early draws off).

Arguments​

NameType
approverPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———

merces_registry: set_fee_collector​

Discriminator: 0x8f2e0a71799df5a6.

Arguments​

NameType
new_collectorPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———

merces_registry: set_flags​

Discriminator: 0xc7366f7c572fd9c6.

Arguments​

NameType
new_raises_pausedbool
windows_enabledbool
tier4_enabledbool

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———

merces_registry: set_fx_crosscheck​

Discriminator: 0xa095ca290225dccf.

Changes a pair's cross-check feed (SPEC §3.1). Setting it from zero applies from the current
period (nothing was checked before); any later change — a new feed or removal — applies from
`period_of(now) + 1`, and the feed in force for the running period is kept in
`prev_crosscheck`, so a live quarter's rule never changes under an issuer.

Arguments​

NameType
crosscheckPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
adminfalsetruefalse———
fx_pairtruefalsefalse—"fx", account:fx_pair.pair_id—

merces_registry: set_fx_pair​

Discriminator: 0x81a0863a5369f3ad.

Registers an FX pair, write-once (SPEC §3.1): `pair_id = keccak256(feed_id ‖ inverted)`
commits to the feed and its direction, and a pair can never be re-registered
(`FxPairImmutable`). A cross-check feed given here applies from the current period; later
changes go through `set_fx_crosscheck`. `enabled` only gates new series.

Arguments​

NameType
pair_id[u8; 32]
feed_id[u8; 32]
invertedbool
crosscheckPubkey
enabledbool

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
admintruetruefalse———
fx_pairtruefalsefalse—"fx", arg:pair_id—
system_programfalsefalsefalse11111111111111111111111111111111——

merces_registry: set_fx_pair_enabled​

Discriminator: 0x6404d2e4e402bf69.

Enables or disables an existing pair (`enabled = false` only stops new series from
referencing it; live series keep their pair, SPEC §3.1).

Arguments​

NameType
enabledbool

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configfalsefalsefalse—"config"—
adminfalsetruefalse———
fx_pairtruefalsefalse—"fx", account:fx_pair.pair_id—

merces_registry: stop_issuance​

Discriminator: 0x7b0a862c3179a865.

Arguments​

No fields.

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
issuer_walletfalsetruefalse———
issuertruefalsefalse—"issuer", account:issuer_wallet—

merces_registry: transfer_admin​

Discriminator: 0x2af2426ae40a6f9c.

Arguments​

NameType
new_adminPubkey

Accounts​

AccountWritableSignerOptionalFixed addressPDA seedsPDA program seed
configtruefalsefalse—"config"—
adminfalsetruefalse———

merces_registry: account layouts​

Account type
AllowlistEntry
AttestorKey
FxPairConfig
Issuer
ProtocolConfig
Series
VerifierKey

merces_registry: AdminTransferStarted​

NameType
adminPubkey
pending_adminPubkey

merces_registry: AdminTransferred​

NameType
old_adminPubkey
new_adminPubkey

merces_registry: AllowlistEntry​

Allowlist entry (`[ALLOW, wallet]`). A missing account means "never allowlisted".
NameType
walletPubkey
allowedbool
updated_ati64
bumpu8

merces_registry: AllowlistManagerSet​

NameType
allowlist_managerPubkey

merces_registry: AllowlistUpdated​

NameType
walletPubkey
allowedbool

merces_registry: AttestorKey​

Attestor key (`[ATTESTOR, addr20]`). `revoked_at == 0` while active (SPEC §1.4).
NameType
addr[u8; 20]
activebool
revoked_atu64
bumpu8

merces_registry: AttestorRegistered​

NameType
addr[u8; 20]

merces_registry: AttestorRevoked​

NameType
addr[u8; 20]
revoked_atu64

merces_registry: ContractHashSet​

NameType
seriesPubkey
hash[u8; 32]

merces_registry: CreateSeriesArgs​

Arguments to `create_series`. Fees, FX bounds and pause bounds are copied from
`ProtocolConfig.defaults`; everything here is issuer-chosen within the §1.6 bounds.
NameType
units_offeredu64
reserve_priceu64
min_raiseu64
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
release_scheduleVec<TrancheData>
terms_commitment[u8; 32]
tier_flagsu8
fx_pair_id[u8; 32]
modeu8
issuer_accepts_public_pricebool
metadata_uriString
tier1_termsOption<Tier1Terms>

merces_registry: CurveActivated​

NameType
seriesPubkey
dbc_configPubkey
dbc_poolPubkey
base_mintPubkey
dbc_creatorPubkey
units_soldu64
clearing_priceu64

merces_registry: DefaultsSet​

NameType
defaultsParametersData

merces_registry: EarlyDrawApproverSet​

NameType
approverPubkey

merces_registry: FeeCollectorSet​

NameType
fee_collectorPubkey

merces_registry: FlagsSet​

NameType
new_raises_pausedbool
windows_enabledbool
tier4_enabledbool

merces_registry: FxPairConfig​

FX pair configuration (`[FX, pair_id]`), `pair_id = keccak256(feed_id ‖ inverted_u8)`.
NameType
pair_id[u8; 32]
feed_id[u8; 32]
invertedbool
crosscheckPubkey
crosscheck_effective_periodu32
prev_crosscheckPubkey
enabledbool
bumpu8

merces_registry: FxPairSet​

NameType
pair_id[u8; 32]
feed_id[u8; 32]
invertedbool
crosscheckPubkey
crosscheck_effective_periodu32
enabledbool

merces_registry: InitProtocolArgs​

Arguments to `init_protocol`.
NameType
adminPubkey
allowlist_managerPubkey
fee_collectorPubkey
chain_idu64
defaultsParametersData
protocol_programPubkey
curve_quote_mintPubkey

merces_registry: IssuanceResumed​

NameType
walletPubkey

merces_registry: IssuanceStopped​

NameType
walletPubkey

merces_registry: Issuer​

Issuer record (`[ISSUER, wallet]`).
NameType
walletPubkey
activebool
issuance_stoppedbool
series_countu32
bumpu8

merces_registry: IssuerDeactivated​

NameType
walletPubkey

merces_registry: IssuerRegistered​

NameType
walletPubkey

merces_registry: MintFinalized​

NameType
seriesPubkey

merces_registry: ParametersData​

Borsh-serialisable mirror of [`Parameters`].
NameType
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
fx_min_coverage_bpsu16
fx_max_staleness_secondsu64
fx_max_conf_bpsu16
fx_deviation_band_bpsu16
max_pause_secondsu64
max_cumulative_pause_secondsu64

merces_registry: ProtocolConfig​

Global protocol configuration, one per deployment (`[CONFIG]`).
NameType
adminPubkey
pending_adminPubkey
allowlist_managerPubkey
fee_collectorPubkey
domain[u8; 32]
chain_idu64
new_raises_pausedbool
windows_enabledbool
tier4_enabledbool
early_draw_approverPubkey
defaultsParametersData
protocol_programPubkey
protocol_authorityPubkey
series_countu64
attestor_countu32
verifier_countu32
curve_quote_mintPubkey
bumpu8

merces_registry: ProtocolInitialized​

NameType
adminPubkey
allowlist_managerPubkey
fee_collectorPubkey
chain_idu64
domain[u8; 32]
protocol_programPubkey
protocol_authorityPubkey

merces_registry: RaiseStateChanged​

NameType
seriesPubkey
stateu8

merces_registry: Series​

One raise by one issuer (`[SERIES, series_id_le]`). The charter block is frozen once
`raise_state != Draft` (SPEC §3.3).
NameType
series_idu64
issuerPubkey
modeu8
stablecoinPubkey
stablecoin_decimalsu8
stablecoin_programPubkey
unit_mintPubkey
units_offeredu64
reserve_priceu64
min_raiseu64
cap_multiple_wadu64
hurdle_rate_wadu64
payout_multiple_ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
commit_durationu64
reveal_durationu64
window_commit_durationu64
window_reveal_durationu64
fx_min_coverage_bpsu16
max_pause_secondsu64
max_cumulative_pause_secondsu64
release_scheduleVec<TrancheData>
contract_hash[u8; 32]
tier_flagsu8
fx_pair_id[u8; 32]
issuer_accepts_public_pricebool
metadata_uriString
router_thetau64
router_r_wadu64
terms_commitment[u8; 32]
amendment_nonceu64
raise_stateu8
opened_atu64
settlement_tsu64
units_soldu64
clearing_priceu64
mint_finalizedbool
terminal_statusu8
auction_escrow_ataPubkey
window_escrow_ataPubkey
dbc_configPubkey
dbc_poolPubkey
base_mintPubkey
dbc_creatorPubkey
bumpu8

merces_registry: SeriesCreated​

NameType
seriesPubkey
series_idu64
issuerPubkey
modeu8
stablecoinPubkey
units_offeredu64
reserve_priceu64
min_raiseu64
cap_multiple_wadu64
hurdle_rate_wadu64
ku16
lockup_secondsu64
wallet_cap_bpsu16
auction_fee_bpsu16
payout_fee_bpsu16
window_fee_bpsu16
non_reveal_charge_bpsu16
terms_commitment[u8; 32]
tier_flagsu8
fx_pair_id[u8; 32]

merces_registry: TerminalStatusSet​

NameType
seriesPubkey
statusu8

merces_registry: TermsAmended​

NameType
seriesPubkey
nonceu64
new_terms_commitment[u8; 32]
new_cap_multiple_wadu64
attestor[u8; 20]

merces_registry: Tier1Terms​

Plaintext tier-1 terms (public by the issuer's choice, SPEC §6.5); checked against
`terms_commitment` with Poseidon(5) at series creation.
NameType
thetau64
r_wadu64
currency_codeu32
indexing_ruleu32
terms_salt[u8; 32]

merces_registry: TrancheData​

Borsh-serialisable mirror of [`Tranche`].
NameType
at_offset_secondsu64
bpsu16

merces_registry: VerifierKey​

Report-verifier key (`[VERIFIER, addr20]`).
NameType
addr[u8; 20]
activebool
revoked_atu64
bumpu8

merces_registry: VerifierKeyRegistered​

NameType
addr[u8; 20]

merces_registry: VerifierKeyRevoked​

NameType
addr[u8; 20]
revoked_atu64

What can go wrong​

These tables describe the checked source. Generated interfaces do not establish that a deployment exists or that a transaction is appropriate. Source discrepancies and unresolved product decisions still require review before using funds.