@cascade-fyi/sati-sdk 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1322 @@
1
+ import { Account, AccountMeta, AccountSignerMeta, Address, Address as Address$1, Codec, Decoder, EncodedAccount, Encoder, FetchAccountConfig, FetchAccountsConfig, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, Instruction, InstructionWithAccounts, InstructionWithData, KeyPairSigner, MaybeAccount, MaybeEncodedAccount, Option, OptionOrNullable, ReadonlyAccount, ReadonlySignerAccount, ReadonlyUint8Array, SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, SolanaError, TransactionSigner, WritableAccount, WritableSignerAccount, address, fetchEncodedAccount, fetchEncodedAccounts } from "@solana/kit";
2
+ import * as sas_lib0 from "sas-lib";
3
+ import { SOLANA_ATTESTATION_SERVICE_PROGRAM_ADDRESS, deriveAttestationPda, deriveCredentialPda, deriveEventAuthorityAddress, deriveSchemaPda, deserializeAttestationData, fetchAllMaybeSchema, fetchAttestation, fetchMaybeCredential, fetchMaybeSchema, fetchSchema, getCloseAttestationInstruction, getCreateAttestationInstruction, getCreateCredentialInstruction, getCreateSchemaInstruction, serializeAttestationData } from "sas-lib";
4
+
5
+ //#region src/generated/accounts/registryConfig.d.ts
6
+
7
+ declare const REGISTRY_CONFIG_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
8
+ declare function getRegistryConfigDiscriminatorBytes(): ReadonlyUint8Array;
9
+ type RegistryConfig = {
10
+ discriminator: ReadonlyUint8Array;
11
+ /** SATI TokenGroup mint address */
12
+ groupMint: Address$1;
13
+ /**
14
+ * Authority that can update registry settings
15
+ * Set to Pubkey::default() to make immutable
16
+ */
17
+ authority: Address$1;
18
+ /** Total agents registered (counter) */
19
+ totalAgents: bigint;
20
+ /** PDA bump seed (stored for efficient CPI signing) */
21
+ bump: number;
22
+ };
23
+ type RegistryConfigArgs = {
24
+ /** SATI TokenGroup mint address */
25
+ groupMint: Address$1;
26
+ /**
27
+ * Authority that can update registry settings
28
+ * Set to Pubkey::default() to make immutable
29
+ */
30
+ authority: Address$1;
31
+ /** Total agents registered (counter) */
32
+ totalAgents: number | bigint;
33
+ /** PDA bump seed (stored for efficient CPI signing) */
34
+ bump: number;
35
+ };
36
+ /** Gets the encoder for {@link RegistryConfigArgs} account data. */
37
+ declare function getRegistryConfigEncoder(): FixedSizeEncoder<RegistryConfigArgs>;
38
+ /** Gets the decoder for {@link RegistryConfig} account data. */
39
+ declare function getRegistryConfigDecoder(): FixedSizeDecoder<RegistryConfig>;
40
+ /** Gets the codec for {@link RegistryConfig} account data. */
41
+ declare function getRegistryConfigCodec(): FixedSizeCodec<RegistryConfigArgs, RegistryConfig>;
42
+ declare function decodeRegistryConfig<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<RegistryConfig, TAddress>;
43
+ declare function decodeRegistryConfig<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<RegistryConfig, TAddress>;
44
+ declare function fetchRegistryConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address$1<TAddress>, config?: FetchAccountConfig): Promise<Account<RegistryConfig, TAddress>>;
45
+ declare function fetchMaybeRegistryConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address$1<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<RegistryConfig, TAddress>>;
46
+ declare function fetchAllRegistryConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address$1>, config?: FetchAccountsConfig): Promise<Account<RegistryConfig>[]>;
47
+ declare function fetchAllMaybeRegistryConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address$1>, config?: FetchAccountsConfig): Promise<MaybeAccount<RegistryConfig>[]>;
48
+ declare function getRegistryConfigSize(): number;
49
+ //#endregion
50
+ //#region src/generated/errors/satiRegistry.d.ts
51
+ /** InvalidGroupMint: Invalid group mint - must be owned by Token-2022 with TokenGroup extension */
52
+ declare const SATI_REGISTRY_ERROR__INVALID_GROUP_MINT = 6000;
53
+ /** InvalidAuthority: Invalid authority */
54
+ declare const SATI_REGISTRY_ERROR__INVALID_AUTHORITY = 6001;
55
+ /** ImmutableAuthority: Authority is immutable (renounced) */
56
+ declare const SATI_REGISTRY_ERROR__IMMUTABLE_AUTHORITY = 6002;
57
+ /** NameTooLong: Name too long (max 32 bytes) */
58
+ declare const SATI_REGISTRY_ERROR__NAME_TOO_LONG = 6003;
59
+ /** SymbolTooLong: Symbol too long (max 10 bytes) */
60
+ declare const SATI_REGISTRY_ERROR__SYMBOL_TOO_LONG = 6004;
61
+ /** UriTooLong: URI too long (max 200 bytes) */
62
+ declare const SATI_REGISTRY_ERROR__URI_TOO_LONG = 6005;
63
+ /** TooManyMetadataEntries: Too many metadata entries (max 10) */
64
+ declare const SATI_REGISTRY_ERROR__TOO_MANY_METADATA_ENTRIES = 6006;
65
+ /** MetadataKeyTooLong: Metadata key too long (max 32 bytes) */
66
+ declare const SATI_REGISTRY_ERROR__METADATA_KEY_TOO_LONG = 6007;
67
+ /** MetadataValueTooLong: Metadata value too long (max 200 bytes) */
68
+ declare const SATI_REGISTRY_ERROR__METADATA_VALUE_TOO_LONG = 6008;
69
+ /** Overflow: Arithmetic overflow */
70
+ declare const SATI_REGISTRY_ERROR__OVERFLOW = 6009;
71
+ /** MintAuthorityNotRenounced: Failed to renounce mint authority - supply guarantee violated */
72
+ declare const SATI_REGISTRY_ERROR__MINT_AUTHORITY_NOT_RENOUNCED = 6010;
73
+ type SatiRegistryError = typeof SATI_REGISTRY_ERROR__IMMUTABLE_AUTHORITY | typeof SATI_REGISTRY_ERROR__INVALID_AUTHORITY | typeof SATI_REGISTRY_ERROR__INVALID_GROUP_MINT | typeof SATI_REGISTRY_ERROR__METADATA_KEY_TOO_LONG | typeof SATI_REGISTRY_ERROR__METADATA_VALUE_TOO_LONG | typeof SATI_REGISTRY_ERROR__MINT_AUTHORITY_NOT_RENOUNCED | typeof SATI_REGISTRY_ERROR__NAME_TOO_LONG | typeof SATI_REGISTRY_ERROR__OVERFLOW | typeof SATI_REGISTRY_ERROR__SYMBOL_TOO_LONG | typeof SATI_REGISTRY_ERROR__TOO_MANY_METADATA_ENTRIES | typeof SATI_REGISTRY_ERROR__URI_TOO_LONG;
74
+ declare function getSatiRegistryErrorMessage(code: SatiRegistryError): string;
75
+ declare function isSatiRegistryError<TProgramErrorCode extends SatiRegistryError>(error: unknown, transactionMessage: {
76
+ instructions: Record<number, {
77
+ programAddress: Address$1;
78
+ }>;
79
+ }, code?: TProgramErrorCode): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> & Readonly<{
80
+ context: Readonly<{
81
+ code: TProgramErrorCode;
82
+ }>;
83
+ }>;
84
+ //#endregion
85
+ //#region src/generated/programs/satiRegistry.d.ts
86
+ declare const SATI_REGISTRY_PROGRAM_ADDRESS: Address$1<"satiFVb9MDmfR4ZfRedyKPLGLCg3saQ7Wbxtx9AEeeF">;
87
+ declare enum SatiRegistryAccount {
88
+ RegistryConfig = 0,
89
+ }
90
+ declare function identifySatiRegistryAccount(account: {
91
+ data: ReadonlyUint8Array;
92
+ } | ReadonlyUint8Array): SatiRegistryAccount;
93
+ declare enum SatiRegistryInstruction {
94
+ Initialize = 0,
95
+ RegisterAgent = 1,
96
+ UpdateRegistryAuthority = 2,
97
+ }
98
+ declare function identifySatiRegistryInstruction(instruction: {
99
+ data: ReadonlyUint8Array;
100
+ } | ReadonlyUint8Array): SatiRegistryInstruction;
101
+ type ParsedSatiRegistryInstruction<TProgram extends string = "satiFVb9MDmfR4ZfRedyKPLGLCg3saQ7Wbxtx9AEeeF"> = ({
102
+ instructionType: SatiRegistryInstruction.Initialize;
103
+ } & ParsedInitializeInstruction<TProgram>) | ({
104
+ instructionType: SatiRegistryInstruction.RegisterAgent;
105
+ } & ParsedRegisterAgentInstruction<TProgram>) | ({
106
+ instructionType: SatiRegistryInstruction.UpdateRegistryAuthority;
107
+ } & ParsedUpdateRegistryAuthorityInstruction<TProgram>);
108
+ //#endregion
109
+ //#region src/generated/instructions/initialize.d.ts
110
+ declare const INITIALIZE_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
111
+ declare function getInitializeDiscriminatorBytes(): ReadonlyUint8Array;
112
+ type InitializeInstruction<TProgram extends string = typeof SATI_REGISTRY_PROGRAM_ADDRESS, TAccountAuthority extends string | AccountMeta<string> = string, TAccountRegistryConfig extends string | AccountMeta<string> = string, TAccountGroupMint extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountAuthority extends string ? WritableSignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority, TAccountRegistryConfig extends string ? WritableAccount<TAccountRegistryConfig> : TAccountRegistryConfig, TAccountGroupMint extends string ? WritableAccount<TAccountGroupMint> : TAccountGroupMint, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
113
+ type InitializeInstructionData = {
114
+ discriminator: ReadonlyUint8Array;
115
+ };
116
+ type InitializeInstructionDataArgs = {};
117
+ declare function getInitializeInstructionDataEncoder(): FixedSizeEncoder<InitializeInstructionDataArgs>;
118
+ declare function getInitializeInstructionDataDecoder(): FixedSizeDecoder<InitializeInstructionData>;
119
+ declare function getInitializeInstructionDataCodec(): FixedSizeCodec<InitializeInstructionDataArgs, InitializeInstructionData>;
120
+ type InitializeAsyncInput<TAccountAuthority extends string = string, TAccountRegistryConfig extends string = string, TAccountGroupMint extends string = string, TAccountSystemProgram extends string = string> = {
121
+ /** Initial registry authority (will be multisig in production) */
122
+ authority: TransactionSigner<TAccountAuthority>;
123
+ /** Registry configuration PDA */
124
+ registryConfig?: Address$1<TAccountRegistryConfig>;
125
+ /** TokenGroup mint - created and initialized by client, then finalized here */
126
+ groupMint: Address$1<TAccountGroupMint>;
127
+ systemProgram?: Address$1<TAccountSystemProgram>;
128
+ };
129
+ declare function getInitializeInstructionAsync<TAccountAuthority extends string, TAccountRegistryConfig extends string, TAccountGroupMint extends string, TAccountSystemProgram extends string, TProgramAddress extends Address$1 = typeof SATI_REGISTRY_PROGRAM_ADDRESS>(input: InitializeAsyncInput<TAccountAuthority, TAccountRegistryConfig, TAccountGroupMint, TAccountSystemProgram>, config?: {
130
+ programAddress?: TProgramAddress;
131
+ }): Promise<InitializeInstruction<TProgramAddress, TAccountAuthority, TAccountRegistryConfig, TAccountGroupMint, TAccountSystemProgram>>;
132
+ type InitializeInput<TAccountAuthority extends string = string, TAccountRegistryConfig extends string = string, TAccountGroupMint extends string = string, TAccountSystemProgram extends string = string> = {
133
+ /** Initial registry authority (will be multisig in production) */
134
+ authority: TransactionSigner<TAccountAuthority>;
135
+ /** Registry configuration PDA */
136
+ registryConfig: Address$1<TAccountRegistryConfig>;
137
+ /** TokenGroup mint - created and initialized by client, then finalized here */
138
+ groupMint: Address$1<TAccountGroupMint>;
139
+ systemProgram?: Address$1<TAccountSystemProgram>;
140
+ };
141
+ declare function getInitializeInstruction<TAccountAuthority extends string, TAccountRegistryConfig extends string, TAccountGroupMint extends string, TAccountSystemProgram extends string, TProgramAddress extends Address$1 = typeof SATI_REGISTRY_PROGRAM_ADDRESS>(input: InitializeInput<TAccountAuthority, TAccountRegistryConfig, TAccountGroupMint, TAccountSystemProgram>, config?: {
142
+ programAddress?: TProgramAddress;
143
+ }): InitializeInstruction<TProgramAddress, TAccountAuthority, TAccountRegistryConfig, TAccountGroupMint, TAccountSystemProgram>;
144
+ type ParsedInitializeInstruction<TProgram extends string = typeof SATI_REGISTRY_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
145
+ programAddress: Address$1<TProgram>;
146
+ accounts: {
147
+ /** Initial registry authority (will be multisig in production) */
148
+ authority: TAccountMetas[0];
149
+ /** Registry configuration PDA */
150
+ registryConfig: TAccountMetas[1];
151
+ /** TokenGroup mint - created and initialized by client, then finalized here */
152
+ groupMint: TAccountMetas[2];
153
+ systemProgram: TAccountMetas[3];
154
+ };
155
+ data: InitializeInstructionData;
156
+ };
157
+ declare function parseInitializeInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializeInstruction<TProgram, TAccountMetas>;
158
+ //#endregion
159
+ //#region src/generated/types/agentRegistered.d.ts
160
+ type AgentRegistered = {
161
+ mint: Address$1;
162
+ owner: Address$1;
163
+ memberNumber: bigint;
164
+ name: string;
165
+ uri: string;
166
+ nonTransferable: boolean;
167
+ };
168
+ type AgentRegisteredArgs = {
169
+ mint: Address$1;
170
+ owner: Address$1;
171
+ memberNumber: number | bigint;
172
+ name: string;
173
+ uri: string;
174
+ nonTransferable: boolean;
175
+ };
176
+ declare function getAgentRegisteredEncoder(): Encoder<AgentRegisteredArgs>;
177
+ declare function getAgentRegisteredDecoder(): Decoder<AgentRegistered>;
178
+ declare function getAgentRegisteredCodec(): Codec<AgentRegisteredArgs, AgentRegistered>;
179
+ //#endregion
180
+ //#region src/generated/types/metadataEntry.d.ts
181
+ /**
182
+ * Metadata key-value pair for agent registration
183
+ * Used as instruction argument (Anchor-compatible)
184
+ */
185
+ type MetadataEntry = {
186
+ key: string;
187
+ value: string;
188
+ };
189
+ type MetadataEntryArgs = MetadataEntry;
190
+ declare function getMetadataEntryEncoder(): Encoder<MetadataEntryArgs>;
191
+ declare function getMetadataEntryDecoder(): Decoder<MetadataEntry>;
192
+ declare function getMetadataEntryCodec(): Codec<MetadataEntryArgs, MetadataEntry>;
193
+ //#endregion
194
+ //#region src/generated/types/registryAuthorityUpdated.d.ts
195
+ type RegistryAuthorityUpdated = {
196
+ oldAuthority: Address$1;
197
+ newAuthority: Option<Address$1>;
198
+ };
199
+ type RegistryAuthorityUpdatedArgs = {
200
+ oldAuthority: Address$1;
201
+ newAuthority: OptionOrNullable<Address$1>;
202
+ };
203
+ declare function getRegistryAuthorityUpdatedEncoder(): Encoder<RegistryAuthorityUpdatedArgs>;
204
+ declare function getRegistryAuthorityUpdatedDecoder(): Decoder<RegistryAuthorityUpdated>;
205
+ declare function getRegistryAuthorityUpdatedCodec(): Codec<RegistryAuthorityUpdatedArgs, RegistryAuthorityUpdated>;
206
+ //#endregion
207
+ //#region src/generated/types/registryInitialized.d.ts
208
+ type RegistryInitialized = {
209
+ authority: Address$1;
210
+ groupMint: Address$1;
211
+ };
212
+ type RegistryInitializedArgs = RegistryInitialized;
213
+ declare function getRegistryInitializedEncoder(): FixedSizeEncoder<RegistryInitializedArgs>;
214
+ declare function getRegistryInitializedDecoder(): FixedSizeDecoder<RegistryInitialized>;
215
+ declare function getRegistryInitializedCodec(): FixedSizeCodec<RegistryInitializedArgs, RegistryInitialized>;
216
+ //#endregion
217
+ //#region src/generated/instructions/registerAgent.d.ts
218
+ declare const REGISTER_AGENT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
219
+ declare function getRegisterAgentDiscriminatorBytes(): ReadonlyUint8Array;
220
+ type RegisterAgentInstruction<TProgram extends string = typeof SATI_REGISTRY_PROGRAM_ADDRESS, TAccountPayer extends string | AccountMeta<string> = string, TAccountOwner extends string | AccountMeta<string> = string, TAccountRegistryConfig extends string | AccountMeta<string> = string, TAccountGroupMint extends string | AccountMeta<string> = string, TAccountAgentMint extends string | AccountMeta<string> = string, TAccountAgentTokenAccount extends string | AccountMeta<string> = string, TAccountToken2022Program extends string | AccountMeta<string> = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", TAccountAssociatedTokenProgram extends string | AccountMeta<string> = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountPayer extends string ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer> : TAccountPayer, TAccountOwner extends string ? ReadonlyAccount<TAccountOwner> : TAccountOwner, TAccountRegistryConfig extends string ? WritableAccount<TAccountRegistryConfig> : TAccountRegistryConfig, TAccountGroupMint extends string ? WritableAccount<TAccountGroupMint> : TAccountGroupMint, TAccountAgentMint extends string ? WritableSignerAccount<TAccountAgentMint> & AccountSignerMeta<TAccountAgentMint> : TAccountAgentMint, TAccountAgentTokenAccount extends string ? WritableAccount<TAccountAgentTokenAccount> : TAccountAgentTokenAccount, TAccountToken2022Program extends string ? ReadonlyAccount<TAccountToken2022Program> : TAccountToken2022Program, TAccountAssociatedTokenProgram extends string ? ReadonlyAccount<TAccountAssociatedTokenProgram> : TAccountAssociatedTokenProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
221
+ type RegisterAgentInstructionData = {
222
+ discriminator: ReadonlyUint8Array;
223
+ name: string;
224
+ symbol: string;
225
+ uri: string;
226
+ additionalMetadata: Option<Array<MetadataEntry>>;
227
+ nonTransferable: boolean;
228
+ };
229
+ type RegisterAgentInstructionDataArgs = {
230
+ name: string;
231
+ symbol: string;
232
+ uri: string;
233
+ additionalMetadata: OptionOrNullable<Array<MetadataEntryArgs>>;
234
+ nonTransferable: boolean;
235
+ };
236
+ declare function getRegisterAgentInstructionDataEncoder(): Encoder<RegisterAgentInstructionDataArgs>;
237
+ declare function getRegisterAgentInstructionDataDecoder(): Decoder<RegisterAgentInstructionData>;
238
+ declare function getRegisterAgentInstructionDataCodec(): Codec<RegisterAgentInstructionDataArgs, RegisterAgentInstructionData>;
239
+ type RegisterAgentAsyncInput<TAccountPayer extends string = string, TAccountOwner extends string = string, TAccountRegistryConfig extends string = string, TAccountGroupMint extends string = string, TAccountAgentMint extends string = string, TAccountAgentTokenAccount extends string = string, TAccountToken2022Program extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {
240
+ /** Pays for account creation */
241
+ payer: TransactionSigner<TAccountPayer>;
242
+ /** Agent NFT owner (default: payer) */
243
+ owner: Address$1<TAccountOwner>;
244
+ /** Registry configuration */
245
+ registryConfig?: Address$1<TAccountRegistryConfig>;
246
+ /** TokenGroup mint (for membership) */
247
+ groupMint: Address$1<TAccountGroupMint>;
248
+ /** New agent NFT mint (randomly generated keypair) */
249
+ agentMint: TransactionSigner<TAccountAgentMint>;
250
+ /** Owner's ATA for agent NFT */
251
+ agentTokenAccount: Address$1<TAccountAgentTokenAccount>;
252
+ token2022Program?: Address$1<TAccountToken2022Program>;
253
+ associatedTokenProgram?: Address$1<TAccountAssociatedTokenProgram>;
254
+ systemProgram?: Address$1<TAccountSystemProgram>;
255
+ name: RegisterAgentInstructionDataArgs["name"];
256
+ symbol: RegisterAgentInstructionDataArgs["symbol"];
257
+ uri: RegisterAgentInstructionDataArgs["uri"];
258
+ additionalMetadata: RegisterAgentInstructionDataArgs["additionalMetadata"];
259
+ nonTransferable: RegisterAgentInstructionDataArgs["nonTransferable"];
260
+ };
261
+ declare function getRegisterAgentInstructionAsync<TAccountPayer extends string, TAccountOwner extends string, TAccountRegistryConfig extends string, TAccountGroupMint extends string, TAccountAgentMint extends string, TAccountAgentTokenAccount extends string, TAccountToken2022Program extends string, TAccountAssociatedTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address$1 = typeof SATI_REGISTRY_PROGRAM_ADDRESS>(input: RegisterAgentAsyncInput<TAccountPayer, TAccountOwner, TAccountRegistryConfig, TAccountGroupMint, TAccountAgentMint, TAccountAgentTokenAccount, TAccountToken2022Program, TAccountAssociatedTokenProgram, TAccountSystemProgram>, config?: {
262
+ programAddress?: TProgramAddress;
263
+ }): Promise<RegisterAgentInstruction<TProgramAddress, TAccountPayer, TAccountOwner, TAccountRegistryConfig, TAccountGroupMint, TAccountAgentMint, TAccountAgentTokenAccount, TAccountToken2022Program, TAccountAssociatedTokenProgram, TAccountSystemProgram>>;
264
+ type RegisterAgentInput<TAccountPayer extends string = string, TAccountOwner extends string = string, TAccountRegistryConfig extends string = string, TAccountGroupMint extends string = string, TAccountAgentMint extends string = string, TAccountAgentTokenAccount extends string = string, TAccountToken2022Program extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountSystemProgram extends string = string> = {
265
+ /** Pays for account creation */
266
+ payer: TransactionSigner<TAccountPayer>;
267
+ /** Agent NFT owner (default: payer) */
268
+ owner: Address$1<TAccountOwner>;
269
+ /** Registry configuration */
270
+ registryConfig: Address$1<TAccountRegistryConfig>;
271
+ /** TokenGroup mint (for membership) */
272
+ groupMint: Address$1<TAccountGroupMint>;
273
+ /** New agent NFT mint (randomly generated keypair) */
274
+ agentMint: TransactionSigner<TAccountAgentMint>;
275
+ /** Owner's ATA for agent NFT */
276
+ agentTokenAccount: Address$1<TAccountAgentTokenAccount>;
277
+ token2022Program?: Address$1<TAccountToken2022Program>;
278
+ associatedTokenProgram?: Address$1<TAccountAssociatedTokenProgram>;
279
+ systemProgram?: Address$1<TAccountSystemProgram>;
280
+ name: RegisterAgentInstructionDataArgs["name"];
281
+ symbol: RegisterAgentInstructionDataArgs["symbol"];
282
+ uri: RegisterAgentInstructionDataArgs["uri"];
283
+ additionalMetadata: RegisterAgentInstructionDataArgs["additionalMetadata"];
284
+ nonTransferable: RegisterAgentInstructionDataArgs["nonTransferable"];
285
+ };
286
+ declare function getRegisterAgentInstruction<TAccountPayer extends string, TAccountOwner extends string, TAccountRegistryConfig extends string, TAccountGroupMint extends string, TAccountAgentMint extends string, TAccountAgentTokenAccount extends string, TAccountToken2022Program extends string, TAccountAssociatedTokenProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address$1 = typeof SATI_REGISTRY_PROGRAM_ADDRESS>(input: RegisterAgentInput<TAccountPayer, TAccountOwner, TAccountRegistryConfig, TAccountGroupMint, TAccountAgentMint, TAccountAgentTokenAccount, TAccountToken2022Program, TAccountAssociatedTokenProgram, TAccountSystemProgram>, config?: {
287
+ programAddress?: TProgramAddress;
288
+ }): RegisterAgentInstruction<TProgramAddress, TAccountPayer, TAccountOwner, TAccountRegistryConfig, TAccountGroupMint, TAccountAgentMint, TAccountAgentTokenAccount, TAccountToken2022Program, TAccountAssociatedTokenProgram, TAccountSystemProgram>;
289
+ type ParsedRegisterAgentInstruction<TProgram extends string = typeof SATI_REGISTRY_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
290
+ programAddress: Address$1<TProgram>;
291
+ accounts: {
292
+ /** Pays for account creation */
293
+ payer: TAccountMetas[0];
294
+ /** Agent NFT owner (default: payer) */
295
+ owner: TAccountMetas[1];
296
+ /** Registry configuration */
297
+ registryConfig: TAccountMetas[2];
298
+ /** TokenGroup mint (for membership) */
299
+ groupMint: TAccountMetas[3];
300
+ /** New agent NFT mint (randomly generated keypair) */
301
+ agentMint: TAccountMetas[4];
302
+ /** Owner's ATA for agent NFT */
303
+ agentTokenAccount: TAccountMetas[5];
304
+ token2022Program: TAccountMetas[6];
305
+ associatedTokenProgram: TAccountMetas[7];
306
+ systemProgram: TAccountMetas[8];
307
+ };
308
+ data: RegisterAgentInstructionData;
309
+ };
310
+ declare function parseRegisterAgentInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedRegisterAgentInstruction<TProgram, TAccountMetas>;
311
+ //#endregion
312
+ //#region src/generated/instructions/updateRegistryAuthority.d.ts
313
+ declare const UPDATE_REGISTRY_AUTHORITY_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
314
+ declare function getUpdateRegistryAuthorityDiscriminatorBytes(): ReadonlyUint8Array;
315
+ type UpdateRegistryAuthorityInstruction<TProgram extends string = typeof SATI_REGISTRY_PROGRAM_ADDRESS, TAccountAuthority extends string | AccountMeta<string> = string, TAccountRegistryConfig extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority, TAccountRegistryConfig extends string ? WritableAccount<TAccountRegistryConfig> : TAccountRegistryConfig, ...TRemainingAccounts]>;
316
+ type UpdateRegistryAuthorityInstructionData = {
317
+ discriminator: ReadonlyUint8Array;
318
+ newAuthority: Option<Address$1>;
319
+ };
320
+ type UpdateRegistryAuthorityInstructionDataArgs = {
321
+ newAuthority: OptionOrNullable<Address$1>;
322
+ };
323
+ declare function getUpdateRegistryAuthorityInstructionDataEncoder(): Encoder<UpdateRegistryAuthorityInstructionDataArgs>;
324
+ declare function getUpdateRegistryAuthorityInstructionDataDecoder(): Decoder<UpdateRegistryAuthorityInstructionData>;
325
+ declare function getUpdateRegistryAuthorityInstructionDataCodec(): Codec<UpdateRegistryAuthorityInstructionDataArgs, UpdateRegistryAuthorityInstructionData>;
326
+ type UpdateRegistryAuthorityAsyncInput<TAccountAuthority extends string = string, TAccountRegistryConfig extends string = string> = {
327
+ /** Current authority (must sign) */
328
+ authority: TransactionSigner<TAccountAuthority>;
329
+ /** Registry configuration */
330
+ registryConfig?: Address$1<TAccountRegistryConfig>;
331
+ newAuthority: UpdateRegistryAuthorityInstructionDataArgs["newAuthority"];
332
+ };
333
+ declare function getUpdateRegistryAuthorityInstructionAsync<TAccountAuthority extends string, TAccountRegistryConfig extends string, TProgramAddress extends Address$1 = typeof SATI_REGISTRY_PROGRAM_ADDRESS>(input: UpdateRegistryAuthorityAsyncInput<TAccountAuthority, TAccountRegistryConfig>, config?: {
334
+ programAddress?: TProgramAddress;
335
+ }): Promise<UpdateRegistryAuthorityInstruction<TProgramAddress, TAccountAuthority, TAccountRegistryConfig>>;
336
+ type UpdateRegistryAuthorityInput<TAccountAuthority extends string = string, TAccountRegistryConfig extends string = string> = {
337
+ /** Current authority (must sign) */
338
+ authority: TransactionSigner<TAccountAuthority>;
339
+ /** Registry configuration */
340
+ registryConfig: Address$1<TAccountRegistryConfig>;
341
+ newAuthority: UpdateRegistryAuthorityInstructionDataArgs["newAuthority"];
342
+ };
343
+ declare function getUpdateRegistryAuthorityInstruction<TAccountAuthority extends string, TAccountRegistryConfig extends string, TProgramAddress extends Address$1 = typeof SATI_REGISTRY_PROGRAM_ADDRESS>(input: UpdateRegistryAuthorityInput<TAccountAuthority, TAccountRegistryConfig>, config?: {
344
+ programAddress?: TProgramAddress;
345
+ }): UpdateRegistryAuthorityInstruction<TProgramAddress, TAccountAuthority, TAccountRegistryConfig>;
346
+ type ParsedUpdateRegistryAuthorityInstruction<TProgram extends string = typeof SATI_REGISTRY_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
347
+ programAddress: Address$1<TProgram>;
348
+ accounts: {
349
+ /** Current authority (must sign) */
350
+ authority: TAccountMetas[0];
351
+ /** Registry configuration */
352
+ registryConfig: TAccountMetas[1];
353
+ };
354
+ data: UpdateRegistryAuthorityInstructionData;
355
+ };
356
+ declare function parseUpdateRegistryAuthorityInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedUpdateRegistryAuthorityInstruction<TProgram, TAccountMetas>;
357
+ //#endregion
358
+ //#region src/schemas.d.ts
359
+ /**
360
+ * SATI SAS Schema Definitions
361
+ *
362
+ * Schema definitions for Solana Attestation Service (SAS) attestations.
363
+ * These schemas define the data structures for SATI reputation and validation.
364
+ */
365
+ /**
366
+ * SAS Layout Types
367
+ *
368
+ * Type-safe enum for schema field layout definitions.
369
+ * These map to the SAS program's internal type codes.
370
+ *
371
+ * @see https://github.com/solana-foundation/solana-attestation-service
372
+ */
373
+ declare enum SASLayoutType {
374
+ /** Unsigned 8-bit integer (0-255) */
375
+ U8 = 0,
376
+ /** Unsigned 16-bit integer (0-65535) */
377
+ U16 = 1,
378
+ /** Unsigned 32-bit integer */
379
+ U32 = 2,
380
+ /** Unsigned 64-bit integer */
381
+ U64 = 3,
382
+ /** Unsigned 128-bit integer */
383
+ U128 = 4,
384
+ /** Signed 8-bit integer */
385
+ I8 = 5,
386
+ /** Signed 16-bit integer */
387
+ I16 = 6,
388
+ /** Signed 32-bit integer */
389
+ I32 = 7,
390
+ /** Signed 64-bit integer (for timestamps) */
391
+ I64 = 8,
392
+ /** Signed 128-bit integer */
393
+ I128 = 9,
394
+ /** Boolean */
395
+ Bool = 10,
396
+ /** Single character */
397
+ Char = 11,
398
+ /** UTF-8 string with 4-byte length prefix */
399
+ String = 12,
400
+ /** Byte array with 4-byte length prefix */
401
+ VecU8 = 13,
402
+ }
403
+ /**
404
+ * SAS Schema definition structure
405
+ */
406
+ interface SASSchema {
407
+ name: string;
408
+ version: number;
409
+ description: string;
410
+ layout: SASLayoutType[];
411
+ fieldNames: string[];
412
+ }
413
+ /**
414
+ * FeedbackAuth Schema - Authorization for client to submit feedback
415
+ *
416
+ * Replaces ERC-8004's off-chain signature with on-chain attestation.
417
+ *
418
+ * Attestation configuration:
419
+ * - credential = agent NFT mint
420
+ * - subject = client pubkey (authorized reviewer)
421
+ * - issuer = agent owner
422
+ * - nonce = hash(agentMint, clientPubkey)
423
+ */
424
+ declare const FEEDBACK_AUTH_SCHEMA: SASSchema;
425
+ /**
426
+ * Feedback Schema - Client feedback for agent (ERC-8004 compatible)
427
+ *
428
+ * Attestation configuration:
429
+ * - credential = agent NFT mint
430
+ * - issuer = client (feedback giver)
431
+ * - nonce = hash(agent_mint, client_pubkey, timestamp)
432
+ */
433
+ declare const FEEDBACK_SCHEMA: SASSchema;
434
+ /**
435
+ * FeedbackResponse Schema - Response to feedback (ERC-8004 appendResponse)
436
+ *
437
+ * Attestation configuration:
438
+ * - credential = agent NFT mint
439
+ * - issuer = responder (agent owner, auditor, etc.)
440
+ * - nonce = hash(feedback_id, responder_pubkey, index)
441
+ */
442
+ declare const FEEDBACK_RESPONSE_SCHEMA: SASSchema;
443
+ /**
444
+ * ValidationRequest Schema - Agent requests work validation
445
+ *
446
+ * Attestation configuration:
447
+ * - credential = agent NFT mint
448
+ * - subject = validator pubkey
449
+ * - issuer = agent owner
450
+ * - nonce = hash(agent_mint, validator_pubkey, user_nonce)
451
+ */
452
+ declare const VALIDATION_REQUEST_SCHEMA: SASSchema;
453
+ /**
454
+ * ValidationResponse Schema - Validator responds to request
455
+ *
456
+ * Attestation configuration:
457
+ * - credential = agent NFT mint (from request)
458
+ * - issuer = validator
459
+ * - nonce = hash(request_id, response_index)
460
+ */
461
+ declare const VALIDATION_RESPONSE_SCHEMA: SASSchema;
462
+ /**
463
+ * Certification Schema - Immutable certification for agent
464
+ *
465
+ * For permanent, unmodifiable records (security audits, compliance
466
+ * certifications, credential attestations). SAS attestations are
467
+ * immutable by design - content cannot be modified after creation.
468
+ *
469
+ * Attestation configuration:
470
+ * - credential = agent NFT mint
471
+ * - issuer = certifier (e.g., audit firm)
472
+ * - nonce = hash(agent_mint, certifier_pubkey, cert_type, issued_at)
473
+ */
474
+ declare const CERTIFICATION_SCHEMA: SASSchema;
475
+ /**
476
+ * All SATI SAS schemas
477
+ */
478
+ declare const SATI_SCHEMAS: {
479
+ readonly feedbackAuth: SASSchema;
480
+ readonly feedback: SASSchema;
481
+ readonly feedbackResponse: SASSchema;
482
+ readonly validationRequest: SASSchema;
483
+ readonly validationResponse: SASSchema;
484
+ readonly certification: SASSchema;
485
+ };
486
+ /**
487
+ * Schema names for lookup
488
+ */
489
+ declare const SCHEMA_NAMES: {
490
+ readonly FEEDBACK_AUTH: "SATIFeedbackAuth";
491
+ readonly FEEDBACK: "SATIFeedback";
492
+ readonly FEEDBACK_RESPONSE: "SATIFeedbackResponse";
493
+ readonly VALIDATION_REQUEST: "SATIValidationRequest";
494
+ readonly VALIDATION_RESPONSE: "SATIValidationResponse";
495
+ readonly CERTIFICATION: "SATICertification";
496
+ };
497
+ //#endregion
498
+ //#region src/types.d.ts
499
+ /**
500
+ * Agent identity information retrieved from Token-2022 NFT
501
+ */
502
+ interface AgentIdentity {
503
+ /** Agent NFT mint address */
504
+ mint: Address$1;
505
+ /** Current owner of the agent NFT */
506
+ owner: Address$1;
507
+ /** Agent name from metadata */
508
+ name: string;
509
+ /** Agent symbol from metadata */
510
+ symbol: string;
511
+ /** Registration file URI (IPFS/HTTP) */
512
+ uri: string;
513
+ /** Token group member number */
514
+ memberNumber: bigint;
515
+ /** Additional metadata key-value pairs */
516
+ additionalMetadata: Record<string, string>;
517
+ /** Whether the agent is non-transferable (soulbound) */
518
+ nonTransferable: boolean;
519
+ }
520
+ /**
521
+ * Feedback attestation data from SAS
522
+ */
523
+ interface Feedback {
524
+ /** Feedback attestation address */
525
+ attestation: Address$1;
526
+ /** Agent mint receiving feedback */
527
+ agentMint: Address$1;
528
+ /** Feedback score (0-100) */
529
+ score: number;
530
+ /** Optional categorization tags */
531
+ tag1?: string;
532
+ tag2?: string;
533
+ /** URI to off-chain feedback details */
534
+ fileUri?: string;
535
+ /** SHA-256 hash of feedback file */
536
+ fileHash?: Uint8Array;
537
+ /** x402 payment proof reference */
538
+ paymentProof?: string;
539
+ /** Feedback giver's address */
540
+ issuer: Address$1;
541
+ /** Attestation expiry timestamp (0 = no expiry) */
542
+ expiry: number;
543
+ /** Whether attestation is revoked */
544
+ revoked: boolean;
545
+ }
546
+ /**
547
+ * Feedback authorization attestation data from SAS
548
+ */
549
+ interface FeedbackAuthorization {
550
+ /** Authorization attestation address */
551
+ attestation: Address$1;
552
+ /** Agent mint that authorized feedback */
553
+ agentMint: Address$1;
554
+ /** Authorized client address */
555
+ client: Address$1;
556
+ /** Maximum feedback index allowed (ERC-8004 indexLimit) */
557
+ indexLimit: number;
558
+ /** Expiration timestamp (0 = no expiry) */
559
+ expiry: number;
560
+ /** Whether authorization is revoked */
561
+ revoked: boolean;
562
+ }
563
+ /**
564
+ * Validation request attestation data from SAS
565
+ */
566
+ interface ValidationRequest {
567
+ /** Request attestation address */
568
+ attestation: Address$1;
569
+ /** Agent mint requesting validation */
570
+ agentMint: Address$1;
571
+ /** Validator address */
572
+ validator: Address$1;
573
+ /** Validation method ("tee", "zkml", "restake") */
574
+ methodId: string;
575
+ /** URI to validation request data */
576
+ requestUri: string;
577
+ /** SHA-256 hash of request content */
578
+ requestHash?: Uint8Array;
579
+ /** Request timestamp */
580
+ timestamp: number;
581
+ }
582
+ /**
583
+ * Validation status and response
584
+ */
585
+ interface ValidationStatus {
586
+ /** Request attestation address */
587
+ requestAttestation: Address$1;
588
+ /** Response attestation address (if responded) */
589
+ responseAttestation?: Address$1;
590
+ /** Validation score (0-100, where 0=fail, 100=pass) */
591
+ response?: number;
592
+ /** URI to validation evidence */
593
+ responseUri?: string;
594
+ /** SHA-256 hash of response content */
595
+ responseHash?: Uint8Array;
596
+ /** Optional categorization tag */
597
+ tag?: string;
598
+ /** Validator address */
599
+ validator: Address$1;
600
+ /** Whether validation is complete */
601
+ completed: boolean;
602
+ /** Response attestation expiry timestamp */
603
+ responseExpiry?: number;
604
+ }
605
+ /**
606
+ * Registration result from registerAgent
607
+ */
608
+ interface RegisterAgentResult {
609
+ /** Agent NFT mint address */
610
+ mint: Address$1;
611
+ /** Token group member number */
612
+ memberNumber: bigint;
613
+ /** Transaction signature */
614
+ signature: string;
615
+ }
616
+ /**
617
+ * Attestation result from SAS operations
618
+ */
619
+ interface AttestationResult {
620
+ /** Attestation account address */
621
+ attestation: Address$1;
622
+ /** Transaction signature */
623
+ signature: string;
624
+ }
625
+ /**
626
+ * SATI client configuration options
627
+ */
628
+ interface SATIClientOptions {
629
+ /** Network to connect to */
630
+ network: "mainnet" | "devnet" | "localnet";
631
+ /** Custom RPC URL (overrides network default) */
632
+ rpcUrl?: string;
633
+ /** Custom WebSocket URL for subscriptions (overrides network default) */
634
+ wsUrl?: string;
635
+ }
636
+ /**
637
+ * SAS configuration with credential and schema addresses
638
+ */
639
+ interface SATISASConfig {
640
+ /** SATI credential PDA */
641
+ credential: Address$1;
642
+ /** Schema PDAs by name */
643
+ schemas: {
644
+ feedbackAuth: Address$1;
645
+ feedback: Address$1;
646
+ feedbackResponse: Address$1;
647
+ validationRequest: Address$1;
648
+ validationResponse: Address$1;
649
+ certification: Address$1;
650
+ };
651
+ }
652
+ /**
653
+ * Status of a single schema deployment
654
+ */
655
+ interface SchemaDeploymentStatus {
656
+ /** Schema name (e.g., "SATIFeedback") */
657
+ name: string;
658
+ /** Schema PDA address */
659
+ address: Address$1;
660
+ /** Whether schema existed before this deployment */
661
+ existed: boolean;
662
+ /** Whether schema was deployed in this run */
663
+ deployed: boolean;
664
+ }
665
+ /**
666
+ * Result of SAS schema deployment operation
667
+ */
668
+ interface SASDeploymentResult {
669
+ /** Whether deployment was successful */
670
+ success: boolean;
671
+ /** Credential deployment status */
672
+ credential: {
673
+ /** Credential PDA address */
674
+ address: Address$1;
675
+ /** Whether credential existed before this deployment */
676
+ existed: boolean;
677
+ /** Whether credential was deployed in this run */
678
+ deployed: boolean;
679
+ };
680
+ /** Schema deployment statuses */
681
+ schemas: SchemaDeploymentStatus[];
682
+ /** Transaction signatures for any deployments */
683
+ signatures: string[];
684
+ /** Full SAS config (usable immediately) */
685
+ config: SATISASConfig;
686
+ }
687
+ /**
688
+ * Persisted deployment configuration (for JSON files)
689
+ */
690
+ interface DeployedSASConfig {
691
+ /** Network identifier */
692
+ network: "devnet" | "mainnet" | "localnet";
693
+ /** Authority that deployed the schemas */
694
+ authority: Address$1;
695
+ /** Deployment timestamp (ISO string) */
696
+ deployedAt: string;
697
+ /** The SAS configuration */
698
+ config: SATISASConfig;
699
+ }
700
+ //#endregion
701
+ //#region src/sas.d.ts
702
+ /**
703
+ * SATI credential name used for all attestations
704
+ */
705
+ declare const SATI_CREDENTIAL_NAME = "SATI";
706
+ /**
707
+ * Schema names for SATI attestations
708
+ */
709
+ declare const SATI_SCHEMA_NAMES: {
710
+ readonly FEEDBACK_AUTH: "SATIFeedbackAuth";
711
+ readonly FEEDBACK: "SATIFeedback";
712
+ readonly FEEDBACK_RESPONSE: "SATIFeedbackResponse";
713
+ readonly VALIDATION_REQUEST: "SATIValidationRequest";
714
+ readonly VALIDATION_RESPONSE: "SATIValidationResponse";
715
+ readonly CERTIFICATION: "SATICertification";
716
+ };
717
+ /**
718
+ * All SATI schemas with their definitions (keyed by schema name constant)
719
+ */
720
+ declare const SATI_SAS_SCHEMAS: Record<keyof typeof SATI_SCHEMA_NAMES, SASSchema>;
721
+ /**
722
+ * Derive SATI credential PDA
723
+ *
724
+ * @param authority - Credential authority address
725
+ * @returns Credential PDA and bump
726
+ */
727
+ declare function deriveSatiCredentialPda(authority: Address$1): Promise<readonly [Address$1, number]>;
728
+ /**
729
+ * Derive SATI schema PDA
730
+ *
731
+ * @param credentialPda - SATI credential PDA
732
+ * @param schemaName - Schema name (e.g., "SATIFeedback")
733
+ * @param version - Schema version (default: 1)
734
+ * @returns Schema PDA and bump
735
+ */
736
+ declare function deriveSatiSchemaPda(credentialPda: Address$1, schemaName: string, version?: number): Promise<readonly [Address$1, number]>;
737
+ /**
738
+ * Derive attestation PDA for a specific schema
739
+ *
740
+ * @param credentialPda - SATI credential PDA
741
+ * @param schemaPda - Schema PDA
742
+ * @param nonce - Unique nonce for this attestation (e.g., hash of agent + client)
743
+ * @returns Attestation PDA and bump
744
+ */
745
+ declare function deriveSatiAttestationPda(credentialPda: Address$1, schemaPda: Address$1, nonce: Address$1): Promise<readonly [Address$1, number]>;
746
+ /**
747
+ * Get instructions to create SATI credential
748
+ *
749
+ * @param params - Creation parameters
750
+ * @returns Instruction to create credential
751
+ */
752
+ declare function getCreateSatiCredentialInstruction(params: {
753
+ payer: TransactionSigner;
754
+ authority: TransactionSigner;
755
+ credentialPda: Address$1;
756
+ authorizedSigners: Address$1[];
757
+ }): sas_lib0.CreateCredentialInstruction<Address$1<"22zoJMtdu4tQc2PzL74ZUT7FrwgB1Udec8DdW4yw4BdG">, string, string, string, string, []>;
758
+ /**
759
+ * Get instruction to create a SATI schema
760
+ *
761
+ * @param params - Schema creation parameters
762
+ * @returns Instruction to create schema
763
+ */
764
+ declare function getCreateSatiSchemaInstruction(params: {
765
+ payer: TransactionSigner;
766
+ authority: TransactionSigner;
767
+ credentialPda: Address$1;
768
+ schemaPda: Address$1;
769
+ schema: SASSchema;
770
+ }): sas_lib0.CreateSchemaInstruction<Address$1<"22zoJMtdu4tQc2PzL74ZUT7FrwgB1Udec8DdW4yw4BdG">, string, string, string, string, string, []>;
771
+ /**
772
+ * Serialize feedback authorization data for attestation
773
+ *
774
+ * @param data - FeedbackAuth data
775
+ * @param schemaData - Schema account data from fetchSchema
776
+ * @returns Serialized data buffer
777
+ */
778
+ declare function serializeFeedbackAuthData(data: {
779
+ agent_mint: string;
780
+ index_limit: number;
781
+ expiry: number;
782
+ }, schemaData: Awaited<ReturnType<typeof fetchSchema>>["data"]): Uint8Array;
783
+ /**
784
+ * Serialize feedback data for attestation
785
+ *
786
+ * @param data - Feedback data
787
+ * @param schemaData - Schema account data from fetchSchema
788
+ * @returns Serialized data buffer
789
+ */
790
+ declare function serializeFeedbackData(data: {
791
+ agent_mint: string;
792
+ score: number;
793
+ tag1?: string;
794
+ tag2?: string;
795
+ fileuri?: string;
796
+ filehash?: Uint8Array;
797
+ payment_proof?: string;
798
+ }, schemaData: Awaited<ReturnType<typeof fetchSchema>>["data"]): Uint8Array;
799
+ /**
800
+ * Serialize feedback response data for attestation
801
+ *
802
+ * @param data - FeedbackResponse data
803
+ * @param schemaData - Schema account data from fetchSchema
804
+ * @returns Serialized data buffer
805
+ */
806
+ declare function serializeFeedbackResponseData(data: {
807
+ feedback_id: string;
808
+ response_uri: string;
809
+ response_hash?: Uint8Array;
810
+ }, schemaData: Awaited<ReturnType<typeof fetchSchema>>["data"]): Uint8Array;
811
+ /**
812
+ * Serialize validation request data for attestation
813
+ *
814
+ * @param data - ValidationRequest data
815
+ * @param schemaData - Schema account data from fetchSchema
816
+ * @returns Serialized data buffer
817
+ */
818
+ declare function serializeValidationRequestData(data: {
819
+ agent_mint: string;
820
+ method_id: string;
821
+ request_uri: string;
822
+ request_hash?: Uint8Array;
823
+ }, schemaData: Awaited<ReturnType<typeof fetchSchema>>["data"]): Uint8Array;
824
+ /**
825
+ * Serialize validation response data for attestation
826
+ *
827
+ * @param data - ValidationResponse data
828
+ * @param schemaData - Schema account data from fetchSchema
829
+ * @returns Serialized data buffer
830
+ */
831
+ declare function serializeValidationResponseData(data: {
832
+ request_id: string;
833
+ response: number;
834
+ response_uri?: string;
835
+ response_hash?: Uint8Array;
836
+ tag?: string;
837
+ }, schemaData: Awaited<ReturnType<typeof fetchSchema>>["data"]): Uint8Array;
838
+ /**
839
+ * Compute nonce for FeedbackAuth attestation
840
+ * nonce = keccak256("feedbackAuth:" + agentMint + ":" + clientPubkey)
841
+ *
842
+ * @param agentMint - Agent NFT mint address
843
+ * @param clientPubkey - Client public key
844
+ * @returns Nonce as Address (base58)
845
+ */
846
+ declare function computeFeedbackAuthNonce(agentMint: Address$1, clientPubkey: Address$1): Address$1;
847
+ /**
848
+ * Compute nonce for Feedback attestation
849
+ * nonce = keccak256("feedback:" + agentMint + ":" + clientPubkey + ":" + timestamp)
850
+ *
851
+ * @param agentMint - Agent NFT mint address
852
+ * @param clientPubkey - Client public key
853
+ * @param timestamp - Unix timestamp
854
+ * @returns Nonce as Address (base58)
855
+ */
856
+ declare function computeFeedbackNonce(agentMint: Address$1, clientPubkey: Address$1, timestamp: number): Address$1;
857
+ /**
858
+ * Compute nonce for FeedbackResponse attestation
859
+ * nonce = keccak256("response:" + feedbackId + ":" + responderPubkey + ":" + index)
860
+ *
861
+ * @param feedbackId - Feedback attestation address
862
+ * @param responderPubkey - Responder public key
863
+ * @param index - Response index
864
+ * @returns Nonce as Address (base58)
865
+ */
866
+ declare function computeFeedbackResponseNonce(feedbackId: Address$1, responderPubkey: Address$1, index: number): Address$1;
867
+ /**
868
+ * Compute nonce for ValidationRequest attestation
869
+ * nonce = keccak256("validationReq:" + agentMint + ":" + validatorPubkey + ":" + userNonce)
870
+ *
871
+ * @param agentMint - Agent NFT mint address
872
+ * @param validatorPubkey - Validator public key
873
+ * @param userNonce - User-provided nonce
874
+ * @returns Nonce as Address (base58)
875
+ */
876
+ declare function computeValidationRequestNonce(agentMint: Address$1, validatorPubkey: Address$1, userNonce: number): Address$1;
877
+ /**
878
+ * Compute nonce for ValidationResponse attestation
879
+ * nonce = keccak256("validationResp:" + requestId + ":" + responseIndex)
880
+ *
881
+ * @param requestId - Request attestation address
882
+ * @param responseIndex - Response index
883
+ * @returns Nonce as Address (base58)
884
+ */
885
+ declare function computeValidationResponseNonce(requestId: Address$1, responseIndex: number): Address$1;
886
+ /**
887
+ * Serialize certification data for attestation
888
+ *
889
+ * @param data - Certification data
890
+ * @param schemaData - Schema account data from fetchSchema
891
+ * @returns Serialized data buffer
892
+ */
893
+ declare function serializeCertificationData(data: {
894
+ certifier: string;
895
+ cert_type: string;
896
+ cert_uri: string;
897
+ issued_at: number;
898
+ }, schemaData: Awaited<ReturnType<typeof fetchSchema>>["data"]): Uint8Array;
899
+ /**
900
+ * Compute nonce for Certification attestation
901
+ * nonce = keccak256("certification:" + agentMint + ":" + certifierPubkey + ":" + certType + ":" + issuedAt)
902
+ *
903
+ * @param agentMint - Agent NFT mint address
904
+ * @param certifierPubkey - Certifier public key
905
+ * @param certType - Certification type (e.g., "security-audit")
906
+ * @param issuedAt - Unix timestamp
907
+ * @returns Nonce as Address (base58)
908
+ */
909
+ declare function computeCertificationNonce(agentMint: Address$1, certifierPubkey: Address$1, certType: string, issuedAt: number): Address$1;
910
+ //#endregion
911
+ //#region src/helpers.d.ts
912
+ declare const TOKEN_2022_PROGRAM_ADDRESS: Address$1<"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb">;
913
+ declare const ASSOCIATED_TOKEN_PROGRAM_ADDRESS: Address$1<"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL">;
914
+ /**
915
+ * Derive the Registry Config PDA
916
+ *
917
+ * Seeds: ["registry"]
918
+ */
919
+ declare function findRegistryConfigPda(): Promise<readonly [Address$1, number]>;
920
+ /**
921
+ * Derive the Group Mint PDA (SATI collection)
922
+ *
923
+ * Seeds: ["group_mint"]
924
+ */
925
+ declare function findGroupMintPda(): Promise<readonly [Address$1, number]>;
926
+ /**
927
+ * Derive Associated Token Account address for Token-2022
928
+ *
929
+ * @param mint - Token mint address
930
+ * @param owner - Token account owner
931
+ */
932
+ declare function findAssociatedTokenAddress(mint: Address$1, owner: Address$1): Promise<readonly [Address$1, number]>;
933
+ //#endregion
934
+ //#region src/deployed/index.d.ts
935
+ /**
936
+ * Load deployed SAS configuration for a network
937
+ *
938
+ * @param network - Network identifier ("devnet", "mainnet", "localnet")
939
+ * @returns SAS config if deployed, null otherwise
940
+ */
941
+ declare function loadDeployedConfig(network: string): SATISASConfig | null;
942
+ /**
943
+ * Check if a network has deployed SAS configuration
944
+ *
945
+ * @param network - Network identifier
946
+ * @returns true if config exists for network
947
+ */
948
+ declare function hasDeployedConfig(network: string): boolean;
949
+ /**
950
+ * Get list of networks with deployed configurations
951
+ *
952
+ * @returns Array of network names with deployed configs
953
+ */
954
+ declare function getDeployedNetworks(): string[];
955
+ //#endregion
956
+ //#region src/client.d.ts
957
+ /**
958
+ * SATI Client
959
+ *
960
+ * High-level interface for interacting with SATI protocol.
961
+ *
962
+ * @example
963
+ * ```typescript
964
+ * const sati = new SATI({ network: "devnet" });
965
+ *
966
+ * // Register an agent
967
+ * const { mint, memberNumber } = await sati.registerAgent({
968
+ * payer,
969
+ * name: "MyAgent",
970
+ * uri: "ipfs://QmRegistrationFile",
971
+ * });
972
+ *
973
+ * // Load agent identity
974
+ * const agent = await sati.loadAgent(mint);
975
+ * ```
976
+ */
977
+ declare class SATI {
978
+ private rpc;
979
+ private rpcSubscriptions;
980
+ private sendAndConfirm;
981
+ private network;
982
+ private sasConfig;
983
+ constructor(options: SATIClientOptions);
984
+ /**
985
+ * Set SAS configuration for reputation/validation operations
986
+ *
987
+ * This should be called after SATI schemas are deployed to the network.
988
+ * Use setupSASSchemas() to deploy schemas if they don't exist yet.
989
+ *
990
+ * @param config - SAS credential and schema addresses
991
+ */
992
+ setSASConfig(config: SATISASConfig): void;
993
+ /**
994
+ * Get current SAS configuration
995
+ */
996
+ getSASConfig(): SATISASConfig | null;
997
+ /**
998
+ * Ensure SAS config is set, throw if not
999
+ */
1000
+ private requireSASConfig;
1001
+ /**
1002
+ * Register a new agent identity
1003
+ *
1004
+ * Creates a Token-2022 NFT with metadata and group membership atomically.
1005
+ *
1006
+ * **Compute Budget Note:**
1007
+ * Each additional metadata entry adds ~5-10k compute units.
1008
+ * When using >5 entries, the on-chain program logs a warning suggesting
1009
+ * 400k CUs. If transactions fail with compute exceeded, prepend a
1010
+ * SetComputeUnitLimit instruction to your transaction.
1011
+ *
1012
+ * @param params - Registration parameters
1013
+ * @returns Mint address and member number
1014
+ */
1015
+ registerAgent(params: {
1016
+ /** Payer for transaction and rent */
1017
+ payer: KeyPairSigner;
1018
+ /** Agent name (max 32 bytes) */
1019
+ name: string;
1020
+ /** Agent symbol (max 10 bytes, default: "SATI") */
1021
+ symbol?: string;
1022
+ /** Registration file URI (max 200 bytes) */
1023
+ uri: string;
1024
+ /** Additional metadata key-value pairs (max 10 entries) */
1025
+ additionalMetadata?: Array<{
1026
+ key: string;
1027
+ value: string;
1028
+ }>;
1029
+ /** Make agent non-transferable (soulbound) */
1030
+ nonTransferable?: boolean;
1031
+ /** Owner of the agent NFT (default: payer) */
1032
+ owner?: Address$1;
1033
+ }): Promise<RegisterAgentResult>;
1034
+ /**
1035
+ * Get registry statistics
1036
+ */
1037
+ getRegistryStats(): Promise<{
1038
+ groupMint: Address$1;
1039
+ authority: Address$1;
1040
+ totalAgents: bigint;
1041
+ isImmutable: boolean;
1042
+ }>;
1043
+ /**
1044
+ * Load agent identity from mint address
1045
+ *
1046
+ * Fetches Token-2022 metadata and group membership.
1047
+ *
1048
+ * @param mint - Agent NFT mint address
1049
+ * @returns Agent identity or null if not found
1050
+ */
1051
+ loadAgent(mint: Address$1): Promise<AgentIdentity | null>;
1052
+ /**
1053
+ * Update agent metadata
1054
+ *
1055
+ * Directly calls Token-2022 updateTokenMetadataField instruction.
1056
+ * Requires owner signature.
1057
+ *
1058
+ * Note: This method requires building raw instructions for the
1059
+ * spl-token-metadata-interface. For now, use @solana/spl-token directly
1060
+ * or the Anchor client for metadata updates.
1061
+ *
1062
+ * @param _mint - Agent NFT mint address
1063
+ * @param _updates - Fields to update
1064
+ */
1065
+ updateAgentMetadata(_mint: Address$1, _updates: {
1066
+ name?: string;
1067
+ uri?: string;
1068
+ additionalMetadata?: Array<{
1069
+ key: string;
1070
+ value: string;
1071
+ }>;
1072
+ }): Promise<void>;
1073
+ /**
1074
+ * Transfer agent to new owner
1075
+ *
1076
+ * Standard Token-2022 transfer. Requires current owner signature.
1077
+ *
1078
+ * @param params - Transfer parameters
1079
+ */
1080
+ transferAgent(params: {
1081
+ /** Payer for transaction fees and new ATA creation */
1082
+ payer: KeyPairSigner;
1083
+ /** Current owner (must sign) */
1084
+ owner: KeyPairSigner;
1085
+ /** Agent NFT mint address */
1086
+ mint: Address$1;
1087
+ /** New owner address */
1088
+ newOwner: Address$1;
1089
+ }): Promise<{
1090
+ signature: string;
1091
+ }>;
1092
+ /**
1093
+ * Get current owner of an agent
1094
+ *
1095
+ * Finds the token account holding the NFT and returns its owner.
1096
+ *
1097
+ * @param mint - Agent NFT mint address
1098
+ * @returns Owner address
1099
+ */
1100
+ getAgentOwner(mint: Address$1): Promise<Address$1>;
1101
+ /**
1102
+ * List registered agents
1103
+ *
1104
+ * Uses getProgramAccounts to find all SATI agent NFTs.
1105
+ * For better performance at scale, use an indexer.
1106
+ *
1107
+ * @param params - Pagination parameters
1108
+ * @returns Array of agent identities
1109
+ */
1110
+ listAgents(params?: {
1111
+ offset?: number;
1112
+ limit?: number;
1113
+ }): Promise<AgentIdentity[]>;
1114
+ /**
1115
+ * Authorize a client to submit feedback
1116
+ *
1117
+ * Creates a FeedbackAuth attestation via SAS.
1118
+ * Must be called by the agent owner.
1119
+ *
1120
+ * @param params - Authorization parameters
1121
+ * @returns Attestation address and signature
1122
+ */
1123
+ authorizeFeedback(params: {
1124
+ /** Payer for transaction */
1125
+ payer: KeyPairSigner;
1126
+ /** Agent owner (must sign) */
1127
+ agentOwner: KeyPairSigner;
1128
+ /** Agent NFT mint address */
1129
+ agentMint: Address$1;
1130
+ /** Client to authorize */
1131
+ client: Address$1;
1132
+ /** Maximum feedback index allowed (ERC-8004: indexLimit) */
1133
+ indexLimit: number;
1134
+ /** Expiration timestamp (0 = no expiry) */
1135
+ expiry?: number;
1136
+ }): Promise<AttestationResult>;
1137
+ /**
1138
+ * Revoke feedback authorization
1139
+ *
1140
+ * Closes the FeedbackAuth attestation and reclaims rent.
1141
+ *
1142
+ * @param params - Revocation parameters
1143
+ */
1144
+ revokeAuthorization(params: {
1145
+ /** Payer (receives rent refund) */
1146
+ payer: KeyPairSigner;
1147
+ /** Authority who created the attestation */
1148
+ authority: KeyPairSigner;
1149
+ /** FeedbackAuth attestation address to revoke */
1150
+ attestation: Address$1;
1151
+ }): Promise<{
1152
+ signature: string;
1153
+ }>;
1154
+ /**
1155
+ * Submit feedback for an agent
1156
+ *
1157
+ * Creates a Feedback attestation via SAS.
1158
+ * Requires prior authorization from agent owner via authorizeFeedback().
1159
+ *
1160
+ * @param params - Feedback parameters
1161
+ * @returns Attestation address and signature
1162
+ */
1163
+ giveFeedback(params: {
1164
+ /** Payer for transaction */
1165
+ payer: KeyPairSigner;
1166
+ /** Client submitting feedback (must be authorized) */
1167
+ client: KeyPairSigner;
1168
+ /** Agent NFT mint receiving feedback */
1169
+ agentMint: Address$1;
1170
+ /** Score 0-100 */
1171
+ score: number;
1172
+ /** Optional tag (ERC-8004: tag1) */
1173
+ tag1?: string;
1174
+ /** Optional tag (ERC-8004: tag2) */
1175
+ tag2?: string;
1176
+ /** Off-chain feedback file URI (ERC-8004: fileuri) */
1177
+ fileuri?: string;
1178
+ /** File hash (ERC-8004: filehash) */
1179
+ filehash?: Uint8Array;
1180
+ /** x402 payment proof reference */
1181
+ paymentProof?: string;
1182
+ }): Promise<AttestationResult>;
1183
+ /**
1184
+ * Revoke submitted feedback
1185
+ *
1186
+ * Closes the Feedback attestation and reclaims rent.
1187
+ *
1188
+ * @param params - Revocation parameters
1189
+ */
1190
+ revokeFeedback(params: {
1191
+ /** Payer (receives rent refund) */
1192
+ payer: KeyPairSigner;
1193
+ /** Client who submitted the feedback */
1194
+ client: KeyPairSigner;
1195
+ /** Feedback attestation address to revoke */
1196
+ attestation: Address$1;
1197
+ }): Promise<{
1198
+ signature: string;
1199
+ }>;
1200
+ /**
1201
+ * Append response to feedback
1202
+ *
1203
+ * Creates a FeedbackResponse attestation via SAS.
1204
+ * Can be called by agent owner, auditor, or anyone.
1205
+ *
1206
+ * @param params - Response parameters
1207
+ * @returns Attestation address and signature
1208
+ */
1209
+ appendResponse(params: {
1210
+ /** Payer for transaction */
1211
+ payer: KeyPairSigner;
1212
+ /** Responder (signer) */
1213
+ responder: KeyPairSigner;
1214
+ /** Feedback attestation being responded to */
1215
+ feedbackAttestation: Address$1;
1216
+ /** Off-chain response URI */
1217
+ responseUri: string;
1218
+ /** Response content hash */
1219
+ responseHash?: Uint8Array;
1220
+ /** Response index (allows multiple responses, default: 0) */
1221
+ responseIndex?: number;
1222
+ }): Promise<AttestationResult>;
1223
+ /**
1224
+ * Read feedback attestation
1225
+ *
1226
+ * @param attestation - Feedback attestation address
1227
+ * @returns Feedback data or null if not found
1228
+ */
1229
+ readFeedback(attestation: Address$1): Promise<Feedback | null>;
1230
+ /**
1231
+ * Request validation from a validator
1232
+ *
1233
+ * Creates a ValidationRequest attestation via SAS.
1234
+ * Must be called by agent owner.
1235
+ *
1236
+ * @param params - Request parameters
1237
+ * @returns Attestation address and signature
1238
+ */
1239
+ requestValidation(params: {
1240
+ /** Payer for transaction */
1241
+ payer: KeyPairSigner;
1242
+ /** Agent owner (must sign) */
1243
+ agentOwner: KeyPairSigner;
1244
+ /** Agent NFT mint requesting validation */
1245
+ agentMint: Address$1;
1246
+ /** Validator address */
1247
+ validator: Address$1;
1248
+ /** Validation method ("tee", "zkml", "restake") */
1249
+ methodId: string;
1250
+ /** Off-chain validation request URI */
1251
+ requestUri: string;
1252
+ /** Request content hash */
1253
+ requestHash?: Uint8Array;
1254
+ }): Promise<AttestationResult>;
1255
+ /**
1256
+ * Respond to a validation request
1257
+ *
1258
+ * Creates a ValidationResponse attestation via SAS.
1259
+ * Called by validators.
1260
+ *
1261
+ * @param params - Response parameters
1262
+ * @returns Attestation address and signature
1263
+ */
1264
+ respondToValidation(params: {
1265
+ /** Payer for transaction */
1266
+ payer: KeyPairSigner;
1267
+ /** Validator (must sign) */
1268
+ validator: KeyPairSigner;
1269
+ /** ValidationRequest attestation being responded to */
1270
+ requestAttestation: Address$1;
1271
+ /** Response score 0-100 (0=fail, 100=pass) */
1272
+ response: number;
1273
+ /** Off-chain response/evidence URI */
1274
+ responseUri?: string;
1275
+ /** Response content hash */
1276
+ responseHash?: Uint8Array;
1277
+ /** Optional categorization tag */
1278
+ tag?: string;
1279
+ /** Response index (allows multiple responses, default: 0) */
1280
+ responseIndex?: number;
1281
+ }): Promise<AttestationResult>;
1282
+ /**
1283
+ * Get validation status
1284
+ *
1285
+ * Fetches the validation request and looks for any responses.
1286
+ *
1287
+ * @param requestAttestation - ValidationRequest attestation address
1288
+ * @param responseIndex - Response index to check (default: 0)
1289
+ * @returns Validation status or null if not found
1290
+ */
1291
+ getValidationStatus(requestAttestation: Address$1, responseIndex?: number): Promise<ValidationStatus | null>;
1292
+ /**
1293
+ * Setup SATI SAS schemas with idempotent deployment.
1294
+ *
1295
+ * This method is safe to call multiple times. It will:
1296
+ * 1. Check which components already exist on-chain
1297
+ * 2. Deploy only missing credential and schemas
1298
+ * 3. Verify all components exist after deployment
1299
+ *
1300
+ * @param params - Setup parameters
1301
+ * @returns Deployment result with status and config
1302
+ */
1303
+ setupSASSchemas(params: {
1304
+ /** Payer for account creation */
1305
+ payer: KeyPairSigner;
1306
+ /** Credential authority (controls schema creation) */
1307
+ authority: KeyPairSigner;
1308
+ /** Authorized signers for attestations */
1309
+ authorizedSigners?: Address$1[];
1310
+ /** Deploy test schemas (v0) instead of production schemas */
1311
+ testMode?: boolean;
1312
+ }): Promise<SASDeploymentResult>;
1313
+ /**
1314
+ * Verify that all SAS components exist on-chain.
1315
+ *
1316
+ * @param config - SAS configuration to verify
1317
+ * @returns Verification result with list of missing components
1318
+ */
1319
+ private verifySASDeployment;
1320
+ }
1321
+ //#endregion
1322
+ export { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, type Address, AgentIdentity, AgentRegistered, AgentRegisteredArgs, AttestationResult, CERTIFICATION_SCHEMA, DeployedSASConfig, FEEDBACK_AUTH_SCHEMA, FEEDBACK_RESPONSE_SCHEMA, FEEDBACK_SCHEMA, Feedback, FeedbackAuthorization, INITIALIZE_DISCRIMINATOR, InitializeAsyncInput, InitializeInput, InitializeInstruction, InitializeInstructionData, InitializeInstructionDataArgs, MetadataEntry, MetadataEntryArgs, ParsedInitializeInstruction, ParsedRegisterAgentInstruction, ParsedSatiRegistryInstruction, ParsedUpdateRegistryAuthorityInstruction, REGISTER_AGENT_DISCRIMINATOR, REGISTRY_CONFIG_DISCRIMINATOR, RegisterAgentAsyncInput, RegisterAgentInput, RegisterAgentInstruction, RegisterAgentInstructionData, RegisterAgentInstructionDataArgs, RegisterAgentResult, RegistryAuthorityUpdated, RegistryAuthorityUpdatedArgs, RegistryConfig, RegistryConfigArgs, RegistryInitialized, RegistryInitializedArgs, SASDeploymentResult, SASLayoutType, SASSchema, SOLANA_ATTESTATION_SERVICE_PROGRAM_ADDRESS as SAS_PROGRAM_ID, SATI, SATIClientOptions, type SATISASConfig, SATI_CREDENTIAL_NAME, SATI_REGISTRY_ERROR__IMMUTABLE_AUTHORITY, SATI_REGISTRY_ERROR__INVALID_AUTHORITY, SATI_REGISTRY_ERROR__INVALID_GROUP_MINT, SATI_REGISTRY_ERROR__METADATA_KEY_TOO_LONG, SATI_REGISTRY_ERROR__METADATA_VALUE_TOO_LONG, SATI_REGISTRY_ERROR__MINT_AUTHORITY_NOT_RENOUNCED, SATI_REGISTRY_ERROR__NAME_TOO_LONG, SATI_REGISTRY_ERROR__OVERFLOW, SATI_REGISTRY_ERROR__SYMBOL_TOO_LONG, SATI_REGISTRY_ERROR__TOO_MANY_METADATA_ENTRIES, SATI_REGISTRY_ERROR__URI_TOO_LONG, SATI_REGISTRY_PROGRAM_ADDRESS, SATI_SAS_SCHEMAS, SATI_SCHEMAS, SATI_SCHEMA_NAMES, SCHEMA_NAMES, SatiRegistryAccount, SatiRegistryError, SatiRegistryInstruction, SchemaDeploymentStatus, TOKEN_2022_PROGRAM_ADDRESS, UPDATE_REGISTRY_AUTHORITY_DISCRIMINATOR, UpdateRegistryAuthorityAsyncInput, UpdateRegistryAuthorityInput, UpdateRegistryAuthorityInstruction, UpdateRegistryAuthorityInstructionData, UpdateRegistryAuthorityInstructionDataArgs, VALIDATION_REQUEST_SCHEMA, VALIDATION_RESPONSE_SCHEMA, ValidationRequest, ValidationStatus, address, computeCertificationNonce, computeFeedbackAuthNonce, computeFeedbackNonce, computeFeedbackResponseNonce, computeValidationRequestNonce, computeValidationResponseNonce, decodeRegistryConfig, deriveAttestationPda, deriveCredentialPda, deriveEventAuthorityAddress, deriveSatiAttestationPda, deriveSatiCredentialPda, deriveSatiSchemaPda, deriveSchemaPda, deserializeAttestationData, fetchAllMaybeRegistryConfig, fetchAllMaybeSchema, fetchAllRegistryConfig, fetchAttestation, fetchMaybeCredential, fetchMaybeRegistryConfig, fetchMaybeSchema, fetchRegistryConfig, fetchSchema, findAssociatedTokenAddress, findGroupMintPda, findRegistryConfigPda, getAgentRegisteredCodec, getAgentRegisteredDecoder, getAgentRegisteredEncoder, getCloseAttestationInstruction, getCreateAttestationInstruction, getCreateCredentialInstruction, getCreateSatiCredentialInstruction, getCreateSatiSchemaInstruction, getCreateSchemaInstruction, getDeployedNetworks, getInitializeDiscriminatorBytes, getInitializeInstruction, getInitializeInstructionAsync, getInitializeInstructionDataCodec, getInitializeInstructionDataDecoder, getInitializeInstructionDataEncoder, getMetadataEntryCodec, getMetadataEntryDecoder, getMetadataEntryEncoder, getRegisterAgentDiscriminatorBytes, getRegisterAgentInstruction, getRegisterAgentInstructionAsync, getRegisterAgentInstructionDataCodec, getRegisterAgentInstructionDataDecoder, getRegisterAgentInstructionDataEncoder, getRegistryAuthorityUpdatedCodec, getRegistryAuthorityUpdatedDecoder, getRegistryAuthorityUpdatedEncoder, getRegistryConfigCodec, getRegistryConfigDecoder, getRegistryConfigDiscriminatorBytes, getRegistryConfigEncoder, getRegistryConfigSize, getRegistryInitializedCodec, getRegistryInitializedDecoder, getRegistryInitializedEncoder, getSatiRegistryErrorMessage, getUpdateRegistryAuthorityDiscriminatorBytes, getUpdateRegistryAuthorityInstruction, getUpdateRegistryAuthorityInstructionAsync, getUpdateRegistryAuthorityInstructionDataCodec, getUpdateRegistryAuthorityInstructionDataDecoder, getUpdateRegistryAuthorityInstructionDataEncoder, hasDeployedConfig, identifySatiRegistryAccount, identifySatiRegistryInstruction, isSatiRegistryError, loadDeployedConfig, parseInitializeInstruction, parseRegisterAgentInstruction, parseUpdateRegistryAuthorityInstruction, serializeAttestationData, serializeCertificationData, serializeFeedbackAuthData, serializeFeedbackData, serializeFeedbackResponseData, serializeValidationRequestData, serializeValidationResponseData };