diff --git a/base58.py b/base58.py
index f1bded6..71c49c4 100644
--- a/base58.py
+++ b/base58.py
@@ -103,10 +103,13 @@ def b58decode(
     return b'\0' * (origlen - newlen) + bytes(reversed(result))
 
 
-def b58encode_check(v: bytes, alphabet: bytes = BITCOIN_ALPHABET) -> bytes:
+def b58encode_check(
+    v: Union[str, bytes], alphabet: bytes = BITCOIN_ALPHABET
+) -> bytes:
     """
     Encode a string using Base58 with a 4 character checksum
     """
+    v = scrub_input(v)
 
     digest = sha256(sha256(v).digest()).digest()
     return b58encode(v + digest[:4], alphabet=alphabet)

b58encode_check does not take a str as input
b58encode_check only takes `bytes` as input. This is inconsistent with b58encode, which can handle a `Union[str, bytes]` as input.
diff --git a/test_base58.py b/test_base58.py
index f007ee8..98d921b 100644
--- a/test_base58.py
+++ b/test_base58.py
@@ -76,6 +76,14 @@ def test_check_identity():
     assert_that(out, equal_to(data))
 
 
+def test_check_str():
+    data = 'hello world'
+    out = b58encode_check(data)
+    assert_that(out, equal_to(b'3vQB7B6MrGQZaxCuFg4oh'))
+    back = b58decode_check(out)
+    assert_that(back, b'hello world')
+
+
 def test_check_failure():
     data = '3vQB7B6MrGQZaxCuFg4oH'
     with assert_raises(ValueError):

pip install -e .
parse_log_pytest
pytest
pytest pytest-flake8 pytest-cov PyHamcrest coveralls
apt-get update apt-get install -y gcc
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/keis/base58.git@9418945639480b9a428ccabe6cd0c9becac24df6#egg=base58
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.8.0
coveralls==4.0.1
docopt==0.6.2
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
flake8==7.2.0
idna==3.10
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
mccabe==0.7.0
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
pycodestyle==2.13.0
pyflakes==3.3.2
PyHamcrest==2.1.0
pytest @ file:///croot/pytest_1738938843180/work
pytest-cov==6.0.0
pytest-flake8==1.3.0
requests==2.32.3
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
urllib3==2.3.0

name: base58
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.8.0
      - coveralls==4.0.1
      - docopt==0.6.2
      - flake8==7.2.0
      - idna==3.10
      - mccabe==0.7.0
      - pycodestyle==2.13.0
      - pyflakes==3.3.2
      - pyhamcrest==2.1.0
      - pytest-cov==6.0.0
      - pytest-flake8==1.3.0
      - requests==2.32.3
      - urllib3==2.3.0
prefix: /opt/conda/envs/base58

test_base58.py::test_check_str
test_base58.py::test_simple_encode test_base58.py::test_leadingz_encode test_base58.py::test_encode_empty test_base58.py::test_simple_decode test_base58.py::test_simple_decode_bytes test_base58.py::test_leadingz_decode test_base58.py::test_leadingz_decode_bytes test_base58.py::test_empty_decode test_base58.py::test_empty_decode_bytes test_base58.py::test_check_identity test_base58.py::test_check_failure test_base58.py::test_round_trips test_base58.py::test_simple_integers test_base58.py::test_large_integer test_base58.py::test_alphabet_alias_exists_and_equals_bitcoin_alphabet
base58.py
base58.py