Skip to content

Instantly share code, notes, and snippets.

@mikemaccana
Created November 24, 2025 19:33
Show Gist options
  • Select an option

  • Save mikemaccana/5534f1da6478977297fc8486b7d59542 to your computer and use it in GitHub Desktop.

Select an option

Save mikemaccana/5534f1da6478977297fc8486b7d59542 to your computer and use it in GitHub Desktop.
target/idl/election.json
{
"address": "26z6tf8ndLVRfQJJBvYsmtMyrLVWaBoUN6RgCXrtsZjD",
"metadata": {
"name": "election",
"version": "0.1.0",
"spec": "0.1.0",
"description": "Created with Arcium & Anchor"
},
"instructions": [
{
"name": "create_poll",
"discriminator": [
182,
171,
112,
238,
6,
219,
14,
110
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "sign_pda_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
83,
105,
103,
110,
101,
114,
65,
99,
99,
111,
117,
110,
116
]
}
]
}
},
{
"name": "mxe_account"
},
{
"name": "mempool_account",
"writable": true
},
{
"name": "executing_pool",
"writable": true
},
{
"name": "computation_account",
"writable": true
},
{
"name": "comp_def_account"
},
{
"name": "cluster_account",
"writable": true
},
{
"name": "pool_account",
"writable": true,
"address": "FsWbPQcJQ2cCyr9ndse13fDqds4F2Ezx2WgTL25Dke4M"
},
{
"name": "clock_account",
"address": "AxygBawEvVwZPetj3yPJb9sGdZvaJYsVguET1zFUQkV"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "poll_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
108,
108
]
},
{
"kind": "account",
"path": "payer"
},
{
"kind": "arg",
"path": "poll_id"
}
]
}
}
],
"args": [
{
"name": "computation_offset",
"type": "u64"
},
{
"name": "poll_id",
"type": "u32"
},
{
"name": "question",
"type": "string"
},
{
"name": "nonce",
"type": "u128"
}
]
},
{
"name": "create_poll_callback",
"discriminator": [
216,
95,
34,
24,
83,
107,
84,
151
],
"accounts": [
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "comp_def_account"
},
{
"name": "instructions_sysvar",
"address": "Sysvar1nstructions1111111111111111111111111"
},
{
"name": "poll_account",
"writable": true
}
],
"args": [
{
"name": "output",
"type": {
"defined": {
"name": "ComputationOutputs",
"generics": [
{
"kind": "type",
"type": {
"defined": {
"name": "CreatePollOutput"
}
}
}
]
}
}
}
]
},
{
"name": "init_create_poll_comp_def",
"discriminator": [
42,
185,
27,
62,
35,
35,
171,
160
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "mxe_account",
"writable": true
},
{
"name": "comp_def_account",
"docs": [
"Can't check it here as it's not initialized yet."
],
"writable": true
},
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": []
},
{
"name": "init_reveal_result_comp_def",
"discriminator": [
37,
58,
75,
132,
146,
44,
185,
221
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "mxe_account",
"writable": true
},
{
"name": "comp_def_account",
"docs": [
"Can't check it here as it's not initialized yet."
],
"writable": true
},
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": []
},
{
"name": "init_vote_comp_def",
"discriminator": [
227,
119,
186,
182,
31,
37,
236,
155
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "mxe_account",
"writable": true
},
{
"name": "comp_def_account",
"docs": [
"Can't check it here as it's not initialized yet."
],
"writable": true
},
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": []
},
{
"name": "reveal_result",
"discriminator": [
251,
165,
27,
86,
52,
234,
133,
173
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "sign_pda_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
83,
105,
103,
110,
101,
114,
65,
99,
99,
111,
117,
110,
116
]
}
]
}
},
{
"name": "mxe_account"
},
{
"name": "mempool_account",
"writable": true
},
{
"name": "executing_pool",
"writable": true
},
{
"name": "computation_account",
"writable": true
},
{
"name": "comp_def_account"
},
{
"name": "cluster_account",
"writable": true
},
{
"name": "pool_account",
"writable": true,
"address": "FsWbPQcJQ2cCyr9ndse13fDqds4F2Ezx2WgTL25Dke4M"
},
{
"name": "clock_account",
"address": "AxygBawEvVwZPetj3yPJb9sGdZvaJYsVguET1zFUQkV"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "poll_account",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
108,
108
]
},
{
"kind": "account",
"path": "payer"
},
{
"kind": "arg",
"path": "poll_id"
}
]
}
}
],
"args": [
{
"name": "computation_offset",
"type": "u64"
},
{
"name": "poll_id",
"type": "u32"
}
]
},
{
"name": "reveal_result_callback",
"discriminator": [
135,
166,
225,
246,
62,
43,
157,
198
],
"accounts": [
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "comp_def_account"
},
{
"name": "instructions_sysvar",
"address": "Sysvar1nstructions1111111111111111111111111"
}
],
"args": [
{
"name": "output",
"type": {
"defined": {
"name": "ComputationOutputs",
"generics": [
{
"kind": "type",
"type": {
"defined": {
"name": "RevealResultOutput"
}
}
}
]
}
}
}
]
},
{
"name": "vote",
"discriminator": [
227,
110,
155,
23,
136,
126,
172,
25
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "sign_pda_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
83,
105,
103,
110,
101,
114,
65,
99,
99,
111,
117,
110,
116
]
}
]
}
},
{
"name": "mxe_account"
},
{
"name": "mempool_account",
"writable": true
},
{
"name": "executing_pool",
"writable": true
},
{
"name": "computation_account",
"writable": true
},
{
"name": "comp_def_account"
},
{
"name": "cluster_account",
"writable": true
},
{
"name": "pool_account",
"writable": true,
"address": "FsWbPQcJQ2cCyr9ndse13fDqds4F2Ezx2WgTL25Dke4M"
},
{
"name": "clock_account",
"address": "AxygBawEvVwZPetj3yPJb9sGdZvaJYsVguET1zFUQkV"
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
},
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "authority",
"relations": [
"poll_account"
]
},
{
"name": "poll_account",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
108,
108
]
},
{
"kind": "account",
"path": "authority"
},
{
"kind": "arg",
"path": "poll_id"
}
]
}
}
],
"args": [
{
"name": "computation_offset",
"type": "u64"
},
{
"name": "poll_id",
"type": "u32"
},
{
"name": "choice",
"type": {
"array": [
"u8",
32
]
}
},
{
"name": "vote_encryption_pubkey",
"type": {
"array": [
"u8",
32
]
}
},
{
"name": "vote_nonce",
"type": "u128"
}
]
},
{
"name": "vote_callback",
"discriminator": [
129,
42,
124,
58,
180,
43,
128,
155
],
"accounts": [
{
"name": "arcium_program",
"address": "Bv3Fb9VjzjWGfX18QTUcVycAfeLoQ5zZN6vv2g3cTZxp"
},
{
"name": "comp_def_account"
},
{
"name": "instructions_sysvar",
"address": "Sysvar1nstructions1111111111111111111111111"
},
{
"name": "poll_account",
"writable": true
}
],
"args": [
{
"name": "output",
"type": {
"defined": {
"name": "ComputationOutputs",
"generics": [
{
"kind": "type",
"type": {
"defined": {
"name": "VoteOutput"
}
}
}
]
}
}
}
]
}
],
"accounts": [
{
"name": "ClockAccount",
"discriminator": [
152,
171,
158,
195,
75,
61,
51,
8
]
},
{
"name": "Cluster",
"discriminator": [
236,
225,
118,
228,
173,
106,
18,
60
]
},
{
"name": "ComputationDefinitionAccount",
"discriminator": [
245,
176,
217,
221,
253,
104,
172,
200
]
},
{
"name": "FeePool",
"discriminator": [
172,
38,
77,
146,
148,
5,
51,
242
]
},
{
"name": "MXEAccount",
"discriminator": [
103,
26,
85,
250,
179,
159,
17,
117
]
},
{
"name": "Poll",
"discriminator": [
110,
234,
167,
188,
231,
136,
153,
111
]
},
{
"name": "SignerAccount",
"discriminator": [
127,
212,
7,
180,
17,
50,
249,
193
]
}
],
"events": [
{
"name": "RevealResultEvent",
"discriminator": [
20,
154,
125,
179,
190,
191,
232,
228
]
},
{
"name": "VoteEvent",
"discriminator": [
195,
71,
250,
105,
120,
119,
234,
134
]
}
],
"errors": [
{
"code": 6000,
"name": "InvalidAuthority",
"msg": "Invalid authority"
},
{
"code": 6001,
"name": "AbortedComputation",
"msg": "The computation was aborted"
},
{
"code": 6002,
"name": "ClusterNotSet",
"msg": "Cluster not set"
}
],
"types": [
{
"name": "Activation",
"type": {
"kind": "struct",
"fields": [
{
"name": "activation_epoch",
"type": {
"defined": {
"name": "Epoch"
}
}
},
{
"name": "deactivation_epoch",
"type": {
"defined": {
"name": "Epoch"
}
}
}
]
}
},
{
"name": "CircuitSource",
"type": {
"kind": "enum",
"variants": [
{
"name": "Local",
"fields": [
{
"defined": {
"name": "LocalCircuitSource"
}
}
]
},
{
"name": "OnChain",
"fields": [
{
"defined": {
"name": "OnChainCircuitSource"
}
}
]
},
{
"name": "OffChain",
"fields": [
{
"defined": {
"name": "OffChainCircuitSource"
}
}
]
}
]
}
},
{
"name": "ClockAccount",
"docs": [
"An account storing the current network epoch"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "start_epoch",
"type": {
"defined": {
"name": "Epoch"
}
}
},
{
"name": "current_epoch",
"type": {
"defined": {
"name": "Epoch"
}
}
},
{
"name": "start_epoch_timestamp",
"type": {
"defined": {
"name": "Timestamp"
}
}
},
{
"name": "bump",
"type": "u8"
}
]
}
},
{
"name": "Cluster",
"type": {
"kind": "struct",
"fields": [
{
"name": "authority",
"type": {
"option": "pubkey"
}
},
{
"name": "max_size",
"type": "u32"
},
{
"name": "activation",
"type": {
"defined": {
"name": "Activation"
}
}
},
{
"name": "max_capacity",
"type": "u64"
},
{
"name": "cu_price",
"type": "u64"
},
{
"name": "cu_price_proposals",
"type": {
"array": [
"u64",
32
]
}
},
{
"name": "last_updated_epoch",
"type": {
"defined": {
"name": "Epoch"
}
}
},
{
"name": "mxes",
"type": {
"vec": "pubkey"
}
},
{
"name": "nodes",
"type": {
"vec": {
"defined": {
"name": "NodeRef"
}
}
}
},
{
"name": "pending_nodes",
"type": {
"vec": {
"defined": {
"name": "NodeRef"
}
}
}
},
{
"name": "bump",
"type": "u8"
}
]
}
},
{
"name": "ComputationDefinitionAccount",
"docs": [
"An account representing a [ComputationDefinition] in a MXE."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "finalization_authority",
"type": {
"option": "pubkey"
}
},
{
"name": "cu_amount",
"type": "u64"
},
{
"name": "definition",
"type": {
"defined": {
"name": "ComputationDefinitionMeta"
}
}
},
{
"name": "circuit_source",
"type": {
"defined": {
"name": "CircuitSource"
}
}
},
{
"name": "bump",
"type": "u8"
}
]
}
},
{
"name": "ComputationDefinitionMeta",
"docs": [
"A computation definition for execution in a MXE."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "circuit_len",
"type": "u32"
},
{
"name": "signature",
"type": {
"defined": {
"name": "ComputationSignature"
}
}
}
]
}
},
{
"name": "ComputationOutputs",
"generics": [
{
"kind": "type",
"name": "O"
}
],
"type": {
"kind": "enum",
"variants": [
{
"name": "Success",
"fields": [
{
"generic": "O"
}
]
},
{
"name": "Failure"
}
]
}
},
{
"name": "ComputationSignature",
"docs": [
"The signature of a computation defined in a [ComputationDefinition]."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "parameters",
"type": {
"vec": {
"defined": {
"name": "Parameter"
}
}
}
},
{
"name": "outputs",
"type": {
"vec": {
"defined": {
"name": "Output"
}
}
}
}
]
}
},
{
"name": "CreatePollOutput",
"docs": [
"The output of the callback instruction. Provided as a struct with ordered fields",
"as anchor does not support tuples and tuple structs yet."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "field_0",
"type": {
"defined": {
"name": "MXEEncryptedStruct",
"generics": [
{
"kind": "const",
"value": "3"
}
]
}
}
}
]
}
},
{
"name": "Epoch",
"docs": [
"The network epoch"
],
"type": {
"kind": "struct",
"fields": [
"u64"
]
}
},
{
"name": "FeePool",
"type": {
"kind": "struct",
"fields": [
{
"name": "bump",
"type": "u8"
}
]
}
},
{
"name": "LocalCircuitSource",
"type": {
"kind": "enum",
"variants": [
{
"name": "MxeKeygen"
}
]
}
},
{
"name": "MXEAccount",
"docs": [
"A MPC Execution Environment."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "authority",
"type": {
"option": "pubkey"
}
},
{
"name": "cluster",
"type": {
"option": "u32"
}
},
{
"name": "utility_pubkeys",
"type": {
"defined": {
"name": "SetUnset",
"generics": [
{
"kind": "type",
"type": {
"defined": {
"name": "UtilityPubkeys"
}
}
}
]
}
}
},
{
"name": "fallback_clusters",
"type": {
"vec": "u32"
}
},
{
"name": "rejected_clusters",
"type": {
"vec": "u32"
}
},
{
"name": "computation_definitions",
"type": {
"vec": "u32"
}
},
{
"name": "bump",
"type": "u8"
}
]
}
},
{
"name": "MXEEncryptedStruct",
"generics": [
{
"kind": "const",
"name": "LEN",
"type": "usize"
}
],
"type": {
"kind": "struct",
"fields": [
{
"name": "nonce",
"type": "u128"
},
{
"name": "ciphertexts",
"type": {
"array": [
{
"array": [
"u8",
32
]
},
{
"generic": "LEN"
}
]
}
}
]
}
},
{
"name": "NodeRef",
"docs": [
"A reference to a node in the cluster.",
"The offset is to derive the Node Account.",
"The current_total_rewards is the total rewards the node has received so far in the current",
"epoch."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "offset",
"type": "u32"
},
{
"name": "current_total_rewards",
"type": "u64"
},
{
"name": "vote",
"type": "u8"
}
]
}
},
{
"name": "OffChainCircuitSource",
"type": {
"kind": "struct",
"fields": [
{
"name": "source",
"type": "string"
},
{
"name": "hash",
"type": {
"array": [
"u8",
32
]
}
}
]
}
},
{
"name": "OnChainCircuitSource",
"type": {
"kind": "struct",
"fields": [
{
"name": "is_completed",
"type": "bool"
},
{
"name": "upload_auth",
"type": "pubkey"
}
]
}
},
{
"name": "Output",
"docs": [
"An output of a computation.",
"We currently don't support encrypted outputs yet since encrypted values are passed via",
"data objects."
],
"type": {
"kind": "enum",
"variants": [
{
"name": "PlaintextBool"
},
{
"name": "PlaintextU8"
},
{
"name": "PlaintextU16"
},
{
"name": "PlaintextU32"
},
{
"name": "PlaintextU64"
},
{
"name": "PlaintextU128"
},
{
"name": "Ciphertext"
},
{
"name": "ArcisPubkey"
},
{
"name": "PlaintextFloat"
},
{
"name": "PlaintextPoint"
}
]
}
},
{
"name": "Parameter",
"docs": [
"A parameter of a computation.",
"We differentiate between plaintext and encrypted parameters and data objects.",
"Plaintext parameters are directly provided as their value.",
"Encrypted parameters are provided as an offchain reference to the data.",
"Data objects are provided as a reference to the data object account."
],
"type": {
"kind": "enum",
"variants": [
{
"name": "PlaintextBool"
},
{
"name": "PlaintextU8"
},
{
"name": "PlaintextU16"
},
{
"name": "PlaintextU32"
},
{
"name": "PlaintextU64"
},
{
"name": "PlaintextU128"
},
{
"name": "Ciphertext"
},
{
"name": "ArcisPubkey"
},
{
"name": "ArcisSignature"
},
{
"name": "PlaintextFloat"
},
{
"name": "ManticoreAlgo"
},
{
"name": "InputDataset"
}
]
}
},
{
"name": "Poll",
"docs": [
"Represents a confidential poll with encrypted vote tallies."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "bump",
"docs": [
"PDA bump seed"
],
"type": "u8"
},
{
"name": "vote_counts",
"docs": [
"Encrypted vote counters: [neo_robot_count, humane_ai_pin_count, friend_com_count] as 32-byte ciphertexts"
],
"type": {
"array": [
{
"array": [
"u8",
32
]
},
3
]
}
},
{
"name": "id",
"docs": [
"Unique identifier for this poll"
],
"type": "u32"
},
{
"name": "authority",
"docs": [
"Public key of the poll creator (only they can reveal results)"
],
"type": "pubkey"
},
{
"name": "nonce",
"docs": [
"Cryptographic nonce for the encrypted vote counters"
],
"type": "u128"
},
{
"name": "question",
"docs": [
"The poll question (max 50 characters)"
],
"type": "string"
}
]
}
},
{
"name": "RevealResultEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "output",
"docs": [
"The winning option: 0 = Neo robot, 1 = Humane AI PIN, 2 = friend.com"
],
"type": "u8"
}
]
}
},
{
"name": "RevealResultOutput",
"docs": [
"The output of the callback instruction. Provided as a struct with ordered fields",
"as anchor does not support tuples and tuple structs yet."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "field_0",
"type": "u8"
}
]
}
},
{
"name": "SetUnset",
"generics": [
{
"kind": "type",
"name": "T"
}
],
"type": {
"kind": "enum",
"variants": [
{
"name": "Set",
"fields": [
{
"generic": "T"
}
]
},
{
"name": "Unset",
"fields": [
{
"generic": "T"
},
{
"vec": "bool"
}
]
}
]
}
},
{
"name": "SignerAccount",
"type": {
"kind": "struct",
"fields": [
{
"name": "bump",
"type": "u8"
}
]
}
},
{
"name": "Timestamp",
"type": {
"kind": "struct",
"fields": [
{
"name": "timestamp",
"type": "u64"
}
]
}
},
{
"name": "UtilityPubkeys",
"type": {
"kind": "struct",
"fields": [
{
"name": "x25519_pubkey",
"type": {
"array": [
"u8",
32
]
}
},
{
"name": "ed25519_verifying_key",
"type": {
"array": [
"u8",
32
]
}
},
{
"name": "elgamal_pubkey",
"type": {
"array": [
"u8",
32
]
}
},
{
"name": "pubkey_validity_proof",
"type": {
"array": [
"u8",
64
]
}
}
]
}
},
{
"name": "VoteEvent",
"type": {
"kind": "struct",
"fields": [
{
"name": "timestamp",
"type": "i64"
}
]
}
},
{
"name": "VoteOutput",
"docs": [
"The output of the callback instruction. Provided as a struct with ordered fields",
"as anchor does not support tuples and tuple structs yet."
],
"type": {
"kind": "struct",
"fields": [
{
"name": "field_0",
"type": {
"defined": {
"name": "MXEEncryptedStruct",
"generics": [
{
"kind": "const",
"value": "3"
}
]
}
}
}
]
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment