Skip to content

Instantly share code, notes, and snippets.

@vmx
Last active April 22, 2025 21:08
Show Gist options
  • Save vmx/a509b37b74edd39b32a5e55cfc3d3a63 to your computer and use it in GitHub Desktop.
Save vmx/a509b37b74edd39b32a5e55cfc3d3a63 to your computer and use it in GitHub Desktop.
Transfer from multisigs on Filecoin with a Ledger and Lotus

Transfer from multisigs on Filecoin with a Ledger and Lotus

I'd like to thank @ribasushi for helping figuring all this out.

Running a lite node

git clone https://github.com/filecoin-project/lotus
cd lotus
make lotus

Running it with ledger support enabled:

FULLNODE_API_INFO=wss://api.chain.love LOTUS_WALLET_ENABLELEDGER=true ./lotus daemon --lite

Using the ledger

From another terminal now run:

./lotus wallet new secp256k1-ledger

If the address is not what you expected, but a differen one, then you might use a derived path. In order to use a different address that belongs to you wallet you first need to find it:

make lotus-shed
./lotus-shed ledger list

Then find the address you want and look at the last digit of the path-like looking segment. Use that in the next command:

./lotus-shed ledger key-info "m/44'/461'/0'/0/<the-numeric-id-of-the-one-you-want>" | ./lotus wallet import --format json-lotus

And check if it worked via:

./lotus wallet list

Next step is the multi-signature (multisig) part. First check the information of the multisig you want to transfer money from:

./lotus msig inspect <the-multisig>

If your wallet is listed there as signer, you can now transter things. Use lotus msig propose. The --from parameter is the wallet address that was used as a signer of the multisig address. The first parameter is the multisig you want to operate on. The second the destinaton wallet address. Third parameter is the amount of FIL you want to transfer (the mount is in full FIL, not something like AttoFIL or so):

./lotus msig propose --from=<my-wallet-address-that-was-used-as-a-signer-for-the-wallet> <the-multisig-the-funds-are-on> <the-wallet-to-transfer-it-to> <FIL-amount>

Now wait until it finishes.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment