fix(solana): support multisig transfer instruction
What changed, and why it matters
This commit updates the Trezor firmware's Solana support so that the standard 'Transfer' instruction can be used with multi-signature accounts. Previously, the firmware treated this instruction as non-multisig, which likely caused it to reject or mis-handle legitimate Solana transactions that required multiple signers. The change is a feature/fix to broaden supported transaction shapes, not a patch for an active vulnerability.
Review the Solana instruction parser to ensure that enabling multisig for Transfer does not relax account-signer validation elsewhere, and verify that the device still requires user confirmation and valid signatures for all signers. Treat as a normal feature fix unless further review reveals a bypass.
Security signals we found
Instruction metadata flag change for multisig support
New test fixture for Solana multisig transfer
No visible changes to signature verification or authorization logic
No advisory, CVE, or security wording in commit message or changelog
Evidence from the diff
The change flips the ‘is_multisig’ flag for the Solana System Program ‘Transfer’ instruction from false to true in both the program definition JSON and the generated Python instruction metadata. It also adds a test vector and UI fixtures for a multisig transfer. The test helper is updated to allow an optional list of ‘multisig_signers’ in the account layout. No signing logic, parsing bounds, or authorization checks are visibly modified in this diff.
Changed components
core/src/apps/solana/transaction/instructions.pycommon/defs/solana/programs.jsoncommon/tests/fixtures/solana/sign_tx.system_program.jsontests/device_tests/solana/construct/instructions.pytests/ui_tests/fixtures.jsonInspect captured patch +142 / −2
diff --git a/common/defs/solana/programs.json b/common/defs/solana/programs.json
index 178949b7..3d8da356 100644
--- a/common/defs/solana/programs.json
+++ b/common/defs/solana/programs.json
@@ -78,7 +78,7 @@
{
"id": 2,
"name": "Transfer",
- "is_multisig": false,
+ "is_multisig": true,
"parameters": [
{
"name": "lamports",
diff --git a/common/tests/fixtures/solana/sign_tx.system_program.json b/common/tests/fixtures/solana/sign_tx.system_program.json
index 5d47a8d0..78a60257 100644
--- a/common/tests/fixtures/solana/sign_tx.system_program.json
+++ b/common/tests/fixtures/solana/sign_tx.system_program.json
@@ -115,6 +115,120 @@
"expected_signature": "7d9b551808a878b6dd6255c7b775b7afcd2edb011a1918611d9b72c3fd2f5fe89d8bf30ea41fa6dc91f33e20e9eb07527aadf1e082eb746880167d102a76270c"
}
},
+ {
+ "description": "Transfer Multisig",
+ "parameters": {
+ "address": "m/44'/501'/0'/0'",
+ "construct": {
+ "version": null,
+ "header": {
+ "signers": 2,
+ "readonly_signers": 1,
+ "readonly_non_signers": 7
+ },
+ "accounts": [
+ "14CCvQzQzHCVgZM3j9soPnXuJXh1RmCfwLVUcdfbZVBS",
+ "trfb53BmkHNeoqaa3REgqnrbwUZqAFYdjTkivkJ6aWg",
+ "2FzZfvRfBLmFdyXwVot1My2yAQDoMsSqsSZS9TLLdanw",
+ "2JppYtSRJ2q1tnmWsBQkWYxTM7Z6abf4empLDeeHcd91",
+ "ENtKjeSm15ru7StFLuCoqPLgXyKTYnziZ3ddTuCcwdSy",
+ "11111111111111111111111111111111",
+ "A6bw9sMV7UFYimybXRUggj79j3p44VtASJZLqir7syx3",
+ "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
+ "ComputeBudget111111111111111111111111111111",
+ "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ "So11111111111111111111111111111111111111112",
+ "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
+ ],
+ "blockhash": "HeVbzYMZVQ6vShvi8rwG6on5W1xKBiX8E8vKrLGXsaj8",
+ "instructions": [
+ {
+ "program_index": 8,
+ "accounts": {},
+ "data": {
+ "instruction_id": 2,
+ "units": 90000
+ }
+ },
+ {
+ "program_index": 8,
+ "accounts": {},
+ "data": {
+ "instruction_id": 3,
+ "lamports": 560773
+ }
+ },
+ {
+ "program_index": 7,
+ "accounts": {
+ "funding_account": 0,
+ "associated_token_account": 3,
+ "wallet_addr": 0,
+ "token_mint": 9,
+ "system_program": 5,
+ "spl_token": 11
+ },
+ "data": {
+ "instruction_id": 1
+ }
+ },
+ {
+ "program_index": 7,
+ "accounts": {
+ "funding_account": 0,
+ "associated_token_account": 4,
+ "wallet_addr": 6,
+ "token_mint": 9,
+ "system_program": 5,
+ "spl_token": 11
+ },
+ "data": {
+ "instruction_id": 1
+ }
+ },
+ {
+ "program_index": 7,
+ "accounts": {
+ "funding_account": 0,
+ "associated_token_account": 2,
+ "wallet_addr": 6,
+ "token_mint": 10,
+ "system_program": 5,
+ "spl_token": 11
+ },
+ "data": {
+ "instruction_id": 1
+ }
+ },
+ {
+ "program_index": 5,
+ "accounts": {
+ "funding_account": 0,
+ "recipient_account": 2,
+ "multisig_signers": [1]
+ },
+ "data": {
+ "instruction_id": 2,
+ "lamports": 500000000
+ }
+ },
+ {
+ "program_index": 11,
+ "accounts": {
+ "token_account": 2
+ },
+ "data": {
+ "instruction_id": 17
+ }
+ }
+ ],
+ "luts": []
+ }
+ },
+ "result": {
+ "expected_signature": "4ef75f6d929d80390cd0de863a8d24011bdb8fdea528f95472ddb6ab9021ca1609128c4f0e647d384a7e4d0cfc45b39ff488bc31a936a394cea813d60c92680a"
+ }
+},
{
"description": "Create Account With Seed",
"parameters": {
diff --git a/core/.changelog.d/6843.changed b/core/.changelog.d/6843.changed
new file mode 100644
index 00000000..96c93c36
--- /dev/null
+++ b/core/.changelog.d/6843.changed
@@ -0,0 +1 @@
+Solana System Program's Transfer instruction now allows multisig.
diff --git a/core/src/apps/solana/transaction/instructions.py b/core/src/apps/solana/transaction/instructions.py
index 83aa48f1..65f00ba3 100644
--- a/core/src/apps/solana/transaction/instructions.py
+++ b/core/src/apps/solana/transaction/instructions.py
@@ -1033,7 +1033,7 @@ def get_instruction(
True,
True,
False,
- False,
+ True,
None,
)
if instruction_id == _SYSTEM_PROGRAM_ID_INS_CREATE_ACCOUNT_WITH_SEED:
diff --git a/tests/device_tests/solana/construct/instructions.py b/tests/device_tests/solana/construct/instructions.py
index da5772cd..f803712b 100644
--- a/tests/device_tests/solana/construct/instructions.py
+++ b/tests/device_tests/solana/construct/instructions.py
@@ -92,6 +92,7 @@ SystemProgram_Transfer = Struct(
/ CompactStruct(
"funding_account" / Byte,
"recipient_account" / Byte,
+ "multisig_signers" / Optional(GreedyRange(Byte)),
),
"data"
/ CompactStruct(
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index 047d8e00..ca15de31 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -2664,6 +2664,7 @@
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "ee303e3375bab613c7c7f78892102025bcca49ee02bd4f6b35d4821710ca8fd2",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "875c2c536f403907c13fe37ec76ad9f19d320af0917daba6e1138b82c5bbaf6e",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "97deda28ea9d6793b4137017d6c1986d5e75cfe2034fb603a1fafdf8be4e1628",
+"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "62d0bfd3a715bc0740e7da2275d8e2906d7e5c72c5363af6ce789d75d8b23d05",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "5e1e6c5189959462de54d0a1973f0fe7b22496f096c29659cc08ce7d2b007917",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "96fbcbd5bbccfeb8d798880de0dc6a736880d5f2d5c68988d1565003458f924c",
"T2T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "d897e4efafeb449df9be7276fa15f2727d9dd31e2e091fec05be8611e507204c",
@@ -4430,6 +4431,7 @@
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "40c965d69a22dba9fb361955a7249ae0631b02557f702a4f86695ac610b56de1",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "efaa592eafbb318318c3f8220f3eb3a13dec18921efe3ab23ca683a4bcd5f1d6",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "f10b1fc9b8ba106ee79728721fbb392b37d25333d1e5307d45910e6ae144afe4",
+"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "54f68e577ef69379503666b15691bc39092bdc8ca11d6e037a2e7eebe4bfb594",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "a41ba1a35839e74eba143467a5555077eb537a699acd905112463202658a9fb9",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "489484c505e09c35cf7165eca01c3f123931496ab6e93da9c0d63516882d2da3",
"T2T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "d40201c9696c4698c89d22a43d6a58ffa6e21ae14cf0cd57228c4ca5e5f87c91",
@@ -6196,6 +6198,7 @@
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "0b5696903c69faa065e414ef984c398406d3de3cae994bdd707516cd83f19d7f",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "a7d9787cee8402a98893d8eea21da177710e8863a21e29fe233d4f1f83de8ca1",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "ca7f73e69a8a36e111750fcdd4dfb1ec25a5b9fd529be605cf2929990a81b54e",
+"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "f2c69a3ce95979799437f92136635baed51e8c2f9e203a1e99fa2912659b1ba2",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "9265d6df3b7bf14aa6a2ef528b70452ec33a1d96adfcba660a2c6392ebf3bae8",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "bee42ae89e66fcb3bf9a0567b569574122efd3a3f27a881e249eee081d40832a",
"T2T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "e575af1b8edc71626cb0f8b6c2b2a49355383f4075aa528b84a641cd4d3c6bec",
@@ -7980,6 +7983,7 @@
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "0e81e7a7e034c84e4f7fe13a07e408229e3524f705bec6362410b8b63edb9be3",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "ca249f798873d209df33afc9b99da0b443ba90c434920081e66c66e9dfc95c12",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "ce6009de425babdb5e20f5c17f8b452c322ed0a8b7181775f707236b76a52d44",
+"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "16d6a0c72604287d087f85cd33aa61b78895a348b6b19a405e22f1fd7b2b7b26",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "350f4d6383a9c41a4faec63837e0e8d2d10c48a955b3fbe9c2a66e88ca2f2309",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "9b1f619f28e3a79c97f753553bcc3fa903ee58a6c72cbc5ad26e80cc98fc0722",
"T2T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "5fb63c701d38d83047c2bfa281009383239fe88879e7d6611440594dad0c7b3a",
@@ -9746,6 +9750,7 @@
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "c1573b45c51897e1cd6f0fdf915b980cc7a1c2bf7e92dffe955c27e5536833aa",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "710a9c9cb3602a7e40aa3d56dbfbd3c0ea1a0e63a67e4015f49d36057e10b154",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "7d1bac7b3fa14e842f5fa44aa016cc5854a8f57dad5da173ffa4849d2374d8a5",
+"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "32a862958ea4c132f38e16323523d0b8d4d8dcd97564f8ea532aedd671d67973",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "34bc9bfc64bad2204c5eb164b4b38fbcd34ea3c573cc6abdda47d4b79ddd1bc3",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "434dac8d9995354339a135bb239ccdb7ea8fd521f4137cd79885456aa636de47",
"T2T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "39ffc3a838e7a9cddf2e9ed2b1b7499626e632174d229cf9d4afe11830d85872",
@@ -11512,6 +11517,7 @@
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "4093bd62439236fd72aef3c7801c08317bf4f6b6612bbfa3ac9364369208c865",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "fb499e0a49d68e81b3bb542564271e41a0e7e9facb8982ebb98ad43716d93c53",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "dd6196ad0968523e94606155ea40d1183cf2efdec671a2a213f998795fc052e1",
+"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "621da81eca60b90f22fa7dcc7d3da280831b1ed3ec9e151f0503cb18450cb6dc",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "fd6c32e50579641ed536576b2371263444feb42f86aa29d2c863405fe4b6cd4a",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "f05ed99b1f195013da793d7f896558ed8edaffc4f4fd19242c5711580db65635",
"T2T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "5625df7dce8af7da77092e906a30ebfa1793a26c5571f2690d9953a5499b06b9",
@@ -13518,6 +13524,7 @@
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "532d801b55addf0b9b007a138ba8e820c2b08cac64c7d0f41ae9c515528cd5e0",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "98f3cb36aac6dd6442f5849eec06c987650b233bb537967c00a2ff9f6e1e1492",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "463e6364465b9fce7820d31c9272b822fdbc57f6e13ce3d8665ec89467321868",
+"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "e89401a8e90887cf7175235b9b66a3508be619060c02d0689a37ece8376a8d3a",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "7cda1b146ab45a4fab2934f1616adeec1aa0af30a49adf575d3d8bf1bd27e27a",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "194aba692a42f66bf1b8d120af4d0e211cb2a7c33cba269544b2a2fdefda6e64",
"T3B1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "f93690ca8467a728293af2900c7d7ee547fb3fdd6035a683efed0cec5bdffe8f",
@@ -15225,6 +15232,7 @@
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "6097d6ec40a49992c95a97e84656c55b42a2a40ecb129b87dc92349d763ba059",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "86d163225fa9156735d57828d3c04e8f8f19c2a17af745bc2228b3ef779a9e91",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "1812ee9237e302d81121b1383be7d091946b97fd8ece0b4cd46b6f78f35e6c33",
+"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "693e9a92cdfc4d75f402e2e006745996dc1ee55a9f1647d5400b2d4aedd249ea",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "e37cf4c4151b790b43b98d0aa609e5082e0ad09f8779b9fa5469a59a1ee5740a",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "acf64f2efeb29af7d5ea05ee4151919cd4da64428758ea03fc0a4ee3f3584b8d",
"T3B1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "100e32813fd84dcfbdad82a7d5bcaab241cb0cc9ababf6ffaaa907d097e00e45",
@@ -16932,6 +16940,7 @@
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "a0e0d877ce6fba60d2493ed747af12290d91d6480c4826df898d287d6f95dbab",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "be903e72bd0e0e0c4d3db5d68a01ce012ad7394fd6103d2c34931b5dee68a09e",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "0a62677a887ea6267baff7045408277021be8e543bc849e17128bd7eb5f73b3f",
+"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "f388ac9b9a2a4d68b8940376b3d8ea3fdc4a0c7926ee177c5e30831d24205dd6",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "5e772e4c3b20003c1a8b3affa0015b6a7ba64bb7644d762bf6d3abf019e681b1",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "4bf50d2372f3fa1e0b809ee543f713205c8b54f908283566a0061b2615b3662d",
"T3B1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "bbf34ebaadc264b3bba3057d66ac5867d1da4d281d7b794adc677b06c1f8414c",
@@ -18639,6 +18648,7 @@
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "bcaef4fb35dcddb623efd0214fd812f859c503fcbdfe5e0ff2d4663f5de2fc45",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "5eae2c96530bb1b1c73e2ade8311866299a7fb752b089ace792a27783c699933",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "017561bff94f9496d446b103ea278f01f5bf6705f02378ad1a7ca2144d9eaf62",
+"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "a288328e0ac3223a3ff0fef498e4ca96ed2ccb30bcf23af3120cf13f9608da09",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "8ae6219bf5563bdd9f474f5c975c29ed8f62a8c778851631e25a0540d31ea089",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "04206c282479fc615ed1bb9193f8b083218e92bcea9a67f26cd6f24d4454bcba",
"T3B1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "b5b7f039c79c605aa3b92e236f4ff5368c44da019676f89e49a728b552aed3c1",
@@ -20346,6 +20356,7 @@
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "524ad11c1a941e893d02ef0fdb7366af081f7bd3c8bbd22cbfc35543c758d4ba",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "ac8d3489f0e57c980b8e2dc4bec852017ebd63730d02cefb55f5592e38200b27",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "fd66d1fdc3880bf566b2b64168e2241c3094d80b614e25f3b78b4bc60c64bdce",
+"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "8dec33fc391a18383fada970b3112c57051cdd3fc64b868e76587e14499784d0",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "5b68513729c5fc65ef02b5c7656615f5d8baa4acf40beb80abc41e89e840f968",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "3172b472fdf635609092e1d2015e3289dab72b058dc2818a35690cb74659e7f4",
"T3B1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "0f548f562368c94861291cc311bab65e7a71d73dc8f0c2fe76d851fdc87362e3",
@@ -22053,6 +22064,7 @@
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "1bc930d1ffdb0cd392eaf4a2130eff44f6cb1f726f2eed5d9b72dc506186500c",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "459c0542dc9a93abd4e7729b623bff090e1a9c113435dc863cb4280d475ffcdb",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "bc6fb505d2c018ce206d234adbddd3accc3e6573621c8d7227d409cba6829fc3",
+"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "dfe045d59c13b067f9a8bec143d22c3adf74766e07d878d7150f87a04f8ba26a",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "630b333d905089f4efca0124ffe5d1db84203fe987230a6c6e15fb0671c6ffd2",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "2a771c95564efb9f40f5a7c8273b02eb2a51275ad17a3bdf1d26dbaf55cd81bf",
"T3B1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "f107646faed98174051c4c4d51c49f020c62fde70a015009c07f3b005aeb6f67",
@@ -24157,6 +24169,7 @@
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "9c92d6e25b1294e77dda15b62d8daa3c82eaf986fb5443a4814ebcff7850a013",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "97e982f2488dd082d3835fbfcc56bc7a518a5754197d109ccffb87036c805f3d",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "b414938be18575dc758d69969fdf30bfb567362d5c48040b661168b618c0f780",
+"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "19d822c513051aa76a045d1081f11b5df8e039fd8cd7c06f48550c7173353092",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "c833731012d11d64147d1f44d04f3bf1f867a89e0b83e6a47f22ea5cfa5853d6",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "45edeb7413af1155b6fa7e36c447c8730e36a8e3b79cc189adc7220c829aedc9",
"T3T1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "a71f8ca40cd541ed1bc3340fcb5af372bce49bd653ac8392211f285f94f223e3",
@@ -25897,6 +25910,7 @@
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "a60b469255fcbc0058c2d573a54d2767113c8352fdd4daa6160242d7bd79fb6a",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "5154bcfe9230309212385cb7727ef9529f7fbb0eb9f550c8305328bfb8b90788",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "4583d0e6c85338df798445b02bf04d6db861be21c59e01140f3c6ce3aa816afd",
+"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "7f28196ab188704c1a7394457d51bb8b32bf5f5b69c60b2568e3b80f4db92561",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "70fbfd50a4513b344bb84d42d3d42d102de1550d56600d1a88889438b3a942c9",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "8cfb564f477c8a326ef92209e4cd0e7e70bd193dfb8e279799e24aa1d0d7bc01",
"T3T1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "be79025aa2959e7f4c05a319fdc0c15835abbeed80897005db3caeb450eb5436",
@@ -27637,6 +27651,7 @@
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "9cc96dc4f69a0c055af0f1744cc8aa2c53d64ba553458db3f2879f7560ef57d0",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "200b11c0c027020b35590044060394a1d85e9cb50bfc39b076668b22a0030b9d",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "a66cf3a661186313e004c9fadee2b9f9e79cbb3dd231bfbb3d05b98793eb2c74",
+"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "04778ca053ade69945fa345f27b54386f8a14d70202fd3c1b29fe5572f5b8400",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "c2fcd491270093184f98584000eeb15d8c661471c237368d027659dd40569932",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "9d417aca7238f910193ae6326fa9aeafe129c5812475703ab406ce39537ecc95",
"T3T1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "dd6109a1c5eb4b4e60cffab3100a12a87753e4e6732a53a274c530adb7cc884a",
@@ -29377,6 +29392,7 @@
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "16f945631da95c0d1cfdacd5103a3cfcfde26197c78474f0027f3e8fdeae004f",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "7c4e7a161637c16714795b38d29b0db004e53cad539883551040025e7d437a20",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "5135e7e876f0db96ef3a97e26e7dc52636ebcff4737e9703cfe8a34502c04555",
+"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "7ff9b5cf060d9b929d6fc8d4cee89eeeb35e31eca77e5992f8dd88f15215c31c",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "3ba4646dad40e91ede24e8fe10da70c3f911a8c1e9bde6a6fc173d598eb50ad1",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "32b38ced65835d57c8815f3ca45001c4681f1e38216158b665d2d7ff7bdb8db1",
"T3T1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "3c2ccb4bec14ea1b2d47541c33bb15283d03d8999f47498393192e0f2606ebae",
@@ -31117,6 +31133,7 @@
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "ea7d0b4aaf06f69561a2e31ea86e55dc89b016fbab373e49e5f16073d9e3faa3",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "096dddeb74a6be9889a80ac6af653d62bf22c9ccceb35fd361fa6eadc575a9ff",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "92327054fe20ec594b132c48335fbabd8f895b33b94e8a805a673f6a46256d58",
+"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "eec1ee180641095130924489b11068baf186084d885467f4f7a40e34579beb77",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "91a49eca1471e863ec021e45a8d141770e65b5ecc721f86a759d5a0d51e13ade",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "617c2255c7c22e434c67667165c5d1766b45395b5c2c78d7c37bff032e0845ba",
"T3T1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "292607c23a0280ac5b0a4b13cc30ff576cf25ca28d0789b7615ad2c2b6456dd9",
@@ -32857,6 +32874,7 @@
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "a1214083732b222cedce1120bc59f935a17af3d86757d665aa733fc146ef5112",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "7829890cf80ab095fcc4fffdb6a7cb97fab128d395ab368b176b896a34823296",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "04036f91a1a47c5ab8598978922bacb1ebf26fbbd344f7688aabac8ef540051a",
+"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "6c6704a148c2a5a001ad2cbaf5886637ac83dc50f37b2303e3dfcbf46a02161e",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "d8f1d06b7d2fe3c205fc815291ed365dfa8647b149d6b38e1fee26c7f02712cd",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "9348f11e806cd064e219f2fecc263784f5de91ebe178972534729617003268c8",
"T3T1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "4bb7c9626c06bd7d038b396c60d608efcd603a724f4eba9a2f5f5ab56a24085b",
@@ -35246,6 +35264,7 @@
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "1ecc4704d700cceae114d73d870349b6918d26a0c42f59ccd97762cfe3c23faf",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "7946c9360334fced0f2edeb4a73b8586f8cdc95adf2f2fd411004e87164f8b1b",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "6eada52a3bfe8cdebcaf37f1b71fa6d7f210e1388c60fae443510cea631214f6",
+"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "182553a5a7904c1e30e8d9ce25ee921d3be4f6c2643fc792d04264b0e03cd7a3",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "b09b08ce29c4f2cba2065b02ac8ce2d8f170398f07f08f196796a3d63fad69d0",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "a3b7e91289ae9618891dc7fb2eba87df8932e5c0e87fd36b178e7433e9a458d1",
"T3W1_cs_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "d3ef960f3779b7682aa93aa655fec9dd4636b5fb3473db5d419f1445a34a62df",
@@ -37003,6 +37022,7 @@
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "ebfd5c393add3ddbcbcb6701164989f0f1304a610c350dfa3a4fb1481cf0b3f9",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "760991464715097639283f30fc7810cdb9b387ac34f3949a06c1dd33ba968d3f",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "a06c96a101c1cab8d93b8ad2e20a88b20dd9eef9b12fc4f18e034ef131a87a70",
+"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "438bf340439b59481c62fa8fa53190ba97542e82d30f772ecef5b380cefa0b26",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "f66ff70e8e3b59a98f558cec21fe096366d85238a3dd25ba43b7391d8b7993ab",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "2a923d5ed4afed68fdd76a19eab60ad117e34d97fde99d436613fa9ee6679bd6",
"T3W1_de_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "5b70c022b05b7c9f55b327b038388277d61f70747d68f948a6758c3c8933024b",
@@ -38760,6 +38780,7 @@
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "106a1d4205b0fa9be335422746f71828bcba94474fd68b38ac4f20dd2fc187ca",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "825ce828a35478842fa7d66156d382dbab3a9524a18163eda0048f43ecf176fa",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "6ec1424632dad8a22821a06a80979ed8e33770a29ae31f0edab6f99f43ae27db",
+"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "c20c087bb83adfc5cc9850eb29081c52a76853a94c30630f26bf82a01becd620",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "e30f6b5759da61e088e609fa1c82aac30436a2e41a322fe2b9f57c9444ed96e7",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "53bfa9bd97f5bbe6070dc4bf722b8dbe89eb5cbd3b439bf858a7f5acf22ecd56",
"T3W1_en_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "84a0486efa86cd4fed82160c1c03e0889c65aef7a2356570404c9155f2f7e2e5",
@@ -40517,6 +40538,7 @@
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "7b395567bc46ba6c3a9b84e3066632f3f919d1d4c13f871decc07a8d8b76329e",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "80ab3ca1972a817b1d42a39fcefb170b92ca0694837903c9af23ef1e47b3f317",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "2636e0b28f616d6f496401dd1187b8abf2f08e06c1930233299f5d39982824c7",
+"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "d6ed378e29b4e7e0a553bdb0bd7fc0b50392d852370b9f97f50d1af40877ae48",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "a4ad135a79994f42de91964c906a06b71ca341421f7772f4561bc5c1071df892",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "0d222a1d1be24a0d04c42ffda4ad39fb6cce9de01c466c5d11052aec0c84081f",
"T3W1_es_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "b04f2fb3317a89abff064c53a10bb07130fb4667864526d4f2a622d06eb6bcb7",
@@ -42274,6 +42296,7 @@
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "53b94223d3a1efaf04b7cc88ebf271037b4b72c5a95baced7f91519d0d7e06d1",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "24b9fdd2912e4f436800a0159ac06855292573013ebfea4725d2b736241af9b5",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "58f599b5076e2bc4da0314a2573459ca37f0fc465996910b366e2fee2321ceeb",
+"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "106586e71684fe11755fb734d68c4895ce44e3e6a0185c4dd67f8bd4011b5ebf",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "7936a8121c86135af43a03a38159b528493406e62c775e66a1803028611cb9b1",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "27574df405ce4fe26e7b345c5b1408ad02e7263c1eaaef1a6de66e213a3a3249",
"T3W1_fr_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "21a6b0434923c1af5b21311d214108c4c1ccb822b6dfd62ce4e28339f9b5a5b8",
@@ -44036,6 +44059,7 @@
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked]": "5672729ff9e0a59f23d36edb2b0501f6cfbcd41b5439352ac4241035d04e008c",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_-_multisig]": "5a775f41ed765a273574021205b1eaf19c80958361e94ea34e35d801c6c04548",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_checked_with_token_definition]": "67a8b12da8febcde14813b458bb53d36c4ac9155db860742c6618cf9d5696c9a",
+"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_multisig]": "9cdf4414f068f7d41ffe853058e34e02ce96fb67a17a2b76557a2d45cfb5c49a",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined]": "8b90e6bafb408ef0cdb7dd2c012f372cb4c51ae9654a9d97eaede4a043081138",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_-_predefined_-_with_definitions]": "dfc3e6aa20a95b3c33bbfde79c1e1e289ae09e45810c327ce576af593a9160f5",
"T3W1_pt_solana-test_sign_tx.py::test_solana_sign_tx[transfer_token_with_compute_budget]": "fe9ec39114a8e5c008a383824ea0037ff9303c4d853926556db81ed7e84ffa80",
Why this scored 37/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.