转账提示 CapacityOverflow 错误, 是什么问题?

用ruby sdk转账的时候

tx_hash = wallet.send_capacity(man, 10 * 10**8)
# capacity cannot be less than 4000000000
tx_hash = wallet.send_capacity(man, 40 * 10**8)
#CKB::RPCError: jsonrpc error: {:code=>-3, :message=>"InvalidTx(CapacityOverflow)"}

tx_hash = wallet.send_capacity(man, 41 * 10**8)
# CKB::RPCError: jsonrpc error: {:code=>-3, :message=>"InvalidTx(CapacityOverflow)"}

转账额度不小于 4000000000 是sdk限制的 还是 ckb网络限制的?
CapacityOverflow 是什么错误?

这个是受 CKB 协议限制的。但是最小额度不是一个定值。

这个就需要先了解 CKB 的协议

CKB 的原生代币 CK Bytes 是基于类似于 UTXO 的 Cell 模型而创造的。10 CK Bytes 表示一个 Capcity 大小为 10 bytes 的 Cell。这个 Cell 里面有一些固定的字段会占用一些 Capacity。这部分的话费就构成了这个最小的 token 的转账限额。